ОЖ-нің микроядролық архитектурасының негізгі жағдайы (күйі).
Микроядролық архитектура жоғарыда қарастырылған ОЖ-ні құрудың классикалық әдісіне альтернатива (балама) болады. Микроядролық архитектура, процесс түрінде жүзеге асқан қолданушылар қосымшаларымен тең, ОЖ-нің құрамына кіретін жүйелік сервистер және микроядро арасындағы ОЖ-нің функцияларын таратады (бөледі).
ОЖ-ні құрудың микроядролық архитектура концепциясын қарастырайық. Берілген келіскің (подход) басты ерекшелігі, жеңілдікті пайдаланушылықрежимінде, микроядро деп аталатын ОЖ-нің өте аз бөлігі жұмыс істеуге қалады. Микроядро ОЖ-нің басқа бөліктерінен және қолданушылардың қосымшасынан құралған. Микроядро құрамына кіретін функциялар жиыны, қарапайым ядроның базалық механизміне сәйкес келеді. Дегенмен микроядроның құрамына ядроның барлық функциясы кіре бермейді, тек процесстерді басқаратын үзуді өңдеу, виртуальды жадыны басқару, хабарларды беру, енгізу-шығару құрылғыларын басқару функциялары ғана кіреді. ОЖ-нің мұндай функцияларының орындалуын, қолданушылар режимінде іске асыру мүмкін емес.
Сол сияқты, ОЖ-нің барлық машинадан тәуелді модульдері микроядроға енгізіледі. Микроядроның құрамына кірмей қалған ядроның жоғарғы деңгейдегі функциялары және модульдері, қолданушылар режимінде жұмыс істейтін қарапайым қосымшалар түрінде хатталады. Төменгі суреттен монолиттік ядромен (1-а сурет) және микроядролық (1-б сурет) архитектурамен ОЖ-ні құрудағы негізгі айырмашылықтарды көруге болады.
1 сурет. Монолиттік ядромен және микроядролық архитектурамен операциялық жүйені құру
Қолданушылар режимінде жұмыс істейтін ресурстар менеджерлерінің ОЖ-нің дәстүрлі утилиттерінен және ОЖ-нің жүйелік өңдеу программаларынан принципті айырмашылығы бар. Бірақ микроядролық архитектурада барлық программалық компоненттерқосымшалар түрінде хаттамаланған.
Утилиттер және өңдеуші программалар негізінен қолданушылармен шақырылады. Бір қосымшаға, басқа қосымшаның функцияларының орындалуын қажет болатын жағдай өте сирек, сондықтан классикалық архитектурасы бар ОЖ-де олардың көмегімен бір қосымша басқаның (немесе басқа қосымшаның) функциясын шақыруға мүмкіншілігі бар механизмдер жоқ. Егер қарапайым қосымша формасында ОЖ-нің бөлігі хаттамаланатын болса, ол жағдайда принципиальды басқа оқиға туындайды.
Анықтама бойынша мұндай қосымшалардың негізгі тағайындалуы басқа қосымшалардың сұраныстарына қызмет ету болып табылады. Мысалы, процессті құру, жадыны ерекшелеу, ресурстарға қатынастық құқығын тексеру және т.б. Осының салдарынан қолданушылар режиміне шығарылған ресурстар менеджерлері ОЖ-нің серверлері, яғни модульдері болып табылады. Олардың басты міндеті – жергілікті қосымшалардың және ОЖ-нің басқа модельдерінің сұраныстарына қызмет ету.
Микроядролық архитектура іске асқанда бір процесстің процедураларын екіншісінен шақырудың ыңғайлы және тиімділігінің ОЖ-де болуын қамтамасыз ететіні анық. Осындай механизмдерді қолдлау ОЖ-нің микроядросына қойылған басты тапсырмалардың біреуі. Сервер түрінде хатталған, ОЖ функцияларына қосымшалардың қатынау механизмдерін ұйымдастыру мысалын қарастырайық. Ол клиент, қолданушының қолданбалы программасы және сол сияқты ОЖ-нің басқа компоненттері болуы мүмкін. Клиент, ОЖ-ге хабар бере отырып, сәйкес серверлерден кейбір функциялардың орындалуын сұрайды. Қосымшалар арасында тікелей хабар тарату, олардың адрестік кеңістіктері бір-бірінен жекеленгендіктен, мүмкін емес. Жеңілдікпен пайдаланушылық режимінде орындалатын ОЖ-нің микроядросы, осы қосымшалардың әр қайсысының адрестік кеңістігіне қатынасы бар және сондықтан, хабар беру кезінде делдалдық қызмет атқаруы мүмкін. Алғашында мкроядро аты және серверге сәйкес келетін, шақырылатын процедуралардың параметрлері болатын хабарларды береді, содан кейін сұралған операцияларды орындайды, содан кейін микроядро басқа хабарлар арқылы клиентке нәтижелер қайтарады. Сол сияқты, ОЖ-нің микроядролық жұмысы белгілі клиент сервер модельдеріне сәйкес, ондағы транспорт құралдарының рөлін микроядро орындайды. Сервистерді немесе ресурстарды стандартталған хаттамалары, серверлерге оларды іске асыру детальдарынан тәуелсіз қызмет етуге мүмкіншілік береді. Үлестірілген жүйені құру үшін оны жасаушылардың алдынан кең мүмкіншіліктер ашылады. Әдетте, ауыстырудың инициаторы күту жағдайында тұрған серверге қызмет етуге сұраныс жіберетін клиент болады. Бір процесс бір ресурстарға қатысты клиент және басқалары үшін сервер болуы мүмкін. Бұл модель тек ОЖ-ні құруда ғана табысты қолданылмайды және сонымен қатар, кез келген деңгейдегі программаның қамтаманы құрғанда да қолданылады.
Тәжірибеде ОЖ-ні құру микроядролық архитектуралардың концепциясы мынадай. Next фирмасы, өздерінің компьютерлерінде Mach жүйесін пайдаланады. Теория бойынша оның өте үлкен емес жеңілдікпен пайдаларушы ядросы, қолданушылар режимінің қызметімен қоршалған, прецендентсіз иілгіштік және модульдікті қамтамасыз етуі керек. Бірақ тәжірибеде бұл артықшылық ОЖ UNIX BSD 4.3 қолданушылар кеңістігінде Mach микроядросының үстінен орындалған монолиттік сервердің болуынан бір қатар кішірейді. Бірақ Mach Next-қа хабарларды және объекті-бағдарланған құралдарды беру қызметі мүмкіншілігін берді.
Microsoft Windows NT, NT конструкциясы оған Intel, Mips және Alpha процессорларының негізіндегі жүйелерді қолдануға және симетриялы көп процессорлықты қолдауға рұқсат берді. NT-дің Dos-та, Windows-та, OS/2 және ОЖ-лерде жазылған Posix келісімдерін пайдаланатын программаларды орындауды қажет болғандықтан, бар ОЖ-лердің еш қайсысында қайталанбайтын NT құрылымын жасау үшін Microsoft микоядролық әдістемеге тән модульді таңдады. Нәтижесінде NT жеке модуль немесе ішкі жүйе түріндегі ОЖ-нің әр қондырмасын қолдайды.
Микроядроның осы замандағы архитектурасы Novell, USL, Open Software Foundation, IBM, Apple және басқаларымен ұсынылған. NT-дің микроядро бөлігіндегі бақталасы Mach 3.0 болып табылады. Оларды ІВМ және OSF коммерциялық түрге келтіруге кірісті. Mach-тың ең негізгі бақталасы USL-дің өз ұсынысының негізінде таңдалған, Chorus System фирмасының Chorsus 3.0 микроядросы. Бұл микроядро – Solaris ОЖ-нің мұрагері объекті-бағдарланған Sun фиамасының Spring ОЖ-де пайдаланылатын болады.
Mach ядросы жадыны басқаруды, енгізу-шығару функцияларымен және коммуникация процесстерімен қамтамасыз етеді. Mach ядросын құрудың идеясы, жүйенің жұмыс істеуін қажетті механизмдермен қамтамасыз етуден тұрады, бірақ бұл механизмдерді пайдалану стратегиясы қолданушылар процессі деңгейінде іске асады. Ядро бес бас абстракцияларды басқарады:
• процесстермен;
• жіптермен;
• жады объектерімен;
• порттармен;
• хабарлармен.
Mach процессі - бұл ресурстарды үйлестіретін базалық бірлік, оның деректерден және программа мәтінінен тұратын кеңістік адресі бар. Mach-та жіп орындау бірлігі болып табылады. Оның командалар санауышы (счетчик) және онымен байланысқан регистрлер жиыны бар. Әрбір жіп бір процесстің бөлігі болып келеді. Mach-тағы процесс аралық қатынас хабар беруге негізделген.
Windows NT құрылымы екі қосынды түрінде көрсетілуі мүмкін: қолданушы режимінде жұмыс істейтін ОЖ-нің бөлігі және ядро режиміндегі ОЖ-нің бөлігі.
Ядро режимінде жұмыс істейтін бөлік executive Windows NT – орындалатын бөлік деп аталады. Ол виртуальды жадыны, объектілерді (ресурстарды), енгізу-шығаруды, файлдық жүйені (желілік драйверлерді қосқанда), процесстердің қарым-қатынасы және жүйелік қауіпсіздік бөлігін басқаратын бірнеше компоненттерді кіргізеді. Әрбір компонент басқаларды, мұқият ерекшеленген ішкі процедура жиынының көмегімен шақырады. Қолданушылар режимінде жұмыс істеітін екінші бөлікті серверлер құрайды, ол - Windows NT қорғалған ішкі жүйесі. Windows NT серверлері қорғалған деп аталады, ендеше олардың әр қайсысының жадысы басқа процесстерден виртуальды жадыны басқаратын жүйемен NT executive бөлінген жеке процессте орындалады. Сонымен ішкі жүйелер автоматты түрде жадыны бірігіп пайдалана алмағандықтан, олар бір бірімен хабарды беру арқылы байланыс жасайды. Хабар клиенттер және серверлер арасында қалай берілсе, екі сервер арасында да солай беріледі. Барлық хабарлар Windows NT-дің орындалатын бөлігі арқылы өтеді.
Қорғалған жүйені қолдауды Windows NT executive микроядро кеңістігінде жұмыс істейтін және ешқашан дискке түсірілмей орындалатын бөлім қамтамасыз етеді. Оның құрамды бөлігі болып төмендегілер аталады:
1. Құратын, жоятын және NT executive объектілерін басқаратын жүйе ресурстарын көрсету үшін пайдаланылатын абстракты деректер түрі – объекттер менеджері;
2. Жергілікті компьютерде қорғау ережесін орнататын қауіпсіздік мониторы, ол ОЖ ресурстарын қорғайды, қорғауды орындайды және орындалатын объекттерді тіркейді.
3. Процесстердің тоқталуын және қайтадан басталуын, құрылуын және аяқталуын, сонымен қатар олар туралы ақпараттарды сақтайтын процесстер менеджері;
4. Виртуальды жады менеджері, яғни, өзіне келесі компоненттерді енгізетін енгізу-шығару ішкі жүйесі:
- енгізу-шығару менеджері;
- енгізу-шығару менеджері;
- файлдық жүйелер;
- желілік редиректор;
- NT құрылғысының драйвері;
- Кэш менеджері.
Өз кезінде орындалатын блім №1 микроядроның төменгі деңгейінің қызметіне негізделеді. Микроядро функцияларына төмендегілер кіреді:
- процесстерді жоспарлау;
- төтенше оқиғаларды және үзуді өңдеу;
- көп процессорлы жүйелер үшін процессорларды синхронизациялау;
- жаңылысудан кейін жүйені қалпына келтіру.
Микроядро жәңілдікпен пайдаланушы режимінде жұмыс істейді және ешқашан жадыдан кетпейді. Оған тек үзі арқылы қатынау мүмкін.
Қорғалған Windows NT ішкі жүйелері қолданушылар режимінде жұмыс істейді және Windows NT ОЖ жүктелген кезде пайда болады. Қорғалған ішкі жүйелердің арасынан қоршау ішкі жүйесі деп аталатын ішкі классты ерекшелеуге болады.
Қоршау ішкі жүйесі ОЖ-нің (АРІ) қосымшаларының интерфейсін орындайды. Ішкі жүйенің басқа интегралдық ішкі жүйелер деп аталатын түрлері, ОЖ-лер үшін қажетті функцияларды орындайды. Мысалы, Windows NT-дің қауіпсіздік жүйесінің үлкен бөлігі интегралдық ішкі жүйе түрінде орындалған. Сонымен, желілік серверлерде интегралдық ішкі жүйе сияқты орындалған.
Windows NT қорғалған ішкі жүйелерді:
- бірнеше программалық интерфейсті (АРІ), мүмкіншілігінше бұл жағдайда базалық программалық кодты (NT executive) күрделендірмей қамтамасыз ету;
- базалық ОЖ-ні қолдайтын АРІ-де өзгеруден немесе кеңейтілуден оқшаулау;
- барлық АРІ-ге қажет болатын глобальды деректердің бөлігін біріктіру және сонымен қатар әр жеке АРІ-ді қолданылатын деректерді басқа АРІ-дің деректерінен бөлу;
- әр АРІ-дің қоршауын қосымшалардан және АРІ-дің қоршауынан қорғау, сол сияқты базалық ОЖ-ні әр түрлі қоршаулардан қорғау;
- ОЖ-ге келешекте жаңа АРІ-дің арасында кеңеюге рұқсат беру үшін қолданады.
Ең бастысы микроядро NT ОЖ-нің тасмалданатын негізгі бөлігін қолдау құралы – қолданушылар ортасының жиыны үшін қызмет етеді.