16
өңделген есептердің кейбірін ішкі есте сақтау құрылғысына жіберу қажеттілігі туындайды. Қандай
алгоритм арқылы бұл есептерді жібере аламыз? Жіберудің бағыт- бағдары қандай болады? Мысалы әр
жұп есептерді жіберуге болады. Үрдістерді жіберуді ұйымдастырудың қайсысы тиімді – бұл негізгі
мәселе.
Үшіншіден – бөлінетін қорларды басқару. Қорлар жиынына қатынау белгілі бір уақытта әртүрлі
үрдістер атынан ұйымдастырылады. Бұл баспа құрылғысының коллизиясы сияқты.
Функциялар
көбінде ОЖ- нің қасиеттерін анықтайды, бұл функция үрдістердің қарым – қатынасын ұйымдастыруды
және ортақ қорларды қолдануды қастамассыз етеді. Мысалдағы баспа
құрылғысының мәселесі тез
шешіледі, ал егер екі программаның жедел жадыда ортақ фрагменті болса онда бөлінетін қорларды
басқару – күрделі есеп.
Енді ОЖ құрылымын қарастырайық. Тәжірибе жүзінде кез- келген ОЖ ядро ұғымына ие. ОЖ
ядросы – оның резидентті бөлігі болып табылады, ал жіберу үрдісіне қатыспайды (үнемі жедел
жадыда болады) және ОЖ режимінде жұмыс жасайды немесе супервизор режимінде. ОЖ- де негізінен
ядро құрамына басқарудың базалық құралы енгізілген және бірнеше физикалық құралдарды басқаруды
қамтамассыз ететін программалар жиынтығы енуі мүмкін. Ядроның негізгі қызметіне көбінесе үзуді
өңдеу кіреді. Біз программаларды кейде қорларды басқарушы, құрылғылар драйверлері (физикалық
және логикалық) деп атаймыз. Мысалға, ОЖ ядросына жедел есте сақтау құрылғысының драйвері
болуы қажет.
Сонан соң есептеу жүйесінің қорларын басқару программалары ядроның айналасында
жетілдіріледі. Бірінші деңгей негізінен физикалық құрылғылардың драйверлерінен тұрады. Келесі
деңгей логикалық құрылғыларды басқару. Осындай деңгейлер көп болуы мүмкін.
Мысалы біздің
сұлбада файлдарды басқару драйверлері пайда болуы мүмкін, олар логикалық дискті басқару
драйверлерімен байланысты, ал басқалары өз кезегінде нақты физикалық құрылғылар драйверімен
байланысты. т.с.с. ОЖ- нің барлық компоненттері супервизор режимінде және операциялық жүйе
режимінде жұмыс істеуі міндетті емес. Ядродан логикалық қашық орналасқан компоненттердің
көпшілігі қарапайым қолданбалы режимде жұмыс істей алады. Сол сияқты ОЖ-нің барлық
компоненттері резидентті режимде жұмыс істеуі міндетті емес. Функциялардың көпшілігіне бұл талап
етілмейді.
Программалық модульдердің құрылымдық ұйымдастыру түрлері.
Құрылымды барлық программалық есеп кодтары орындалуға арналғанда келесі көрсетілген
құрылымдардың бір варианты ретінде қарастыруға болады:
1. Қарапайым прграммалық құрылымдар. Бұл құрылымда барлық операторлар
бөлінбейтін модуль
ретінде жасалынады, орындалу алдында жадыға толық жүктеледі және іске қосылған соң басқа
прграммалық модульдерге қатынамайды.
2. Оверлейлік құрылым. Бұл жағдайда программалық блок белгіленген модульдерге бөлінеді.
Негізгілері түпкі деп аталады және қабысу модульдерін шақыру координациясын орындайды. Қабысу
модульдері бір адресте орналасады және бір уақытта жадыда бір модульден артық модуль
орналаспайды. Бұл құрылым сілтеме кестесі арқылы сипатталады. Онда рұқсат етілетін және
ескерілмейтін сілтемелері анықталады. Ескерілмейтін сілтемелерде негізгі шақыруға болатын
модульдер көрсетіледі, ал айыруда шақыруға болатын модульдер көрсетіледі. Түпкі модуль тұрақты
жадыда орналасады және ол арқылы барлық жүктелетін модульдер орындалады. Бұл құрылым жады
бойынша үнемді, бірақ егер ұйымдастыру дұрыс болмаса, онда шақырылған модульдерінің жүктелуіне
көп уақыт кетеді.
3. Динамикалы тізбекті құрылымының ұйымдастырылуы.
Link және Load операторлары арқылы жүзеге асырылады. Бұл операторлар арқылы шақырылған
модуль жадыда орналасқаны анықталады.
Егер модуль жадыда орналасса, онда Link командасы
басқаруды оған береді, ал егер команадасы болса онда модульге қатынау күтілуде.
Бұл операторлардан басқа sare және return командалары қолданылады.
Sare- шақырылған модульді тізбекті бастайды, ал return- модульді аяқтайды.
Sare командасы арқылы үзу нүктесі сақталады, ал return сол нүктеге қайтуды ұйымдастырады.
Кемшілігі: Басқа модуль бір модульды шақыру кезінде жүктеуді күтуге уақыт кетеді.
Бұл кемшілікті жою үшін динамикалы параллель құрылымы қолданылады, ол бағыныңқы есеп
механизмы арқылы орындалады.
Бұнда нақты үрдіс арнайы команда арқылы ағындарды немесе бағыныңқы есептерді құрады, олар
фондық орындалуға арналған.
17
Фон ретінде түсініктеме ол нақты үрдістің параллельді басқа бір берілген үрдіспен орындалуы.
Бұл жағдайда арнайы синхрондау операторлары қолданылады, олар құрылған ағынның үрдіспен
әрекеттесу ережелерін анықтайды, мысалы, wait, post. операторлары. Одан басқа үрдістерді басқаруға
программалық модульдерге қатынасу принциптері әсер етеді. Олар бірнеше типті болуы мумкін.
1) қайта-атқаратын программалық модуль
2) қайта-жүктелетін модуль.
3) Программалық модульдердің ұйымдастыруының реентерабельдік принципі.
Бұдан бір модуль әрқашан басқа модульдермен іске қосылуға дайын.
Үрдістің өмір кезеңінің бірінші қадамы болып үрдісті құру және жүйелік кезекке үрдіс туралы
мәліметтің орналастырылуы. Үрдісті көрсету кезінде ол туралы негізгі мәліметтер дерекқоры
құрылады. Бұл деректер кесте түрінде толтырылады, оның кейде үрдісті басқару блогі деп те атайды.
Құрудың бірінші қадамы болып алғашқы мекені бар үрдісті басқару блогінің бөлінуі
және осы блокті
барлық үрдістер кезегі болып табылады. Содан соң үрдісті бейнелейтін қажетті мәліметтер
анықталады. Оларда стандартталған және олардың ішінде кейбіреулері екілік разрядқа дейін
тереңдетіле пішімделген. Үрдіс туралы барлық санаттарды келесі мәліметтер жиынтығынан көруге
болады:
- базалық аймақ
- енгізу-шығару сұратулар аймағы
- құрылғыларға сұрату аймағы
- жазбаларды басқару аймағы
- жүйелік қызметке сұрату және оверлейлерге сұрату аймағы.
Базалық аймақ. Құрады:
- бұл аймақтың алғашқы мекені болып келетін үрдісті басқарудың блок мекені
- келесі басқару блогіна көрсеткіш (ағымды және келесі кезектерде)
- ағымды пұрсаттылық
- ағымды кезектің идентификаторы
- үрдісті туындайтын
идентификатор
- қосарлана туындалатын жағдай коды
- ағымды жағдай статусы
- жағдай мәніне арналған уақытша буфер
- мәліметтер үрдісіне арналған жұмыс аймағы
- мәліметтерді басқарудың блок мекені (жұмыс кестесі)
- қорлар жәйлі мәліметтерге арналған уақытша буфер
- жүйелік қызметке қатынау кезінде қайтарылатын мәніне арналған уақытша буфер
Енгізу-шығару сұратулар аймағы . Құрылғы үрдісіне белгіленген және бекітілген сонымен қатар
программаны орындау кезіндегі оларға туындайтын сұратулар жәйлі мәліметтер негізінде құрылады
және енгізіледі.
Құрамы:
- арнайы басқарудың блок мекені
- файлды басқарудың блок мекені
- берілген сұратуға жіберілетін
сөздер немесі байттар саны
- мәліметтердің қайда немесе қайдан берілетін жады мекені
- енгізу-шығаруға арналған буфер мекені
- мәліметтердің қайда немесе қайдан берілетін файл мекені
- жазба түріне көрсеткіш
Құрылғыға сұрату аймағы. Жинақтағыш тегергіштерге сұратуға қызмет көрсету үшін қажетті
деректер жазылады.
Құрамы:
- файлдың аты бойынша енгізу-шығару программасы арқылы есептелінетін мәліметтердің
физикалық мекені
- осы мекен мен байланысты жады мекені
- соңғы операцияның орындауы бойынша мәлімет
Жазбаларды басқару аймағы. Бұғаттау ережесі және
жазбалар бойынша блоктардың
мекендетілуін бейнелейді, сонымен қатар бір жазбаға бірнеше рет қатынау кезіндегі үрдістерді
бұғаттау ережесін алдын ала жазу.
18
Жүйелік қызметке сұрату аймағы. Құрамы:
- үрдісті орналастыру жадысының картасы
- енгізу-шығару құрылғылары және үрдіс мәліметтерінің блогі арасындағы тура беру үшін
арналған жады картасы
-
оверлейлік аймақтар үшін арналған жұмыс кестесі.
Жады картасы ұғымына бөлектеніп берілген үрдіске байланысты жадының логикалық аймағы
кіреді.
Достарыңызбен бөлісу: