Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lektsii_SPO_kaz_1.docx
Скачиваний:
71
Добавлен:
18.02.2016
Размер:
1.35 Mб
Скачать

Тақырып 1. Ресурс, үрдіс, модульдік принциптері және сәйкестілік ұғымы

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

Кілттік сөздер: үрдіс, үрдістің дескрипторы, үрдістің контексі, ресурс, Критикалық секция, семаофра, көпжолды өңдеу, модульдік принцип, виртуалдау принципі, үйлесімділік принципі, мобильдік принципі

Дәріс жоспары (1 сағат)

  1. Басымдылықтар. Үрдістер арасында ресурстарды үлестіру стратегиясы.

  2. Үрдістер диспетчерленуі. Виртуалды машина концепциясы.

  3. Есептеуіш ресурстарды басқару тұрғысынан операциялық жүйелердің (ОЖ) тағайындалуы және құрамы. UNIX және Windows NT операциялық жүйелерінде басқаруды ұйымдастыру.

  4. Көптапсырмалы ортада есептеуіш жұмыстардың кезектілігіне қызмет көрсетуді ұйымдастыру.

  5. Жұмыстарды басқару жүйесі.

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

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

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

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

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

  1. Осы үрдісті, яғни оның дескрипторын және контексті суреттейтін ақпараттық құрылымдар құру;

  2. Жаңа үрдіс дескрипторын дайын үрдістер кезегіне қосу;

  3. Үрдістің кодтық сегментін оперативті жадыға немесе свопинг аумағына қосу.

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

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

Осы мақсатта қазіргі ОЖ өз механизмі, көпжіптік тазартқыштағы стек ақпараттық есептегіші болады. (multithreading). Бұл орайда «жіп» немесе «лек» ұғымы енгізіеді.

Лектерді жеңілдетілген үрдістер деп те айтады. Олар бір күйден екінші күйге ауыса алады. Мына күйлердің біреуінде бола алады: ОРЫНДАЛУЫ, КҮТУ және ДАЙЫН БОЛУ. Бір лек блокта болса, сол үрдістің басқа легі орындала береді.

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

Сонымен, лектердің өз ақпараттық есептегіші, регистрі, лектер-ұрпақтар, күйлері болады.

Лектер адрестік кеңістікті, ашық файлдарды, таймерлерді, семафорларды, статистикалық ақпаратты бөледі.

Үрдістер мен лектерді құру мен басқару үшін Win32 функциялары

Жаңа қосымшаны іске қосу үшін жаңа үрдіс құру керек. Ол үшін Win32 функцияларын пайдалану қажет.

  • WinExec ( 'путь\имя_приложения параметры_командной_строки', 1) – ашық терезеде іске қосу.

  • CreateProcess() – үрдіс құру

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

Үрдісті аяқтау үшін ExitProcess() и TerminateProcess функциялары пайдаланылады. Үрдістің орындалуын басқару үшін мына функциялар қолданылады.

  • GetCurrentProcess() – ағымдық үрдісті сипатын алу

  • SetPriorityClass() – үрдіс приоритет класын өзгерті.

Лекті құруға CreateThread функциясы қызмет етеді, лекті аяқтауға ExitThread және TerminateThread функциялары қызмет етеді..

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]