Скачать 1.37 Mb.
|
Шақыруларды өңдеу кезеңдері:
Алдындағы амалдардың жалпы қорытындысы - операциялық жүйені деңгейлер иерархиясы ретінде ұйымдастыру. Деңгейлер операциялық жүйенің функцияларының топтары – файлдық жүйе, үрдістерді және құрылғыларды басқару және де осы сияқтылар арқылы құрылады. Әрбір деңгей өзінің тікелей көршісімен – жоғарырақ немесе төмендеу орналасқан деңгеймен әрекет қыла алады. Операциялық жүйенің қолданбалы программалары немесе модульдері осы деңгейлер бойынша сұраныстарды жоғары және төмен жіберіп отырады. ОС UNIX құрылымы ![]() ОС UNIX ядросы Көпдеңгейлі Windows үлгісін іске асыру мысалы ![]() Экзоядро моделі Егер алдындағы үлгілер өз жауапкершілігіне функцияларды барынша толық алса, экзоядро принципы – оның барлығын пайдаланушылық программаларға қайтару. Мысалы, неге файлдық жүйе керек? Неге пайдаланушыға қорғалған бейнемен диск учаскелерін жай ғана оқуға және жазуға рұқсат бермейміз? Бұл дегеніміз, әрбір пайдаланушылық бағдарламаның өзінің файлдық жүйесі болады. Осындай операциялық жүйе, солар үшін жарысушы пайдаланушылар арасында қорлардың қауіпсіз таратылуын қамтамасыз етеді. Микроядролық архитектура (клиент-сервер үлгісі) Мынау үлгі алдындағы екі үлгілер аралығының ортасы болып келеді. Осы заманғы операциялық жүйелердің дамуында, минималды экзоядро қалдыра отырып, тапсырмаларды түйіннен пайдаланушылық процестердің деңгейіне, онан ары тасымалдау тенденциясы байқалады. Мына үлгіде екі ұғым енгізілген:
Клиенттермен серверлер арасындағы байланысты басқару түйіннің міндетіне кіреді. ![]() Клиент-сервер моделі Артықшылығы:
Кемшіліктері:
Үлгілерді салыстыруды қорытындылау ![]() Үлгілерді салыстыру Өз-өзін бақылау сұрақтары
Ұсынылатын әдебиеттер
2 тақырып: Үрдістер және ағындар (жіптер) Мақсаты: Осы лекцияда үрдістер, ағындар, үрдіс үлгісі, үрдісті құру, үрдістер иерархиясы ұғымдарын түсіну. Қарастырылатын сұрақтары: Үрдістер. Үрдіс үлгісі. Үрдісті құру. Үрдістің аяқталуы. Үрдістер иерархиясы. Үрдістердің қалып-күйі. Ағындар (жіптер, жеңілдетілген үрдіс). Ағын түсінігі. Ағын үлгісі. Ағындарды қолдану артықшылықтары. Пайдаланушы, ядро және араласқан кеңістіктерінде ағындарды орындау. Windows орындауларының ерекшеліктері. Үрдістер арасындағы әрекеттестік. Үрдістерді жоспарлау. Үрдіс (тапсырма) – орындалу режиміндегі программа. Әрбір үрдіспен оның адрестік кеңістігі байланыстырылады, ол одан оқи алады және оған өз мәліметтерін жаза алады. Адрестік кеңістік:
Әрбір үрдіспен регистрлердің жиынтығы байланыстырылады, мысалы:
Көптеген операциялық жүйелерде әрбір үрдіс туралы, оның өзіне меншікті адрестік кеңістіктің қосымша ақпараты операциялық жүйенің үрдістер кестесінде сақталады. Үрдіс үлгісі Көп мақсатты жүйеде нақты процессор үрдістен үрдіске ауыстырылып қосылады, бірақ үлгіні оңайлату үшін паралельді жүретін (жалған паралельді) үрдістер жиынтығы қарастырылады. Төрт жұмыс істеуші бағдарламалармен схеманы қарастырайық. ![]() Уақыттардың әрбір кезеңінде тек қана бір үрдіс белсенді ![]() Оң жақта паралельді жұмыс істеуші үрдістер, оның әрқайсысы өз командаларының санауышымен көрсетілген. Әрине, ағымдағы үрдістің командаларының логикалық санауышы жүктелетін, командалардың тек қана бір физикалық санауышы шынында бар. Ағымдағы үрдіске бөлінген уақыт біткен кезде, командалардың физикалық санауышы жадта, үрдіс командаларының логикалық санауышында сақталады. Үрдісті құру Үрдістерді құрылуына алып келетін үш негізгі оқиғалар (fork шақыруы немесе CreateProcess):
Барлық жағдайларда, ағымдағы белсенді үрдіс жаңа үрдіс құруына жүйелік шақыру жібереді. UNIX –те әрбір үрдіске үрдіс идентификаторы меншіктеледі ( PID - Process IDentifier). Үрдістің аяқталуы Үрдістің тоқтатылуын тудыратын төрт оқиға (exit шақыруы немесе ExitProcess) бар:
Сонымен, тоқтатылған үрдіс, әдетте оны жадтың бейнесі (core image) деп атайтын, өзіндік адрестік кеңістіктен және үрдіс кестесінің компоненттерінен (компоненттердің ішінде оның регистрлері) тұрады. Үрдістер иерархиясы UNIX жүйелерінде үрдістердің қатаң иерархиясы жасалған. fork жүйелік шақырумен жасалған әрбір жаңа үрдіс, алдындағы үрдіске еншілес болып келеді. Еншілес үрдіске аталық үрдістен айнымалылар, регистрлер және т.б. беріледі. fork шақырылып, аталық мәліметтердің көшірмесі жасалғаннан кейінгі үрдістердің біреуінде пайда болған өзгертулер басқасына әсер етпейді. Бірақ үрдістер қайсысы аталық екенін есте сақтайды. Мұндай жағдайда UNIX –те барлық үрдістердің аталарының атасы бар – init үрдісі. ![]() UNIX жүйесіне арналған үрдістер иерархиясы Windows -та үрдістер иерархиясы түсінігі жоқ. Бірақ аталық үрдіске, еншілес үрдісті бақылауға мүмкіндік беретін, арнайы таңбалағыш (маркер) беруге болады. Үрдістердің қалып-күйі Үрдістің үш қалып-күйі бар:
![]() Қалып-күй арасындағы мүмкін болатын ауысулар 1. Үрдіс блокталады, енгізілетін мәліметтерді күте отырып 2. Жоспарлаушы басқа үрдісті таңдайды 3. Жоспарлаушы тап осы үрдісті таңдайды 4. Енгізілетін мәліметтер түсті 2-ші және 3-ші ауысулар операциялық жүйенің үрдістерді жоспарлаушысы арқылы шақырылады. Үрдістердің өздері осы ауысулар туралы тіпті білмейді. Үрдістердің көзқарасы бойынша орындалудың және күтудің екі қалып-күйі бар. Серверлерде клиент сауалына жауапты тездету үшін, жиі күту тәртібіне бірнеше үрдісті жүктейді. Сервер сауалды алғаннан кейін, үрдіс «күту» тәртібінен «орындалу» тәртібіне ауысады. Бұл ауысу жаңа үрдісті іске қосқаннан көрі едәуір тез орындалады. Ағындар (жіптер, жеңілдетілген үрдіс) Ағын түсінігі Әрбір үрдіске адрестік кеңістік және орындалатын командалардың жеке ағыны сәйкес келеді. Клиентке қызмет көрсету үшін көп пайдаланылатын жүйелерде бір сервиске әрбір қатынаған сайын жаңа үрдіс құруға тура келеді. Бұл, осы үрдіс ішінде бір адрестік кеңістігі бар квазипаралельді ағын құруға қарағанда кемірек пайдалы. ![]() Көпағынды жүйені бірағынды жүйемен салыстыру Ағын үлгісі Әрбір ағынмен байланысады:
Ағындар өзара өз үрдісінің элементтерін бөледі:
POSIX және Windows -та түйін деңгейінде ағындардың сүйеуі бар. Linux –те ағындарды құруға арналған clone атты жаңа жүйелік шақыру бар. Бұл UNIX жүйесінің барлық қалған версияларында жоқ. POSIX –те ағындарды құруға арналған pthread_create жаңа жүйелік шақыру бар. Windows –та ағындарды құруға арналған Createthread жаңа жүйелік шақыру бар. Ағындарды қолдану артықшылықтары
Пайдаланушы, ядро және араласқан кеңістіктерінде ағындарды орындау ![]() А –пайдаланушы кеңістігіндегі ағындар B – түйін кеңістігіндегі ағындар А жағдайында, түйін ағын туралы ештеңе білмейді. Әрбір үрдіске үрдістердің кестесіне ұқсас ағындардың кестесі қажетті. А жағдайының артықшылығы:
А жағдайының кемшілігі:
![]() Түйін ағындарында пайдаланушы ағындарының мультиплексациялануы Түйін ағыны бірнеше пайдаланушы ағындарынан тұруы мүмкін. Windows орындауларының ерекшеліктері Төрт ұғым қолданылады:
Ағындар пайдаланушы тәртібінде жұмыс істейді, бірақ жүйелік шақырулар жанында түйін тәртібіне ауыстырылып қосылады. Түйін тәртібіне ауыстырып қосу және одан кері ауыстырып қосудан жүйе жұмысы өте бәсеңдейді. Талшық ұғымы сондықтан енгізілген болатын. Әрбір ағында бірнеше талшық болуы мүмкін. Үрдісті басқару және ұйымдастыру. Үрдіс және ядро ұғымы. Үрдістің виртуальдық мекен-жайлық кеңістігін сегментациялау. Үрдіс мәнмәтінің құрылымы. Әр бір операциялық жүйе кейбір мәліметтермен жұмыс жасайды, олар басқару әдістері мен бірігіп олардың қасиетін сипаттайды. Үрдіс - бұл барлық ОЖ де болатын программа. Үрдіс - бұл қорларды меншіктеуге құқығы бар программа. Үрдістерді басқару:
Үрдісті басқарудың негізгі мәселелері. Біріншіден - орталық санашықтың (ОС) уақытын қолдану арқылы басқару немесе бұл мәселені ОС жобалау деп атайды, яғни қандай уақытта қай есеп немесе қай үрдіс ОС басқарады (қандай үрдісте ОС жұмыс істейді). Екіншіден - Енгізу буфері және аударыстыру арқылы басқару. Мысалы бірнеше адам, бір курс студенттері компьютердің алдында отыр және барлығы бір уақытта бір есепті үрдіс түрінде іске қосты делік. Жүйеде көп есеп пайда болады (жүзден аса). Ал барлық есептеу жүйесі жүз есеппен мультипрограммалық режимде жұмыс істеу қабылдай алмайды, ол өте ауыр. Бұл жағдайда есепті енгізу буфері, яғни үрдістер буферде санашық арқылы өзінің өңделіп босатылуын күтетін үрдістер түзеледі. Осы буферде өңдеуді бастау үшін үрдістердің орындалу кезегін таңдау мәселесі туындайды. Бұл мәселе буфердің жоспарлануы болып табылады. Енді жоспарлау аударыстыру есебін қарастырамыз. Санашық арқылы бірнеше үрдістер өңделеді және бізге нақты жедел жадыны басқада есептер үшін босату мәселесі туындайды. Бұл жағдайда өңделген есептердің кейбірін ішкі есте сақтау құрылғысына жіберу қажеттілігі туындайты. Қандай алгоритм арқылы бұл есептерді жібере аламыз? Жіберудің бағыт бағдары қандай болады? Мысалы әр жұп есептерді жіберуге болады. Үрдістерді жіберуді ұйымдастырудың қайсысы тиімді - бұл негізгі мәселе. Үшіншіден - бөлінетін қорларды басқару. Қорлар жиынына қатынау белгілі бір уақытта әртүрлі үрдістер атынан ұйымдастырылады. Бұл баспа құрылғысының коллизиясы сияқты. Функциялар көбінде ОЖнің қасиеттерін анықтайды, бұл функция үрдістердің қарым\қатынасын ұйымдастыруды және ортақ қорларды қолдануды қастамассыз етеді. Мысалдағы баспа құрылғысының мәселесі тез шешіледі, ал егер екі программаның жедел жадыда ортақ фрагменті болса, онда бөлінетін қорларды басқару - күрделі есеп. Енді ОЖ құрылымын қарастырайық. Тәжірибе жүзінде кез келген ОЖ ядро ұғымына ие. ОЖ ядросы - оның резидентті бөлігі болып табылады, ал жіберу үрдісіне қатыспайды (үнемі жедел жадыда болады) және ОЖ режимінде жұмыс жасайды немесе супервизор режимінде. ОЖ-де негезінен ядро құрамына басқарудың базалық құралы еңгізілген және бірнеше физикалық құралдарды басқаруды қамтамасыз ететін программалар жиынтығы енуі мүмкін. Ядроның негізгі қызметіне көбінесе үзуді өңдеу кіреді. Біз программаларды кейде қорларды басқарушы, құрылғылар драйверлері (физикалық және логикалық) деп атаймыз. Мысалға, ОЖ ядросында жедел есте сақтау құрылғысының драйвері болуы қажет. Сонан соң есептеу жүйесінің қорларын басқару программалары ядроның айналасында жетілдіріледі. Бірінші деңгей негізінен физикалық құрылғылардың драйверлерінен тұрады. Келесі деңгей логикалық құрылғыларды басқару. Осындай деңгейлер көп болуы мүмкін. Мысалы біздің сұлбада файлдарды басқару драйверлері пайда болуы мүмкін, олар логикалық дискті басқару драйверлерімен байланысты, ал басқалары өз кезегінде нақты физикалық құрылғылар драйверімен байланысты, т.с.с. ОЖнің барлық компоненттері супервизор режимінде және операциялық жүйе режимінле жұмыс істеуі міндетті емес. Ядродан логикалық қашық орналасқан компоненттердің көпшілігі қарапайым қолданбалы режимде жұмыс істей алады. Сол сияқты ОЖ-нің барлық компоненттері резидентті режимде жұмыс істеуі міндетті емес. Функциялардың көпшілігіне бұл талап етілмейді. Программалық модульдердің құрылымдық ұйымдастыру түрлері. Құрылымды барлық программалық есеп кодтары орындалуға арналғанда келесі көрсетілген құрылымдардың бір варианты ретінде қарастыруға болады:
Link және Load операторлары арқылы жүзеге асырылады. Бұл операторлар арқылы шақырылған модуль жадыда орналасқаны анықталады. Егер модуль жадыда орналасса, онда Link командасы басқаруды оған береді, ал егер командасы болса, онда модульге қатынау күтілуде. Бұл операторлардан басқа Sare және Return командалары қолданылады. Sare - шақырылған модульді тізбекті бастайды, ал return - модульді аяқтайды. Sare командасы арқылы үзу нүктесі сақталады, ал return сол нүктеге қайтуды ұйымдастырады. Кемшілігі: Басқа модуль бір модульді шақыру кезінде жүктеуді күтуге уақыт кетеді. Бұл кемшілікті жою үшін динамикалы параллель құрылымы қолданылады, ол бағыныңқы есеп механизмі арқылы орындалады. Бұнда нақты үрдіс арнайы команда арқылы ағындарды немесе бағыныңқы сеептерді құрады, олар фондық орындалуға арналған. Фон ретінде түсініктеме ол нақты үрдістің параллельді басқа бір берілген үрдіспен орындалуы. Бұл жағдайда арнайы синхрондау операторлары қолданылады, олар құрылған ағынның үрдіспен әрекеттеу ережелерін анықтайды, мысалы, операторлары. Одан басқа үрдістері басқаруға программалық модульдерге қатынасу приницптері әсер етеді. Олар бірнеше типті болуы мүмкін.
Бұдан бір модуль әрқашан басқа модульдармен іске қосылуға дайын. Үрдістің өмір кезеңінің бірінші қадамы болып үрдісті құру және жүйелік кезекке үрдіс туралы мәліметтің орналастырылуы. Үрдісті көрсету кезінде ол туралы негізгі мәліметтер дерекқоры құрылады. Бұл деректер кесте түрінде толтырылады, оның кейде үрдісті басқару блогі деп те атайды. Құрудың бірінші қадамы болып алғашқы мекені бар үрдісті басқару блогінің бөлінуі және осы блокты барлық үрдістер кезегі болып табылады. Содан соң үрдісті бейнелейтін қажетты мәліметтер анықталады. Оларда стандартталған және олардың ішінде кейбіреулері екілік разрядқа дейін тереңдетіле пішімделген. Үрдіс туралы барлық санаттарды келесі мәліметтер жиынтығынан көруге болады:
Базалық аймақ. Құрады:
Енгізу-шығару сұратулар аймағы. Құрылғы үрдісіне бергіленген және бекітілген сонымен қатар программаны орындау кезіндегі оларға туындайтын сұратулар жәйлі мәліметтер негізінде құрылады және енгізіледі. Құрамы:
Құрылғыға сұрату аймағы. Жинақтағыш тегергіштерге сұратуға қызмет көрсету үшін қажетті деректер жазылады. Құрамы
Жазбаларды басқару аймағы. Бұғаттау ережесі және жазбалар бойынша блоктардың мекендетілуін бейнелейді, сонымен қатар бір жазбаға бірнеше рет қатынау кезіндегі үрдістерді бұғаттау ережесін алдын ала жазу. Жүйелік қызметке сұрату аймағы. Құрамы.
Жады картасы ұғымына бөлектеніп берілген ұрдіске байланысты жадының логикалық аймағы кіреді. Үрдіс мәліметінінің құылымы. Үрдіс мәнмәтіні мәтін арқылы анықталған күй мен, пайдаланушының ауқымды айнымалылар мәнін және ақпараттық құрылымдары мен, қолданылатын машиналық регистр мәні мен, есептің мекендік кеңістігінде және үрдістер есеп және ядро стектерінің құрамы болып табылады. Жүйенің операциялық мәтіні және оның ауқымды ақпараттық құрылымдары барлық үрдістер мен бірге қолданылады, бірақ үрдістің мәнмәтінінің құрамдас бөлігі болып табылмайды. Үрдістің пайдаланушы мәнмәтіні деп үрдістің адрестік кеңістігінде орналасқан кодты және мәліметтерді түсінуге болады. Динамикалық бөлінген жадыда орналасқан (мысалы константалар), инициализацияланатын және өзгеретін мәліметтер (компилляция кезінде бастапқы мәндері меншіктелмеген барлық статикалық айнымалылар), қолданушы стегі және мәліметтерге бөлінеді. Орындалмайтын код және инициализацияланатын мәліметтер программалар файлы құрамын құрайды, олар үрдістің мәнмәтінінде орындалады. Пайдаланушылар стегі қолданбалық режимдегі (user-mode) үрдістің жұмысы кезінде қолданылады. Ядро мәнмәтіні түсінігінде біріккен регистрлік мәнмәтін және жүйелік мәнмәтін түсінігі берілген. Үрдіс іске қосылған жағдайда жүйе үрдіс кентекстінде орындалады. Егер жүйе ядросы басқа үрдісті іске қосуды жүзеге асыру кезінде ол мәнмәтіннің қайта ауысу кезінде жүйе ядросы алдынғы ақпаратты сақтайды, өйткені ол бірінші үрдіс мәнмәтінінде қайта оралып оны аяқтауға мүмкіндік береді. Үрдіс мәнмәтіні құрамында үрдіске бөлінген есептің мекен кеңістігі және үрдістің құрамына кіретін аппараттық регистр және деректер ядросының құрылымы болады. Пайдаланушы мәнмәтіні командалардан және үрдіс деректерінен, есеп стегі және бірігіп қолданатын виртуалды үрдіс мекенінің жады кеңістігінен турады. Үрдістің мәнмәтіні пайдаланушы мәнмәтіні мен ядро мәнмәтінінен тұрады. Қолданбалы контекст
Үрдіс мәнмәтінін құраушы |
![]() | Математика және информатика кафедрасы В060200 «Информатика» мамандығының күндізгі нысанда оқитын студенттеріне арналған «Жасанды интеллект жүйелері» пәнінің | ![]() | Математика және информатика кафедрасы В060200 «Информатика» мамандығының күндізгі нысанда оқитын студенттеріне арналған «Экономикалық есептеулердің бағдарламалық құралдары»... |
![]() | «Жаратылыстану» факультеті “Информатика” кафедрасы ОҚУ Әдістемелік кешен Информатика” пәні бойынша 050110 “Физика”, 050109 “Математика” мамандықтарының студенттері үшін | ![]() | «жібек жолы» мектеп-лицеі информатика Физика, математика, информатика кафедрасы Тақырыбы «ПӘнді оқытуда жаңа педагогикалық, АҚпараттық-коммуникативтік технологиялардың МҮмкіндіктерін қолдану формалары» |
![]() | 0 «Математика және экономика» факультеті «Жоғары математика және физика» кафедрасы “ Математикалық талдау” «Информатика» мамандығының 1- курс студенттеріне І– семестрде «Математикалық талдау» пәніне типтік оқу жоспарына сәйкес 4 кредит... | ![]() | Титульный лист программы обучения по дисциплине (Syllabus) Ф Физика, математика және ақпараттық технологиялар факультеті Информатика және ақпараттық жүйелер кафедрасы |
![]() | Титульный лист программы обучения по дисциплине (Syllabus) Ф Физика, математика және ақпараттық технологиялар факультеті Информатика және ақпараттық жүйелер кафедрасы | ![]() | Программа дисциплины «Иностранный язык как инструмент научной работы» для направления 010400. 68 «Прикладная математика и информатика» Программа предназначена для преподавателей, ведущих данную дисциплину, и студентов направления подготовки 010400. 68 "Прикладная... |
![]() | 0 «Математика және экономика» факультеті «Жоғары математика және физика» кафедрасы “ Теңдеулер мен теңсіздіктер және олардың жүйелері тақырыптары бойынша сабақтардан, үзінділері | ![]() | Химия кафедрасы Жолымбаев О. М. физика-математика ғылымдарының кандидаты, математика және математиканы оқыту әдістемесі кафедрасының доценті |