Операция 1.
1 қадам. Үрдістін өмір сүруі "үрдісті құру" операциясы орындалғаннан басталады.
2 қадам: туындалған үрдіске жағдай кодын бөлу.
3 қадам үрдістің элементті базасын дайындау.
4. Үрдістің белсенділігі үрдісті басқару блогы арқылы үрдісті орындауындағы жіберу үшін кезекке коюдан тұрады.
5 қадам. Инициализацияны аяқтау.
Инициализация аяқталған кейін жіберілетін үрдістің орындалу тәсілі анықталады, бұл синхронды немесе асинхронды орындалу мүмкін.
Операция 2
Үрдісті жою программа аяқталған кейін немесе басқа үрдістермен үзу болған жағдайда орындалады. Үрдіс жойылғаннан кейін оның блокты басқаруы үрдісті бардлық кезекте алып тастап белгіленген ОЖ қорларын босатады. Сонымен қатар жою ауқымды немесе жергілікті режимде жүзеге асырылуы мүмкін.
Операция 3.
Үрдіс идентификациясы.
Үрдісті идентификациялау кезінде оның идентификаторы және кезекті идентификаторға тіркелген үрдіс статусы анықталады, бұнда берілген уақыттағы үрдіс орналасады. Бұл статус жалаушысы және кезектегі мекен арқылы анықталады.
Операция 4.
Үрдістің уақытша тоқталуы жүйеде үзу болған жағдайда болады және осы үзуден кейін үрдістің қайта орындалу үшін ауысу ережесі анықталу керек.
Уақытша тоқтату тияқнақталған уақыт (таймер) аралығында немесе тоқтату типы бойынша болуыы мүмкін. Уақытша тоқтадтудың көзі үрдістің өзі немесе жасанды түрде болуы мүмкін.
Уақытша тоқтау үрдістің енгізу-шығару азасында ал жасанды жолы – ол программалық өңдедуде болады.
Сигналдарды өңдеу жабдықтары. Үрдістерді басқаратын оқиғалық тітіктер. Үрдістер әрекеттестігі. Үзу жүйелері.
Сигналдарды өндеу жабдықтары. Сигналдар бір үрдістен екіншіі үрдіске өткенде немесе ОЖ ядросында қайтадан бір жағдайдың анықталуына байланысты түзіледі. Үрдістер арасындағы қарым-қатынасын сигналды жіберу және қабылдау арқылы қарастырайық.
Үзулердің пайда болуы сияқты сигналдардың пайда болуы келесі себептерге байланысты.
Программа ішіндегі кейбір жағдайлар, мысалы аса толу болғанда немесе нөлге бөлгенде.
Құрылғыдан келген кейбір ақпараттарға байланысты, мысалы пернетақтадан «Сtrl+C» комбинациясын беруге байланысты;
Бір үрдістің екінші үрдіске әректтесуіне байланысты, мысалы «SIG_KILL».
Жүйеде тиянақталған жағдай жиыны бар, олар жүйеде пайда болуы мүмкін. Әр жағдайдың өзінің уникалды аты болады: бұл аттар әдетте UNIX версиясы үшін бірдей. Бұл аттарды сигналдар деп атаймыз.
Үрдістерді басқаратын оқиғалық тітіктер. Үрдістер әрекеттестігі. Позициялық түрде үрдісті басқару үш топқа бөлінеді:
тәуелді үрдістер – үрдістің барлық өмір сүру периодына автономды орындалады;
бірігіп орындалатын үрдістер – таратылатын есептеу алгоритмі негізінде әрекеттеседі;
бәсекелес үрдістер – жалпы қорлар негізінде әрекеттеседі.
Үрдістің нөмірі бірнеше бөлек кезеңдерден тұрады:
Үрдісті құру немесе бастапқы пайда болуы. ОЖ кестесінде үрдіс туралы басқарушы жазба құрылады. Бұл жазбада идентификацияланатын ақпарат болады.
Инициализация. Бұнда үрдістің орындалуына қажетті қорлар анықталады.
Үрдісті белсенділеу. Бұл кезеңде үрдіске санашық қоры бөлінеді және орындалуға жіберіледі. Үрдістің орындалу кезінде ол бұғаттау немесе күту күйінде болуы мүмкін.
Үрдіс аяқталғаннан кейін оның жойылуы басталады.
Бәсекелес үрдістерді басқару негізінде критикалық интервалда басқару әдісі белгіленген. Бұл әдістің негізі коллективті қатынау ішінде әр бір үрдіске өзінше автономды жұмыс жасау үшін уақыт интервалды анықтау мағынасы жатыр.
Бұл талаптар келесі түрде анықталады:
әр бір интервалында тек қана бір үрдіс болу керек
интервалда үрдіс көп уақыт болиауы керек
үрдістер критикалық интервалға шығуды көп уақыт күтпеу керек.
Көрсетілген принциптер арнайы басқаратын программалар көмегімен жүзеге асырылады, бұл программаларды жолшамдар деп атайды.
Үзу мен алып тастау – ол ОЖ-гі күйлер. Олар программалы немесе аппаратты анықталады Үзу немесе алып тастау анықталғанда санашық сол уақытта орындап жатқан жұмысын тоқтатады және басқаруды пайда болған күйді өңдейтін код мекені бойынша жадының ерекше аймағына береді. WNT бұл кодты кақпан өңдеуші деп атайды (trap hondeer).
NT ядросы үзу және алып тастауды ажыратады. Үзу (interrupt) – санашықтың қандай жұмыс орындап жатқанына қарамайтын кез-келген уақытта болатын асинхронды жағдай. Көбінесе үзу енгізу-шығару құрылғыларының әсерінен болуы мүмкін.
Алып тастау (exception) – синхронды қателі қалып-күй, машиналық команда арқылы орындалады. Мысалы жадының қорғанысының бұзылуы.
WNT ядросы жүйелік қызмет көрсетудің шақыруын нәтиже ретінде қарастырады (бірақ ол жүйелік қақпандар).
Қақпандарды өңдеуші. Қақпан (trop) термині ол санашықпен қолданылатын механизм. Орындалып жатқан ағында үзу немесе нәтиже пайда болғанда ол басқаруды алып ОЖ-ң бекітілген нүктесіне басқаруды береді. WNT-де санашық басқаруды NT ядросындағы қақпандарды өңдеушіге береді. Бұл модуль коммутационды панельдің рөлін атқарады: ол санашық генерациялайтын үзулер мен нәтижелерді қабылдайды және басқаруды сәйкес жағдайды өңдейтін кодқа береді.
Қақпан өңдеушісі өзінің шақыру кезінде машинаның қалып-күйін саөтау үшін уақытша үзуге тыйим салады, өйткені егер жаңа үзу немесе нәтиже пайда болса, онда ақпараттар жоғалып кетер еді. Сол үшін ол қақпан кадырын құрады және оған үзілген ағынның орындалатын күйі жайында ақпаратты орналастырады. Үзу немесе нәтиже өңдеуді аяқталған соң бұл ақпарат ядроға ағынның әрі қарай орындалуына мүмкіндік береді.
Кейбір нәтиже өңдеуіш өзі шешеді, бірақ көбінесе ол пайда болған күйдің типін анықтап, оны ядроның басқа модуліне немесе жүйелік атқарушыға басқаруды береді.
Мысалы, егер үзу құрылғыдан болса, онда басқару үзуді өңдйтін процедураларына жібереді (interrupt service routine ISR). Егер үзу жүйелік қызмет көрсетуден пайда болса, онда өңдеуіш басқаруды NT жүйесінің жүйелік қызмет көрсету кодына жібереді.Бөлек нәтиже ядроның нәтижелер диспетчері арқылы өңделеді.
Үзуге үзу диспетчері жауап қайтарады. Ол үзудің көзін анықтап басқаруды сыртқы қызмет көрсететін процедуларға немесе ядроның ішкі процедураларына береді.
Үзудің типтері және пұрсаттылықтары. Әр түрлі санашық әр түрлі типті және әр түрлі мөлшер үзулерді анықтайды. ОЖ танитын үзу деңгейлерінің стандартты жинақысына үзу диспетчері, үзудің аппаратты деңгейлерін бейнелейді. Үзу деңгейлері үзуді пұрсаттылығымен бөледі. Ядролық режимде ағын өзі орындалып жатқан санашықтың үзу деңгейін көтеріп немесе төмендетуі мүмкін. Пұрсаттылық кезегі бойынша үзу қызмет етеді. Үзу жоғары пұрсаттылығымен төмен пұрсаттылықты үзудің орындалуын басып алады.
Үзу деңгейі
|
Үзу типтері
|
1. жоғарғы деңгей
2. қоректендіру деңгейі
3. санашықтық аралық деңгей
4. таймер деңгейі
5. санашық-құрылғысының деңгейі
6. 1-құрылғының деңгейі
7. диспетчерлі деңгей
8. процедураны асинхронды шақыру деңгейі
9.төменгі деңгей -құрылғының деңгейі
|
Аппараттық тексеру немесе құрсым қатесі
Қоректендірудің жаңылысуы
Басқа санашықтан сұраныс
Интервалды сұраныс
Пұрсаттылығы жоғары еңғізу-шығару құрылғысы
Пұрсаттылығы төмен еңгізу-шығару құрылғысы
Ағындарды жоспарлау және кейінге қалдырылған шақыру процедураларының өңделуі
Процедураларды асинхронды шақырудың өңделуі
Ағындардың кәдімгі орындалуы
|
1-ден 6-шы деңгейге дейін аппаратты үзуге арналған;
7-8 – программалық үзулер деңгейі (ядро генерациялайды);
9 деңгей төменгі деңгей – ол үзуге жатпайды.
Үзулерді орналастыру. Үзулер көбінде аппаратты еңгізу-шығару құрылғысынан болады, олар санашыққа өздеріне қызмет көрсету жайында хабар беруі керек. Үзулерді жасайтын құрылғылар, ОЖ-ге есептеу уақытын және еңгізу-шығару операциясын сәйкестендіру арқылы санашықты максимальды жүктеуді қамтамасыз етеді. Санашық құрылғыда еңгізу-шығару операциясын іске қосады және деректер тасымалданғанша басқа ағындарды орындайды. Координатты құрылғылар, баспа құрылғылары, тегергіштер, торапты карталар көбінесе үзуді жүзеге асырады.
Достарыңызбен бөлісу: |