Cunoștințe, prelegere, subsistem I / O

7.1. Dispozitive I / O

Dispozitivele externe care efectuează operații I / O pot fi împărțite în trei grupe:

  • dispozitive care lucrează cu utilizatorul. Folosit pentru a comunica cu computerul utilizatorului. Acestea includ imprimante, afișe, tastaturi, manipulatoare (mouse-ul, trackball-ul, joystick-urile) etc.
  • dispozitive care funcționează cu un computer. Folosit pentru a comunica cu echipamente electronice. Acestea includ dispozitive și dispozitive pe disc cu benzi magnetice, senzori, controlere, convertoare;
  • comunicare. Folosit pentru a comunica cu dispozitivele de la distanță. Acestea includ modemuri și adaptoare digitale de linie.

De asemenea, trebuie remarcat faptul că există diferențe semnificative între dispozitivele I / O aparținând diferitelor clase și în cadrul fiecărei clase. Aceste diferențe se referă la următoarele caracteristici:







  • viteza de transmisie a datelor (diferențe cu mai multe ordine de mărime);
  • cerere. Fiecare acțiune susținută de dispozitiv, are un impact asupra strategiei de software și de sistem de operare (de exemplu, discul utilizat pentru a stoca fișiere sau pagini de memorie virtuală care necesită software-ul diferit);
  • complexitatea managementului. O interfață de management relativ simplă este necesară pentru imprimantă, pentru un disc - mult mai dificilă. Efectul acestor diferențe asupra sistemului de operare este atenuat de complexitatea controlorilor I / O;
  • unități de transmisie de date. Datele pot fi trimise prin blocuri sau fluxuri de octeți sau caractere;
  • reprezentare de date. Dispozitivele diferite folosesc diferite scheme de codificare a datelor, inclusiv codificări de caractere diferite și paritate;
  • condițiile de eroare. Natura erorilor, modul în care sunt raportate, consecințele acestora și posibilele răspunsuri diferă dramatic în tranziția de la un dispozitiv la altul.

O astfel de varietate de dispozitive externe conduce, de fapt, la imposibilitatea de a dezvolta o abordare unică și consecventă a problemei intrări-ieșiri atât din punctul de vedere al sistemului de operare, cât și din punctul de vedere al proceselor utilizatorului.

Dispozitivele I / O, de regulă, constau dintr-o parte electromecanică și electronică. De obicei, acestea sunt realizate sub formă de module separate - dispozitivul însuși și controlerul (adaptorul). În PC, controlerul are forma unei plăci introduse în slotul de extensie. Placa are un conector. la care este conectat cablul. ceea ce duce la dispozitivul în sine. Mulți controlori sunt capabili să controleze două, patru sau chiar mai multe dispozitive identice. Interfața între operator și dispozitivul este un standard oficial (ANSI. IEEE sau ISO), sau standardul de facto, și diverse companii pot produce separat controlerul și aparatul care satisfac interfața. Deci, multe companii produc discuri conforme cu interfața IDE sau SCSI. un chip-uri de circuit placi de baza IDE si implementa SCSI Controller.

7.2. Scop, sarcini și tehnologii ale subsistemului input-output

Schimbul de date între utilizatori, aplicații și periferice ale computerului este realizat de un subsistem special al OS, subsistemul I / O. De fapt, pentru a îndeplini această sarcină, au fost elaborate primele programe de sistem. au servit drept prototipuri ale sistemelor de operare.

Componentele principale ale subsistemului I / O sunt driverele care controlează dispozitivele externe și sistemul de fișiere. Managerul de întrerupere este implicat activ în funcționarea subsistemului I / O. În plus, sarcina principală a managerului de întrerupere se datorează subsistemului I / O, astfel încât managerul de întreruperi este uneori considerat o parte a subsistemului I / O.

Un sistem de fișiere este stocarea principală a informațiilor în orice computer. Utilizează activ restul subsistemului I / O. În plus, modelul de fișier stă la baza majorității mecanismelor de accesare a dispozitivelor periferice.

Următoarele funcții sunt atribuite subsistemului I / O [5. 17]:

  • organizarea funcționării paralele a dispozitivelor de intrare-ieșire și a procesorului;
  • potrivirea ratelor de schimb de date și cache;
  • separarea dispozitivelor și a datelor între procese (programe care rulează);
  • furnizând o interfață logică convenabilă între dispozitive și restul sistemului;
  • sprijin pentru o gamă largă de șoferi cu abilitatea de a include pur și simplu un nou driver în sistem;
  • încărcarea și descărcarea dinamică a driverelor fără operațiuni suplimentare cu sistemul de operare;
  • suport pentru mai multe sisteme de fișiere diferite;
  • suport pentru operații I / O sincrone și asincrone.






Evoluția intrărilor-ieșirilor poate fi reprezentată de următorii pași [17].

  1. Procesorul controlează direct dispozitivul periferic.
  2. Dispozitivul este controlat de controler. Procesorul utilizează intrări / ieșiri programabile fără întreruperi (trecerea la abstractizarea interfeței intrare-ieșire).
  3. Utilizați controlerul de întrerupere. I / O, controlat prin întreruperi.
  4. Utilizați modulul (canalul) al accesului direct la memorie. Mutarea datelor către și din memorie fără a utiliza un procesor.
  5. Utilizați un procesor specializat separat de intrare-ieșire, controlat de procesorul central.
  6. Utilizați un calculator separat pentru a gestiona dispozitivele I / O cu o intervenție minimă a procesorului.

Urmând modul descris pentru dezvoltarea dispozitivelor de intrare și ieșire, puteți observa că intervenția procesorului în funcție I / O devine mai puțin vizibilă. Procesorul central este eliberat din ce în ce mai mult de sarcini legate de I / O, ceea ce duce la o creștere a performanței globale a sistemului informatic.

Pentru computerele personale, operațiile de I / O pot fi efectuate în trei moduri.

  1. Cu ajutorul I / O programabile. În acest caz, atunci când procesorul întâlnește o comandă asociată cu I / O, îl execută trimițând comenzile corespunzătoare către controlerul I / O. Acest dispozitiv efectuează acțiunea necesară și apoi stabilește biții corespunzători în registrele de stare I / O și nu trimite semnale, inclusiv semnale de întrerupere. Procesorul verifică periodic starea modulului I / O pentru a verifica finalizarea operației I / O.

Astfel, procesorul gestionează direct operațiile I / O, inclusiv recunoașterea stării dispozitivului, transferul comenzilor citire și scriere și transferul de date. Procesorul trimite comenzile necesare controlerului I / O și pune procesul curent în starea de așteptare pentru finalizarea operației I / O. Dezavantajele acestei metode sunt pierderi mari de timp CPU asociate cu managementul I / O.

  • I / O, controlat de întreruperi. Procesorul trimite comenzile necesare controlerului I / O și continuă să execute procesul curent dacă nu este nevoie să așteptați o operație I / O. În caz contrar, procesul actual este suspendat până la primirea unui semnal de terminare a I / O, iar procesorul trece la un alt proces. Procesorul verifică prezența întreruperilor la sfârșitul fiecărui ciclu de instrucțiuni executabile.

    O astfel de intrare-ieșire este mult mai eficient decât programabil de intrare-ieșire, deoarece aceasta exclude de așteptare inutilă a procesorului de mers în gol inutil. Cu toate acestea, în acest caz, de intrare-ieșire încă mai consumă o cantitate considerabilă de timp de procesor, pentru că fiecare cuvânt care este transmis din memorie la modulul IO (controler) sau invers, trebuie să treacă prin procesorul.

  • Acces direct la memorie (DMA). În acest caz, un modul special pentru accesul direct la memorie controlează schimbul de date între memoria principală și controlerul I / O. Procesorul trimite o solicitare de transmitere a blocului de date către modulul DMA, iar întreruperea apare numai după transmiterea întregului bloc de date.
  • În prezent, calculatoarele personale și alte metode utilizate IO a treia, ca structura de computer are DMA - aparate controler sau altele asemenea, servind ca regulă, cererile de transmitere a datelor de la mai multe dispozitive de intrare și de ieșire pe bază de concurs.

    Înainte de a efectua operațiunea de schimb, procesorul programează controlerul DMA. setarea registrelor sale (pasul 1 din Figura 7.1). Apoi, procesorul instruiește controlerul de disc să citească datele în tamponul intern și să verifice suma de control. După aceasta, procesorul își continuă activitatea. Când datele sunt recepționate și verificate de către controlerul de disc, DMA poate începe să funcționeze.

    Cunoștințe, prelegere, subsistem I / O


    Fig. 7.1. DMA Lucrează

    Este necesar să se acorde atenție funcționării autobuzului în acest proces de schimb de date. Autobuzul poate funcționa în două moduri: cuvânt-cuvânt și block-by-block. În primul caz, controlerul DMA solicită transferul unui cuvânt și îl primește. Dacă procesorul are nevoie și de această magistrală (nu uitați, în principiu funcționează cu o memorie cache), trebuie să așteptați. Acest mecanism se numește ciclu de captare. deoarece controlerul dispozitivului preia periodic un ciclu de autobuz aleatoriu de la procesor, ușurând încetinirea acestuia.

    Mai jos, în Fig. 7.2 arată poziția ciclului de instrucțiuni. în care activitatea procesorului poate fi suspendată. În orice caz, procesorul este întrerupt numai dacă este necesar să utilizați magistrala. După aceasta, dispozitivul DMA efectuează transfer de cuvinte și returnează controlul asupra procesorului. Totuși, aceasta nu este o întrerupere: procesorul nu salvează contextul cu trecerea la o altă sarcină. Se oprește doar pentru un ciclu al autobuzului.

    Cunoștințe, prelegere, subsistem I / O


    Fig. 7.2. DMA puncte de întrerupere

    În modul bloc, controlerul DMA ocupă magistrala pentru o serie de transferuri (pachete). Acest mod este mai eficient, dar când transferați un bloc mare, CPU-ul și alte dispozitive pot fi blocate pentru o perioadă semnificativă de timp.

    Atunci când un număr mare de dispozitive de intrare-ieșire din subsistemul IO este necesar pentru a planifica în timp real (care utilizează dispozitive externe) începe și suspendarea mai multor drivere diferite în același timp asigurându-se că timpul de răspuns al fiecărui conducător auto pe controlerele de evenimente independente de dispozitive externe. Pe de altă parte, este necesară minimizarea sarcinii procesorului prin sarcini de intrare-ieșire.

    Soluția la aceste probleme se realizează prin intermediul unui sistem de întrerupere de servicii de prioritate mai multe niveluri. Pentru a asigura un nivel acceptabil de reacție, toți conducătorii auto sunt distribuite în mai multe nivele de prioritate, în conformitate cu cerințele timpului de reacție și timpul de procesor. Pentru a implementa schema de priorități, se folosește managerul comun de întrerupere a sistemului de operare.







    Articole similare

    Trimiteți-le prietenilor: