Пайдаланылған әдебиеттер 1. А. Б. Медешова, Д. Ғ. Ғадуллаев Компьютер архитектурасы: Оқулық. – Алматы: ЖШС РПБК «Дәуір», 2011
2. В. Яворский, А. Әміров. Операциялық жүйелер: Оқу құралы. - Астана: Фолиант, 2008
3. О Сейқұлов. Есептеуіш жүйелер, желілер және телекоммуникациялар: Оқу құралы. – Шымкент: «Нұрлы Бейне», 2012
4. Гук М. Аппаратные средства IBM PC Әнциклопедия – спб.:«Издательство Питер», 2011
25-Дәріс Тақырыбы: Енгізу және шығаруды басқару. Жоспар: Еркін және тізбекті қатынас құру тәсілдері
Енгізу-шығару – ол операциялық жүйенің жобалауының ең қиын аймақтарының бірі. Енгізу-шығару құрылғыларының көптігінен және олардың түрлі табиғаттарынан қиыншылықтар туады. Сондықтан операциялық жүйені тудырушылар арасында оңай есеп тұрған жоқ. Олар енгізу-шығару құрылғыларының тиімді басқаруы ғана емес қолданба программистер құрылғылардың түріне қарамастан деректерді оңай оқып, сақтау үшін ыңғайлы тиімді виртуальді интерфейсті құру қажет.
Бір модельге бірнеше түрлі құрылғыларды біріктіретін жүйелік енгізу-шығару әмбебап болу қажет. Біріншіден ол бар құрылғылардың қажеттіліктерін ескеру қажет. Екіншіден бірнеше параллель орындалып жатқан есептерге енгізу-шығару құрылғыларына қатынауды ескеру қажет.
Сондықтан ең негізгі болып келесі әдіс саналады: енгізу-шығаруды басқаратын операциялар привелегиялық деп аталады және операциялық жүйенің коды арқылы орындалады.
Қолданбалы программалар өздері енгізу-шығару құрылғыларымен тікелей байланысалмайды. Енгізу-шығару сұранысына керек мәндерді орнатып, енгізу-шығару супервизорына басқару беріледі.
Қордың негізгі түрлерінің бірі ол санашықтық уақыт. Есептеу жүйесіндегі қордың екінші түрі ол жады.
Жады және қатынау (деректерге қатынау үрдісі) олар әртүрлі қор болып саналады.Бұл қорлар бір бірінен бөлек қолданыла береді. Бірақ сыртқы жадының толық жұмысы орындалу үшін бұл қордың екеуі де керек. Тікелей қатынау механизмі қолданылса сыртқы құрылғылар параллельді бөлінуі мүмкін.
Бөлінетін құрылғыларға мысал келтірсек ол компакт-дискілерді оөитын құрылғы. Бұл тік қатынас құратын құрылғы.
Егер құрылғы тізбекті қатынау механизмі арқылы жұмыс жасайтын болса, онда ол қор бөлінбейтін қор, мысал келтірсек ол баспалар.
Ең қажетті қорлардың бірі ол программалық модуль. Программалық модульдер бір рет және бірнеше рет қолданылатын болып бөлінеді.
Жүйелік бір рет қолданылатын программалық модульдер ОЖ-е жүктелу кезінде қолданылады.
Бірнеше рет (қайталап) қолданылатын программалық модульдер привиллегиялық, привиллегиялық емес және реентеребельдік болуы мүмкін.
Привиллегиялық программалық модульдер привиллегиялық режимде жұмыс жасайды.
Енгізу-шығару сұраныстары нақты белгіленген бірнеше оңдеу этаптарынан өтеді. Бұл этаптарда сұраныс құрылғыға бірқатпарлы драйвер арқылы басқарылатыны немесе көпқатпарлы драйвер арқылы өтуіне байланысты айырмашылықтары бар. Әрі қарай айырмашылықтарды өңдеу кезінде берілген енгізу-шығару типі – синхронды немесе асинхронды бойынша белгіленеді. Мысалы екі үрдіс жалпы оперативті жадының кеңістігінде жұмысын орындайды. Бұнда бөлінетін қорлар әр түрлі режимдерде орындалуы мүмкін, мысал екі үрдіс екі бөлек машинада болса, бірақ олар жалпы оперативті жадының өрісімен байланысуы мүмкін. Бұл жағдайда жадымен буферлеу жұмысын атқарған кезде проблема түзелуі мүмкін, өйткені әр машинаның өзінің оқу/жазу буферлеу механизмдері болады. Онда жағымсыз жағдай туады, физикалық жадының жағдайы оның реалды мәніне сәйкес келмейді. Сонымен қатар екі бөлек машинада жұмыс жасап отырған операциялық жүйеде проблема түзеледі.
Келесі проблема. Мысалы, екі үрдіс бір машинада орындалады. Бұл жағдайда бөлінетін жадыға қатынауды синхрондауға мүмкіндік беретін құрылымдар белгіленуі керек. Оперативті жадымен жұмыс жасап жатқан үрдістердің алмасуы дұрыс орындалу үшін жағдай жасалуы керек.
Шындығында есеп шешкен уақытта жалпы жады сияқты қордың бөлінуінің қажеті жоқ, бірақ бір уақытта орындалатын үрдістер бір біріне әсер етсе дейміз. Әсер ету аппаратты үзуге тең. Көп операциялық жүйелер оны жүзеге асыру үшін үрдістер арасында сигналдар қолданылады. Бір үрдіс басқа үрдіске сигнал жібер деп нұсқау береді. Басқа үрдісте орындалып жатқан үрдіс үзіледі және қабылданған сигналды өңдеу қажет.
Бұл операциялық жүйенің үшінші функциясы. Операциялық жүйенің бұндай функциялары оның экплуатациялық қасиеттеріне әсер етеді. Реалды әр операциялық жүйе көп функциялар жиынынан тұрады, олар жүйенің жұмысын қамтамасыз етеді.
Әр операциялық жүйе енгізу-шығару буферлеуін қамтамасыз етеді. Негізінде ол операциялық жүйенің негізгі функцияларының бірі. Операциялық жүйе есептеу жүйесінің түрлі компоненттерінің әр түрлі қатынас жылдамдықтарымен құресу үшін программалық буферлеуді енгізеді, ол қатынасуақытын дұрыстау және синхрондау проблемаларын шешеді.
Магниттік дискідегі жинақтауышты компьютердің орталық бөлігінің шапшаңдығымен салыстырғанда жылдамдығы өте төмен. Шапшаңдығының айырмашылығы бірнеше рет. Операцияның орындалу уақыты 0,5н/с болуы мүмкін, ал магниттік бастиектің бір жолшығынан басқа жолшыққа өтуі бірнеше миллисекунд болады. Бастиектің астында оқу/жазу үшін қажет деректер секторын күтуге бірнеше уақыттық интервалы өтеді. Қазіргі жетектерді кездейсоқ таңдалған сектор деректерінің оқылуының орта ұзақтылығы 20мс болады. Бұл команда және операнд оперативті жадыдан және бүркемеден таңдалуынан әлдеқайда төмен. Бірақ, деректер үлкен пакетпен оқылады (сектор размері 512 байт, ал дискімен операциялары кезінде көбінесе оқу немесе жазу бірден бірнеше сектордан болады).
Сонымен санашықтың оперативті жадымен жұмысының орта жылдамдылығы деректерді сыртқы жадыдан магниттік дискіден оперативті жадыға жіберу орта жылдамдылығынан 2-3 рет жоғары. Осы негізгі бағыныңқы жүйелердің үлкен келіспеушілігін дұрыстау үшін деректерді бүркемелеу немесе буферлеу қолданылады.
Дерек оқу операцияларын дискідегі жылдамдатуы ол еселенген буферлеуді қолдану. Оның мәні ол бір буферге магниттік дискіден деректер енгізілсе, онда басқа буферден алдында оқылған деректер оқылуы және сұраған есепке берілуі мүмкін. Осындай үрдіс деректерді жазған уақытта да болады.
Буферлеу барлық ОЖ-де қолданылады. Бүркемелеу бір программа дискіден бірнеше рет бір деректерді оқыған кезде қажет және пайдалы. Ол деректер бүркемеге бір рет орналасқан соң дискіге қатынау керегі жоқ және программаның жұмыс жасау жылдамдылығы өседі. Бүркеме ретінде біз буферлер жиынын түсінеміз және оларды сәйкес жүйелік үрдісімен басқарамыз.
Егер біз файлдың жазулары бар бірнеше секторларды оқитын болсақ, онда ол деректер бүркемеден өтіп сонда қалады (бұл буферлерді басқа секторлар ауыстырғанша). Егер деректерді қайта оқу қажет болса онда олар оперативті жадыдан оқылады дискіге қатынамай-ақ жазу операцияларында жылдамдатуға болады. Деректер бүркемеге жазылады және бұл операцияны сұраған есеп сұранысы нақты жазылады деп санаса болады.
Есеп әрі қарай өзінің орындалуын жалғастырса болады, сыртқы жүйелік үрдістер бірнеше уақыттан соң деректерді дискіге жазады. Бұл операция кейінге қалдырылған жазба деп аталады. Егер кейінге қалдырылған жазба қолданбаса, онда тек бір есеп өзінің деректерін дискіге жазады, қалған қолданбалар өзінің кезегін күту керек.
Бүркеме жады-жадының шапшаңдық аймағы, санашық өңдеу алдында деректерді буферлеу үшін қолданылады.
Кейбір ОЖ-де бүркемелеу параметрлерін айқын көрсетуге болады, ал кейбір ОЖ-де бұл параметрлерге ОЖ өзі жауап береді. WNT ОЖ-де файлдық бүркеменің және бүркемелеу параметрлерінің мөлшерін айқын түрде басқаруға болмайды.
Win 95/98 ОЖ-де бұл мүмкіндік бар, бірақ тек қана нақтылы бүркемеге арналған жады мөлшерін және буфер мөлшерін көрсетуге болады. MS-DOS операциялық жүйесі жұмыс жасағанда компьютерді кез келген уақытта өшіруге болады, өйткені бұл жүйеде буферлеу жоқ. Unix және Windows операциялық жүйелерінде жұмыс уақытында машинені өшіруге болмайды, себебі бұл жағдайда ақпараттың жойылуы мүмкін. Буферлеу діңгейі жүйенің реалды тиімділігін анықтайды.
Бұдан басқа ОЖ бірнеше параллель орындалып жатқан есептердің сұраныстарын орындалуына байланысты бастиектің дерктерді оқуға/жазуға жылжытуын ұлғайту жұмысын атқарады. Деректерді магниттік дискіден алу уақыты, магниттік бастиектің керек цилиндрге жылжу уақытымен берілген секторды күту уақытынан қосылады. Сонымен уақыттың көбісі деректерді іздеуге кетеді.