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


Жұмыс түрі:  Материал
Тегін:  Антиплагиат
Көлемі: 5 бет
Таңдаулыға:   

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

Дәріс жоспары:

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. 3. Енгізу-шығаруды құрылғыдан тәуелсіз программалық камта-масыз ету.

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

1. 4. Құрылғы драйверлері үшін біртекті интерфейс.

Операциялық жүйенің негізгі сұрағы - барлық енгізу-шығару құрылғы-лары және драйверлерді мүмкіндігінше бірдей ету болып табылады. Бұл сұрақ кұрылғы драйверлері мен қалған операциялық жүйе арасындағы интерфейспен байланысты.

Бұл жағдайда жаңа драйвер орнату анағұрлым жеңілірек және ол шарт бойынша стандартты интерфейске келуі керек. Практикада барлық кұрылғылар абсолютті түрде бірдей емес, бірақ аз да болса, бір біріне ете ұқсас кұрылғылар типі кездеседі. Мысалы, блокты және символды құрылғылардың өзінде көптеген ортак функциялары бар. Біртекті интерфейстің басқа аспектісі, енгізу-шығару құрылғысының атауында, Құрылғыдан тәуелсіз профаммалық қамтамасыз ету сәйкес құрылғылардың символды бейнелеумен айналысады.

1. 5. Буферлеу.

Буферлеу, әртүрлі себептер бойынша, блокты және символды құрылғылар үшін маңызды сұрақ болып табылады. Модемнен деректерді оқығысы келетін процесті қарастырайық. Келіп түскен символдарды өңдеудің мүмкін стратегияларының бірі - пайдаланушы процесінің read жүйелік шақыртуына бет алғысы және жеке символды үзілімді шақырады. Үзілімді өндеу процедурасын символды пайдаланушы процеске береді және оны босатады. Алынған сигналды бір жерге орналастырып, процесс келесі символды оқиды да қайта тосқауылданады.

Мұндай тәсілдің кемшілігі пайдаланушы процесс әрбір символ келіп жеткен кезде активтенуі қажет, бұл тиімді емес.

Жақсартылған вариант: пайдаланушы процесті пайдаланушы кеңістігінде п символды өлшемдегі буфер десек, одан кейін п символдарда оқуды орындайды. Үзілімдерді өндеу процедурасы келген символдарды буфер толғанша орналастырады. Содан кейін ол пайдаланушы процесті активтендіреді. Мұндай схема алдыңғыға қарағанда тиімдірек.

1. 6. Жеке кұрылғыларды иемдену және босату.

Кейбір құрылғылар, мысалы, компакт-диск жазу кұрылғысын, әрбір уакыт моментінде тек бір пайдаланушы қолдана алады. Операциялық жұйе бұл кұрылғыны пайдалануға сұранымдары қарастыруы және оларды қабылдауы керек немесе сұралған құрылғыға катынауға байланысты, сұранысты орындаудан бас тартуы қажет. Бүл сұратуларды өңдеудін қарапайым әдісі процестерге осы құрылғылар үшін арнайы файлдарға катысты ореп жүйелік шақыртуға, тікелей хабарласуды талап ету болып саналады. Егер құрылғыға қатынау жок болса, ореп жуйелік шақырту табысты жүзеге асады. clоsе жүйелік шақыртуға хабарласу құрылғыны босатады.

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

1. 7. Құрылғыдан тәуелсіз блок өлшемі.

... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Операциялык жүйелер курсы
Аппараттық және программалық қамтамасыз етудің диалектикасы
Компьютерде мәліметтер қоры бойынша тест сұрақтарының қорын құрып, тестілеу программасын жасау
Алгоритмдеу және программалау
Arduino микроконтроллерін пайдаланып күн трекерін жасау
Мәліметтер базасының негізгі нысандары
Эксперттік жүйеге қолданылатын терминдер
Қашықтан оқытудың тиімділігі
Микроконтроллер құрылғысына арналған программалық қамтамасыз етуді әзірлеу
ИНФОРМАТИКАНЫ ОРТА МЕКТЕПТЕ ОҚЫТУДЫҢ ТЕОРИЯЛЫҚ-ӘДІСТЕМЕЛІК НЕГІЗДЕРІ
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz