53
енгізу-шығарумен байланысты жағдайлардың басталуы туралы ОЖ
ядросын хабардар етеді.
Драйвер келесідей
функцияларды орындайды:
■
шалғай құрылғының бақылаушысының интерфейсін басқару;
■
супервизор арқылы берілетін үзілістерді өңдеу;
■
қателіктерді табу және өңдеу.
Әр драйвер бір типтегі немесе бір сыныптағы құрылғыларды
басқарады. Операциялық жүйеде құрылғының драйвері ғана қандай да бір
құрылғының нақты артықшылықтары туралы біледі. Мысалы, дискінің
драйвері
ғана
бастиекті
орнату
жолдарымен,
секторларымен,
цилиндрлерімен, уақытымен және дискінің дұрыс жұмысын қамтамасыз
ететін өзге факторлармен әстей алады.
Драйверлер шалғай құрылғыларымен үш негізгі тәсіл арқылы жұмыс
істей алады:
1) дайындық сұрауы бойынша;
2) үзілістер бойынша;
3) жадыға тікелей қолжеткізілім бойынша.
Дайындық сұрауы бойынша драйвер келесідей іс-қимылды орындайды:
■
құрылғыдан тоқтатылуына рұқсат етпейді және құрылғыдағы
операцияға бастамашылық етеді;
■
күту жағдайына ауысады;
■
операциялардың аяқталуын циклдық тұрғысынан тексереді;
■
соғыстың аяқталуын тосып, орындау кезінде қателіктердің болмауын
тексереді, үзілістерді шешеді және басқаруды тоқтатылғын процеске
қайтарады.
Дайындық сұрауы бойынша ілеспелі енгізу-шығару іске асырылады,
оның кезінде ақпаратты өңдеу және тарату арасында параллельділік жоқ.
Драйверлердің осындай жұмысы бір бағдарламалық бір
пайдаланушылық
ОЖ
қолданылады.
Құндылығы
–
2.4-сурет. Драйвердің
құрылымы
55
функциялардың
жұмысын
қамтамасыз
ету
үшін
диспетчариязациялау рәсімінің міндетті жиынтығы. Осы рәсімдер
енгізу-шығару диспетчерімен жасалады және енгізу-шығару сұрау
пакетінің параметрлері ретінде алады.
3.
Деректерді физикалық құрылғыға
енгізу-шығарылуына
бастамашылық жасайтын міндетті емес іске қосу рәсімі.
4.
Үзіліске міндетті емес қызмет көрсету рәсімі. Физикалық
құрылғылармен өзара әрекет жасайтын драйверлермен қолданылуы
мүмкін.
5.
Енгізу-шығару диспетчерімен жасалатын (хабарлама жасау
тетігі ретінде) міндетті емес аяқтау рәсімі, анағұрлым деңгейі төмен
драйвер енгізу-шығару сұрау пакетінің өңделуін аяқтайды. Енгізу-
шығарудың
барлық
операциясы
асинхрондық
ретінде
өңделгендіктен, аяқталу рәсімі жиі, әсіресе, жоғары деңгейлі
драйверлерде қолданылады.
6.
Драйверді түсіру үшін
енгізу-шығару диспетчерімен
жасалатын міндетті түсіру рәсімі.
7.
Жүйеден үзіп тастау туралы міндетті хабарлама жасау рәсімі,
пайдаланушы жүйенің жұмысын аяқтау туралы сұраумен
жүгінгенде,
енгізу-шығару диспетчері драйверді жұмысты тез
аяқтау қажеттілігі туралы хабарлама жасау үшін жасайды.
8.
Қателіктерді міндетті емес хаттама жасау рәсімі.
Енгізу-
шығару сұрау пакетін өңдеу драйвердің құрылымына және пакетте
енгізу-шығаруды сұрауына қарай түрлі тәсілдермен драйвермен
жасалады. Драйвердің жұмыс жасау түрлері:
■
сұратылған
операцияны
орындау
және
IRP(ағылшын
тіліненI/Orequestpacket, қосымшалар мен драйверлер, сондай-ақ
драйвер және драйвер арасында деректермен алмасуды
қамтамасыз ететін Windowsядросы деректерінің құрылымы)
өңделуін аяқтау;
■
операция элементін орындау және анағұрлым деңгейі төмен
драйверге
IRP беру;
■
анағұрлым
деңгейі төмен драйверге
IRP
қарапайым беру;
■
IRP бір пакетін алуға жауап ретінде
анағұрлым деңгейі төмен
драйвер үшін
IRP бірнеше пакеттерін генерациялау. Мысалы,
NTFS драйверінен келіп түскен файлды ашу туралы сұрауға
жауап ретінде драйвер қажетті файл орналасқан каталог пен
бағыныңқы каталогтар іздеу үшін метадеректер файлын
есептеуді талап етуі мүмкін.
Достарыңызбен бөлісу: