drivere de dispozitiv, calculator
Controlerul fiecărui dispozitiv are un set de registre utilizate pentru a da comenzi de dispozitive controlate și citiți starea dispozitivului. Numărul acestor registre și emite comenzi depind de dispozitivul respectiv. De exemplu, programul de control al mouse-ului ar trebui să primească de la informațiile mouse-ul pe cât de mult a deplasat pe orizontală și pe verticală, precum și butonul mouse-ului. program de management al discului trebuie să știe despre sectoare, piese, cilindri, capete, deplasându-le și setați timpul, motoarele și astfel de lucruri necesare pentru a conduce vehicule pentru a funcționa corect. Este evident că gestionarea programului va varia foarte mult. Un astfel de program de control al fiecărui dispozitiv IO conectat la un computer, numit un driver de dispozitiv. Acesta este de obicei scris
producător și distribuit împreună cu dispozitivul. Deoarece fiecare sistem de operare necesită drivere speciale, producătorii de dispozitive furnizează în mod obișnuit drivere pentru mai multe dintre cele mai populare sisteme de operare.
Fiecare driver de dispozitiv acceptă un singur tip de dispozitiv, sau o familie maximă clasă de dispozitive. De exemplu, driverul de disc poate suporta o varietate de roți, diferite dimensiuni și viteze. Cu toate acestea, mouse-ul și joystick-ul diferă atât de mult încât, de obicei, nevoie de drivere diferite.
Pentru a obține acces la dispozitivul hardware, de exemplu, la controler înregistrează un driver de dispozitiv pentru a face parte din nucleul sistemului de operare. Dar este posibil să se creeze și conducător auto care rulează în spațiul de utilizare. Acest lucru ar permite izolirovatyadro conducătorilor auto și a conducătorilor auto de la unul pe altul. Astfel, principalul motiv pentru sistemele de operare de avarie ar fi eliminate: conducătorii auto care conțin erori, cu care se confruntă miezul sau în alt mod. Dar, pentru că sistemele de operare moderne își asumă un loc de muncă în driverele de kernel, ia în considerare un astfel de model.
Deoarece sistemul de operare care urmează să fie instalate driverele de la alți furnizori au nevoie de arhitectura admite o setare similară. Acest lucru înseamnă că ar trebui să fie dezvoltate strict
anumit model de funcții de comandă și interacțiunea sa cu restul sistemului de operare. Driverele de dispozitiv sunt de obicei situate sub restul sistemului de operare.
În cele mai multe sisteme de operare, două interfețe standard sunt definite, dintre care unul trebuie să mențină toate driverele bloc, iar al doilea - toate driverele de caractere. Aceste interfețe includ seturi de rutine care pot fi numite restul sistemului de operare pentru a accesa driver-ul. Aceste proceduri includ, de exemplu, blocul de citire sau scriere procedură a șirului de caractere.
Unele sisteme de operare sunt de program binar care conține toate driverele necesare. O astfel de schemă de mai mulți ani a fost norma pentru UNIX. deoarece acestea sunt destinate utilizării în centrele de date, în cazul în care dispozitivul de intrare se schimbă foarte rar deduce. La adăugarea unui nou administrator de sistem, pur și simplu dispozitiv recompilați kernel-ul cu noul driver pentru a obține un nou modul binar.
Odată cu apariția calculatoarelor personale, cu mare varietate lor de dispozitive de intrare și de ieșire, acest model a încetat să mai funcționeze. Nu toți utilizatorii pot compila în mod independent, o recompilare de kernel, și chiar dacă există un cod sursă sau module obiect. Prin urmare, sistemul de operare, de la MS - DOS. sa mutat la un model de drivere dinamice podgruzki. Diferite sisteme de a efectua această procedură în mod diferit.
Driverul de dispozitiv are mai multe funcții:
1) tratarea abstract citească și să scrie cereri, indiferent de dispozitiv și software-ul aflat deasupra lor;
2) inițializarea dispozitivului;
3) Consumul de alimentare al dispozitivului de comandă și înregistrarea evenimentului;
4) verificarea parametrilor de intrare. În cazul în care nu îndeplinesc anumite criterii, conducătorul auto returnează o eroare. În caz contrar, conducătorul auto convertește abstract în termeni concreți. De exemplu, driverul de disc poate converti numărul liniar al blocului în numărul capului, urmări și sectoare;
5), prin utilizarea dispozitivului în acest moment. Dacă dispozitivul este ocupat, cererea poate fi pusă în așteptare. În cazul în care dispozitivul este liber, verificată starea sa. Poate fi necesar
porniți dispozitivul sau porniți motorul înainte de a începe transferul de date. Când dispozitivul gata poate începe controlul efectiv al dispozitivului.
Device Management implică eliberarea unei serii de comenzi. Este în driver-ul și a determinat secvența de comenzi în funcție de ceea ce trebuie făcut. După ce a definit comenzile, conducătorul auto începe să le ardă în registrele dispozitivului controlerului. Unele controlere pot primi comenzi liste, care sunt legate în memorie. Ei citesc si sa le execute, fără asistență suplimentară a sistemului de operare.
După ce șoferul a predat toate comenzile de controler, situația se poate dezvolta în două scenarii. În multe cazuri, driverul de dispozitiv trebuie să aștepte până când operatorul nu efectuează o anumită muncă pentru el, așa că este închis până la încetarea dispozitivului său deblochează. În alte cazuri, operația este finalizată fără întârziere, iar șoferul nu trebuie să fie blocate. De exemplu, pentru a defila pe ecran în modul de caractere ar trebui să fie scrise doar câțiva octeți în registrele controlerului. Întreaga operațiune durează doar câteva nanosecunde.
Conducătorii auto nu au voie să acceseze apelurile de sistem, dar de multe ori au nevoie pentru a interacționa cu restul miezului. Pentru a face acest lucru, conducătorii auto pot provoca unele proceduri de sistem, de exemplu, oferindu-le cu pagini de memorie fixe de hardware ca tampoane, precum și pentru returnarea acestor pagini înapoi la kernel-ul. În plus, șoferii se bucură de provocările care guvernează controler de memorie, temporizator, controler de DMA. controler de întreruperi și m. p.
Cum să se asigure că toate dispozitivul de intrare și șoferul se uită deduce aproximativ la fel? Dacă drive-urile, imprimante, tastaturi și așa mai departe. D. Necesită interfețe diferite, modificarea sistemului de operare va fi necesară atunci când un nou dispozitiv, care este foarte incomod. Această întrebare este legată de interfața dintre driverele de dispozitiv și sistemul de operare. Caracteristicile driverelor care sunt disponibile pentru a fi diferit de la șofer la șofer. Acest lucru înseamnă că funcțiile de bază necesare pentru șofer, de asemenea, sunt diferite, astfel încât interacțiunea cu fiecare conducător auto nou necesită o mulțime de efort de programare.
Există o abordare fundamental diferită, în care toate driverele aceeași interfață. În același timp, mult mai ușor de instalat un driver nou, cu condiția ca acesta să respecte stan-
interfață Dard. Programatorii angajate în dezvoltarea de drivere, știu ce caracteristici au nevoie pentru a pune în aplicare și ce funcții nucleu le pot ocupa. În practică, nu toate dispozitivele sunt complet identice, dar, în general, are un număr mic de tipuri de dispozitive suficient de similare între ele. De exemplu, chiar bloc de caractere și dispozitive au multe caracteristici comune.