Una dintre principalele funcții ale sistemului de operare este controlul tuturor dispozitivelor de intrare și de ieșire ale calculatorului. OS dispozitive pentru a transmite comenzi pentru a intercepta întrerupere și eroare de manipulare; aceasta ar trebui să ofere, de asemenea, o interfață între dispozitive și restul sistemului. Pentru a dezvolta interfața ar trebui să fie aceeași pentru toate tipurile de dispozitive (independență dispozitiv).
Din punct de vedere al scopului dispozitivelor de intrare-ieșire pot fi împărțite în 3 grupe:
1) care operează utilizatorul (imprimante, tastatura, mouse-ul, etc.);
2), care lucrează cu un calculator (unități de disc, controlere, etc.);
3) de comunicare (modem, drivere, etc).
Dispozitivele de caractere care pot primi sau care furnizează un flux de simboluri fără structură de bloc.
Diferențe semnificative între dispozitivele / în sunt:
1) rata de date;
3) complexitatea managementului;
4) Unitatea de transfer de date;
5) furnizarea datelor;
6) condiții de eroare.
O astfel de diversitate arată că este imposibil să se dezvolte o abordare unitară și coerentă a problemei I / O, din punctul de vedere al sistemului de operare și a proceselor de utilizator.
Luați în considerare funcțiile de organizare / în conformitate cu metoda de / în:
1) programabile pe / în se realizează când procesorul transmite comenzile necesare controlerului / în, după care procesul este de finalizare operație inactiv / în;
2) I / O, întrerupe-condus, se realizează când procesorul trimite comenzi către controlerul I / O și continuă să execute următoarele comenzi. Astfel, în cazul în care nu este nevoie de a efectua operațiuni I / proces în curs continuă procesate de procesor; în caz contrar, se suspendă până întrerupere, atunci procesorul comută de execuție la un alt proces;
3) acces direct la modulul de memorie se realizează accesul direct la memorie, care controlează schimbul de date între memoria principală și I controlerele / O.
Pentru a controla fiecare dispozitiv de intrare-ieșire conectat la un computer, este necesar un software special. Acest program, cunoscut ca un driver de dispozitiv este de obicei scris de către producător și dispozitivul de pa-rănind cu dispozitivul. Pentru că 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ă de obicei, un tip de dispozitiv, sau cel mult, o clasă de dispozitive similare. De exemplu, driverul SCSI-ROM, de obicei, mo-Jette suport diverse ROM SCSI mărimea și viteza-mi diferite, și poate chiar va sprijini SCSI CD - ROM. Pe de altă parte, mouse-ul și joystick-ul diferă atât de mult încât de obicei necesită drivere de timp personal. Cu toate acestea, nu există nici o limitare tehnică privind conducerea unei dispozitive diferite de șofer multiple. Nu e doar o idee bună.
Pentru a accesa hardware-ul dispozitivului, adică registrele con controller, driver-ul de dispozitiv ar trebui să fie o parte a sistemului de operare de bază, cel puțin în arhitecturile existente în prezent. Debitul de acțiune poate crea și conducător auto care lucrează în spațiu personalizat-la, cu sistem de apeluri pentru citirea și scrierea registrelor de dispozitiv. De fapt, ar fi chiar o idee bună, cum ar izola nucleul de drivere, și șoferii de la unul pe altul. În acest caz, ar fi eliminat accident de sistem de operare de bază, în cazul în care rang - șoferii care conțin erori zvelt-vayuschiesya cu miezul sau în alt mod. Cu toate acestea, deoarece sistemele de operare moderne își asumă un loc de muncă în driverele kernel, ne vom uita la aici este un model.
Deoarece sistemul de operare care urmează să fie instalate bucăți de programe (drei vera), scrise de alți programatori care au nevoie de anumite Arhitektu-ra, care permite o configurare similară. Acest lucru înseamnă că trebuie să fie elaborat modelul riguros definite de funcții de comandă și interacțiunea acestuia cu restul sistemului de operare. drivere de dispozitiv sunt localizate de obicei în cadrul sistemului de operare pe termen rămas, așa cum este prezentat în Fig.
Fig. Dispunerea logică a driverelor de dispozitiv.
De fapt, toate comunicațiile între șoferi și controlere de dispozitiv trece peste magistrala
Cele mai multe sisteme de operare definesc o interfață standard, Koto-ing trebuie să accepte toate driverele bloc, și un al doilea standard de interfață susținută de 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, procedura bloc de citire (dispozitiv de blocare) sau a scrie un șir de caractere (pentru dispozitive simbol-TION).
În unele sisteme, sistemul de operare este un singur program-FEB Ary, care conține, în sine, în formă compilată cu ea, tot ce este nevoie conducătorilor auto. O astfel de schemă de mai mulți ani, a fost norma pentru sistemele UNIX. deoarece acestea sunt destinate utilizării în centrele de calculator și dispozitive de intrare-ieșire a schimbat rar. 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 de dispozitiv STV intrare-ieșire lor, acest model a încetat să mai funcționeze. Nu toți utilizatorii pot compila în mod independent, un nucleu recompilare, și de text sau obiect module chiar dacă există-Khodnev, care, de altfel, nu este, de asemenea, întotdeauna cazul. În schimb, sistemul de operare, de la MS - DOS. sa mutat la un model de drivere podgruzki dinamice în timp ce sistemul performant. Diverse drivere sisteme de taxat diferit.
Driverul de dispozitiv are mai multe funcții. Cea mai evidentă funcție a conducătorului auto este de a trata de citire abstract și scrie în mod independent, din a doua cereri software ale dispozitivului, situate deasupra lor. Dar, în afară de asta, ei trebuie să îndeplinească mai multe funcții. De exemplu, conducătorul auto trebuie să inițializa dispozitivul, dacă este necesar. El poate, de asemenea, are nevoie pentru a gestiona consumul de energie și dispozitiv de înregistrare a evenimentelor.
Multe drivere de dispozitiv au o structură globală similară. conducător auto tipic TION începe prin verificarea parametrilor de intrare. În cazul în care nu sunt îndeplinite, de 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 cap numărul, piste și sectoare.
Apoi, șoferul poate verifica pentru a vedea dacă dispozitivul este utilizat în acest moment. Dacă dispozitivul este ocupat, cererea poate fi pusă în așteptare. Dacă un dispozitiv liber, verificat starea dispozitivului hardware pentru a vedea dacă cererea poate fi reparat acum. Poate fi necesar să porniți dispozitivul sau porniți motorul înainte de a începe transferul de date. Odată ce dispozitivul este pornit și gata, se poate porni de fapt controla dispozitivul.
Device Management implică eliberarea unei serii de comenzi. Această conducător auto este determinată de 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. După înregistrare, fiecare echipă în controlerul poate fi necesar să se verifice dacă regulatorul a acceptat această comandă și gata să primească următoarea. Această secvență continuă atâta timp cât regulatorul nu toate echipele vor fi oferite. Unele controlere, care sunt în măsură să ia ACT legat liste de instrucțiuni din memorie. Ei conducte și schi 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 cazurile Dru-GIH operația este finalizată, nu au nevoie de un vatsya de blocare, fără întârziere și șofer. De exemplu, pentru a defila pe ecran în modul de caractere care urmează să fie înregistrate
doar câțiva octeți la registrele de comandă. Întreaga operațiune durează, cât de multe nanosecunde.
Acest model simplificat este doar o aproximare brută a realității. De fapt, programul este mult mai complicat, motivul pentru care este numărul mare de factori diferiți. În primul rând, un dispozitiv de intrare-ieșire se poate finaliza execuție în timpul funcționării a conducătorului auto, astfel de pre-ryvaya funcționarea acestuia. În al doilea rând, un alt pachet poate ajunge în timpul procesării driverului de rețea care a venit al doilea pachet. În consecință, conducătorul auto trebuie să fie reentrante, adică să fie gata pentru faptul că, în timpul prelucrării pe apel Vågå pot urma un alt apel.
Într-un sistem cu dispozitive de reglare la cald pot fi adăugate sau eliminate în timpul rulării. Ca urmare, în momentul în care conducătorul auto este ocupat de citire de la un dispozitiv, sistemul poate să-l informeze că utilizatorul este îndepărtat brusc dispozitivul din sistem. Astfel, nu numai operațiunea curentă de transfer de date trebuie să fie întreruptă fără a deteriora datele structura de kernel tur, dar, de asemenea, toate cererile aflate pe rol la dispozitivul Șem dispar trebuie să fie eliminate în mod corect din sistem, și se referă la ele știri neplăcute care urmează să fie comunicate programului. Mai mult, neașteptată, având în vedere adăugarea unui nou dispozitiv poate cauza kernel-ului pentru a jongla resurse le (de exemplu, linii de cerere de întrerupere), luându-le de la un șofer la altul șofer și dăruirea.
Conducătorii auto nu au voie să acceseze apelurile de sistem, dar de multe ori le-ar-Vaeth trebuie să interacționeze cu restul miezului. De obicei, rezolvate pe rashchenija unor proceduri de sistem. De exemplu, șoferii apelează la proceduri de sistem pentru oferindu-le cu pagini de memorie fixe de hardware ca un tampon și apoi să se întoarcă aceste pagini înapoi la kernel-ul. În plus, șoferii se bucură de MMU provocări manageri. jumătate de set, controler de DMA ,. controler de întreruperi și m. p.
1. Procesul de cererile primite de la un standard IO
Format Dl.
3. Pentru a permite adăugarea dinamică sau îndepărtarea dispozitivelor plug - and - joc.
4. Se permite, în cazul în care este posibil, de gestionare a energiei.
5. Permite reconfigurarea în ceea ce privește utilizarea resurselor.
6. Fii reintrare, pentru a permite utilizarea lor în Multipro-tsessorah.