Ож-нің көп қабатты құрылымы
Орналасқан жiктер үш иерархиялық болуға тұратын жүйенi сияқты қарау мүмкiн ядроның негiзiнде ОЖ басқарумен сияқты қарау мүмкiн жұмыс iстейтiн есептеуiш жүйенi: төменгi қабатты аппаратура, аралық ядро, программа және қосымша арқылы өңделетiн утилиталар (2.6-шы сурет ) және жүйенiң беттiк қабаттары деп топтастыруға болады. Есептеуiш жүйелер қабатшы құрылымды концентрлi дөңгелектердiң жүйелік түрiнде сол әрбiр жiк тек қана жапсарлас жiктермен әрекеттесе алатын айғақ мысал келтiруін суреттеуге қабылдаған. Шындығында, қосымшаның ОЖ-сі мұндай ұйымдардың жанында, аппаратурамен тiкелей әрекеттесе алмағанында емес, тек қана ядроның жiгi арқылы байланысады
2.6-шы сурет. Есептеуiш жүйенiң үш қабатты схемасы
Көп қабатты жол кез келген түрдiң күрделi жүйелерiнiң сол санда болып табылатын және программалық декомпозициясының әмбебап және тиiмдi әдiсi. Жүйе бұл жолдың сәйкестерi жiктердiң иерархиясынан тұрады. Әрбiр жiк жоғары жатқан жiк (2.7-шi сурет ) қабат аралық интерфейстердi құрастырған функциялардың кейбiр жиыны ол үшiн орындайтын қызметін көрсетедi. Иерархия бойынша жоғары келесi жiк қабаттай өз функциялары күрделiрек салады және өз кезегімен жасауға арналған қарапайымдарымен толып қалады қабаттай жоғары жатқан функциялары әлi әлмендiген функцияларының негiзiнде төменде жатады. Қатал ережелер жүйе жiктердiң арасындағы тек қана өзара модулдарының арасындағы әрекеттесулер байланысы кез келген бола алатын iшiндегі қабаттан тұрады. Жеке модуль өз жұмысын орындай алады немесе қабаттай басқа модульге өз сұранысын немесе төменде жатқанға көмегi үшiн сұранысын қабат аралық интерфейс арқылы өз алдына қабаттайды.
2.7- сурет
.
Мұндай жүйесiн ұйымдастыру қадырларды көп алады. Ол жүйенiң өңдеуiн айтарлықтай ықшамдайды, жiктердiң функциясы және қабат аралық интерфейстердi жоғарыдан төменге анықтап, содан соң толық iске асырудың жанында жiктердiң функцияларының қуаты төменнен жоғарыға қозғала бiртiндеп өсiп жетiлдiруге өйткенi бастапқыда мүмкiндiк бередi. Егер күште қалған бұл iшкi өзгерiстердiң қабат аралық интерфейс болса, бұдан басқалар, жүйенiң жаңғыртуының жанында модулдар қажетсiз жiктердiң қалған жағдайлардалар өзгерiс қандай болмасын өндiрiп алуға iшiнде қабаттай өзгертуге болады.
Күрделi көп қызметтi кешен болмен ядро болғандықтан, онда көп қабатты жолға әдетте ядроның құрылымына да таралады.
Ядро келесі қабаттардан тұрады:
ОЖ-нің аппаратты қолдауының құралдары.Басқару жүйесi туралы осыған дейiндер айтылған программалардың кешенi сияқты , бiрақ жалпы айтылғандар, ОЖ-дің функцияларының бөлiгi аппаратты құралдармен де орындала алады. Сондықтан программалық және аппаратты құрал, не жиынтық қалай басқару жүйесiнiң анықтауымды кейде кездестiруге болады. 3.8. суреттегі табиғи, басқару жүйелерiне әкетедi, компьютердiң барлық емес аппаратты құрылым емес, есептеуiш процесстердiң ұйымдарында тiкелей қатысатын ОЖ-дің аппаратты қолдауды тек қана құралы, демек : ерекше құқықты режимнiң қолдауының құралдары, үзулердi жүйенi, тағы сол сияқтыларды контекст процесстерiнiң ауыстырып қосуды құралы, жадтың облыстарының қорғау құралы.
ОЖ-ге тәуелдi компоненттер. Бұл жiк компьютердiң аппаратты платформасының ерекшелiгiн шағылысатын программалық модулдарды құрастырады. Бұл жiк жақсы болғандалар жоғары жатқан толық экрандалады аппаратураның ерекшелiктерiнен ядро қабатта. Бұл жоғары жатқан өндеуге мүмкiндiк бередi осы ОЖ қолдалатын аппаратты платформалардың барлық түрлерге арналған жалғыз дана қазiргi машина - тәуелсiз модулдардың негiзiнде қабатта. Windows NTтiң басқару жүйесiнiң HAL жiгi қызмет көрсете аладуға қабаттай мысалымен перделейтiн.
Ядроның негiздi тетiктерi. Бұл жiк дисктегi жадтан беттерiнiң контекст процесстерiнiң программалық ауыстырып қосу өте қарапайым ядро операциялары, үзулердi диспетчеризацияны, орын ауыстыруын орындайды және тағы сол сияқтылар керi. Рет мәлiметтiң модулдары, не беттiк қабаттардың модулдарға арналған олардың атқарғыш механизмдарымен деп атауға қабаттай тек қана олар ресурстарды бөлу туралы шешiмдердi қабылдамайды шешiм қабылданған жоғарыда жан-жақты зерттейдi бередi. Мысалы, осы уақытта ағымдағы процесстiң орындауын үзетiн және процесстiң орындауы бастауы керек болатын туралы шешiм, жоғары жатқан жiкте процесстердiң менеджерiмен қабылданады, негiздi тетiктер қабаттаймын процесстiң контекстiне ағымдағы процесстiң контекстiнен ауыстырып қосу орындауы керек болған процесстiң контекстiне ағымдағы процесстiң контекстiнен ауыстырып қосу орындауы керек болған туралы тек қана нұсқау берiледi.
Қорлардың менеджерлерi. Бұл жiк есептеуiш жүйенiң негiзгi қорларымен басқару бойынша стратегиялық есеп iске асыратын қуатты функционалдық модулдардан тұрады. Жiк мәлiметте әдетте процесстердiң (диспетчерлермен сонымен бiрге деп аталатын ) менеджерi, енгiзу-шығару, файл жүйесi және жедел жадтар жұмыс iстейдi. Мысалы, менеджерлер және файл жүйесiнiң менеджерi өзгеректерге бөлiктеу енгiзу-шығаруды менеджермен кейде бiрлестiруге, негiзiнендердiң жүйеге қолданушыларының рұқсатты басқару функциясы және оның жеке объекттерiне қауiпсiздiктiң жеке менеджерiне мiндеттейтiн бола алады. Еркiн және нақтылы түрдiң қолданылатын қорларының есеп жүргiзудiң менеджерлерiнiң әрбiрi және қосымшалардың сұрау салуларымен сәйкес олардың үлестiрiлуiн жоспарлайды. Мысалы, менеджер виртуалды жад жедел жад дискке беттерiнiң орын ауыстыруымен басқарады және сәйкесінше керi жұмыс істейді. Неткен жүктелгенiн менеджер үндеулердi қарқын зерттеп отыруы керек беткеңiз, олардың жад, мәлiмет қолданушы процесстердiң күйiнде болуды уақыт және ол негiздеймiн әлсiн-әлсiндi бет жүк түсiруге керек екенін және туралы шешiмдi қабылдайтын көп басқа параметрлер. Менеджерiнiң қабылдаған шешiмдерiнiң орындау түрлері төменде жатқанғанға айналады нақты беттердiң (түсiруге ) жүктеуi туралы сұрау салулары бар негiздi тетiктер қабаттайды. Менеджерлер iшiнде қабаттай сол процессорға, жадтың облысының бiрнеше қорларына керек рұқсаттың процесске орындауына бiр уақытта айғақ шағылатын тар өзара байланыстар бар болады болуы мүмкiн, нақтылы файлға немесе енгiзу құрылымына - қорытынды. Мысалы, процесстер менеджер процесстiң жасауында оның кодтары және мәлiметтерге арналған жадтың нақтылы облысын процесске ерекшелеуi керек болған жадтың менеджерiне айналады.
Жүйелiк шақыруларды интерфейсі. Бұл жiк ядроның жiгi ең жоғарғылар болып табылады және қосымшалармен және жүйелiк утилиталармен басқару жүйесiнiң қолданбалы программалық интерфейсi құрастыра тiкелей әрекеттеседi. Жүйелiк шақырулар мұндай кешендi әсерлердiң жүзеге асырулары үшiн функцияларға көмегi үшiндермен қорлардың менеджерлерi қабаттай әдетте айналады, және де бiрнеше мұндай үндеулердi қажет ете алды бiр жүйелiк шақыруды орындауға.
2.8-шi сурет. ОЖ ядросының көп қабатты құрылымы
ОЖ ядросының келтiрiлген бөлiктеуi қабатта болып табылады және шарты жеткiлiктi. Олардың арасындағы жiктердiң санын нақты жүйеде және функциялардың үлестiрiлуi бола алады. Мысалы, машина - тәуелдi модулдардың жiгi NetWare-шы ОЖ аппаратты платформалардың тұрпаттастары үшiн қолайлы жүйеде негiздi тетiктердiң жiгiмен қосыла алады және әдетте жартылай,қорлардың менеджерлерiнiң жiгiмен ажыраймайды. Әрдайым қолданусыз қорларды жоспарлай қоймай, одан да басқа өз жоспарларын өз алдына жүзеге асырады, қорлардың менеджерлерi осы
жағдайдағы негiздi тетiктерi жеке болуы мүмкiн және ядро жiктердiң үлкен санынан тұратында қарама-қарсы суретте келтірілген. Мысалы, қорлардың менеджерлерi, көп қабатты құрылыммен ядроның нақтылы жiгi, өз кезегiнде құрай ие бола алады. Мысалы, төменгi қабаты қатты дисктiң драйверiнiң құрылымдарының драйверi немесе желiлiк бейiмдеуiштi драйверлердi құрайтын енгiзу-шығаруды менеджерге бұл жад ең алдымен, жоғарғы мәлiметтiң логикалық ұйымымен файл жүйесi немесе торлық қызметтердiң хаттамаларының драйверi, шаруалы қабатта.
2.9-шы сурет. UNIX ОЖ-ң Көп қабатты құрылымы
Сонымен бiрге нақты ОЖ-дегі жiктердiң өзара әрекеттесуі туралы әдiс схема жоғарыда корсетілген. Ядроның жұмысының үдеулерi үшiн басқа мағынада туралы тiкелей функцияларға төменгi қабат аралық өтiп кете қабаттай болады. Мұндай терiс өзара әрекеттесудi типтi мысал жүйелiк шақыруды өңдеудi бастапқы кезең болып табылады. Жүйелiк шақырудың iске асырулары үшiн көп аппаратты платформаларға программалық үзудi нұсқауды қолданылады. Бұл қосымша негiздi тетiктердiң жiгiнде болатын алғашқы үзулердi өңдеулермен модул iс жүзiнде шақырады, бұл модул ендi керек функцияны жүйелiк шақырулар қабаттай шақырады. Сонымен бiрге жүйелiк шақыруларды өздерiнiң функциясы иерархиялық жiктердiң субординацияларын ядроның негiздi тетiктерiне тiкелей айнала кейде бұзады.
Ядроның жiктерiнiң санының таңдауы жауапты және күрделi iс болып табылады : қабат аралық өзара әрекеттесуге нәсiлдердiң қосымша тiркеме қағаздарының арқасында ядроның жұмысының кейбiр бәсеңдiгiне бағыттал жiктердiң санының үлкеюi, жiктердiң санының кiшiрейтуi жүйенiң кеңейтiлiмдiк және қисындылығын нашарлатады. Мысалы, UNIX-тiң көп болжамдары эволюциялық дамытуды ұзақ жол өткен басқару жүйелерi әдетте айқын ерекшеленген жiктердiң ептеген саны бар реттелген емес ядроларын алады, салыстырмалы жаңадан көрiнген басқару жүйелерiнде, Windows NT-нiң сондайы, ядро жiктердiң саны және олардың өзара әрекеттесуi көбiрек бөлiнген анағұрлым үлкенiрек дәрежеде формалданылған.
ОЖ аппаратты тәуелдiлiк және тасымалданғыштық.Көп басқару жүйелерi әр түрлi аппаратты платформалардың өз құрамында маңызды өзгерiстерсiзiнде ойдағыдай жұмыс iстейдi. Көпшiлiгiнделер бұл сол ұғындырылады, жанында бөлшектердегiнi айырмашылық, компьютерлердiң көпшiлiгiнiң ОЖ-нiң аппаратты қолдауды құралы неткенмен - ең алдымен бұл құралдар көп бiр үлгiдегi сызықтар, атап айтқандаларды бүгiн тауып алды басқару жүйесiнiң компоненттерiнiң жұмыстарына ықпал етедi. ОЖ-ге нәтижелер ядроның машина - тәуелдi компоненттерiнiң тығыз жiгiн ерекшелеуге және өңге жасауға жеткiлiктуге болады әртүрлi аппаратты платформалар үшiн ОЖ ортақ қабатта.
ОЖ-нің аппаратты қолдауын бiр үлгiдегi құралдар.ОЖ-нің функцияларының программалық және аппаратты iске асыруының аралығында айқын шекаралар, ОЖ-нің функциялары программалық орындалатын туралы шешiм бар болмағанында емес, неткен аппаратты, аппаратты және компьютердiң программалық қамтамасыз етуiнiң өңдеушiлерiмен қабылданатынын. Қазiргi аппаратты платформалар түгелдей дерлiктi әйтсе делер келесi компоненттер кiретiн БЖдiң аппаратты қолдаудың құралдарының кейбiр типтi жиындарын алады :
1. ерекше құқықты режимнiң қолдауының құралдары;
2.мекенжайларды хабар жүргiзудiң құралдары;
3. процесстердiң ауыстырып қосуының құралдары;
4. үзулердi жүйе;
5. жүйелiк таймер;
6. жадтың облыстарының қорғау құралдары.
Ерекше құқықты режимнiң қолдауының құралдары процессордың машинаның күйi немесе процессор қорытып айтқанда жиi деп аталатын жүйелiк регистрiнде әдетте негiзделген. Бұл регистр кейбiр белгiлер, процессордың анықтайтын жұмыс тәртiптерi, соның iшiнде және артықшылықтардың ағымдағы тәртiбiнiң белгiсiнде болады. Артықшылықтардың тәртiбiнiң ауысымы үзу немесе ерекше құқықты команданың орындауын нәтижеденiң машинаның күйдiң сөзiнiң өзгерiсiнiң арқасында орындалады. Мысалы, жеңiлдiкпен пайдаланушылықтың градацияларының саны процессорлардың әртүрлi түрлерiнде, (ядро ) немесе төрт ядро - орындау платформада VAX немесе 0-1-2-3 процессорларда Intel x86/Pentium ) екi деңгей әртүрлi өте жиi қолданатын бола алады.
Ерекше құқықты режимнiң қолдауының құралдарының мiндеттерiнде процессордың нұсқауларын белсендi программаны орындауды рұқсат етiлушiлiктiң тексеруiн орындау жеңiлдiкпен пайдаланушылықтың ағымдағы деңгейiнде кiредi.
Мекенжайларды хабар жүргiзудiң құралдары процесс кодтарындағында болатын виртуалды мекенжайларды өрнектеудiң операциясы, нақты жадтың мекенжайларында орындайды. Мекенжайларды хабар жүргiзудiң жанында қолайлы кестелер үлкен көлемдердi әдетте алады, сондықтан олардың сақтауына жедел жадтың облыстарын қолданылады, процессордың аппаратурасы облыстың бұнын тек қана нұсқағыштарда болады.
Процесстердiң ауыстырып қосуының құралдары тоқтаттырылатын процесстiң контекстiнiң тез сақтауы және белсендi болып қалыптасатын процесстiң контекстiнiң қалпына келтiруiне арналған. Мысалы, iшiндегiсi контексттер жүйелiк регистрлер және жеке процесспен байланатын нұсқағыштар процессордың жалпы тағайындауы, (тағы сол сияқтылардың нөл, тасымалдау, асыра толтырудың байрақтары демек ) операциялардың байрақтарының регистрiнiң iшiндегi барлық регистрлерi, сонымен бiрге сол әдетте қосады, процесстiң мекенжайларын хабар жүргiзудiң кестесiне нұсқағыш басқару жүйесi емес. Контекст тоқтаттырылған процесстерiнiң сақтаулары үшiн процессордың нұсқағыштарымен сүйейтiн жедел жадтың облыстарын әдетте қолданылады
Мысалы, контекстi ауыстырып қосу жаңа есепке өту командасы бойынша процессордың нақтылы командалары бойынша орындалады. Мұндай команда процессордың сақталған контексттен регистрге мәлiметтердiң автоматты жүктеуiн шақырады, процесс кейiн не орын үзiлген бұрын созылады.
Компьютерге үзулерiн жүйе сыртқы оқиғаға сезiнiп, процесстердiң орындауы және жұмысты енгiзу құрылымы синхронизациялануға мүмкiндiк бередi - қорытынды, жылдам қайта - бiр программадан басқаға жүру. Үзулердi тетiк кейбiр болжамсыз оқиға немесе процессордың жұмысының циклiмен синхронизацияланбаған оқиғаның есептеуiш жүйесiнде пайда болу туралы процессорды хабарландыру үшiн сол үшiнмен керек. Мысалы, мұндай оқиғалардың мысалдарымен дисктiң контроллерiн мәлiметтердiң блогiнiң жазуы сыртқы құрылымды енгiзу-шығару операциясының аяқтауы қызмет көрсете алады ), регистрдiң асыра толтыруын арифметикалық операцияны дұрыс емес аяқтау ), астрономиялық уақыттың интервалының өтуi. Оның (тағы сол сияқтыларды процессордың сыртқы құрылым контроллерi, таймер, арифметикалық блогi ) көзi үзулер шарттардың пайда болуында нақтылы электрлiк белгiнi шығарып қояды. Бұл сигнал командалардың тiзбегiнiң процессоры, тапсырма берiлген атқарылатын кодпен орындауды бөледi, және үзулердi өңдеудi процедура деп аталатын алдын ала нақтылы процедураға автоматты өткел шақырады. Үзулердi өңдеудi процедураға өткел жан-жақты зерттелетiн аппаратураның процессорларының үлгiлерiнiң көпшiлiгiнде мекенжай бойынша өткелмен ерекше құқықты режимге өткелдi орындауы керек бiр уақытта мүмкiндiк берген (немесе тiптi процесстiң жинағы контекстi ) машинаның күйдiң сөзiнiң алмастыруымен жарысайды. Үзiлген кодтың орындауына қайтаруда үзулердi өңдеудiң аяқтауларынан кейiн әдетте болады.
Үзулер кез келген басқару жүйесiнiң жұмысындағы ең маңызды рөлдердi оның қозғаушы күшi бола тұра ойнайды. Шындығында, БЖдың әсерлерiнiң көбiнесесi әр түрлi түрдiң үзулерiмен басталады. Мысалы, қосымшаларданғы жүйелiк шақырулары тiптi үзудi IBM-шi Intel немесе мэйнфреймдердегi SVCтың процессорларындағы intтiң нұсқауының ядроның тиiстi процедураларының орындауына өткел шамданған арнайы нұсқауға көмегiменнiң көп аппаратты платформаларына орындалады.
Жылдам регистрдiң түрiнде қажеттi жиi жүзеге асырылатын жүйелiк таймер. Таймердiң регистрiне ол үшiндер содан соң автоматты нақтылы жиiлiкпен бiрлiк бойынша шегерген шартты өлшемдердегi тиiстi интервалдың мәнiн программалық жүктеледi. Таймердiң тартуларын жиiлiк, әдеттегiдей, процессордың такты генераторының жиiлiгiмен тығыз байланған. (таймер ескертпе дабылды iстеп шығаратын такты генератормен шатыстырмауы керек бол, компьютердегi синхронизацияланған барлық операциялары, уақыт және календарлық датасының тәуелсiз есептеулерiн апаратын электрондық схемаға батареялылар жүйелiк сағаттармен .) Таймер есептеуiштiң нөлдiк мәндерi табыста басқару жүйесiнiң процедурасымен қаралудан өтетiн үзудi бастайды. Жүйелiк таймерденгi үзулерi жеке процесстер процессордың уақыттарын тұтынатын аңдуға арналған ең алдымен БЖдарды қолданылады. Мысалы, егер уақыт квантының ол ерекшеленген процессi мәлiметiн бiтсе, процесстердiң жоспарлауышының таймерiнен кезектi үзудi өңдеудiң жанында уақытты бөлулердi жүйесiнде басқа процесске басқару ықтиярсыз тапсыра алады.
Программалық кодтың мүмкiндiгiнiң тексеруiн аппаратты деңгейдегi жадтың облыстарының қорғау құралдары мұндай оқу, жазу немесе (басқару тапсыруларында ) орындау операциялар жадтың нақтылы облысының мәлiметтерiмен жүзеге асыруға қамтамасыз етедi. Егер компьютердiң аппаратурасы мекенжайларды хабар жүргiзудiң тетiгiн қолдаса, онда жадтың облыстарының қорғау құралы тетiк бұлар икемделедi. Жадты қорғау бойынша аппаратураның функциялары процессордың ағымдағы коды және үндеу өндiрiп алатын жадтың сегментiнiң артықшылықтарының деңгейлерiнiң салыстыруларында әдетте тұрады.