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