59
Құрылғының драйвері құрылғыдан сұрауды қабылдайды және оны
қалай орындау керектігін шешеді. Типтік сұрау
nдеректер блоктарын
оқу болып табылады. Егер драйвер сұрау түскен кезде бос болса, онда
ол сұрауды дереу орындауды бастайды. Егер ол өзге сұрауға қызмет
көрсетумен бос болмаса, онда жаңа түскен сұрау кезекте бар
сұрауларға қосылады және ол оның кезегі келген кезде орындалады.
Енгізу-шығару сұрауын орындаудағы бірінші қадам, мысалы диск
үшін оны абстракті формадан нақты формаға қайта құрылудан тұрады.
Дискілік драйвер үшін блоктар нөмірлерін цилиндрлер, бастиектер,
секторлар нөмірлеріне қайта құрылуы, мотордың жұмыс істеуін,
бастиек қажетті цилиндрде тұрғанын тексеру болып табылады.
Осылайша, ол бақылаушының қандай операцияларын орындау және
қандай кезектіліктер орындау қажеттігін шешеді.
Бақылаушыға команда берілгеннен кейін драйвер берілген
операцияның соңына дейін өзін блоктау немесе блок жасамауды шешу
қажет. Егер операция кейбір деректер блогын басу кезінде белгілі бір
уақыт алса, онда драйвер операция аяқталып, үзіліс өңдеуші оны
блоктан шығарғанша, блокқа қойылады. Егер енгізу-шығару
командасы шұғыл орындалса (мысалы, экранды айналдыру), онда
драйвер оның аяқталуын блокқа қоймай күтеді.
Бүгін шалғай құрылғылардың және өзі ОЖ күрделілендірілуде,
сондықтан драйверлерді қолданудың көп деңгейлі схемасы талап
етілген. Осы схема бойынша аппаратура драйверлері және ОЖ қалған
бөлігінде жататын жоғары деңгейлі драйверлердің құрылуына жол
беріледі. Көп деңгейлі драйвер үзілістер блогын қамтымайдығ ол
жүйеден өтінімдерді қабылдайды, деректерді түрлендіреді, одан кейін
құрылғымен жұмыс жасау үшін төмен деңгейлі драйверді шақырады.
Мысалы, жоғары деңгейлі графикалық драйвер фигураларды салу, ішін
бояу құю, мәтін теру командаларын нақты принтер моделінің
командалар жиынтығына қайта құра алады, ал онымен байланысты
параллель портының драйвері осы командаларды принтерге берілуіне
жауап береді.
Достарыңызбен бөлісу: