Программалық модульдердің құрылымдық ұйымдастыру түрлері.

Құрылымды барлық программалық есеп кодтары орындалуға арналғанда келесі көрсетілген құрылымдардың бір варианты ретінде қарастыруға болады:

1. Қарапайым прграммалық құрылымдар. Бұл құрылымда барлық операторлар бөлінбейтін модуль ретінде жасалынады, орындалу алдында жадыға толық жүктеледі және іске қосылған соң басқа прграммалық модульдерге қатынамайды.

2. Оверлейлік құрылым. Бұл жағдайда программалық блок белгіленген модульдерге бөлінеді. Негізгілері түпкі деп аталады және қабысу модульдерін шақыру координациясын орындайды. Қабысу модульдері бір адресте орналасады және бір уақытта жадыда бір модульден артық модуль орналаспайды. Бұл құрылым сілтеме кестесі арқылы сипатталады. Онда рұқсат етілетін және ескерілмейтін сілтемелері анықталады. Ескерілмейтін сілтемелерде негізгі шақыруға болатын модульдер көрсетіледі, ал айыруда шақыруға болатын модульдер көрсетіледі. Түпкі модуль тұрақты жадыда орналасады және ол арқылы барлық жүктелетін модульдер орындалады. Бұл құрылым жады бойынша үнемді, бірақ егер ұйымдастыру дұрыс болмаса, онда шақырылған модульдерінің жүктелуіне көп уақыт кетеді.

3. Динамикалы тізбекті құрылымының ұйымдастырылуы.

Link және Load операторлары арқылы жүзеге асырылады. Бұл операторлар арқылы шақырылған модуль жадыда орналасқаны анықталады. Егер модуль жадыда орналасса, онда Link командасы басқаруды оған береді, ал егер команадасы болса онда модульге қатынау күтілуде. Бұл операторлардан басқа sare және return командалары қолданылады. Sare- шақырылған модульді тізбекті бастайды, ал return- модульді аяқтайды. Sare командасы арқылы үзу нүктесі сақталады, ал return сол нүктеге қайтуды ұйымдастырады.

Кемшілігі: Басқа модуль бір модульды шақыру кезінде жүктеуді күтуге уақыт кетеді. Бұл кемшілікті жою үшін динамикалы параллель құрылымы қолданылады, ол бағыныңқы есеп механизмы арқылы орындалады. Бұнда нақты үрдіс арнайы команда арқылы ағындарды немесе бағыныңқы есептерді құрады, олар фондық орындалуға арналған. Фон ретінде түсініктеме ол нақты үрдістің параллельді басқа бір берілген үрдіспен орындалуы.

Бұл жағдайда арнайы синхрондау операторлары қолданылады, олар құрылған ағынның үрдіспен әрекеттесу ережелерін анықтайды, мысалы, wait, post. операторлары. Одан басқа үрдістерді басқаруға программалық модульдерге қатынасу принциптері әсер етеді. Олар бірнеше типті болуы мумкін.

1) қайта-атқаратын программалық модуль

2) қайта-жүктелетін модуль.

3) Программалық модульдердің ұйымдастыруының реентерабельдік принципі.

Бұдан бір модуль әрқашан басқа модульдермен іске қосылуға дайын.

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

- базалық аймақ

- енгізу-шығару сұратулар аймағы

- құрылғыларға сұрату аймағы

- жазбаларды басқару аймағы

- жүйелік қызметке сұрату және оверлейлерге сұрату аймағы.

Базалық аймақ. Құрады:

- бұл аймақтың алғашқы мекені болып келетін үрдісті басқарудың блок мекені

- келесі басқару блогіна көрсеткіш (ағымды және келесі кезектерде)

- ағымды пұрсаттылық

- ағымды кезектің идентификаторы

- үрдісті туындайтын идентификатор

- қосарлана туындалатын жағдай коды

- ағымды жағдай статусы

- жағдай мәніне арналған уақытша буфер

- мәліметтер үрдісіне арналған жұмыс аймағы

- мәліметтерді басқарудың блок мекені (жұмыс кестесі)

- қорлар жәйлі мәліметтерге арналған уақытша буфер

- жүйелік қызметке қатынау кезінде қайтарылатын мәніне арналған уақытша буфер

Енгізу-шығару сұратулар аймағы . Құрылғы үрдісіне белгіленген және бекітілген сонымен қатар программаны орындау кезіндегі оларға туындайтын сұратулар жәйлі мәліметтер негізінде құрылады және енгізіледі.

Құрамы:

- арнайы басқарудың блок мекені

- файлды басқарудың блок мекені

- берілген сұратуға жіберілетін сөздер немесі байттар саны

- мәліметтердің қайда немесе қайдан берілетін жады мекені

- енгізу-шығаруға арналған буфер мекені

- мәліметтердің қайда немесе қайдан берілетін файл мекені

- жазба түріне көрсеткіш

Құрылғыға сұрату аймағы.Жинақтағыш тегергіштерге сұратуға қызмет көрсету үшін қажетті деректер жазылады.

Құрамы:

- файлдың аты бойынша енгізу-шығару программасы арқылы есептелінетін мәліметтердің физикалық мекені

- осы мекен мен байланысты жады мекені

- соңғы операцияның орындауы бойынша мәлімет

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

Жүйелік қызметке сұрату аймағы. Құрамы:

- үрдісті орналастыру жадысының картасы

- енгізу-шығару құрылғылары және үрдіс мәліметтерінің блогі арасындағы тура беру үшін арналған жады картасы

- оверлейлік аймақтар үшін арналған жұмыс кестесі.

Жады картасы ұғымына бөлектеніп берілген үрдіске байланысты жадының логикалық аймағы кіреді.

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

Үрдістің пайдаланушы мәнмәтіні деп үрдістің адрестік кеңістігінде орналасқан кодты және мәліметтерді түсінуге болады. Динамикалық бөлінген жадыда орналасқан (мысалы стандартты кітапханалық функциялар malloc, callloc және realloc) көмегімен барлық мәліметтер инициализацияланатын және өзгермейтін мәліметтерге (мысалы константалар), инициализацияланатын және өзгеретін мәліметтер (компилляция кезінде меншіктелетін барлық айнымалылар), инициализацияланбай өзгеретін мәліметтер (компилляция кезінде бастапқы мәндері меншіктелмеген барлық статикалық айнымалылар), қолданушы стегі және мәліметтерге бөлінеді.

Орындалмайтын код және инициализацияланатын мәліметтер программалар файлы құрамын құрайды, олар үрдістің мәнмәтінінде орындалады. Пайдаланушылар стегі қолданбалық режимдегі (user-mode) үрдістің жұмысы кезінде қолданылады.

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

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

Үрдістің мәнмәтіні пайдаланушы мәнмәтіні мен ядро мәнмәтінінен тұрады.

Сурет 1. Үрдіс мәнмәтінін құраушы.

Негізгі әдебиет 1 [151–156], 9[25-31], 3[19-41]

Қосымша әдебиет 13 [59-65], 11[104-116], 15[114-157]