136
6-бөлім
БАҒДАРЛАМАЛЫҚ
ҚАМСЫЗДАНДЫРУДЫ ІСКЕ
АСЫРУ САТЫСЫ
БАҒДАРЛАМАЛЫҚ
ҚАМСЫЗДАНДЫРУДЫҢ СӘУЛЕТІ
Бағдарламалық қамсыздандыру сәулеті - бұл өзара әрекеттесетін
қосалқы жүйелердің кейбір жиынтығынан тұратын жүйе ретіндегі
бағдарламалық қамсыздандырудың көрінісі.
Бағдарламалық қамсыздандырудың
сәулеті - бұл бағдарламаның
немесе
есептегіш
жүйенің
құрылымы,
ол
бағдарламалық
компоненттерді, осы компоненттердің сыртынан көрінетін қасиеттерін,
сондай-ақ олардың арасындағы байланысты қамтиды.
Сәулетті әзірлеу тәуелсіз компоненттерге қатысты бөліну принципі
іске асырылатын бағдарламалық өнімнің қиындығымен күресудің
бірінші сатысы болып табылады.
Бағдарламалық қамсыздандырудың сәулетін әзірлеудің негізгі
міндеттері:
■
бағдарламалық қосалқы жүйелерді бөлу және бағдарламалық
қамсыздандырудың сыртқы
функцияларын оларда көрсету (сыртқы
сипаттамаларымен берілген);
■
бөлінген бағдарламалық қосалқы жүйелердің арасындағы өзара
байланыс тәсілдерін анықтау.
Осы сатыда қабылданатын шешімдерді есепке ала отырып, бұдан әрі
нақтыландыру жүргізіледі және функционалдық сипаттамаларды
құрады.
Бағдарламалық жүйе
дербес орындалатын бағдарламалық кешенін
білдіреді, яғни осындай бағдарламалар жиынтығы:
■
осы
бағдарламалардың
кез
келгені
пайдаланушылармен
активтендірілуі мүмкін;
■ активтендірілген бағдарлама орындалған кезде осы жиынтықтағы
басқа бағдарламалар активтендірілген бағдарлама орындалуын
аяқтағанша активтендіріле алмайды;
■
бұл жиынтықтың барлық бағдарламалары осы не басқа ақпараттық
ортаға қолданылады.
137
Басқару бойынша осы жиынтықтың
бағдарламалары ешбір
байланыспайды - өзара әрекеттері олардың арасында жалпы ақпараттық
орта арқылы ғана жүзеге асырылады.
Көп қабатты сәулет жүйесі бағдарламалық қосалқы жүйелердің
бірыңғайландырылған қабаттарынан тұрады, олар:
■
әрбір қатпарында келесілердің қасиеттері туралы ештеңе белгілі
емес, біршама жоғары қатпарлары;
■
әрбір қатпары тікелей келесі компоненттерге келуі мүмкін, яғни
біршама төмен қатпары, алдын-ала анықталған интерфейс арқылы,
ол алдыңғы қатпарлардың барлығының ішкі құрылысы туралы
ештеңе білмейді. Бұл басқару жөніндегі өзара байланыс деп аталады;
■
әрбір қатпардың белгілі бір ресурстары бар, олар не басқа
қатпарлардан жасырады, не болмаса аталған интерфейс арқылы
келесі қатпарға олардың дерексіздендірілуінен алынады.
Көп қатпарлы сәулеті бар бағдарламалық жүйеде әрбір қатпар кейбір
деректер дерексіздігін жүзеге асыра алады.
Қатпарлар арасындағы
байланыс әрбір қатпардың келесі қатпарына келу параметрлерінің
мәнімен және төменгі қатпардан жоғарғыға оның нәтижелерін берумен
шектелген. Бірнеше қатпарлармен ауқымды деректерді қолдану мүмкін
емес.
Көп қатпарлы сәулет операциялық жүйелермен қолданылады:
төменгі қатпары аппаратураны, аралық - ядро, жоғарғы - бағдарламалар
мен қосымшаларды өңдейтін утилиттерді қолданады. Әрбір қатпар тек
аралас қатпарлармен өзара байланысуы мүмкін. Операциялық жүйе
осылай ұйымдасқан кезде тікелей аппаратурамен, ал ядро қатпары
арқылы тікелей өзара байланысуы мүмкін емес.
Көп қатпарлы тәсіл кез келген типтегі күрделі жүйелердің, оның
ішінде бағдарламалық жүйелердің декомпозициясының әмбебап және
ұтымды тәсілі болып табылады. Әрбір қатпары жоғарыда жатқан
қатпарға қызмет көрсетеді, ол үшін қатпараралық интерфейсін түзетін
функциялардың кейбір жиынтығын орындайды. Төмен жататын
қатпардың функцияларының негізінде келесі (иерархиясы
бойынша
жоғарыға) қатпары өз функцияларын құрады - біршама күрделі және
біршама қуатты, олар өз кезегінде, жоғары жатқан қатпардың біршама
қуатты функцияларын құру үшін қарапайым болады. Қатаң қадағалар
тек жүйенің қатпарлары арасындағы өзара байланысқа қатысты болады,
ал модульдердің арасындағы байланыс қатпарлары туынды болуы
мүмкін. Жеке модуль өз жұмысын жеке орындауы мүмкін немесе өз
қатпарының басқа модульдеріне жүгінеді, не болмаса қатпар аралық
интерфейсі арқылы төмен жатқан қатпарға жәрдемге жүгінеді.
Мұндай жүйені ұйымдастырудың көптеген артықшылықтары бар:
■
жүйені әзірлеу жеңілдейді, мысалы («жоғарыдан төменге»)
қатпарлардың функциялары мен қатпараралық интерфейстерінің
138
функцияларын анықтайды, ал содан
кейін егжей-тегжейлі іске
асырғанда «төменнен жоғарыға» қозғала отырып, функциялардың
біртіндеп азаюын анықтауға болады;
■
жүйе жаңғыртылған кезде модульдің басқа қатпарларда қандай да бір
өзгерістер жүргізу қажетсіз қатпардың ішіндегі модульдерді
интерфейстер күшінде қалады.
Параллель әрекет ететін бағдарламалардың ұжымы орындау
сатысында бір уақытта болатын өзара әрекет етуге қабілетті
бағдарламалардың жиынтығын білдіреді. Бұл бағдарламалар нені
білдіреді, біріншіден, жедел жадыға жүктелген, активтендірілген және
уақытпен бір немесе бірнеше орталық процестерді бөледі, ал екіншіден,
өзара динамикалық өзара байланысты жүзеге асырады, оның негізінде
синхрондау жүргізіледі. Әдетте, мұндай
процестер арасындағы өзара
байланыс бір-біріне кейбір хабарламаларды беру арқылы жүргізіледі.
Мұндай сәулеттің қарапайым түрі конвейер болып табылады, ол
UNIX
операциялық
жүйеде
орналасады.
Конвейер
UNIX
терминологиясында - бұл енгізу-шығару келесі қайта бағыттау
орындалатын көптеген кейбір процестері; ол алдыңғы процестің
стандартты шығу ағынына шығарады, келесі процестің стандартты
енгізу ағынына түседі. Басқаша айтқанда, конвейер бағдарламалардың
бірізділігін береді, мұнда стандартты шығу әрбір бағдарламаның, соңғы
кезектіден басқасы, осы бірізділіктің келесі бағдарламасының
стандартты енгізуімен байланысты.
Конвейер хабарламалардың кейбір ағынын өңдейді.
Осы ағынның
әрбір хабарламасы бірінші бағдарлама енгізуіне келіп түседі, ол оны
өңдеп, өңделген хабарламаны келесі бағдарламаға береді, ал өзі
ағынның кезекті хабарламасын өңдеуді бастайды.
Осылайша, конвейердің әрбір бағдарламасы әрекет етеді: алдыңғы
бағдарламадан хабарлама алып, оны өңдеп, ол өңделген хабарламаны
келесі
бағдарламаға береді, ал конвейердің соңғы бағдарламасы бүкіл
конвейердің жұмыс нәтижесін (нәтижелендіруші хабарламасын)
шығарады. Осылайша, n-бағдарламаларынан тұратын конвейерде бір
уақытта N-хабарламаларды өңдеуде болады.
Әрине, конвейердің әртүрлі бағдарламалары уақыттың кез келген
кесіндісінде кезекті хабарламаларға өңдеуге жұмсауы мүмкін, осы
процестердің синхрондауын қалай да қамтамасыз ету қажет. Кейбір
процестер күту сатысында болуы мүмкін, не болмаса өңделген
хабарламаны беру мүмкіндігі, не болмаса кезекті хабарламаны алу
мүмкіндігі.