жадының құрылысына шағылысатын адрестік кеңңістік - жадының адрестік кеңістігіне регистрлер шағылысады.
Кемшілігі
- жадыны кэштеу кезінде регистр құрылғылары да кэштелуі мүмкін
– жадыны барлық құрылғылар тексеру керек
аралас реализациялау - Pentium мен х86 қолданылады, 0-ден 64К порттқа апарады және 640 - тен 1М – ді буфердың астына сақтайды.
Регистр мен буферді бағыттайтын реализациялайтын бағыттары
Жадыға тікелей кіру мүмкіндігі DMA – контроллера арқылы іске асырылады.
Контроллер бірнеше регистрлер тізімін құрайды:
жадыдағы регистр адресі
байттардың счетшигі
бағыттауыш регистрлер мынаны құрайды:
- порттың құрылысын
- жазу және оқу
- тасымалдау бірліктері
Контроллерсіз келесілер болады :
Процессор команданы буфердегі мәләметтерді тегеріш контроллерге оқып шығуға тапсырады.
Буфердегі мәліметтер саналады,контроллер бақылау соммасын тексереді ( қателікке тексеру ). Процессор үзуге дейін басқа тапсырмаларға ауыстырылып қосылады .
Тегеріш контроллері үзуді ынталанады
Операциялық жүйе жұмысын бастайды және буферден еске түсіру мақсатымен салыстырып оқи алады.
DMA жұмыс контроллері
Контроллермен келесі болады :
Процессор контроллерді бағдарламалайды ( қандай мәліметтер бар және қайда орналастыруға болады )
Процессор команданы буфердегі мәліметтерді тегеріш контроллерге оқып шығуға береді.
Мәліметтер буферде салыстырылады ,контроллер тегеріші мәліметтегі бақылау соманы тексереді ,(үзуге дейін процессор басқа тапсырмаларға ауыстырылып қосылады ).
DMA контроллері тегеріш контроллерге оқуға сауалды жібереді
Тегеріш контроллері шинаға мәліметтерді жеткізіп береді , ал мекенжайы жадысы шинада орналасқан болады , мәліметтер жадыға жазылады.
Тегеріш контроллері DMA контроллеріне жазудың қашан аяқталғанын хабарлайды.
DMA контроллері қолданылатын адресті үлкейтеді және байттардың есепші мағынасы кемітеді
Барлығы 4-ші пунктен басталады, есепші мағынасы бірдей нольге тең болғанша қайталанады .
DMA контроллері үзуді ынталанады,
Операциялық жүйеге еске түсіру мақсатымен мәліметтерді жадыға көшіру керек емес , олар бірден сонда жазылады.
Енгізуді - шығару құрылғысы өз жұмысын бастағанда, процессор басқа жұмыстарға ауысып қосыла береді.
Жұмыс аяғысы туралы процессорға сигнал беру үшін, құрылғы үзуді инициализациялайды , сигналды бөлінген шина сызықтық құрылғысына көрсетіп ( ал бөлінбеген сым ).
Үзу контроллері - құрылғыдан түсетін үзулерге қызмет етеді .
Егер түзетілмеген үзулер болмаса, баяусыз үзу орындалады .
Егер түзетілмеген үзулер болса ,контроллер үзуді тоқтатады.Бірақ құрылғы шинадағы үзілісті түзетілгенге дейін сигнал ретінде дәлелдей береді.
Үзулердің жұмысы
Жұмыс алгоритмі :
Құрылғы үзу сигналын шығарып қояды
Үзулердің контроллері үзуді ынталанады , құрылғының нөмірін көрсетеді
Процессор процедураны шақыра үзу өңдеу жұмысын орындауды бастайды .
Бұл процедура үзулердің контроллеріне үзу алуын растайды
енгізуді - шығару бағдарламасының негізгі мақсаттын қамтамасыз етуіге тиісті есептері:
Құрылғыдан тәуелділіксіз - мысалы , файылдағы мәліметті оқитын кезде ненің ол оқиды деп ойланбау керек (CD ,HDD және ,басқа). Барлық проблемаларды операциялық жүйе шешу тиіс.
Біркелкі атаулар - файл аты немесе құрылғылар бір-бірінен бөлек болмау керек. (UNEX жүйелерінде сөзбе-сөз орындалады ).
Қателердің өңдеуі - қателер контроллер деңгейінде , драйвер және т.б. түрінде бола алады..
Мәліметтерді тасымалдау - синхронды және асинхрондық ( соңғы оқиғада процессор мәліметтерге тасымалдау жібереді , және үзуге дейін басқа мақсаттарға ауыстырылып қосылады ).
Буферлеу
бөлінгендердің ( принтер ) және бөлімегендердің ( тегеріш ) мәселесі тек пайдаланушының біреуіне қана принтер тиісті пайдалануына береді , ал тегеріш барлығына.Операциялық жүйе барлық мүмкін мәселелердің бәрін шешу керек.
енгізуді - шығару операцияларының үш негізгі мақсатын жүзеге асыру тәсілі :
енгізу – шығару бағдарламасы
енгізу - шығаруды үзулермен басқарару
DMA арқылы Енгізу – шығаруды қолдану
Оларды толық қарастырайық;
Бұл оқиғада бәрін жұмысты орталық процессор орындайды .
Мына тәсілмен ABCDEFGH жол процесін қарап шығамыз .
ABCDEFGH жолдарын баспаға шығару кезеңі
Баспаға шығару алгоритмі :
Баспаға шығару жолы пайдаланушы кеңістігінде жиналады .
Жүйелік шақырымға бұрыла отырып , процесс принтерді алады .
Жүйелік шақырымға бұрыла отырып , процес жолды принтерде ашуын сұрайды .
Операциялық жүйе жолды орналасқан түйін тәртібін массив түрінде көшіреді .
Операциялық жүйе жадта бейнеленген бірінші символды принтердің мәліметтер регистрына көшіреді .
Символ қағазда басылады .
Көрсеткіш келесі символды орналастырады.
Процессор принтер даярлық биті дайын болғанын күтеді.
Барлығы қайталана береді.
Принтер буферін қолдану кезінде , алдымен барлық жол буферге көшіріледі , осыдан кейін баспаға басу басталады .
Егер алдындағы үлгіде буфер қолданылмаса , ал принтер секундына 100 символ басса , онда әрбір символға 10 мс кетеді , бұл кезде принтердің даярлығын күтуде процессор уақытша тұрып қалады.
Сол үлгіні шамалы жетілдірумен қарастырайық .
Баспаға шығару алгоритмі :
8-ші пунктіге дейін барлығы солай болады.
Процессор принтер даярлығының күтпей басқа мақсатқа жоспарлаушыны шақырырады. Баспаға шығарылушы процесс блокталынады.
Принтер дайын болған кезде процессорге үзіліс береді.
Процессор баспаға шығарылушы адреске ауыстырылады.
Алдындағы әдістің жетіспеушілігі, ол әрбір символды баспаға шығару кезіндегі үзудің болуы.
Жұмыстың бәрін DMA контроллері орындайды, ал алгоритм сол қалпында қала береді.
Енгізуді - шығарудың төрт деңгейі бар :
Үзулер операциялық жүйелердің ең түпкір недрларында жасырылуы керек , оның бәрі операциялық жүйенің ең аз бөлігімен жұмыс істеу үшін.Ең бастысы енгізу - шығаруды бастаған драйверді блокироватьтау (қоршап) керек.
Алгоритм :
Драейвер енгізу - шығаруды операцияны бастайды .
down процедурасын семафорда орындаумен драейвер өз-өзін блокироватьтайды (қоршайды) .
- өзгергіште күй-жағдайда wait процедурасын орындап
- хабарлауда receive процедурасын орындауда
Үзу болады
Құрылғы драейвері - әрбір құрылғы үшін қажетті . Әр түрлі операциялық жүйелер үшін әр түрлі драейверлер керек .
Драейверлер түйін бөлімімен тиісті болу керек ( бүтін жүйеде ), контроллер тізімдеріне рұқсат алу үшін.
Бұл операциялық жүйелердің күйреуіне тудыратын негізгі себептердің бірі. Себебі драейверлер , ереже ретінде ,операциялық жүйеге қойылып құрылғылардың өндірушілерімен жазылады .
Драйверлердің құрылғыларда кисынды орналастыруы . Шын мәнінде айырбастау контроллерлер мен драейверлер арасында шинамен жүреді .
Драйвер операциялық жүйемен тұрақты интерфейс арқылы байланысу керек. Драейверді көмек көрсететін тұрақты интерфейстер :
Блоктық құрылғылар үшін
Символдық құрылғыларүшін
Достарыңызбен бөлісу: |