5990

Операциялық жүйелердің даму бағыттары

Лекция

Орташа программисттің жабдықтар жұмысының бүкіл ерекшеліктерін ескеруге мүмкіншілігі жоқ екені (қазіргі заманғы терминологиямен айтқанда жабдық драйверін дамытумен шұғылдануға) басқаша айтқанда анық орташа программистің дискінің ақпараттық кеңістігін файлдар жиыны ретінде көрсететін қарапайым жоғарғы деңгейдегі абстракциясы болу керек. Дискінің бастиегінің детальдарын жылжыту немесе мотордың жұмысын ұйымдастыруды қамтамасыз етуден, бұл концептиальды жеңіл (оңай). Сол сияқты, қарапайым және анық абстракцияның көмегімен программистен үзуді...

2013-07-20

190 KB

62 чел.

1 -2 дәріс. Кіріспе. Операциялық жүйелердің даму бағыттары. Операциялық жүйенің функциялары және міндеттері. Нақты уақыт режимі.

Операциялық жүйе (ОЖ) – дегеніміз компьютер құрылғыларын қолданушы үшін ыңғайлы пайдалану мүмкіншіліктерін қамтамасыздандыруға арналып жазылған программа.

Операциялық жүйе (ОЖ), жүйелік программалық қамтаманың негізгі құраушысы. ОЖ-ні құрған кезде, ОЖ-ні оңайлатудың маңызды әдісі болатын және олардың детальдарының таратылуын елемей, желінің жоғарғы деңгейдегі құрауыштарымен өзара әсерін бір жерге жинауға мүмкіншілік беретін абстракциялау тең қолданады. Бұл мағынада ОЖ қоданушы мен компьютер арасындағы интерфейсті көрсетеді.

Көптеген компьютерлердің архитектурасы машиналар командасы деңгейінде қолданбалы программаларды пайдалануға өте қолайсыз. Мысалы, дискімен жұмыс істеу оның электрондық құрауышының ішкі жабдығын дискіні айналдыру командасын енгізу, жолшықтарды іздеу және форматтау, секторлардан оқу және жазу т.б. үшін – контроллерді біледі деп ұйғарады. Орташа программисттің жабдықтар жұмысының бүкіл ерекшеліктерін ескеруге мүмкіншілігі жоқ екені (қазіргі заманғы терминологиямен айтқанда жабдық драйверін дамытумен шұғылдануға) басқаша айтқанда анық орташа программистің дискінің ақпараттық кеңістігін файлдар жиыны ретінде көрсететін қарапайым жоғарғы деңгейдегі абстракциясы болу керек. Файлды оқу немесе жазу үшін ашуға, ақпаратты алу немесе босату үшін пайдалануға, содан кейін жабуға болады. Дискінің бастиегінің детальдарын жылжыту немесе мотордың жұмысын ұйымдастыруды қамтамасыз етуден, бұл концептиальды жеңіл (оңай). Сол сияқты, қарапайым және анық абстракцияның көмегімен программистен үзуді ұйымдастырудың барлық қажет емес егжей-тегжейі, таймердің жұмысы, жадыны басқару және т.б. жасырылады. Одан басқа, қазіргі заманғы есептеу комплекстеріне операциялық жады көлемі және процессор саны шектеусіз деген иллюзия құруға болады. Осының бәрімен ОЖ айналысады. Сонымен, ОЖ компьютер құрал-жабдықтарымен тікелей жұмыс істейтін виртуалды машина ретінде көрсетіледі.

ОЖ компьютердің өте күрделі архитектурасының барлық бөліктерін басқаруға арналған. Мысалға, егер бір компьютерде жұмыс істейтін бірнеше программа, бір мезгілде нәтижені басқа құрылғысына (принтерге) шығаруға әрекеттенсе не болатынын елестетейік. Біздер әр-түрлі программалар шығарған араласқан жолдар мен беттер алатын едік. ОЖ бұл сияқты хаосты баспаға арналған, дисктегі және баспаға кезекті ұйымдастыру ақпараттарын буферлеу арқылы болдырмайды. Көп қолданушыға арналған компьютерлердің ресурстарын басқару және оларды қорғаудың қажеттілігі өте анық. Демек, операциялық жүйе, ресустар менеджері сияқты, процессорлардың таралуын, жадының және әртүрлі програмалар арасында басқа ресуртардың ретелгенін және бақыланғандығын іске асырады.

Егер есентеу жүйесі бірнеше қолданушының ортақ жүмысынан рұқсат етсе, онда олардың қызметінің қауіпсіздігін ұйымдастыру проблемасы шығады. Дискте ақпараттың сақталуын ешкімнің басқа адамдардың бөтен райларын жоймауын және бүлдірмеуін қамтамасыз ету керек. Бір қолданушылардың программаларына, екінші қолданушылардың программаларының ерікті түрде араласуына рұқсат етпеу керек. Есептеу жүйесін рұқсатсыз пайдалану әрекетін тыю керек. Осы әрекеттің бәрін, қолданушының және оның программаларының қауіпсіз жұмыс істеуін ұйымдастырушы ретінде, ОЖ іске асырады. Осы тұрғыдан қарағанда, ОЖ полициялық және қарсы шолу (барлаушы) функциясы жүктелген мемлекеттік қауіпсіздік жүйесін көрсетеді.

Бір жағынан компьютердің аппаратурасы мен пайдаланушының есептері арасындағы интерфейс болып табылатын , ал екінші жағынан есептеуіш жүйесінің қорын тиімді қолдану және сенімділік есептеу ұйымдастыруына арналған басқарушы және өңдеу программаларының комплексін операциялық жүйе дейміз.

1946 жылы программаны есте сақтайтын бірінші сандық есептеу машинасы іске қосылғаннан бастап, 1956 жылға дейін есептеу машиналарының құрылысы және іс әрекеттері тұрақты болып қалды. Олардың классикалық фон Нейман архитектурасы, енгізу-шығару операцияларын қоса алғанда, командалардың қатал түрде тізбектеліп орындалуына негізделген. Әдетше қолданушының программасы жүктелгенде және орындалғанда, регистрлердің мәндерін орнату, жады ұяшықтарын тексеру және барлық есептеулермен машиналардың ең төменгі деңгейінде қатынаста болу қызметтері үшін пернетақта арқылы тікелей машинамен жұмыс істелді. Программалар абсолютті машиналар тілі (ондық және сегіздік нотация) жазылды және оны енгізу алдында абсолюттік жүктеме болды. Программаларды автоматтандыру құралдары жоқ болды, немесе өте аз болды. Тек өте күрделі қондырғыларда стандартты программалар кітапханасын аздап пайдаланатын ассемблер мен интерпретаторлар болды.

Символдық программалаудың маңыздылығы мойындалғанда және ассемблерлеу жүйелері кең тараған кезде, стандартты операциялық процедура өндірілді: ассемблер жүктеуішпен оқылады; ассемблер қолданушының стандартты программалар кітапханасы қосылған бастапқы программасын «символикалық колодалар» абсолюттік формасына түрлендіреді; ассемблерленген программа лентаға немесе картаға жазылады, ал жүктегіш осы программаны картадан негізгі жадыға енгізу үшін тағы да қайтадан пайдаланылады; содан кейін абсолютті программа орындалады. Әсіресе, осы қадамда карталарды өңдеу үшін ЭЕМ қажет ететін уақытпен салыстырғанда әрбір қадам оператор жағынан манипуляцияны қажет етеді және көп уақыт алады.

ОЖ-нің «1-ші буыны (ұрпағы)» өмірге жоғарыда айтылған тиімсіздіктермен, сонымен қатар басқа да пікірлемен келтірілген. Бұл қосымша факторларда: құрал-жабдықтарды басқаруға шығатын шығын; басқа тілдердің болуы; кітапханалық программалардың дамуы және құрылғылар, әсіресе, енгізу-шығару операцияларына қатысты ерекшеліктер; абсолюттік программаның орындалуына қажет баолық программалар секциялары және бағыныңқы программаларды аударудың (трансляциялаудың) ыңғайсыздығы, ең басында барлығы бірге және барлық уақытта кез келген программаларға өзгертулер енгізілген кезде таратылуы келтірілген. Алғашқы жүйелік дестелер (пакеттер) стандартты тізбекті «жүктеу/аудару (трансляция)/жүктеу/ орындау» қажетті жүйелік программаларды (ассемблер, компилятор, жүктеуіш немесе кітапханалық бағыныңқы программалар) табатын және жүктейтін, сонымен қатар бірінші тапсырмадан екінші тапсырмаға өтуді басқаратын, орталық басқару программасының көмегімен автоматтандырылады. Тілдік аударулар (трансляторлар) программаларды абсолюттік емес, жылжымалы пішінде (формада) құру үшін қайта көшірілген. Қалыпты (колоданы) араластыруға рұқсат ететін бастапқы және жылжымалы объекті пішінде (формада) программалары бар байланыстырғыш жүктемелер жасалған содан кейін кітапханалық программаларды жылжымалы объекті пішінінде (формасында) сақтау мүмкіндігі пайда болды. Операторға (оператор-аламға) енгізу-шығару дестелеріне (пакеттеріне) арналған, стандартты емес тапсырмаларды күтуші (обслуживание) және қабылданбаған кезде жүйелерді қалпына келтіретін физикалық жабдықтарды басқару қажет. Тапсырма авторының, тапсырманың орындалу процессіне тікелей қатынасы жоқ. Бұл ОЖ-де қауіпсіздік ең қиын және нақтылы проблема: жүйе өздігінен немесе қолданушы арқылы жеңіл бүлінуі мүмкін, одан басқа, кез келген қолданушы өз тапсырмасының ішінен дестедегі (пакеттегі) келесі тапсырманы оңай оқуы мүмкін. Ресурстарды ең бірінші негізгі жадыны және енгізу-шығару құрылысын үлестіру, ОЖ-ге қарағанда, үлкен дәрежелі тіл процессорларының және қолданушылар программасының таныстырмасы болды. Аппаратураның архитектурасы және программалық айқындалушылығына қарағанда, ОЖ-нің болашақта даму көзқарасынан айырмашылық аппараттық қамтамада уақыт периоды шамамен ЭЕМ-нің буындарының (ұрпақтарының) даму периодымен түйіседі.

1959 жылдан 1963 жылдардағы периодта бірнеше маңызды аппараттық зерттеулер кең таралды және ОЖ дамуына себепші болды. Деректер каналы – байланысты басқаратын және деректерді негізгі ЭЕМ-мен және енгізу-шығару құралдары арасында беретін, өзінің жеке жүйелік командаларымен және басқару құрылғыларымен қарапайым ЭЕМ-сы маңызды ақпараттық жаңалық болды. Орталық өңдеуші құрылғыдан (ОӨҚ) енгізу-шығару сұранысын алған кезде, канал енгізу-шығару асинхронды және өз жұмысын жалғастырушы ОӨҚ-мен бірге (параллельно) орындайды; енгізу-шығару операциялары және ОӨҚ-н мезгілде (уақытта, кезде) қиыстыру мүмкіндігі пайда болады. Негізгі жады каналымен және ОӨҚ-мен бөлінеді. Негізгі жады олар үшін программаларды және деректерді сақтайды. Алғашқы кезде ОӨҚ тек каналдың жағдайын ғана сұрай алатын, бірақ жақын арада, егер канал ақпарат берумақсатында ОӨҚ-нің жұмысын көп жағдайда енгізу-щығару операторлары аяқталғанда үзетін болса, тиімділікті жоғарылатуға болатындығы анықталды.

Бұл жаңа архитектураның артықша тиімділік мүмкіндігін пайдалану мақсатымен күрделірек енгізу-шығару программалары жазылған. Оның құрамына деректерді автоматты түрде оқуды қамтамасыз ететін буферлеу программалық құралы кірді. Олар программаға қажет болғанға дейін және олардың шыуын кейінірекке қалдыратын, шығу деректерін кезекке оналастыру үшін, сонымен қатар енгізу-шығару үзілісін сезінетін және басқаруды үзілген программаға қайтаратын өңдеуді үзу стандартты программалары бар.

Ерекше ішкі жағдайлар туралы сигнал беру, мұндағы, арифметикалық толып кету және таңдап қосу үшін командалар қосылды, тыйым салу (сөндіру) және үзіліс механизмінің (іс-әрекетінің тоқтатылуы) тоқтатылуы пайдалана бастады.

ОЖ есептерінің күрделенуі және толықтырылуына қарай (жай қолданушы нақты аппаратурадан көбірек қашықтайтын) тапсырмаларының сипаттамаларын және оларға қойылатын талаптарды жүйелі әдіске келтірудің қажеттілігі туындады. Осы мақсат үшін тапсырмаларды басқару тілдері енгізілген. Бірақ, тапсырманы әр уақыт моментінде жеке (бір-бірінен) өңдеу, үдемелі (интенсивный) есептеу тапсырмасын орындау үшін, бұрынғыдай каналдарды өте төмен белсенділікке (активности) келтірді. Сонымен қатар, үдемелі енгізу шығару тапсырмалары үшін, егер каналдың және ОӨҚ-ның операциялары максимальды қиюласқан (совмещение) деңгейге жеткен кезде, ОӨҚ және канал өте төмен белсенділікке (активность) келтіріледі.

1962 жылдан 1969 жылдар аралығында үлкен ОЖ-лердің тегіс барлығында тапсырмаларды өңдеудің жаңа әдісі – мультипрограммалау қолданыла бастады. Сонымен қатар, дестелік өңдеуге альтернатива ретінде, уақытты бөліктегіш, есептеулерді орындаудың жаңа әдісі жасалды, жүйә үшін нақты басқарылатын жадыны және қолданушылардың кітапханалық программаларын, сол сияқты қолданушының тапсырмаларын өңдеді күтушілер үшін тез қатынасты үлкен дискілік құрылғылар қамтамасыз етті. Көптеген ЭЕМ-на жадыны және командаларды қорғайтын аппараттық құралдар енгізілген. Кейбір үлен машиналарда адрестерді баптайтын аппараттық құралдары бар, үлкен «виртуалды» жадына жүзеге асыруға мүмкіндік берген негізгі жады жүйесі пайда болды. Мультипроцессорлық конфигурациялар көбірек таратылған. Ресурстарды тарату және қорғау мультимедиялық орташа қиын шешілетін және өте қажетті проблема. Онда көп процесстер бір мезгілде бірігіп және жеке (монопольно) жүйе ресурстарын сұрап пайдалануы мүмкін. Көбінесе олар сигналдарды бір-біріне жиі беруі керек және ол сигналдар шамасы (потенциал) «қастандық» немесе қате болуы мүмкін. Тура осы периодта ОЖ-ні зерттеу есептеу техникасы аймағындағы ең басты бағыт болды.

Осы уақытта ЭЕМ-ның үлкен желілері, байланыс тізбегі негізінде салынған, қызмет ұсына бастайды. Желілер жүйелік программалық қамтамаға одан да үлкен талаптар ұсынады. Аппаратық микропрограммаларды қайта жазу мүмкіндігі бар басқару жадысының пайда болуы, ақпаратты автоматты түрде деңгейлер арасында беретін негізгі жадының иерархиялық құрылымы, ассоциотивті есте сақтау құрылғыларының өнімділігі сияқты өзгерістер бар.Сол сияқты өңдеу құрылғыларындағы, оның ішінде программаланатын «параллельизмнің» тереңдеуі, программалық қамтамаға қатысты жаңа талаптар әкелді және ОЖ принциптерін түсіндіреді. Қазіргі заманғы программалық қамтамалар жүзеге асуы мүмкін болатын процесстерді және ресурстарды жобалау үшін, ОЖ қарапайымдылығын анықтау:

- Адам – бағдарланған тілдер, тапсырмаларды басқару;

- параллельизмді қамтамасыз ететін тілдер және жүйелер;

- ОЖ әрекетін өлшейтін бағыныңқы жүйелер;

- Әмбебаптық қорғау схемасы;

Есептеу машинасының дамуының маңызды периоды 1960-1980 жылдарға жатады. Процессор уақытын тиімді пайдалануды жоғарылату ішін деректерді, тербелістен-тербеліс арасында тәсілдерді немесе spooling (Simultaneous Peripheral Operation On Line сөзінен қысқартылған) енгізіледі. Жүйелік дестелерге (пакеттерге) тербелістен-тербеліс астында техникасының енгізілуі бір тапсырманың енгізу-шығару операцияларын нақты басқа тапсырманың орындалуымен бірлестіруге рұқсат етті. Бірақ, бұл операциялардың аяқталғаны туралы процессорға хабар жеткізу үшін үзу аппаратын жетілдіруді (жасауды) талап етті.

Процессорды пайдаланудың тиімділігінің әрі қарай жоғарылауына мультипрограмманаың көмегімен қол жетті. Мультипрограммалау идеясы келесідей қорытындалды: бір програма енгізу-шығару операцияларын орындап жатқан кезде, бір программалық режим кезіндегідей процессор тұрмайды. Енгізу-шығару операциялары аяқталған кезде, процессор, бірінші программаны орындауға қайтады.

Әрбір программалық жасау құрауыштары операциялық жүйенің басқаруымен жұмыс жасайды.

ЭЕМ аппаратурасына операциялық жүйеден басқа программалық жасау құрауыштарының еш қайсысы қатыспайды.

Пайдаланушының өз программаларымен әрекеттестігі операциялық жүйенің интерфейсі арқылы өтеді. Олардың әрбір командалары қолданбалы прграммаларға өту үшін операциялық жүйеден өтеді. Операциялық жүйенің орындайтын негізгі функциялары.

1. пайдаланушыдан қабылдайтын командалар және олардың өңдеуі;

2. басқа программаларды іске қосу, тоқтату, кідіру үшін қабылданатын және орындалатын программалық сұраныс;

3.орындалатын программаларды оперативті жадыға жүктеу;

4.программаның иницияциясы(передача ей упр-я в рез-те пр-р исп-т прогр-му)

5.барлық программалар мен деректердің идентификациясы;

6.деректер базасын басқару жүйесінің жұмысын жасау, программалық жасаудың тиімділігін көтереді;

7.мультипрограммалау режимін жасау (екі және оданда көп программалардың бір процессорда орындалуы);

8.барлық енгізу-шығару операцияларын ұйымдастыру және басқару функцияларын жасау;

9.жадыны үлестіру;

10.берілген стратегиялар және қызымет көрсету пән бойынша есептердің жоспарлауы мен диспетчерлеуі;

11.орындалатын программалар арасындағы деректер мен хабарлардың алмасу кетігін ұйымдастыру;

12.деректердің сақтауын жасау; бір программаны басқа программаның қатерінен сақтау;

13.жүйенің бөліктік жаңылысу кезінде берілетін қызымет;

14.программалау жүйесінің жұмысын жасау арқылы пайдаланушылар өз программаларын дайындайды;

Операциялық жүйемен қатынасу қызметін алу үшін программаларға қажет интерфейсті операциялық орта дейміз (енгізу-шығару операциясын орындау, жадының участкесін алу немесе босату).

Әр бір программалау жүйесі өзіне сәйкес операциялық жүйеде жұмыс жасайды. Операциялық жүйені қызыметтеу үшін арнайы жүйелік программалар утилит дейміз.

Операциялық жүйені жіктеу.

Операциялық жүйелер біріншіден жалпы және арнайы тағайындалады. Есептерді өңдеу режимінде операциялық жүйе бір программалы және мультипрограммалы режимдерге бөлінеді.

Бірсанашықтық есептеу жүйесінде бірнеше программаның бір уақытта орындалып жатқандай көріністі біз мультипрограммалық есептеуді ұйымдастыру тәсілі деп атаймыз.

Бұл терминдердің негізгі айырмашылығы.

Мультипрограммалық режимде бірнеше қолданбалардың параллелді орындалуын жасайды, ал программист бұл механизмнің орындалуын ойластырмайды.Бұл функцияларды операциялық жүйе өзі орындайды;барлық орындалатын қолданбаларға өзі есептеу жүйесінің қорларын бөледі және қажет әрекеттестіктерді орындайды. Керісінше , мультиесептік режимде қолданбалардың әрекеттестігі параллель орындалуы қолданбалы программистерден тәуелді.

Мультипрограммалауды ұйымдастырған кезде, операциялық жүйенің рөлі мынадай:

1.ОЖ және қолданбалы программа арасындағы интерфейсті ұйымдастыру;

2.Жадыдағы тапсырмалардан кезек ұйымдастыру;

3.Бір тапсырмадан екінші тапсырмаға ауысу;

4.Ақпаратты жадыдан таңдау және ауыстыру, орналастыру процессін реттеу;

5.Файлдар түріндегі сыртқы тасымалдауыштардағы ақпараттардың сақталуын ұйымдастыру және анықталған категориядағы қолданушыға нақты файлмен қатынасты қамтамасыз ету;

6.Коммуникация құралдарымен қамтамасыздандыру;

7.Деректерді мүлтіксіз (корректно) алмастыру үшін әр түрлі ресурстармен жұмыс істеген кезде пайда болатын және өз әрекеттерінің координациясын программамен алдын ала ескеретін жанжалды (конфликт) оқиғаларды шешу керек, яғни: жүйені синхронизациялау құралдарымен жабдықтау керек. Келесі период (1980 жылдан қазірге дейін) дербес компьютерлерде шығарылатын есептердің даму күрделілігі мен әр түрлілігі, олардың жұмыстарының сенімділігін арттыру қажеттілігі, үлкен есептеу машинасы архитектурасына тән барлық қасиеттердің практикада жолдануына әкеледі.

Соңғы операциялық жүйелер дербес компьютерлер үшін мультипрограммалық және мультиесептік режимдерді жүзеге асырады. Негізгі сәулеттік принциптері бойынша операциялық жүйені микроядролық және монолиттіге бөлуге болады. Бір жағынан бұл бөлініс шартты түрде көрсетілген. Мысал келтіретін болсақ микроядролық операциялық жүйеге QNX негізгі уақыт операциялық жүйесін қатынастыруға болады. Ал монолитті операциялық жүйесі WIN 95/98 немесе Linux операциялық жүйесі. Win ядросын біз өзгерте алмаймыз , бізге оны алғашқы кодтары белгісіз және бізде ядроны жинау үшін арналған программалар жоқ. Linux ОЖ-не біз керек программалық модульдермен драйверларды қосып ядроны жинауымызға болады.

Операциялық жүйені қарастырғанда есептеуіш үрдіс түсініктемесі негізгі болып саналады.

Бөлек программаның деректерімен бірге тізбекті санашықта орындалуын тізбекті үрдіс деп атаймыз.Мысал келтіретін болсақ үрдістерге пайдаланушының қолданбалы программаларының орындалуы, утилиттар және басқа жүйелік программалар жатады.

Текстің редакциялауы, программаны аударуы, оның құрастыруы, орындалуы үрдіс болуы мүмкін. Бір программаны аудару ол бір үрдіс, ал келесі программаны аудару – ол басқа үрдіс.

Аударғыш дегеніміз программалық модульдердің қосымы және бір программа ретінде жұмыс көрсетеді, бірақ аударғыштық өңдейтін деректері әртүрлі.

Қор түсініктемесі де үрдіс сияқты операциялық жүйесінде негізгі болып саналады. Қорды үлестіру және басқару механизмдерін ұлғартуын процесс концепциясы анықтайды. Жүйе ішінде үлестірілетін әрбір объектті қор деп атайды. Ең бірінші есептеу жүйелерінде орындалып жатқан программаның толық орындалуынан кейін келесі программа орындалатын. Орталық санашық есептерді орындап , деректерді енгізу-шығару операцияларын басқаратын.

Оперативті жады мен сыртқы құрылғы арасында деректермен алмасу орындалған кезде, санашық басқа есептерді орындамайтын.

Есептеу машиналарына арнайы контроллердерді енгізу арқасында орталық санашықта есептер орындалуы және қабылданған деректерді шығару операцияларын уақытпен үлестіруі табылды. Оның өзінде санашық әрбір енгізу-шығару операциясы аяқталғанша және көп уақыт күтіп тұратын. Сол кезде есептеу жүйесінің мультипрограммалық режимі жұмыс ұйымдастыруы керек. Бір программа (немесе үрдіс ) келесі енгізу-шығару операциясының аяқталуын күтсе ,онда келесі программаны шешімге қоюға болады. Операциялық жүйе мультипрограмманы қолдайды және сұрату кезегін ұйымдастыру арқылы қорларды тиімді қолдануға тырысады.

Бұл келісім жадыда бірнеше үрдістің санашықтың босауын күтіп, ал бірнеше үрдістер босаған қорларды қолдануға дайын кезде орындалады. Бір қорды қолдану үшін ( енгізу –шығару құрылғысы, деректер массиві, оперативті жад т.б.) үрдіс операциялық жүйенің супервизорына қатынасады. Супервизор-орталық басқару мөдулінен тұрады, бұл мөдул бірнеше мөдулден тұрады: енгізу-шығару супервизоры, үзу супервизоры, программалар супервизоры, есептер диспетчері т.б. –негізгі шақыру арқылы (командалар ) – өзінің шартын хабарлайды. Бұл кезде қордың түрі көрсетіледі, керек болса оның мөлшемі (мысалы жолшық саны , баспа құрылғысы,шығатын деректердің мөлшемі т.б.)

Қорларды басқаруды ұйымдасыру кезінде дәл осы жағдайда екенін шешу қажет: бөлек, ең қажетті сұрауларды тез орындауы, бар үрдістерге бірдей мүмкіншілік беру немесе көп үрдістерді орындау және қорларды толық қолдану.

Орталық санашықтың уақытын пайдалану арқылы басқару.

ОЖ- де орталық санашықтың таратылған белсенділігін беру үшін есепті таңдаудың алгоритміне ОЖ нақты экспулатациялық қасиетіне байланысты. ОЖ жұмысының тиімділігін бағалау үшін қолданылатын алгоритмді таңдау толығымен тиімділік критерилерімен анықталады. Сондықтан орталық санашықтың уақытын пайдалану арқылы басқаруды біз сіздермен ОЖ типтерін қарастырамыз.

Бірінші жағдай. Менде жүйенің үлкен көлемді есептеу қуатын талап ететін көп есептер немесе программалар бар. Бұл есептерді саналатын есептер деп атайды, олар есептеудің үлкен көлемін талап етеді және сырт құрылғыларға аз қатынайды. Бұл есептер бір есептеу жүйесінде орындалуы керек. Бұл есептер дестесінің орындалу кезіндегі жүйенің жұмысы үшін тиімділік критерии не болып табылады? Қандай параметрлер жиынын айтуға болады: егер олар үлкен болса- онда жақсы, егер керсінше болса нашар. Бұндай жағдай үшін есептеу жүйесінің жұмыс істеу тиімділігі болып орталық санашықтың жүктелі дәрежесі болып табылады. Егер орталық санашық күту режимінде аз тұратын болса, ал қалған үрдістер алмасумен айналысатын болса, онда біз жүйе тиімді жұмыс істей алады деп айта аламыз. Жүйенің тиімді жұмыс істеуін сәйкес жоспарлау алгоритмін қолданумен жүзеге асыруға болады. ОЖ мүмкіндігіне қарап біз осы жүйеде бар барлық есептер жиынын өңдеуге жібереміз. Оны мультипрограммалық режим қамтамассыз етеді. Бұл жағдайда орталық санашықтың уақытын жоспарлау алгоритмі келесідей: егер орталық санашық бір үрдіске арналған болса, онда осы үрдіс келесі жағдайлардың бірі келгенше орталық санашықта орналасады:

1.Сыртқы құрылғыларға қатынау.

2.үрдістің аяқталуы.

3.үрдістің қайталануының тиянақталған фактісі.

Осы аталған жағдайлардың қайсысы орталық санашыққа беріледі сол кезде басқару келесі үрдіске беріледі. Бір үрдістен екінші үрдіске басқаруды беру минимилизацияланған. Басқаруды бір үрдістен екінші үрдіске бергенде ОЖ бірнеше әрекеттер орындауы керек, ал бұл уақыт жоғалуына әкеледі, бұнда уақыттың жоғалуы минимилизацияланған. ОЖ- нің осындай режимде жұмыс істеуі дестелік режим деп аталады.

Мысалы, компьютерлік класта отырған бірнеше адам әр қайсысы бөлек – бөлек мәтінді түзетіп отыр. Әр терминалда мәтіндік түзеткіштің көшірмесі бар. Бірінші жағдайға көрсетілген жоспарлау алгоритмін қолданатын болсақ жүйеде қандай өзгеріс болатынын қарастырайық. Мысалға, пайдаланушылардың бірі терминалда уақытша іске қоспаған және белсенділік көрсетпейтін болса. Орталық санашықтың уақыты осы үрдіспен байланысты, себебі түзеткіш жұмысқа дайын болған кезде бұл үрдіс алмасудың аяқталмауын орындамаған. Осы уақытта барлық тоқтап қалған пайдаланушылар уақытша тоқтап тұрған қолданушыны күтуге тура келеді. Уақытша тоқтап қалу жағдайы туындайды. Ол бірінші жағдайға ыңғайлы алгоритм, осы жүйеге ең күшті машина көмегімен де жарамайтындығын білдіреді. Сондықтан қамтамассыз ету мәселелерін көп санды есептеу қызметінің қолданушылар тапсырмасы үшін (интерактивті тапсырма), басқа тиімділік критериінен шығатын басқа алгоритмдер қолданылады.

Осындай жүйеге пайдаланушының күту уақыты критериі жарайды: қандай- да бір қозғалысты орындауға ұсыныс жіберген уақытынан, жүйеннің ұсынысқа жауабына дейін. Жүйе тиімділігі жүмыс істесе, онда жүйеге орташа статистикалық күту уақыты азырақ.

Екінші жағдайды қарастырамыз. Жүйеде үрдістердің кейбір саны және жоспаршының орталық санашық уақытын, пайдаланушының сұранысына жүйе реакциясының уақыты минимальды немесе кепілді етіп тапсырманы тарату керек. Жүйеде уақыт кванты деп аталатын (жалпы жағдайда, уақыт кванты- ол жүйе келтіргенде өзгеретін мағына), ∆t параметірі қолданылады. Мультипрограммалық өңдеудегі көптеген үрдістер жиыны екі қосалқы бөлікке бөлінеді. Бірінші бөлікті орындауды жалғастыруға дайын есес үрдістер құрайды, мысалы өздеріне ауыстыруға сұраныс берген және нәтижені күтіп жатқан үрдістер. Орындауға дайын үрдістер де бар. Дәл осы уақытта орталық санашықтаға үрдіс келесі жағдайлардың біреуі келгенше оны басқарады:

1.аусытыруға сұранысымен назар аудару

2.үрдістің аяқталуы

3.осы үрдіске берілген ∆t квант уақытының сарқылуы

Осы жағдайлардың біреуі түскенде операциялық жүйені жоспарлаушысы орындауға дайын үрдістерден таңдайды, кейбір үрдістер және оған орталық санашық қорларын береді. Ал ол осы үрдіске тәуелді нақты операция жүйесін қолданған жоспарлау алгоритммен таңдайды. Мысалы, үрдіс кездейсоқ таңдалынуы мүмкін. Екінші тәсіл үрдістерді тізбектелген өту (артынан жүрумен) болады, мысалға біз үрдістерден алдымен бір жұмысты алып, содан соң ол босаған кезде орталық санашық орындауға дайын үрдістерге беріледі. Келесі тапсырма алынатын үшінші критери, оратлық санашықта атқарылмаған осы үрдіс болуы мүмкін. Осы жағайда жүйе, ең көп уақытты, үрдісті таңдай алады. Осы алгоритмдер операциялық жүйеде таратылған болуы керек, олар қарапайым болады, әйтпесе жүйе тиімсіз жұмыс істейді.

Операциялық жүйенің осындай типті уақыт бөлуі ОЖ деп аталады. Ол пайдаланушы сұранысына жүйе реакциясының уақыты азайған тәртібінде жұмыс істейді. Сұранысқа жауап уақыты аз болғаны үшін, шынында қолданушыда барлық жүйе қорларын соған берілгені туралы иллюзия пайда болуы керек.

Енді келесі тапсырманы қарастырамыз Автопилотпен басқарылатын ұшақ бар делік, онда автопилот төмендеу операциясын орындайды. Әр ұшақта жерден қанша биіктікте тұратынын өлшейтін құрал бар. Ұшақтың жұмыс тәртібін басқару функциялары қайсыбір берілген программалар арқылы компьютер атқарады. Егер бізде автопилот жүйесі бар болса және ұшақ төмендеп бара жатса, онда жүйе ұшу биіктігі бойынша бақыланады. Осы ұшаққа қатысты бірнеше тапсырмаларды орталық компьютер шеше алады: ұшу биіктігін бақылайды, жанармайдың деңгейін бақылайды, қозғалтқыш жұмыстарының көрсеткіші және т.б.д. осы функциялардың басқаруын әр үрдіс өзі алады. Операциялық жүйе дестесі бізде және бактағы жанармай деңгейін бақылаймыз делік. Осы кезде авариалық жағдай туындайды, өйткені ұшақ төмендеп барады оны операциялық жүйе байқамайды. Жүйеде уақыттың бөлінуі болып жатыр делік. Бізде уақыт алмасу жүйесі сапасының бірі тиімсіздігі болып табылады, яғни жүйеде үрістен – үрдіске ауысу саны көп қарастырылғандықтан, ал бұл функцияның сыиымдылығы жеткілікті. Тағы осындай жағдай: Биіктік нолге жетті, ал операциялық жүйе тіркеу кестесінің ауыстыруымен айналысып жатыр, мұндай нұсқада жарамайды. Осындай тапсырмаларды шешкенде жоспарлаудың өзінің құралы қажет. Осы жағдайда нақты уақыттағы операциялық жүйе қолданылады, бұл жүйенің кепілді реакциясының алдын ала анықталған жиыны сол немесе басқа жағдайы пайда болуы негізгі критери болып табылады. Орталық санашықтың уақытын басқару функциясымен және орталық саншықты жоспарлауда екі фактіге назар аударамыз. Бірінші факт ол, көбіне есептеу жүйесінің эспулатациялық қасиеті анықталатын ОС уақытын бөлу жоспарлау жүйесінде таратылған. Біз ОЖ-нің үш типтік түрлерін қарастырамыз: дестелік жүйенің өңделуі, уақыт бөлу жүйесі және нақты уақыт жүйесі. Бүгінгі таңда нақты уақыт жүйесін ОЖ-ң бір санаты деп айтуға болады. Windows ОЖ-сі қандай да бір объектілерді басқармайды, егер олардың нақты уақыты өте критикалы болса және де СОЛЯРИС немемсе LINUX т.б ОЖ басқармайды, өйткені осы жүйелер нақты уақыт жүйесі болып табылмайды.

Бірінші екі режимді, дестелі және уақыт бөлу, жалпы ОЖ-де жасауға болады (вертуальды түрде). Нақты, үлкен ОЖ-лер аралас жүйелер болып табылады, оларда ОС жоспарлау элементінде қайталанатын тапсырмаларды басқаратын алгоритм сияқты және интерактивті тапсырма немесе келесіге қалдырылған тапсырмалар болады.

ОЖ-нің жіктеуі (классификация)

) ОЖ-нің тағайындауын (белгілеуін) және олардың орындайтын функцияларын қарастыра отырып, ең ортақ жіктеушілер принципін негізге ала отырып, барлық алуан түрлі ОЖ-лерді жіктеуге болады:

1. Бір мезгілде бар программалық процесстердің санына байланысты ОЖ-лер бірпрограммалы және мультипрограммалы болып бөлінеді. Мультипрограммалық ОЖ-нің, бір программалық ОЖ-ден айырмашылығы есептеу процессі компьютер жадында бір мезгілде бір процессорда кезекпен орындалатын бірнеше программаның болуын ұйымдастыру;

2. Есептеу жүйесіне қатынасы бар қолданушылар саны бойынша, бір қолданушы және көп қолданушы ОЖ-і болып танылады. Көп қолданушы жүйелері бірнеше қолданушыға бір мезгілде жүйесіне қатынасқа мүмкіндік береді. Бұл жағдайда әр қолданушы өзінің терминалымен жұмыс істейді, бірақ барлық есептеулер бір компьютерде шығарылады.

3. Белгілеуі бойынша ОЖ-лер әмбебабтық және мамандандырылған болып бөлінеді. Мамандандырылған ОЖ-лер бекітілген программалар жиынымен жұмыс істейді.

4. Жүктелу әдісі бойынша жүктелетін ОЖ-лер және есептеу жүйесінің жадында үнемі (ылғи)болатын жүйелер деп бөлуге болады. Соңғы, ереже бойынша, мамандандырылған құрылғылардың жұмысын басқару үшін пайдаланылады.

5. ОЖ-ні пайдалану аймағының ерекшелігі бойынша жүйелік десбелік (пакеттік) өңдеу, жүйелік уақытты бөлу және жүйелік нақты уақыт болып бөлінеді.

Жүйелік дестелік өңдеулер көбінесе тез нәтиже алуды қажет етпейтін, есептеу тапсырмаларын шешуге арналған (есептерді шығаруға арналған).

Уақытты бөлу жүйелерінде есептеу процесстері тапсырмаға процессор уақытының кванты бөлінетіндей ұйымдастырылған. Оның салдарынан, бірде бір есеп процессордың көп уақытын алмайды және бұл қолданушыға өзінің программасымен диалог құруға мүмкіндік береді.

Нақты уақыт жүйелері әр түрлі техникалық объектердің немесе технологиялық процесстерді басқару үшін пайдаланылады. Мұндай жүйелер сыртқы оқиғалар реакциясына шекті уақытпен сипатталады. Сол шекті уақытта объекті басқару программалары орындалу керек. Жүйе түсетін деректерді, олардың түсуінен, еске сала кететіні, бір мезгілде бірнеше дерек көзінен жылдамырақ өңдеуі керек.

ОЖ келтірілген жіктеулерге өзгеріс енгізілуі мүмкін. Қазіргі заманғы ОЖ-нің қолдану ерекшеліктері Олифердің «Операционные системы» кітабында толығырақ көрсетілген.

Негізгі әдебиет 1 [14–37, 77–85], 9 [21-32].

Қосымша әдебиет 15 [114-157], 19 [174–176]

Бақылау сұрақтары

1. ОЖ-нің анықтамасын беріңіз.

2. ОЖ-нің орындайтын функцияларын атаңыз.

3. Мультипрограммалық режимнің мультиесепті режимнен айырмашылығы?

4. Операциялық жүйенің түсініктемесі

5. Үрдістерді басқару түрлері

6. Есептеу жүйесінің жұмыс режимдері

7. Универсалды операциялық жүйелер

8. Операциялық жүйенің моделінің түсініктемесі

3-4 дәріс . Операциялық жүйеденің архитектурасы

Былайша айтқанда, операциялық жүйе – бұл қарапайым басқару программасы, сондықтан оны, басқа да көптеген программалар сияқты процедура және функция құру арқылы ұйымдастырылған жөн болар еді. Бұл жағдайда, ОЖ-нің компоненттері дербес (өздігінен) модуль емес, үлкен программаның бір құрамды бөлігі. ОЖ-нің мұндай құрылымы монолиттік ядро (monolithic kernel) деп аталады. Монолиттік ядро, әр қайсысы бір-бірін шақыра алатын процедуралар жиынын көрсетеді. Барлық процедуралар жеңілдікпен пайдаланушылық режимінде жұмыс істейді.

Сонымен, монолиттік ядро – бұл ОЖ-нің, барлық компоненнтері бір программаның құрамды бөлігі болатын, деректердің жалпы құрылымын пайдаланатын және бір-бірімен тікелей шақыру процедурасы арқылы байланысатын схемасы. Монолиттік ОЖ-лер үшін ядро бүкіл жүйемен түйіседі.

Көптеген монолиттік ядроы бар ОЖ-лерде, ядроны жинау яғни оны компиляциялау, ОЖ орындалатын әр компьютерде жеке орындалады. Бұл жағдайда қолдауы ядроға кіретін құрал-жабдықтар тізімін және программалар хаттамаларының тізімін таңдауға болады. Ядро бірыңғай программа болғандықтан, қайта компиляциялау – оған жаңа компоненттер қосу немесе пайдаланбағандарды шығару – бұл жалғыз әдіс. Ядрода артық компоненттерінің болмағанының дұрыс екенін атап өту керек, сонымен ядро барлық уақытта толығымен оперативті жадыда орналасады. Сонымен қатар, керек емес компоненттерді шығарып тастау, ОЖ-нің сенімділігін толығымен арттырады.

Монолиттік ядро – ОЖ-ні ұйымдастырудың ең көне түрі. UNIX жүйесінің көпшілігі монолиттік ядросы бар жүйенің мысалы бола алады.

Монолиттік жүйенің өзінде кейбір құрылымдарды ерекшелеуге болады. Ірі бетон бастан, ұсақ тастардың дағын айыруға болатын сияқты, монолиттік ядрода жүйелік шақыруға сәйкес келетін сервистік процедуралардың дақтары ерекшеленеді. Сервистік процедуралар жеңілдікпен пайдалану режимінде, ал қолданушылар программалары – жеңілдіксіз жұмыс істейді. Жеңілдікпен пайдаланудың бір деңгейінің екіншісіне өту үшін, қандай жүйелік шақырыс жасалды, осы шақырыстар үшін енгізу деректерінің түзетілуі және басқаруды беретін сәйкес сервистік процедуралар жеңілдікпен пайдалану режиміне көшкенде, кейде бас сервистік прогамманың қолданылуы мүмкін. Кейбір, сол сияқты сервистік процедуралардың орындалуына көмектесетін программалық утилиттер жиындары ерекшеленеді.

ОЖ-нің көпқабатты архитектурасы.

Құрылымдауды жалғастыра, бүкіл есептеу жүйесін өзара жақсы анықталған байланыстары (көпдеңгейлік жүйелер (Layered systems)) бар, N деңгейдегі объект, N-1 деңгейдегі объектерді ғана шақыра алатын майда деңгейлерге бөлуге болады.

Әдетте, мұндай жүйелердің төменгі деңгейлері – hardware, жоғарғы деңгейлері – қолданушылар интерфейсі. Неғұрлым деңгей төмен болған сайын, соғұрлым жеңілдікпен пайдаланушы командаларды және әрекеттерді сол деңгейдегі модуль орындауы мүмкін. Ең алғаш мұндай әдістеме THE (Technishe Hogeschool Eindhoven) Дейкстрой (Dijkstra) жүйесін құрған кезде және 1968 жылы ол студенттермен пайдаланылды. Бұл жүйенің келесі деңгейлері болды:

- қолданушы интерфейсі;

- енгізу-шығаруды басқару;

- оператордың және консольдің байланыс құрылғысының драйвері;

- жадыны басқару;

- есептерді және процесстерді жобалау;

- hardware;

Қабаттасқан жүйелер жақсы іске асады (орындалады). Төменгі қабаттағы операцияларды пайдаланған кезде, олардың қалай іске асқанын білудің қажеті жоқ, тек олардың не істейтінін түсіну керек. Қабаттасқан жүйелер жақсы тестіленеді. Жөндеу (отладка) төменгі қабаттан басталады және әр қабаттан өткізіледі. Қате пайда болған кезде біз оның тестілеу қабатында екеніне сенімді болуымыз керек. Қабатталған жүйелер жақсы модификацияланады. Қажет болған кезде, басқасына тиіспей, тек бір қабатты ғана ауыстыруға болады. Бірақ қатталған жүйелерді дамыту үшін күрделі: қабаттардың ретін дұрыс және ненің қай қабатқа жататынын анықтау қиын. Қабатталған жүйелердің монолиттік жүйелерге қарағанда тиімділігі аз (тиімсіз).

Мысалы, енгізу-шығару операцияларын орындау үшін қолданушының программасына тізбектің барлық қабатын жоғарыдан төменге дейін өтуге тура келеді.

ОЖ-нің микроядролық архитектурасының негізгі жағдайы (күйі).

Микроядролық архитектура жоғарыда қарастырылған ОЖ-ні құрудың классикалық әдісіне альтернатива (балама) болады. Микроядролық архитектура, процесс түрінде жүзеге асқан қолданушылар қосымшаларымен тең, ОЖ-нің құрамына кіретін жүйелік сервистер және микроядро арасындағы ОЖ-нің функцияларын таратады (бөледі).

ОЖ-ні құрудың микроядролық архитектура концепциясын қарастырайық. Берілген келіскің (подход) басты ерекшелігі, жеңілдікті пайдаланушылықрежимінде, микроядро деп аталатын ОЖ-нің өте аз бөлігі жұмыс істеуге қалады. Микроядро ОЖ-нің басқа бөліктерінен және қолданушылардың қосымшасынан құралған. Микроядро құрамына кіретін функциялар жиыны, қарапайым ядроның базалық механизміне сәйкес келеді. Дегенмен микроядроның құрамына ядроның барлық функциясы кіре бермейді, тек процесстерді басқаратын үзуді өңдеу, виртуальды жадыны басқару, хабарларды беру, енгізу-шығару құрылғыларын басқару функциялары ғана кіреді. ОЖ-нің мұндай функцияларының орындалуын, қолданушылар режимінде іске асыру мүмкін емес.

Сол сияқты, ОЖ-нің барлық машинадан тәуелді модульдері микроядроға енгізіледі. Микроядроның құрамына кірмей қалған ядроның жоғарғы деңгейдегі функциялары және модульдері, қолданушылар режимінде жұмыс істейтін қарапайым қосымшалар түрінде хатталады. Төменгі суреттен монолиттік ядромен (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 ОЖ-нің тасмалданатын негізгі бөлігін қолдау құралы – қолданушылар ортасының жиыны үшін қызмет етеді.

ОЖ-нің микроядролық архитектурасының артықшылығы және кемшіліктері.

Микроядролардың концепциясына негізделген ОЖ көбінесе қазіргі заманғы ОЖ-ге қойылатын талаптпрды қанағаттандырады. Тасымалдануға, кеңейтілуге, сенімділікке ие және қосымшаларды үйлестіруді қолдау үшін жақсы шарттар құрады. Бірақ, өкінішке орай, ОЖ-нің барлық бұл артықшылығы өнімділікке зиан болып табылады.

Бұрын айтылғандай микроядролық ОЖ-нің микроядросындағы барлық машиналарға тәуелді кодтарына бөлектік тән. Соның салдарынан жүйені жаңа ақпараттық платформаға тасымалдау үшін минимальды мөлшердегі өзгеріс қажет, еске сала кететіні олардың бәрі логикалық топталған. ОЖ-нің микроядромен бұл ерекшеліктері олардың анық артықшылығы болып табылады.

ОЖ-нің микроядро архитектурасының ерекшеліктері басқа ОЖ-мен салыстырғанда олардың жоғарғы деңгейде кеңейтілуін қамтамасыз етеді. Кезекті ішкі жүйенің қосылуы тек жаңа қосымшалардың жасалуын талап етеді және микроядроның тұтастығын қозғамайды. Микроядролық құрылым емес тек арттыруды ғана қажет ететі, бірақ ОЖ-нің компоненттерін қысқартуға рұқсат етеді.

Микроядролық әдістемеде конфигурациялау ешқандай проблемманы шақырмайды және ерекше шараны талап етпейді. Жүйенің бастапқы конфигурациясының баптауымен файлды өзгерту немесе енді қажет емес серверлерді жұмыс істеу барысында қосымшаларды тоқтату үшін қарапайым құралдармен тоқтату жеткілікті.

Микроядролық модельді пайдалану ОЖ-нің сенімділігін арттырады. Әрбір сервер өзінің жеке жады аймағында жеке процесс түрінде орындалады және ол сонымен ОЖ-нің басқа серверлерінен құралған. Ал мұндай жағдайлар ядроның барлық модельдерінде бір-біріне әсер етеді, ол дәстүрлі ОЖ-де байқалмайды. Егер жеке сервер күйресе, онда ол тоқтаусыз қайта жіберілуі немесе ОЖ-нің басқа серверлерін зақымдауы мүмкін. Басқа ОЖ-нің сенімділігінің потенциалының ұлғайуының көзі – классикалық ядромен салыстырғанда микроядро кодының кішірейген көлемі болып табылады. Бұл программалауда қатенің пайда болуының ықтималдығын төмендетеді.

Микроядромен модель үлетірілген есептерді қолдау үшін жақсы сәйкес келеді, себебі желіге ұқсас клиенттер және серверлер хабарларды айырбастау жолымен өзара әрекеттесетін механизмдерді пайдаланады. ОЖ-нің микроядролық серверлері бір компьютерде, сол сияқты әр түрлі компьютерлерде жұмыс істей алады. Қосымшадан хабар алған кезде микроядро оны өздігінен өңдейді және жергілікті серверге береді немесе желі арқылы басқа компьютерде жұмыс істеп тұрған микроядроға жібереді. Үлестрілген өңдеуге өту ОЖ жұмысына минимальды өзгерістерді талап етеді – жай жергілікті көлік желілікке ауыстырылады.

ОЖ-нің микроядролық архитектурамен бұрын қарастырылған қасиеттерінің бәрі оны жасаушылардың қолдануы оның артықшылығының куәсі. Бірақ, бұрын айтылғандай, бұл сапаның бәрі ОЖ-нің өнімділігін кеміту арқасында пайда болады. Іс мынада, ОЖ-ні классикалық түрде ұйымдастырғанда жүйелік шақыру екі айырып-қосқышпен сүйемелденеді, ол микроядролық ұйымдастыруда айырып-қосқышпен сүйемелденеді.

Сонымен микроядро негізіндегі ОЖ әр түрлі жағдайдағы тең шарттармен үнемі классикалық ядросы бар ОЖ-ден өнімділігі кем болады. Сол себепті микроядролық әдіс оған алдын ала айтылғандай кең таралған жоқ.

Барлық ОЖ-ні құруда қарастырылған әдістердің әр қайсысының өздерінің артықшылықтары және кемшіліктері бар. Көп жағдайларда қазіргі заманғы ОЖ-лер осы әдістердің әр түрлі комбинацияларын пайдаланады. Мысалы, Linux ОЖ ядросы микроядролық архитектураның элементтері бар монолиттік жүйені көрсетеді. Ядроның компиляциясы кезінде модуль деп аталатын ядроның өте көп компоненттерінің динамикалық жүктелуін және түсірілуін шешуге болады. Модуль жүктелген кезде оның коды жүйе деңгейінде жүктеледі және ядроның басқа бөліктерімен байланысады. Модульдің ішінде кез келген ядромен экспортталған функциялардың пайдаланылуы мүмкін.

Негізгі әдебиет 1 [14–37, 77–85], 9 [21-32].

Қосымша әдебиет 15 [114-157], 19 [174–176]

Бақылау сұрақтары

1. Mach-тағы процесс аралық өзара әрекет.

2. Микроядролық архитектураның негізгі ережесі.

3. Үш қабатты есептеу жүйесінің құрылымы.

4. Клиент-сервер технологиясының артықшылығы.

5. ОЖ-нің серверлерінің негізгі тағайындалуы.

6. ОЖ-ні монолитті ядромен және микрядролық архитектурамен жүзеге асырудың негізгі айырмашылықтары.

7. Қосымшалардың ОЖ-нің функцияларына қатынау механизмін ұйымдастыру.

8. ОЖ-нің ядросы және қосымша модульдері.

5-6 дәріс. Операциялық жүйелердің үйлесімділіг.і Үрдісті басқару және ұйымдастыру. Үрдіс және ядро үғымы. Үрдістің виртуальдық мекен-жайлық кеңістігін сегментациялау. Үрдіс мәнмәтінінің құрылымы.

Үйлесімдік түрлері Кез-келген ОЖ-нің нақты архитектуралық және функционалдық ерекшеліктері жүйелік программисттерге қатысты болуы керек және ол қарапайым қолданушыға таныс емес болуы мүмкін. Кейбір идеялар (мысалы, объектілі-бағытталған көзқарас) құрастырушыларға ғана белгілі және соңғы қолданушыға кері әсерін тигізеді. Көптеген қолданбалы орта концепциясы қолданушының көптен күткен мүмкіншілігін өзінің ОЖ программасында, басқа ОЖ және процессор үшін жазылған программада орындайды. Басқа ОЖ үшін жазылған ОЖ қосымшасы орындайтын мүмкіншілікті сипаттауы, яғни, ОЖ қасиеті үйлесімділік деп аталады.

Үйлесімділіктің бір-біріне ұқсамайтын екі принципі бар, оларды шатастырмау керек: екілік деңгейдегі үйлесімділік және бастапқы мәтін деңгейіндегі үйлесімділік. Екілік түріндегі кодтар және деректері бар қосымша файлдар компьютерде орындаушы файлдар түрінде сақталады. Орындалушы программаны бір ОЖ ортасында жұмыс істейтін және оны басқа ОЖ ортасында орындағанда іске қосқан жағдайда орындалуын екілік үйлесімділік деп атаймыз.

Алдыңғы мәтін деңгейіндегі үйлесімділік, компьютерді программалармен қамтамасыздандыру құрамында сәйкесінше компилятордың бар болуын талап етеді, яғни, ол берілген сөйлемнің орындалуын және де жүйелік шақыру мен кітапхана деңгейде үйлесімділігін жорамалдайды. Ол үшін жаңа орындалатын модулдағы алдыңғы мәтін программасын қайтадан компиляция жасауға тура келеді. Осылайша, алғашқы мәтін деңгейінде үйлесімділік өкімде болатын бастапқы мәтін сөйлемін құрастырушы үшін маңызы оте зор. Соңғы практикалық сабақты қолданушылар тек осы екілік орындалатын кодта, әр түрлі ОЖ ортасында және әр түрлі компьютерде арнайы білімсіз программа өнімін қолдана алады. Өзінің жаңа машинасында, мысалы, WINDOWS NT-нің басқаруымен жұмыс істейтін машинада өзі үйренген кезінде сатып алған MS-DOS-қа арналған программалар пакеттерін еш өзгеріссіз іске қосудың маңызы зор. Көп қолданбалы орта ОЖ қосымшалары мен бастапқы мәтін деңгейінде екілік деңгейде басқа ОЖ және процессор үшін жазылған деректер үйлесімділігін қамтамасыздандырады.

Екілік немесе бастапқы мәтін үйлесімділік қасиеті бар ОЖ көптеген факторларға байланысты болады. Олардың ең тәуір, негізгісі – ОЖ жұмыс істейтін процессор архитектурасы. Екілік үйлесімділікке жету үшін төмендегі шарттар орындалуы керек:

- ОЖ деректерін құптайтын, қолдайдын, құрамында программа қосымшалары бар АРІ функциясының шақырылуы;

- Орындаушы файл қосымшаларының ішкі құрылысы ОЖ деректерін орындайтын файл құрылысымен сәйкес болуы керек;

Ажырата алатын (различающиеся) немесе танитын архитектурасы бар процессор орындауға арналған ОЖ-дің екілік үйлесімділіктеріне жету қиынға соғады. Жоғарыда айтылған шарттарды орындаумен қатар міндетті түрде екілік кодтың эмуляциясын ұйымдастыру керек. Компьютер басында өзіне түсініксіз болған машина инструкциясын түсініп, талдауы үшін машинаға «эмулятор» атты арнайы программалық қамтама орнатылуы керек.

Эмулятордың тағайындалуы–процессордың әрбір екілік инструкциясын кезекпен таңдауында болып табылады, мысалы, Intel қандай әрекетті тапсыратынын анықтау үшін программалық әдіспен оның кодын табады, ал содан кейін процессордың инструкциясында жазылған ішкі программа эквивалентін орындайды, мысал ретінде Motorola-ны айтуға болады.

Жоғарыда айтылған жағдайдан шығудың бірнеше түрі, яғни, тиімді түрлері бар – ол қолданбалы программа ортасын пайдалану. Солардың бірі - өзінің қосымша программасын қамтамасыз ететін ОЖ АРІ қолданбалы программалау функция жиын интерфейсі болып табылады.

Басқа, бөтен программаның орындалу уақытын қысқарту үшін қолданбалы орта кітапхана функциясына көңіл аударады. Осы әрекеттің тиімділігі көптеген қазіргі программаларды графикалық интерфейстің басқаруында (GUL), мысалы, Windows, Unix, сонымен бірге қосымша программа ереже бойынша аз ғана уақытын бірнеше қажетті әрекеттердің орындалуына жұмсайды. Терезелерді басқару үшін және т.б. GUL-ға байланысты әрекеттерді орындау үшін олар GUL кітапханасын шақыруға үздіксіз іске асырады. Осы ерекшелік қолданбалы ортаның уақыт шығынын толтырады. Дұрыс жоспарланған программа ортасының құрамында кітапхана, ішкі GUL кітапханасы болады, бірақ ол орнатылған ОЖ-нің «өзінің» кодында жазылған. Осылайша, басқа ОЖ-де АРІ көмегімен программа жылдам орындалады. Бір ғана командамен орындалатын бұл жағдайды эмулирлеу процессінен ажыратуды трансляция деп атайды.

Бір ғана ОЖ-ге арналып жазылған программа басқа ОЖ үшін де орындалу керек болса АРІ үйлесімділігімен қамтамасыздандыру жеткіліксіз. Әр түрлі ОЖ негізіне арналған концепция бір-біріне қайшы келуі мүмкін. Мысалы, бір ОЖ қамтамасында енгізу-шығару құрылғысын басқаруға рұқсат етілсе, ал басқа әрекеттерде ОЖ-нің прерогативі болып табылады. Өйткені, әрбір ОЖ-нің жеке өзінің қорын қорғау механизмі бар, яғни, олар: кез келген жағдайда қателерді өңдеу алгоритмі, процесстің ерекше құрылымы және жадыны басқару схемасы, өзінің файлға семантикалық қатынасы және қолданушының графикалық интерфейсі. Осы айырмашылықтардың бәрі ОЖ жұмыс істейтін аппаратты платформа спецификасымен, олардың жүзеге асырылу ерекшеліктерімен немесе жүйе құрастырушының ендірілуімен анықталады. Үйлесімділікті қамтамасыздандыру үшін бір ғана ОЖ үшін компьютер құрылғыларын, қорларын басқарудың бірнеше әдістерін міндетті түрде қарама-қайшылық тумайтындай ұйымдастыру керек.

Үйлесімділікті жүзеге асыру әдістері Қазіргі кезде қосымша программалық қамтама кейбір ОЖ қолданушыларына «бөтен» программаларды іске қосуына мүмкіндік береді (мысалы, MaCOS және UNIX, DOS және Windows үшін программаларды орындауға мүмкіндік береді). Бірақ қазіргі ОЖ-де «бөтен» программаларды орындауға арналған құралдар жүйенің стандартты бөлігіне айналып келеді. ОЖ-ні таңдау қолданбалы программаны таңдауды көп шектемейді. Бірақ, MaCOS, Windows және UNIX үшін қолданушы интерфейс программасымен жұмыс істегенде экранда біраз қиыншылықтармен күресуге тура келеді, бірақ ОЖ әр түрлі қолданбалы ортасы тышқан немесе мәзір (меню) сияқты стандартты түрге айналады. Әр түрлі қолданбалы ортаны жүзеге асыру кезінде құрастырушылар қарама қайшылық талаптарымен қақтығысады. Бір жағынан әрбір қолданбалы ортаның міндетті программаны мүмкіншілігіне қарай орындауы, яғни, ол «өзінің» туған ОЖ-де орындалса. Бірақ бұл программалардың талап ету дәрежесінің үлкендігінен берілген ОЖ құрылысында қайшылық пайда болады. Арнайы құрылғы драйверлері қауіпсіздендіру талабына әруақытта жауап бере бермейді, жадыны басқару схемасы мен терезелі жүйе арасында қайшылық пайда болуы мүмкін. Бірақ, ең үлкен деңгейдегі проблема–өнімділік, яғни, қолданбалы орта программаны болғанша жылдамдықпен орындау керек. Бұл талапты көп қоданылып жүрген ерте эмулирленген жүйе қанағаттандыра алмайды. «Бөтен» программаларды орынауда қолданбалы орта жылдамдықты қысқарту үшін кітапхана деңгейіндегі программаға ұқсас қолданылады.

ОЖ-ң көпдеңгейлі стандартты деңгейі бірнеше, көптеген қолданбалы ортаны жүзеге асыру негізгі нұсқалардың (варианттардың) бірі болып табылады (2-ші суретті қара). Операциялық жүйе ОЖ1 өзінің «туған» файлдарынан (қосымшаларынан) басқа ОЖ2 және ОЖ3-ті қолдайды. Ол үшін оның құрамында арнайы файлдар (қосымшалар) болуы керек, ол – қолданбалы программалық орта, яғни, ол өзінің «туған» АРІ ОЖ1 операциялық жүйе интерфейсінде «бөтен» АРІ ОЖ2 және АРІ ОЖ3 операциялық жүйелері интерфейстерін көрсетеді. Мысалы, мынадай жағдайларда, егер ОЖ2 сапасында UNIX операциялық жүйесін шығарса, ал UNIX-те О-OS/2 сапасында жүйелік шақыруды орындайтын fork() процессінің құрылуына UNIX қосымша файлдардың программа ортасы DosExesPgm() жүйелік шақырылуымен бірге OS/2 операциялық жүйе қатарына көңіл аударуы керек еді.

2-сурет. Қолданбалы программа ортасы көмегімен жүйелерді шақыру (трансляциялау) көрінісі.

Мұндай жүзеге асырулар кезіндегі қиыншылықтар бір ОЖ-де құрылған АРІ-ң сәйкесінше басқа (егер ол бар болса) ОЖ функциясынан айырмашылығының әсерінен туады. Мысалы, OS/2 DosExesPgm()-де функция құрылу процессі UNIX-гі fork()-те функция құрылу процессімен толығымен сай келсе, онда оны былай өзгерту керек, ол ата-аналық процесстегі мекен-жай (адрестік) кеңістікті «процесс-кейінгі буын (потомка)» кеңістігіне көшіретін мүмкіншілігін қолдаған жағдайда бұл функциялардың қалыпты жағдайы «процесс-кейінгі буын (потомка)» жадысын жаңа орындаушы файл деректері негізінде өзгертеді.

Көптеген қолданбалы ортаны жүзеге асыудың басқа нұсқалары ОЖ-де бірнеше бірдеңгейде құқығы бар қолданбалы программалық интерфейсінің бар екендігін ескертеді. Оған ядро жүйесі кеңістігіндегі барлық АРІ ОЖ1, АРІ ОЖ2 және АРІ ОЖ3 операциялық жүйенің қолданбалы программалық интерфейске орналасуы арқылы жетуге болады. Бұл нұсқада АРІ функция өзінен төмен жатқан деңгейдегі ОЖ функциясынан сұрайды (обращаются), ол жалпы жағдайда үш үйлеспейтін қолданбалы ортаны қамту керек. Әр түрлі ОЖ-де жүйелік уақытты басқару әр түрлі болуына қарамастан күннің әр түрлі уақыт форматы, жекеменшік алгоритмі негізінде процессор уақыты бөлінеді және т.б. қолданбалы программа интерфейсі функциясы әрбір сәйкесінше ОЖ специфика есебінен жүзеге асады. Егер, кейбір функциялардың әртүрлі интерфейстері аналогты тағайындалған болса да әрбір ОЖ үшін өзінің қолданбалы интерфейсі толығымен жүзеге асырыла береді. АРІ-ң ұсқаларын таңдау ядроға жіберілетін сәйкесінше процесстің мінездемесін ұқсастық негізінде іске асады.

Микроядроның концепциясын қолданатын көптеген қлданбалы ортаны құру әдісі де бар. Бұл жағдайда барлық қолданбалы орта үшін ОЖ-нің базалы, жалпы механизмін білу өте қажет. Микроядролық архитектураға сәйкес ОЖ-нің барлық функциялары микроядро және қолданушының серверлі режимі арқылы жүзеге асады. Әр қолданбалы орта қолданушының жеке сервер ретінде де безендірілетінін және базалық механизмдерді қоспайтынын естен шығармау қажет. АРІ пайдалануымен бірге, орындалушы файлдар (қосымшалар) микроядро арқылы қолданбалы ортадағы жүйелік шақырудан сұрайды. Қолданбалы орта сұранысты өңдейді, қолданбалы ортада сұраныстың орындалуы кезінде ОЖ-нің базалық механизміне сұраныс жасауға тура келеді.

Көптеген қолданбалы ортаны құрастыру жағдайында микроядролық архитектураның барлық артықшылығы мен кемшіліктері бар, олар:

-микроядролық ОЖ-нің кең таралуының арқасында қолданбалы ортаны қосу немесе алып тастау;

-қоданбалы ортаның біреуі істен шығып қалса қалғандары жұмыс істеп тұра береді, яғни, сенімді және стабильді;

-микроядролық ОЖ-нің төменгі өнімділігі қолданбалы ортаның жұмыс істеу жылдамдығына әсер етеді, яғни файлдардың жылдам орындалуына;

Әр түрлі ОЖ-нің (орындаушы файлдарының) қосымшаларының орындалуы үшін бір ОЖ-де бірнеше қлданбалы ортаның құрылуы программаның бір ғана версиясының болуын және оны ОЖ-лер арасында ауысуына мүмкіндік береді. Бірнеше қолданбалы орта берілген ОЖ-нің қосымшаларымен бірге екілік деңгейде үйлесімдігін басқа ОЖ үшін жазылуын қамтамасыз етеді. Нәтижесінде қолданушылар ОЖ-лерді таңдауға үлкен мүмкіндікке жетеді және де сапалы программалық қамтамасыздандыруға жеңіл жол ашады.

Жоғарыда айтылып кеткендей бір ОЖ-ге арналып жазылған программа басқа ОЖ-лер үшін де орындалуы үшін АРІ үйлесімділігін қолдану жеткіліксіз. Сонымен қатар оған «туған» ортасы өте қажет, ол: процесс құрылысы, жадыны басқару қралы, кез-келген жағдай үшін және қатені өңдеу құралы, ресурсты қорғау механизмі және файлға қатынаудың семантикасы. Бұл жерден ОЖ құрылысымен тығыз байланысқан бірнеше қолданбалы ортаның көмегі қарапайым емес екндігі көрінеді. Бұл тапсырма WindowsNT-де өте жоғарғы деңгейде орындалады, сонымен бірге Карнети-Меллона университеті құрастырушылары Mach ОЖ-ін құрастырғанда бір-бірінен тәжірибе алысты, яғни, олар өзінің UNIX клиент-серверін жүзеге асыру кезінде ОЖ-нің базалы механизмін әр түрлі ОЖ-нің АРІ серверлерінен бөліп алуы керек болды.

Әр бір операциялық жүйе кейбір мәліметтер мен жұмыс жасайды, олар басқару әдістері мен бірігіп олардың қасиетін сипаттайды. .

Үрдіс – бұл барлық ОЖ-де болатын программа. Үрдіс – бұл қорларды меншіктеуге құқығы бар программа.

Үрдістерді басқару:

1. Орталық процессордың уақытын қолдану арқылы басқару.

2. Егізу буфері және аударыстыру арқылы басқару.

3. Бөлінетін қорлар арқылы басқару.

Үрдісті басқарудың негізгі мәселелері

Біріншіден – орталық санашықтың (ОС) уақытын қолдану арқылы басқару немесе бұл мәселені ОС жобалау деп атайды, яғни қандай уақытта қай есеп немесе қай үрдіс ОС басқарады (қандай үрдісте ОС жұмыс істейді).

Екіншіден - Енгізу буфері және аударыстыру арқылы басқару. Мысалы бірнеше адам, бір курс студенттері компьютердің алдында отыр және барлығы бір уақытта бір есепті үрдіс түрінде іске қосты делік. Жүйеде көп есеп пайда болады ( жүзден аса). Ал барлық есептеу жүйесі жүз есеппен мультипрограммалық режимде жұмыс істеу қабылдай алмайды, ол өте ауыр. Бұл жағдайда есепті енгізу буфері, яғни үрдістер буферде санашық арқылы өзінің өңделіп босатылуын күтетін үрдістер түзеледі. Осы буферде өңдеуді бастау үшін үрдістердің орындалу кезегін таңдау мәселесі туындайды. Бұл мәселе буфердің жоспарлануы болып табылады.Енді жоспарлау аударыстыру есебін қарастырамыз. Санашық арқылы бірнеше үрдістер өңделеді және бізге нақты жедел жадыны басқада есептер үшін босату мәселесі туындайды. Бұл жағдайда өңделген есептердің кейбірін ішкі есте сақтау құрылғысына жіберу қажеттілігі туындайды. Қандай алгоритм арқылы бұл есептерді жібере аламыз? Жіберудің бағыт- бағдары қандай болады? Мысалы әр жұп есептерді жіберуге болады. Үрдістерді жіберуді ұйымдастырудың қайсысы тиімді – бұл негізгі мәселе.

Үшіншіден – бөлінетін қорларды басқару. Қорлар жиынына қатынау белгілі бір уақытта әртүрлі үрдістер атынан ұйымдастырылады. Бұл баспа құрылғысының коллизиясы сияқты. Функциялар көбінде ОЖ- нің қасиеттерін анықтайды, бұл функция үрдістердің қарым – қатынасын ұйымдастыруды және ортақ қорларды қолдануды қастамассыз етеді. Мысалдағы баспа құрылғысының мәселесі тез шешіледі, ал егер екі программаның жедел жадыда ортақ фрагменті болса онда бөлінетін қорларды басқару – күрделі есеп.

Енді ОЖ құрылымын қарастырайық. Тәжірибе жүзінде кез- келген ОЖ ядро ұғымына ие. ОЖ ядросы – оның резидентті бөлігі болып табылады, ал жіберу үрдісіне қатыспайды (үнемі жедел жадыда болады) және ОЖ режимінде жұмыс жасайды немесе супервизор режимінде. ОЖ- де негізінен ядро құрамына басқарудың базалық құралы енгізілген және бірнеше физикалық құралдарды басқаруды қамтамассыз ететін программалар жиынтығы енуі мүмкін. Ядроның негізгі қызметіне көбінесе үзуді өңдеу кіреді. Біз программаларды кейде қорларды басқарушы, құрылғылар драйверлері (физикалық және логикалық) деп атаймыз. Мысалға, ОЖ ядросына жедел есте сақтау құрылғысының драйвері болуы қажет.

Сонан соң есептеу жүйесінің қорларын басқару программалары ядроның айналасында жетілдіріледі. Бірінші деңгей негізінен физикалық құрылғылардың драйверлерінен тұрады. Келесі деңгей логикалық құрылғыларды басқару. Осындай деңгейлер көп болуы мүмкін. Мысалы біздің сұлбада файлдарды басқару драйверлері пайда болуы мүмкін, олар логикалық дискті басқару драйверлерімен байланысты, ал басқалары өз кезегінде нақты физикалық құрылғылар драйверімен байланысты. т.с.с. ОЖ- нің барлық компоненттері супервизор режимінде және операциялық жүйе режимінде жұмыс істеуі міндетті емес. Ядродан логикалық қашық орналасқан компоненттердің көпшілігі қарапайым қолданбалы режимде жұмыс істей алады. Сол сияқты ОЖ-нің барлық компоненттері резидентті режимде жұмыс істеуі міндетті емес. Функциялардың көпшілігіне бұл талап етілмейді.

Mach процессі - бұл ресурстарды үйлестіретін базалық бірлік, оның деректерден және программа мәтінінен тұратын кеңістік адресі бар. Mach-та жіп орындау бірлігі болып табылады. Оның командалар санауышы (счетчик) және онымен байланысқан регистрлер жиыны бар. Әрбір жіп бір процесстің бөлігі болып келеді. Mach-тағы процесс аралық қатынас хабар беруге негізделген.

Программалық модульдердің құрылымдық ұйымдастыру түрлері.

Құрылымды барлық программалық есеп кодтары орындалуға арналғанда келесі көрсетілген құрылымдардың бір варианты ретінде қарастыруға болады:

1. Қарапайым прграммалық құрылымдар. Бұл құрылымда барлық операторлар бөлінбейтін модуль ретінде жасалынады, орындалу алдында жадыға толық жүктеледі және іске қосылған соң басқа прграммалық модульдерге қатынамайды.

2. Оверлейлік құрылым. Бұл жағдайда программалық блок белгіленген модульдерге бөлінеді. Негізгілері түпкі деп аталады және қабысу модульдерін шақыру координациясын орындайды. Қабысу модульдері бір адресте орналасады және бір уақытта жадыда бір модульден артық модуль орналаспайды. Бұл құрылым сілтеме кестесі арқылы сипатталады. Онда рұқсат етілетін және ескерілмейтін сілтемелері анықталады. Ескерілмейтін сілтемелерде негізгі шақыруға болатын модульдер көрсетіледі, ал айыруда шақыруға болатын модульдер көрсетіледі. Түпкі модуль тұрақты жадыда орналасады және ол арқылы барлық жүктелетін модульдер орындалады. Бұл құрылым жады бойынша үнемді, бірақ егер ұйымдастыру дұрыс болмаса, онда шақырылған модульдерінің жүктелуіне көп уақыт кетеді.

3. Динамикалы тізбекті құрылымының ұйымдастырылуы.

Link және Load операторлары арқылы жүзеге асырылады. Бұл операторлар арқылы шақырылған модуль жадыда орналасқаны анықталады. Егер модуль жадыда орналасса, онда Link командасы басқаруды оған береді, ал егер команадасы болса онда модульге қатынау күтілуде. Бұл операторлардан басқа sare және return командалары қолданылады. Sare- шақырылған модульді тізбекті бастайды, ал return- модульді аяқтайды. Sare командасы арқылы үзу нүктесі сақталады, ал return сол нүктеге қайтуды ұйымдастырады.

Кемшілігі: Басқа модуль бір модульды шақыру кезінде жүктеуді күтуге уақыт кетеді. Бұл кемшілікті жою үшін динамикалы параллель құрылымы қолданылады, ол бағыныңқы есеп механизмы арқылы орындалады. Бұнда нақты үрдіс арнайы команда арқылы ағындарды немесе бағыныңқы есептерді құрады, олар фондық орындалуға арналған. Фон ретінде түсініктеме ол нақты үрдістің параллельді басқа бір берілген үрдіспен орындалуы.

Бұл жағдайда арнайы синхрондау операторлары қолданылады, олар құрылған ағынның үрдіспен әрекеттесу ережелерін анықтайды, мысалы, wait, post. операторлары. Одан басқа үрдістерді басқаруға программалық модульдерге қатынасу принциптері әсер етеді. Олар бірнеше типті болуы мумкін.

1) қайта-атқаратын программалық модуль

2) қайта-жүктелетін модуль.

3) Программалық модульдердің ұйымдастыруының реентерабельдік принципі.

Бұдан бір модуль әрқашан басқа модульдермен іске қосылуға дайын.

Үрдістің өмір кезеңінің бірінші қадамы болып үрдісті құру және жүйелік кезекке үрдіс туралы мәліметтің орналастырылуы. Үрдісті көрсету кезінде ол туралы негізгі мәліметтер дерекқоры құрылады. Бұл деректер кесте түрінде толтырылады, оның кейде үрдісті басқару блогі деп те атайды. Құрудың бірінші қадамы болып алғашқы мекені бар үрдісті басқару блогінің бөлінуі және осы блокті барлық үрдістер кезегі болып табылады. Содан соң үрдісті бейнелейтін қажетті мәліметтер анықталады. Оларда стандартталған және олардың ішінде кейбіреулері екілік разрядқа дейін тереңдетіле пішімделген. Үрдіс туралы барлық санаттарды келесі мәліметтер жиынтығынан көруге болады:

- базалық аймақ

- енгізу-шығару сұратулар аймағы

- құрылғыларға сұрату аймағы

- жазбаларды басқару аймағы

- жүйелік қызметке сұрату және оверлейлерге сұрату аймағы.

Базалық аймақ. Құрады:

- бұл аймақтың алғашқы мекені болып келетін үрдісті басқарудың блок мекені

- келесі басқару блогіна көрсеткіш (ағымды және келесі кезектерде)

- ағымды пұрсаттылық

- ағымды кезектің идентификаторы

- үрдісті туындайтын идентификатор

- қосарлана туындалатын жағдай коды

- ағымды жағдай статусы

- жағдай мәніне арналған уақытша буфер

- мәліметтер үрдісіне арналған жұмыс аймағы

- мәліметтерді басқарудың блок мекені (жұмыс кестесі)

- қорлар жәйлі мәліметтерге арналған уақытша буфер

- жүйелік қызметке қатынау кезінде қайтарылатын мәніне арналған уақытша буфер

Енгізу-шығару сұратулар аймағы . Құрылғы үрдісіне белгіленген және бекітілген сонымен қатар программаны орындау кезіндегі оларға туындайтын сұратулар жәйлі мәліметтер негізінде құрылады және енгізіледі.

Құрамы:

- арнайы басқарудың блок мекені

- файлды басқарудың блок мекені

- берілген сұратуға жіберілетін сөздер немесі байттар саны

- мәліметтердің қайда немесе қайдан берілетін жады мекені

- енгізу-шығаруға арналған буфер мекені

- мәліметтердің қайда немесе қайдан берілетін файл мекені

- жазба түріне көрсеткіш

Құрылғыға сұрату аймағы.Жинақтағыш тегергіштерге сұратуға қызмет көрсету үшін қажетті деректер жазылады.

Құрамы:

- файлдың аты бойынша енгізу-шығару программасы арқылы есептелінетін мәліметтердің физикалық мекені

- осы мекен мен байланысты жады мекені

- соңғы операцияның орындауы бойынша мәлімет

Жазбаларды басқару аймағы. Бұғаттау ережесі және жазбалар бойынша блоктардың мекендетілуін бейнелейді, сонымен қатар бір жазбаға бірнеше рет қатынау кезіндегі үрдістерді бұғаттау ережесін алдын ала жазу.

Жүйелік қызметке сұрату аймағы. Құрамы:

- үрдісті орналастыру жадысының картасы

- енгізу-шығару құрылғылары және үрдіс мәліметтерінің блогі арасындағы тура беру үшін арналған жады картасы

- оверлейлік аймақтар үшін арналған жұмыс кестесі.

Жады картасы ұғымына бөлектеніп берілген үрдіске байланысты жадының логикалық аймағы кіреді.

Үрдіс мәнмәтінінің құрылымы. Үрдіс мәнмәтіні мәтін арқылы анықталған күй мен, пайдаланушының ауқымды айнымалылар мәнімен және ақпараттық құрылымдары мен, қолданылатын машиналық регистр мәні мен, есептің мекендік кеңістігінде және үрдістер кеңістігіндегі позицияларында сақталған мәндері мен, сонымен қатар берілген үрдіске қатысты есеп және ядро стектерінің құрамы болып табылады. Жүйенің операциялық мәтіні және оның ауқымды ақпараттық құрылымдары барлық үрдістер мен бірге қолданылады, бірақ үрдістің мәнмәтінінің құрамдас бөлігі болып табылмайды.

Үрдістің пайдаланушы мәнмәтіні деп үрдістің адрестік кеңістігінде орналасқан кодты және мәліметтерді түсінуге болады. Динамикалық бөлінген жадыда орналасқан (мысалы стандартты кітапханалық функциялар malloc, callloc және realloc) көмегімен барлық мәліметтер инициализацияланатын және өзгермейтін мәліметтерге (мысалы константалар), инициализацияланатын және өзгеретін мәліметтер (компилляция кезінде меншіктелетін барлық айнымалылар), инициализацияланбай өзгеретін мәліметтер (компилляция кезінде бастапқы мәндері меншіктелмеген барлық статикалық айнымалылар), қолданушы стегі және мәліметтерге бөлінеді.

Орындалмайтын код және инициализацияланатын мәліметтер программалар файлы құрамын құрайды, олар үрдістің мәнмәтінінде орындалады. Пайдаланушылар стегі қолданбалық режимдегі (user-mode) үрдістің жұмысы кезінде қолданылады.

Ядро мәнмәтіні түсінігінде біріккен регистрлік мәнмәтін және жүйелік мәнмәтін түсінігі берілген.Үрдіс іске қосылған жағдайда жүйе үрдіс контекстінде орындалады. Егер жүйе ядросы басқа үрдісті іске қосуды жүзеге асыру кезінде ол мәнмәтіннің аусып қосуын орындайды, себебі басқа үрдіс өзінің мәнмәтінінде орындалу керек. Мәнмәтіннің қайта ауысу кезінде жүйе ядросы алдыңғы ақпаратты сақтайды, өйткені ол бірінші үрдіс мәнмәтінінде қайта оралып оны аяқтауға мүмкіндік береді.

Үрдіс мәнмәтіні құрамында үрдіске бөлінген есептің мекен кеңістігі және үрдістің құрамына кіретін аппараттық регистр және деректер ядросының құрылымы болады. Пайдаланушы мәнмәтіні командалардан және үрдіс деректерінен, есеп стегі және бірігіп қолданатын виртуалды үрдіс мекенінің жады кеңістігінен тұрады.

Үрдістің мәнмәтіні пайдаланушы мәнмәтіні мен ядро мәнмәтінінен тұрады.

Сурет 1. Үрдіс мәнмәтінін құраушы.

Негізгі әдебиет 1 [151–156], 9[25-31], 3[19-41]

Қосымша әдебиет 13 [59-65], 11[104-116], 15[114-157]

Бақылау сұрақтары

1. Үйлесімділік түсінігі. Үйлесімділік жүзеге асыру әдісі.

2. Әр түрлі ОЖ негіздері концепциясында бір-біріне қарама-қайшылық туса не істеуге болады?

3. Үйлесімділікте жұмыс істейтін ОЖ-ге процессор архитектурасы қалай әсер етеді?

4. Эмулятор атты арнайы программалық қамтама не үшін орнатылады?

5. Мультипрограммалық режимнің мультиесептік режимнен айырмашылығы

6. Монолитті және микроядерлі жүйелерге мысал келтіріңіз

7. Құрылымдық ұйымдастырудың типтері

8. Нақтылы ұақыт операциялық жүйесінің критерилері

9. Ұақыт бөлу ОЖ қандай режимде жұмыс жасайды

 

Другие работы

7931. СОГЛАСОВАНИЕ ОТРАСЛЕВЫХ СТРАТЕГИЙ КАК ЭЛЕМЕНТ КОМПЛЕКСНОГО НАРОДНОХОЗЯЙСТВЕННОГО ПРОГНОЗА (на примере электроэнергетики и железнодорожного транспорта) 645.04 KB
  Прежде всего, необходимо оценить потребность экономики в энергетических ресурсах, долю железнодорожного транспорта в потреблении электроэнергии. К числу таких моментов необходимо отнести возможное напряжение в транспортной работе вследствие увеличения доли угольной генерации в производстве...
7932. УПРАВЛЕНИЕ ФИНАНСАМИ СОЦИАЛЬНАЯ МОДЕЛЬ ЭКОНОМИЧЕСКОГО РОСТА В УСЛОВИЯХ МЕЖБЮДЖЕТНОГО ВЗАИМОДЕЙСТВИЯ 81.66 KB
  Миссия бюджетной политики должна быть направлена на обеспечение такой структуры межбюджетных отношений, которая способствовала бы оптимальному распределению ограниченных финансовых ресурсов в воспроизводство человеческого капитала • Систему нормирования натуральных расходов в...
7933. Российский рубль – мировая резервная валюта? 263.07 KB
  Семинары Российский рубль – мировая резервная валюта? нижение курса доллара и кризисные явления в мировой финансовой системе явились одной из причин того, что в последнее время в СМИ, на правительственном уровне, а также в бизнес-кругах России всерьез заговорили о возможности повышения...
7934. Россия и Китай планируют отказаться во взаиморасчетах от доллара 138.94 KB
  Курсом рубля и юаня Россия и Китай планируют отказаться во взаиморасчетах от доллара финансы Татьяна Зыкова Китаю и России пора подумать о новых финансовых механизмах, обслуживая растущий товарооборот между двумя экономиками, и не только в долларовых расчетах. Выступая на международном форуме...
7935. Проблемы финансирования высшего профессионального образования в Российской Федерации 112.24 KB
  При этом объем финансовых средств, поступающих из внебюджетных источников, увеличивается. Большая часть средств федерального бюджета, выделяемых на поддержку образования, направляется на финансирование профессионального образования, из них более половины — высшего образования. по разделу...
загрузка...