Жүйедегі сұраныстарды орындау үшін базалық функцияларды қарастыру.
Негізгі функциялары:
Бағдарлама сұрауларын орындау (деректерді енгізу және шығару, басқа бағдарламаларды іске қосу және тоқтату, қосымша жадты бөлу және босату және т.б.).
Бағдарламаларды жедел жадқа жүктеу және оларды орындау.
Перифериялық құрылғыларға (енгізу-шығару құрылғылары) стандартталған қол жетімділік.
Жедел жадты басқару (процестер арасында бөлу, виртуалды жадты ұйымдастыру).
Белгілі бір файлдық жүйеде ұйымдастырылған тұрақты емес медиадағы (мысалы, қатты диск, оптикалық дискілер және т.б.) деректерге қол жеткізуді басқару.
Пайдаланушы интерфейсін қамтамасыз ету.
Жүйе қателері туралы ақпаратты сақтау.
Ағындарды құру кезінде, сондай – ақ процестерді құру кезінде ОЖ арнайы ақпараттық құрылымды-ағын идентификаторын, қол жеткізу құқықтары мен басымдықтары туралы деректерді, ағынның күйін және басқа ақпаратты қамтитын ағынды сипаттаушыны жасайды.
Ағын сипаттамасын екі бөлікке бөлуге болады: басқару блогының атрибуттары және ағын контексті. Көп ағынды жүйе жағдайында контексттік процестер жоқ екенін ескеріңіз, өйткені оларға процессор бөлінбейді.
Ағындар пакетін жүзеге асырудың екі әдісі бар:
- пайдаланушы кеңістігінде немесе пайдаланушы деңгейінде (user-level threads-ULT);
- ядрода немесе ядро деңгейінде (kernel-level threads - KLT).
Толығымен ULT ағындарынан тұратын бағдарламада барлық ағындарды басқару әрекеттерін қолданбаның өзі орындайды. Ағындар туралы Ядро ештеңе білмейді және қарапайым бір ағынды процестерді басқарады.
Бұл тәсілдің ең айқын артықшылығы-пайдаланушы деңгейіндегі ағындар пакетін ағындарды қолдамайтын ОЖ-де де жүзеге асыруға болады.
Егер ағындарды басқару пайдаланушы кеңістігінде орын алса, әр процесс өзінің ағындық кестесін қажет етеді. Бұл процестер кестесіне ұқсас, тек айырмашылығы бар, ол командалық есептегіш, стек шыңының көрсеткіші, күй регистрлері және т.б. сияқты ағындардың сипаттамаларын қадағалайды.
Әдепкі бойынша, бағдарлама өз жұмысының басында бір ағыннан тұрады және оны орындау сол ағынның орындалуы ретінде басталады. Мұндай қосымша оның құрамдас ағынымен бірге ядро басқаратын бір процесте орналастырылады.
Орындалатын ағын сол процесте орындалатын жаңа ағынды тудыруы мүмкін. Жаңа ағын ағындармен жұмыс істеуге арналған кітапханадан арнайы ішкі бағдарламаны шақыру арқылы жасалады. Бұл Бағдарламаны басқару тиісті процедураны шақыру нәтижесінде жүзеге асырылады.
Ағындармен жұмыс істеуге арналған ішкі бағдарламалар кітапханасы жаңа ағын үшін мәліметтер құрылымын жасайды, содан кейін басқаруды белгілі бір жоспарлау алгоритмін басшылыққа ала отырып, осы процестің дайын ағындарының біріне береді.
Бұл оқиғалардың барлығы бір процестің бөлігі ретінде пайдаланушы кеңістігінде орын алады. Ядро бұл қызмет туралы тіпті "білмейді" және процесті біртұтас тұтастық ретінде жоспарлауды жалғастырады және оған біртұтас орындалу күйін жатқызады.
|