Құрылғылардың драйверлері

Главная » Рефераттар » Құрылғылардың драйверлері

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

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

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

.

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

Құрылғылардан тәуелсіз қабат үшін әдеттегі функциялар болып табылады:

құрылғылар драйверлеріне жалпы интерфейсті қамтамасыз ету;

құрылғылардың атын қою;

құрылғылардың қорғанышы;

блоктың тәуелсіз өлшемін қамтамасыз ету;

буферлеу;

блокбағытталған құрылғыларда жадыны тарату;

бөлінген құрылғылардың таратылуы және босатылуы;

қателер туралы хабарлау.

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

.

Файлды жасағанда немесе оны жаңа мөліметтермен толтырғанда оған жаңа блоктар бөлу керек. Ол үшін ОЖ дисктің бос блоктарының тізімін жүргізуі тиіс. Дискте бос орын бар деген ақпараттық негізінде құрылғыдан тәуелсіз және драйверлер қабатынан жоғары орналасқан бағдарламалық қабатпен жүзеге асырылатын бос блокты іздеу алгоритмі өңделуі мүмкін.

Енгізушығарудың бағдарламалық жасақтамасының көп бөлігі ОЖнің ішінде орналасса да, оның кейбір бөлігі пайдаланушылық бағдарламалармен байланысқан кітапханаларда болады. Енгізушығарудың шақыруларын қосатын жүйелік шақырулар өдетте кітапханалың процедуралармен жүзеге асырылады. Енгізушығарудың стандартты кітапханасы енгізушығаруды орындайтын және пайдаланушылық бағдарламаның бөлігі ретінде жұмыс істейтін процедуралардың үлкен санынан тұрады.

Енгізушығарудың бағдарламалық жасақтамасының басқа категориясы спулингтің ішкі жүйесі болып табылады. Спулинг  бұл мультибағдарламалық жүйеде бөлінген құрылғылармен жұмыс істеу тәсілі. Спулингті талап ететін қарапайым құрылғы  беттік принтерді қарас тырайық. Әрбір пайдаланушылық процеске принтермен байланысты арнайы файл ашуды рұқсат ету техникалық түрде жеңіл болса да, мұндай төсіл  қауіпті, себебі, пайдаланушылық процесс принтерді еркін уақытқа монополизациялай алады. Оның орнына арнайы процесс  осы құрылғыны пайдалануға ерекше құқықтары бар монитор жасалынады. Сонымен бірге спулингтің каталогы деп аталатын арнайы каталог жасалынады. Файлды басып шығару үшін пайдаланушылың процесс шығарыл атын ақпаратты осы файлға жөне спулинг каталогына орналастырады. Процессмонитор кезекпен спулинг каталогында болатын барлық файлдарды басып шығарады.