Пищов тема 5 - Структура на ОС
| Информационни технологии | 2009-12-04 | 290 сваляния |
Структура на ОС
Съществуват различни типове ОС.Работата на една ОС може да се охарактеризира по следния начин: Процеси се създават, променят състоянието си и се унищожават. По време на съществуването си процесите обикновено имат нужда от общуване. Ресурсите непрекъснато се разпределят и освобождават. Интензивно се използват входно- изходните устройства и файловете с данни. Съществуват вътрешни процеси, изпълнявани от процесора и външни процеси, свързани с каналите за данни, периферните устройства и външната памет. Основната задача на ОС е управлението на процесите- създаване, унищожение, преминаване м/у състоянията, взаимодействие, планиране, което е тясно свързано с използването на основния ресурс на ОС- процесора. С-мата за управление на ресурсите се грижи задругите ресурси, като пространство на основна и вторична памети. Трета група е свързана с управлението на входа/изхода и файловете от данни.Компонентите на ОС обикновено извикват чрез прекъсване, тъй че тя трябва да включва и стандартни програми за обработка на прекъсвания. Обръщенията към функциите на ОС могат да бъдат явни или неявни. Елементите на ОС могат да бъдат транзитни и резидентни. Транзитните елементи временно се преместват в паметта и могат да се пазят в абсолютна или преместваема форма. Резидентната част на ОС, постоянно намираща се в оперативната памет, исторически се нарича ядро. То е основата на всяка ОС. Ядро на ОС- ядрото включва базовия функционален набор, въз основа на който се строи останалата част на ОС и се осигурява работата на всички програми в системата. Не съществуват твърди правила за определянето функциите на ОС, които да бъдат включени в ядрото. Едно общо правило може да е следното: Определя се кои функции могат да бъдат изпълнявани правилно и независимо, и кои- последователно. Първите могат да се реализират подобно на потребителските процеси, а вторите да бъдат части на ядрото. Функциите и структурата на ядрото зависят от цялостната концепция за изграждане на конкретната ОС и от особеностите на апаратната част.Примитиви и процеси Примитиви. Примитивите се извикват от процесите под формата на извикване на подпрограма. Извикващата и извикваната програма се изпълняват строго последователно. Изпълнението на примитивите може да се разглежда като изпълнение на сложни команди в рамките на процеса. Примитивите не изискват дескриптор, и запис в опашката на готовите процеси, тъй като извикващите ги процеси могат да продължат работата си тогава, когато работата на извикващия ги примитив е вече завършила. При този начин на извикване на примитивите лесно могат да се направят грешки и да се наруши целостта на системата. За това той е ефикасен в малките системи- в големите многопотребителски системи се прилага по рядко. При тях, за да се гарантира работоспособността им, се вземат специални мерки за защита с използване на апаратни програмни средства. Типичен пример е системата VAX/VMS [14]. Процесорът може да работи в четири режима на работа (ядро, организатор, суперваизор и потребител), които ОС използва, за да дефинира нива на защита чрез ограничаване възможностите на процесите за достъп до страниците на виртуалната памет. Най защитено и привилигировано е ниво Ядро- в него се изпълняват драйверите на устройството, планиращата програма, управлението на страниците, като и привилигированите инструкции. Най малко защитени са потребителските програми, изпълнявани в ниво Потребител. Всеки процес има определени привилегии, които се проверяват при извиване системни услуги чрез стандартния VAX механизъм за извикване на подпрограми. Използването на специални команди от вида SVC е по- разпространен начин за извикване на примитиви.Изпълнението на тези команди предизвиква специално прекъсване означаващо заявка за обслужване. След анализа за причината за прекъсване, управлението се предава на съответния примитив, които изпълнява необходимите действия. По правило всяко прекъсване от вида SVC предизвиква преминаване на процесора в суперваизорен режим, в който са достъпни всички команди и средства. В потребителски режим са недостъпни привилегированите команди и затова потребителят трябва да се обръща за услуга към ОС. Също така командата SVC дава възможност на процеса да направи скок извън адресното пространство, но този скок се контролира от ОС. Тя знае кога потребителят пресича нейната граница и може да откаже услуга ако потребителския процес няма необходимите пълномощия. Командите от вида SVC, заедно с режима супервайзор/ потребител, практически са необходими за всички многопотребителски ОС. Тъи като примитивите са общи подпрограми, те трябва да бъдат оформени като повторновходими (реентрантни). В случаите когато се използват само общи данни, примитивите трябва да се реализират като общи секции- с програмни или технически средства. По време на изпълнение на примитивите се забраняват примитивите, за да се осигури непрекъснат интервал на работа. Използват се и команди TS. Когато се използват само локални данни, достатъчно е тези структури само да се превключват според това кой процес е извикал примитива. Процеси. Процес може да се обърне за услуга към системен процес на ОС, като например изпрати съобщение, след което може да продължи или да се блокира. Това предполага, че обслужващия процес е зациклен и блокиран, докато не получи заявка. Ако такъв процес няма изходна точка и не може да се зацикля, тогава процесът, който иска да го използва, трябва най- напред даго създаде, а на края да го унищожи, чрез примитиви на ядрото. По време на изпълнението си процесите могат многократно да бъдат прекъсвани и активизирани, преминавайки през различни състояния и опашки, за разлика от примитива, който по принцип, веднъж извикан, винаги се изпълнява до край. Нещо повече, възможно е да има в опашката на готовите процеси няколко записа за един и същи системен процес, докато примитивите винаги са в едно копие. В заключение може да се посочи, че в много случаи извикването на процеси напомня извикването на примитиви. Например, когато извикването е синхронизирано, обслужващия процес се държи като обща под програма. Основното различие е, че извикването на процес е по- сложно и се прилага за реализация на функции,които изискват много време за изпълнение и могат да се изпълняват паралелно с други процеси. Друг начин за съвместно използване на функциите. Някои функции на ОС. Се включват направо в процесите, които ги извикват. Въпреки че се доблира информацията, има възможност за настройване на функциите за конкретната нужда. В много ОС. едновременно използваните функции се поместват на фиксирано място в паметта и се предоставя възможност за достъп до тези области. Тук трябва да се обърне внимание на реентрантността на системните програми и на критичните секции в тях. Управление на процесите. Блок за управление на процеса. Всеки процес се представя в ОС със своя блок за управление на процеса (дескриптор). Блокът представлява структора от данни, съдържашта следната информация относно конкретния процес: -идентификация на процеса (например име и вътрешен индентификатор); - сътояние на процеса (готов, изпълняван, блокиран); - регистри на процесора (брояч на командите, общи регистри, статус и др.); - възможности на процеса (например режим на работа на процеса); - информация за връзките му с други процеси; - информация за планирането на процесора (например приоритет); - информация за ресурсуте, които владее или има право да получи памет, устройства, отворени файлове и тн.; - статистическа информация (използвано време на процесора, време на престой, отчетен номер и тн.). Примитиви за управление на процесите. В ОС непрекъснато се създават и унищожават процеси. Затова във всяка система трябва да има примитиви за създаване и унищожаване на процеси. Създаването на процес включва индентификация, определяне на начален приоритет, отделяне на началните ресурси, формиране на блок за управление. Процес може да създаде един или няколко процеса чрез съответния примитив. Създаващия процес се нарича родител, а създадените процеси- потомци (деца). Когато един процес създава друг, възможни са различни реализации: 1) родителят продулжава изпълнението си паралелно с децата си, и 2) родителят чака завършването на всички свои деца. При това ресурсите могат да бъдат разпределени по следните начини: 1). Децата получават част от ресурсите, принадлежашти на родителя, 2) родител и деца съвместно използват всички ресурси (памет, файлове), и 3) родител и деца не делят ресурси (всеки получава ресурси директно от ОС). Процесът се унищожава, когато завърши, т.е. когато се изпълни и последният оператор. Освен това, процес (обикновенно родител) може да унищожи друг процес, когато той вече не е необходим или е привършил отделените му ресурси. Проблеми настъпват когато унищожените процеси са родители. В такъв случай ОС каскаадно унищожава всичките му деца. Съществуват обаче ситеми в които породените процеси започват да съществуват независимо от родителите, тъй че унищожаването на родител не оказва влияние върху децата му. При унищожаването на процес се освобождават неговите ресурси и идентификацията му се изважда от системните структури от данни. Трябва да бъдат предвидени също примитиви за блокиране, събуждане, преустановяване, възобновяване, получаване на атрибути на процес, изменение на атрибути на процес. Друга група са примитивите за организиране на взаимодействието между процесите.Организация на процесите. Процесите могат да цъществуват свързани или несвързани в някаква структура. Ака няма структурна организация, компонент на ОС е отговорен за създаването или унищожаване на процеси. Когато се появи заявка за извършване на някаква работа, той създава процес за нейното изпълнение, а след като работата бъде свършена той го унищожава. Така всички процеси са равни в рамките на системата. За изпълнението на едно пакетно задание могат последователно да бъдат създадени и унищожени няколко процеса- компилация, ссвързване, зареждане и изпълнение. Необходимите ресурси се отделят или за цялото задание наведнъж, или на стъпки, а след изпълнението на процеса те се освобождават. В повечето ОС процесите образуват някаква структура, при която не всички процеси са равни. Например процесите могат да образуват дървовидна структура. Процес може да се създаде няколко нови процеса чрез съответния примитив. Всеки от новосъздадените процеси може на свой ред да създаде други и т.н. В система с дървовидна структура правилата за разпределение на ресурсите и управление могат да са повече или по- малко строги. Когато правилата са строги, при създаването си даден процес може да получи само ресурси принадлежащи на родителя. Само родителя може да контролира действията на децата си. Така винаги е ясно кой ресурс на кого принадлежи и кому принадлежи управлението.Почти всяка ОС има някаква структурност. Някой системи са изградени на йерархични нива, при което по ниското ниво има по- малко права от пораждащотого. Накрая възможна е реализация на ОС, при която процеси не се създават и унищожават. Системата притежава определен брой процеси съществуващи постоянно. Те се създават при генерирането на системата.
Планиране на процесите. Централният процесор е най- крайния ресурс на компютърната система. Всяка ОС изисква щатен подбор на планиращия алгоритъм, съгласно който от много процеси, конкуриращи се за достъп до процесора, се избира един готов за изпълнение процес. За разпределение на процесора, м/у намиращите се в състояние на готовност рпоцеси отговаря програмата за планиране на ниско ниво. Необходимост от планиране възниква, когато: процесът доброволно се откаже от процецора, системен механизъм блокира изпълнявания процес, блокиран процес става готов, настъпило е прекъсване от интервале таймер. Ако планиращата програма се извиква само в първия случай, това означава, че управлението в значителна степен е възложено на приложните процеси. Ако програмата се извиква във всички случай, управлението се извършва от системата.
Управление на ресурсите. Ресурсът е многократно използваем обект, който се заема и освобождава от процесите. Този термин се използва както за описание на компонентите на апаратната част, така и за съставните части на програмното осигуряване- програми, данни, буфери и т.н. Съобщенията, изпращани между процесите, също могат да се разглеждат като клас ресурси. И двата типа ресурси имат едно общо свойство- процесите се блокират при неудовлетворена заявка за ресурс и могат да се опишат с едни и същи средства. С всеки клас ресурси са свързани процедури за разпределение и освобождаване на един или повече елементи на класа. Памет може да се резпредели и освободи с операциите: 1) Request (размер, начален адрес); 2) Release (размер, начален адрес). Когато процес изпрати заявка за разпределение на ресурс, той се блокира, докато не получи ресурса, без който не може да продължи развитието си. При освобождаването на ресурс, процес, очакващ този ресурс, става готов. Това означава, че в стандартните програми за управлениена ресурсите могат да включват примитиви за управление на процесите. Един еднороден механизъм за управление на ресурсите може да се изгради въз основа на семафорите на Деикстра, като се предвидят четири примитива: създай семафор на ресурс, унищожи семафор на ресурс, разпредели ресурс и освободи ресурс. Всеки клас ресурси се представя със семафор. Блокът за управление на семафора включва: индентификация на семафора и родителя му по време на определянето (създаването) на ресурса; описание на ресурса (брой и индентификация на достъпните единици ресурс); опашка от блокирани процеси, очакващи да получат ресурса; допълнително поле (за съхранение на допълнителни данни, текущо разпределение на ресурса и др.). Методите за управление на различните класове ресурси рязко се различават. Някои от ресурсите (процесор, диск) могат да бъдат съвместно използвани от процесите, а други- индивидуално (лента, данни, печатащо устройство), трети- и по двата начина (памет, кодови сегменти).
Поддръжка на входа и изхода. Устройствата се заемат и освобождават за индивидуално или за съвместно използване. Основните операции над устройствата са: четене, запис и управление. За изпълнението на тези три операции ядрото трябва да извърши действията: 1) инициране на входно изходните операции, и 2) обработка на прекъсванията по вход/ изход, постъпили от канала при завършване на операцията или при възникване на грешка. Заявката към ядрото за изпълнение на входно- изходната операция може да има формата: изпълни вход/изход. Нейното провеждане в ядрото може да се опише със семафори по следният начин: Р (разпредели канал); Старт на входа/изхода (канал, канална програма); Р (край на операция канал); V (разпредели канал). Първата Р- операция включва извикване на програмата за разпределение на канала, а втората- очакване на прекъсване при завършване на входно- изходната операция. Това означава, че обработката на прекъсване включва операцията V (край на операция канал). Друг начин за реализация е заявката да се запише пред разпределителя на канала, след което управлението се връща в извикващата програма. Предполага се, че към всеки канал има включени няколко устройства и параметърът канал включва номер на канала и номер на устройство. Възможен е и друг подход за реализиране на входно- изходните операции. Описаните по-горе функции се реализират чрез процеси за вход- изход. За всяко входно- изходно устройство се определя процес, който управлява работата на устройството. Този процес, на който отговаря зациклена програма, чака в изходна точка съобщение със заявка за операция с дадено устройство, изпратена от друг процес. Входно- изходния процес, например, анализира заявката, извиква съответните разпределители на канали и контролери, определя каналната програма, стартира входно- изходната операция, анализира прекъсванията по вход/изход, респективно за грешка и на края изпраща отговор към извикалия го процес. В ядрото се поддържа информация за състоянието на апаратурата, планира се достъпа до нея, извършва се обработката на прекъсванията по вход/изход. След като се организира вторичната памет, може да се реализира и управлението на файловете. Файловете трябва да могат да се създават и унищожават. За да се използва създаден файл, необходимо е той да се отвори. С файла могат да се извършват операциите четене, запис, управление. Файлът се освобождава, когато се затвори. Когато се организира справочник на файловете, също е необходимо някакво множество от операции. Разглеждането на справочниците като файлове позволява да се използват и файловите операции. Работата с файлове наподобява тази с устройствата и файлът може да се разглежда като виртуално устройство. Това подобие е довело много ОС до обединяване в една структура управлението на файловете и устройствата.
Поддържане на информацията. В ОС могат да бъдат предвидени специални операции за прехвърляне на информация м/у ОС и потребителски програми. Може да има примитиви за получаване на дата, текущо време, брой на потребителите в системата,версия на ОС, свободна памет или дисково устройство и т.н. Също така, ОС пази информация относно всички задания или процеси и има примитиви за нейното получаване или изменение. Такива са примитивите за получаване на атрибутите на процесите, файловете и устройствата.
Обработка на прекъсванията. Прекъсванията са събития, при които се променя редът на изпълнение на командите от процесора. Прекъсванията се разделят на две категории: външни и вътрешни. Външните прекъсвания се предизвикват от събития, коитопроизхождат извън прекъсвания процес и са асинхронни спрямо него. Такива са прекъсванията от входно- изходната апаратура- основната функция на прекъсванията е синхронизацията на процесора на входа/ изхода чрез сигнали за прекъсване, съобщаващи на процесора, че е настъпило изменение в състоянието на канал или устройство. Други подобни прекъсвания могат да се причинят от таймера, от пулта за управление, от друг процесор. Вътрещните прекъсвания се предизвикват от прекъсвания, които са свързани с работата на процесора и са синхронни спрямо използваните от него операции. Такива са: изключителните ситуации (препълване, делене на 0 и др.), програмни грешки (изпълнение на забранени или несъществуващи команди, нарушаване на защитата на памртта и др.), апаратни грехки (например контрол по четност), команди за програмни прекъсвания от вида SVC. Обработката на прекъсванията до голяма степен зависи от апаратната част на процесора, и в частност от системата за прекъсване. Действията по обработката на прекъсване, присъщи за повечето машини, са следните: 1) запомня се на определено място характеристиката на прекъсването, 2) запомня се състоянието на прекъснатия процес, 3) определя се източникът на прекъсване и управлението се предава на съответната програма, 4) след изпълнение на програмата се възобновява нормалната работа. Първото сействие на ОС обикновенно е запомняне на частта от състоянието на процеса, която не е запомнена апаратно. В най- простия случай апаратно се запомня броячът на команди, а останалото програмно. По нататък трябва да се идентифицира източникът на прекъсване и да се предаде управлението на съответната обработваща програма. Той може да се определи по програмен път и с команда за преход да се да се предаде управлението към обслужващата програма. Често се използват апаратни средства за определяне на източника на прекъсване, които изработват вектор на прекъсването и го изпращат към процесора по специални шини. Векторът представлява указател към програма за обслужване. Обслужващата програма извършва необходимите действия или само изпраща съобщения към блокиран процес. Преходът от изпълнение на една програма към друга се нарича превключване на контекста. Проблем настъпва, когато са разрешени едновременни заявки за прекъсване от няколко източника. Тогава трябва да се въедат приоритети или приоритетн класове. Обслужването на приоритетите може да е програмно или апаратно. Следващия проблем е свързан с въпроса: как да се реагира, ако по време на обработка на прекъсване възникне нова заявка за прекъсване. Възможни са три решения: 1) заявките се игнорират и никога не се обслужват, 2) заявките се запомнят и се изпълняват след завършване на текущото прекъсване, 3) ако заявката е с по- висок приоритет, програмата за обработка на прекъсване се прекъсва, започва се обработка на новото прекъсване, и след завършването и се продължава със старото прекъсване. В последня случай се говори за вложени прекъсвания и е наай- удобно процесорът да използва стек за запомняне на състоянието на всяка програма. Във всяка машина има различни възможности за забрана и разрешение на прекъсвания. Те могат да са няколко нива: забрана на всички прекъсвания, забрана чрез маска на някои прекъсвания и забрана на устройство да изпраща прекъсване. И накрая програмата за обработка на прекъсване трябва да възобнови нормалната работа. В зависимост от вида на прекъсване и дисциплината за планиране на процесите управлението може да бъде върнато: 1) на прекъснатия процес, 2) този процес може да е блокиран или записан в опашката на готовите процеси, а планиращата програма да избере процес за изпълнение от опашката. Когато размерите на обработващата програма са големи, тя може например да бъде разделена на две части: резидентна програма за обработка на първо ниво и нерезидентна от второ ниво.
Потребителски интерфейс.
Системни извиквания. Системните извиквания или заявките за системно обслужване предоставят интерфейса между изпълняваните програми и ОС. Обръщенията към ОС имат определен синтаксис и семантика. Когато тези обръщения се реализират с механизма за извикване на подпрограма, в документацията на ОС се дава описание на обдастите от данни и входни тички, заедно с реалните адреси. По- често обръщенията се извърщват чрез инструкции от вида SVC, които водят до прецъсване и преминаване на процесора в привелигирован режим. Кодът, съпровождащ командата, определя функцията, която трябва да се изпълни. Използват се главно два метода за изпращане на параметрите към ОС. По- простия подход е да се изпращат параметрите 1рез регистри. Когато техния брой е недостатъчен, параметрите се записват в област на паметта и адресът и се изпраща като параметър в регистър. Ако системното извикване е допустимо, извиква се съответната функция на ОС. След нейното изпълнение резултатът се отразява в десктиптора на процеса. Съществуват две възможности. Първата е ОС да върне управлението на извикващия процес. Така се осигурява незабавен отговор след заявка за обслужване, но не се гарантира еднакво обслужване. Втората възможност е, процесът да се нареди на опашката на готовите процеси и да извика планиращата програма. Възможно е средствата на ОС да се заявяват явно чрез непосредствено кодиране на инструкциите на асемблерен език. В повечето ОС се използват интерфейси на по- високо ниво чрез апарата на макроинструкциите и съответни библиотеки на асемблерен език. В някои случаи макроразширението включва проверка за правилност на предаваните параметри, но по- честотова се извършва от самите извикани функции. Някои системи позволяват да се правят системни извиквания директно от програми,написани на език от високо ниво. Системните извиквания могат да бъдат директно включени в програмата или индиректно чрез извикване на специални библиотечни процедури, които по време на изпълнение правят системните извиквания. Команден език на ОС. Потребителският интерфейс на по- високо ниво се осъществява чрез командния език (езика за управление на заданията) на ОС. Това в първичния интерфейс за всички потребители- всеки потребител трябва да започне с него за да установи връзка с ОС. Потребителите на системата използват тези езици за предаване на ОС на всички спецификации и заявки, отнасящи се до техните работи, необходимите им ресурси и файлове. Езикът на ОС се определя от синтаксиса и семантиката на неговите команди (директиви). Най- простата и резпространена форма на командите е <име на команда><списък от параметри>. Общоприето е поле на командата да се предшества от специален знак. За разделители между параметрите на командата служат празни интервали, запетаи и др. При пакетната обработка изпълнението на заданията протича отделно от потребителя и е желателна по- голяма изразителност на езика. Потребителят трябва да има максимални възможности за управление на хода на изпълнението на необходимата му работа, а също така за указване на необходимите му ресурси. При интерактивен режим потребителите участват в последователен диалог със системата и в интерес на потребителя е да се минимизира задаваната в командите информация. Много системи искат от потребителя само индентификация на командите. По правило на потребителя не се дава да указва необходимите му ресурси. Вместо това се определя група от правила и съглашения по използването на фиксирана среда (работно поле с фиксирани размери, набор достъпни функции, библиотека). Повечето от крупните системи имат някакви макровъзможности. На командния език се съставя процедура- последователност от команди, която може да се разглежда като макроопределение. Процедурата се каталогизира (например се записва като файл с определено разширение). При извикването на процедурата (макроизвикване на файла) се извършва заамяна на формалните параметри с действителни аргументи от макроизвикването. Изпълнението на командите става с помощта на програма интерпретатор. Той следи терминала на потребителя, докато не бъде въведена поредната команда. След това анализира всяка команда, преобразува операндите в приемнива фоорма и извиква съответния системен модул. В зависимост от начина на реализация командите могат да са два типа: вътрешни и вънщшни. При първия начин интерпретатора съдържа кода за изпълнение на командата. Алтернативния подход е да се реализират команди чрез специални системни програми , изпълнявани като потребителските процеси. За да се изпълни командата, интерпретаторът зарежда съответния файл в паметта, изпраща параметрите на командата и предава управлението. Графични потребителски интерфейси сега се на разположение с ОС за микрокомпютрите. Те са под формата на прозорци и са реализирани чрез указващи устройства, обикновенно мишка, меню и икони. Позволяват многократни прозорци и незабавна помощна информация.
Системни програми. Всяка ОС се допълва с набор от системни програми, които създават удобна среда за разработка и изпълнението на програми, и рещшават някои общи проблеми. Тези програми могат да се разделят в следните групи: - езикови процесори (компилатори, интерпретатори, аземблери); - свързващи и зареждащи програми; - средства за настройка на програми; - редактори на текстови файлове; - помощни програми за манипулиране на файлове (копиране, печат, преименуване и др.); - приложни програми (система за управление бази от данни, генератор на компилатори, пакет за статистически анализ, текстообработващи системи).
Структурна организация на ОС. Разгледахме ОС отвън, като абстрактна машина, разширяваща функциите на апаратурата. Сега ще разгледаме вътрешната и структура. Известни са някои общи правила за изграждане на ОС, но все още няма общоприети правила. Ще бъдат разгледани някои системни подходи за проектиране на ОС.
Монолитни системи. В монолитната ОС може да се внесе известна структурност. Потребителските програми заявяват обслужване от ОС чрез системните извиквания. При изпълнение на системното изввикване ОС проверява параметрите му и индексира таблица с указатели към процедурите, реализиращи съответното извикване. Системното извикване се изпълнява и управлението се връща към потребителската програма. Тази организация предлага следната структура на ОС: 1) главна програма, която стартира съответната обслужваща процедура; 2) множество от обслужващи процедури, изпълняващи системните извиквания; 3) множество от помощни процедури, които са общи за обслужващите процедури.
Йерархичен подход. Дейкстра формулира ирархичен подход към методологията на абстрактната машина. Тий се основава в разпределение на функциите на ОС по нива разположени едно над друго. Най- ниското ниво е свързано с апаратурата, а най- високото- с потребителя. Всяко ниво представлява абстрактна машина, чиято реализация се базира на възможностите на по- ниските нива и е по нататъшно разширение на функционалната среда на потребителя. Ниво 4: управление на заданията 1) приложни процеси; 2) интерпретатор на езика за управление. Ниво 3: управление на устройствата 1) установяване на състояние между логочески и физически устройства; 2) буферизация. Ниво2: връзка с оператора 1) диалог с оператора; 2) управление на конзолата. Ниво 1: страничен супервайзор 1) управление на паметта; 2) потдържане на виртуална памет. Ниво 0: ядро 1) управление на процесите; 2) синхронизация. Йерархичната организация позволява да се определи за потребителските програми удобна среда за изпълнение и ги избави от общуването с вътрешните механизми. Така за работа с устройствата се използва интерфейсът, поддържан от ниво 3. Аналогично, нива 3 и 4 за връзка с конзолата използват интерфейс 2. Освен това, всички процеси се нуждаят от услугите на управлението на паметта от ниво 1, което от своя страна се нуждае от семафорните примитиви и диспечера от ниво 0. Прекъсванията от таймера се свързват с ниво 0, а отнасящите се до вторичната памет- с ниво 1. С представянето на ОС във вид на иерархична структура са свързани две идеи. Първата е, че на програмите отнасящи се към по високите нива, трябва да бъде предоставена възможност да ползват услугите на програмите, отнасящи се само към по- ниските нива. Другата е, че при прехода към по- ниските нива, съответстващите им функции трябва да се изпълняват все по- бързо. Всяко типично ниво включва структури от данни и процедури, които могат да се викат от по- горните нива, а то от своя страна може да вика тези от по- долните нива. При това трябва да се знае само какви функции се изпълняват на дадено ниво, а не как се реализирани. ОС може да бъде създадена и настроена по нива от долу- нагоре, при това програмистите не е необходимо да вникват в структурата на по долните нива. Тези предимства произтичат от принципа на модулността. В строгата иерархична структура е допустимо използването на функции само от по долните нива, като заявката трябва последователно да премине през всичките нива до достигане на желаното. Съществува и понятието прозрачна йерархия, при която от кое да е горно ниво е достъпно произволно по ниско ниво. По нататъшно обобщение на йерархичния подход е представено от системата MULTICS. Вместо на нива, MULTICS е изградена от концентрични пръстени, като вътрешните са по- привилегировани от външните. Когато процедура от външен пръстен иска да извика процедура от по- вътрешен пръстен, трябва да се изпълни прекъсване с проверка на валидност на параметрите, за да се разреши извикването.
Виртуални машини. Концепцията на виртуалните машини представлява разширено приложение на разгледания йерархичен подход. Използването на принципа на виртуалните машини
Тагове от реферата: едния, пищов, еризира, състояниет, руктура, ипове, променят, съществува, процеси











