Бақылау сұрақтары. 1. Mach-тағы процесс аралық өзара әрекет.
1. Mach-тағы процесс аралық өзара әрекет.
2. Микроядролық архитектураның негізгі ережесі.
3. Үш қабатты есептеу жүйесінің құрылымы.
4. Клиент-сервер технологиясының артықшылығы.
5. ОЖ-нің серверлерінің негізгі тағайындалуы.
6. ОЖ-ні монолитті ядромен және микрядролық архитектурамен жүзеге асырудың негізгі айырмашылықтары.
7. Қосымшалардың ОЖ-нің функцияларына қатынау механизмін ұйымдастыру.
8. ОЖ-нің ядросы және қосымша модульдері.
Дәріс. Операциялық жүйелердің үйлесімділіг.і Үрдісті басқару және ұйымдастыру. Үрдіс және ядро үғымы. Үрдістің виртуальдық мекен-жайлық кеңістігін сегментациялау. Үрдіс мәнмәтінінің құрылымы.
Үйлесімдік түрлері Кез-келген ОЖ-нің нақты архитектуралық және функционалдық ерекшеліктері жүйелік программисттерге қатысты болуы керек және ол қарапайым қолданушыға таныс емес болуы мүмкін. Кейбір идеялар (мысалы, объектілі-бағытталған көзқарас) құрастырушыларға ғана белгілі және соңғы қолданушыға кері әсерін тигізеді. Көптеген қолданбалы орта концепциясы қолданушының көптен күткен мүмкіншілігін өзінің ОЖ программасында, басқа ОЖ және процессор үшін жазылған программада орындайды. Басқа ОЖ үшін жазылған ОЖ қосымшасы орындайтын мүмкіншілікті сипаттауы, яғни, ОЖ қасиеті үйлесімділік деп аталады.
Үйлесімділіктің бір-біріне ұқсамайтын екі принципі бар, оларды шатастырмау керек: екілік деңгейдегі үйлесімділік және бастапқы мәтін деңгейіндегі үйлесімділік. Екілік түріндегі кодтар және деректері бар қосымша файлдар компьютерде орындаушы файлдар түрінде сақталады. Орындалушы программаны бір ОЖ ортасында жұмыс істейтін және оны басқа ОЖ ортасында орындағанда іске қосқан жағдайда орындалуын екілік үйлесімділік деп атаймыз.
Алдыңғы мәтін деңгейіндегі үйлесімділік, компьютерді программалармен қамтамасыздандыру құрамында сәйкесінше компилятордың бар болуын талап етеді, яғни, ол берілген сөйлемнің орындалуын және де жүйелік шақыру мен кітапхана деңгейде үйлесімділігін жорамалдайды. Ол үшін жаңа орындалатын модулдағы алдыңғы мәтін программасын қайтадан компиляция жасауға тура келеді. Осылайша, алғашқы мәтін деңгейінде үйлесімділік өкімде болатын бастапқы мәтін сөйлемін құрастырушы үшін маңызы оте зор. Соңғы практикалық сабақты қолданушылар тек осы екілік орындалатын кодта, әр түрлі ОЖ ортасында және әр түрлі компьютерде арнайы білімсіз программа өнімін қолдана алады. Өзінің жаңа машинасында, мысалы, 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. Бөлінетін қорлар арқылы басқару.