Ақпараттық жүйелер және есептеу техникасы» кафедрасы «операциялық ЖҮйелер» ПӘнінің студенттерге арналған оқУ Әдістемелік кешені көкшетау


-20 Дәріс. Енгізу-шығарудың программалық денгейі



бет37/82
Дата23.12.2022
өлшемі3,34 Mb.
#164079
1   ...   33   34   35   36   37   38   39   40   ...   82
Байланысты:
УМК ОЖ ИС (1)[1]
31-БИЛЕТ
19-20 Дәріс. Енгізу-шығарудың программалық денгейі
Дәріс жоспары:
1. Енгізу-шығарудың программалық денгейі.
1.1. Үзілімдерді өңдеушілер
1.2. Құрылғы драйверлері
1.3. Енгізу-шығаруды құрылғыдан тәуелсіз программалық камтамасыз ету.
1.4. Құрылғы драйверлері үшін біртекті интерфейс
1.5. Буферлеу
1.6. Жеке кұрылғыларды иемдену және босату
1.7. Құрылғыдан тәуелсіз блок өлшемі
2.Пайдаланушы кеңістігіндегі енгізу-шығаруды программалық қамтамасыз ету.
Енгізу-шығаруды программалық қамтамасыз етуі, төрт деңгей түрінде ұйымдастырылады, әрбір деңгейдің өзінің орындайтын айқындалған нақты функциясы және көрші деңгейлермен қатаң түрде белгілі интерфейсі болады. Деңгейлердің функциялары мен интерфейстері, бір операциялық жүйеден екіншісіне ауысады, сондықтан төменнен бастап барлық деңгейлерді тізбекті қарастыру, қандай да бір нақты машина үшін спецификалық түрде болмайды.
1.1. Үзілімдерді өңдеушілер.
Операциялық жүйеде үзілімдер жасырын болуы керек. Ең дұрыс әдіс енгізу-шығару операциясынан бастап, осы операция аякталғанша және үзілімдерді алғанша драйверді тосқауылдау болып табылады. Драйвер семафорада down процедурасын, айнымалы күйде wait процедурасын, хабарландыруда receive процедурасын орындау арқылы өзін өзі тосқауылдай алады.
Үзілім болған кезде, үзілімдерді өндеуші жұмысын бастайды. Қажетті жұмысты аяқтаған соң, ол оны іске қосқан драйверді тосқауылдай алады. Кейбір жағдайда семафорада ир процедурасын орындау пайдаланылады.
Басқаша жағдайда үзілімдерді өндеуші айнымалы күйден монитордың signal процедурасын шақырады. Үшінші жағдайда ол тосқауылданған драйверге хабарландыру жібереді. Кез келген жағдайда драйверді үзілімдер өндеушісі босатады. Бұл схема ядроның өз күйімен, стекімен және командалар санауышымен процестері болып табылатын драйверлерде жақсы жұмыс істейді.
1.2. Құрылғы драйверлері.
Әрбір контроллерда басқарылатын кұрылғыға команда беру және кұрылғының күйін оқу үшін қолданылатын регистрлер жинағы бар. Құрылғыға берілетін мұндай регистрлер мен командалар саны нақты құ-рылғыдан тәуелді. Мысалы, диск драйвері, секторлар, жолшықтар, цилиндрлер, бастиектер оларды жылжыту және орнату уақыты, двигатель және дискіңің, дұрыс жұмыс істеуі үшін қажетгі тағы да басқа заттар туралы білуге тиіс. Дискі мен тышқан драйверлері қатты ерекшеленеді.
Сондықтан, компьютерге қосылған енгізу-шығарудың әрбір құрылғысын басқару үшін арнайы программа талап етіледі. Құрылғы драйвері деп аталатын бұл программа, негізінен құрылғыны өндіруші адаммен жазылады және құрылығымен бірге таратылады.
Әрбір операциялық жүйеге арнайы драйверлер қажет болғандықтан, қондырғыны жасаушылар драйверлерді бірнеше көбірек танымал операциялық жүйелер үшін қояды.
Құрылғы аппараттың бөлігіне, яғни контроллердің регистрлеріне қатысу үшін, кұрылғы драйвері тым болмағанда, бүгінгі күннің архитектурасында бар операциялық жүйе ядросының бөлігі болу керек. Қазіргі заманғы операциялық жүйелер драйверлердің ядродағы жұмысына дұрыс қарайды, біз мұнда осындай модельді қарастырамыз.
Операциялық жүйеге басқа программистермен жазылған программалар бөліктері (драйверлер) орналатындықтан, орнатуды жүзеге асыратын белгілі архитектура қажет. Бүл драйвер функцияларының және оның қалған операциялық жүйемен әрекеттесуінің қатаң түрдегі белгілі бір моделі жасалыну қажеттігін көрсетеді. Құрылғы драйверлері әдетте қалған операциялық жүйеге бағыныңкы түрде орналасады.
Құрылғы драйверінің бірнеше функциясы бар. Драйвердің анағүрлым көрнекті функциясы - программалық қамтамасыз ету құрылығысынан тәуелсіз оқу мен жазудың абстрактты сұратуын өңдеу. Бұдан басқа олар тағы бірнеше функциялар атқарады. Мысалы, драйвер қажет болған жағдайда құрылғыны инициализациялау керек. Оған сондай-ақ қүрылғының энергия қажеттілігін және оқиғаны тіркеуді басқару керек болады.
Көптеген кұрылғы драйверлері ұксаса ортақ құрылымға ие. Типті драйвер кірісті параметрлерді тексеруден бастайды. Егер олар белігілі бір критерийлерді қанағаттандырмаса, драйвер қатені қайтып кайтарады. Керісінше жағдайда драйвер абстрактылы терминдерді нақтыға түрлендіреді. Мысалы, дискілі драйвер блоктың сызықты нөмірін бастиек, жолшының және сектордың нөміріне түрлендіре алады.
Содан соң драйвер бұл құрылғы, дәл осы моментте қолданылғанын тексере алады. Егер құрылғы бос болмаса, сұраныс кезекке қойылады. Егер кұрылғы бос болса, сұраныс қазір орындалатының түсіну үшін, құрылғының аппаратты статусы тексеріледі. Деректердің тасымалы басталмас бұрын құрылғыны қосу немесе двигательді іске қосу қажет болуы мүмкін. Құрылғы іске қосылып және дайын болысымен, құрылғышы өзіндік басқару басталады. Құрылғыны басқару дегеніміз оған командалар сериясын беру болып табылады. Драйверде не істеу керектігінен тәуелді түрде командалардың тізбектері анықталады. Командаларды анықтап болған соң, драйвер оларды құрылғының контроллер регистрлеріне жазуды бастайды.
Драйвер барлық командаларды контроллерге беріп болған соң жағдай екі сценарий бойынша дамуы мүмкін. Көп жағдайда кұрылғы драйвері,
контроллер үшін белгілі жұмысты орындағанша күтуі қажет, драйвер тосқауылдап қалады. Басқаша жағдайда операция кідіріссіз аяқталады және драйвер тосқауылдамайды.


Достарыңызбен бөлісу:
1   ...   33   34   35   36   37   38   39   40   ...   82




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет