CATEGORII DOCUMENTE |
Intrari/Iesiri - generalitati, dispozitive de I/E.
Intrari/Iesiri
SO trebuie sa controleze toate dispozitivele de I/E ale
calculatorului:
Trimite comenzi catre dispozitive
Gestioneaza intreruperile
Rezolva erorile
SO trebuie sa furnizeze o interfata intre dispozitive si restul sistemului care sa fie simpla si usor de utilizat.
Dispozitive de I/E
Sunt alcatuite din doua componente:
Controlor: un chip sau un set de chip-uri care comanda la nivel fizic dispozitivul. Accepta comenzi de la SO cum ar fi sa citeasca date de la un
dispozitiv si sa le prelucreze.
Dispozitivul propriu-zis.
SO vede doar interfata cu controlorul, care poate fi diferita de interfata cu dispozitivul.
Programul care comunica cu un controlor, furnizandu-i comenzi si receptionand raspunsuri se numeste driver de dispozitiv. Driver-ul se adauga nucleului sistemului de operare.
Trei modalitati de adaugare a driver-ului la nucleu:
Recompilarea si refacerea nucleului cu noul driver inclus, urmata de reinitializarea sistemului: sisteme UNIX.
Generarea unei intrari intr-un fisier al SO precizandu-i ca are nevoie de driver, urmata de reinitializarea sitemului. Cand SO reporneste, SO
cauta drivere-le de care are nevoie si le incarca: Windows.
SO accepta si instaleaza dinamic drivere noi, fara reinitializarea sistemului: dispozitive USB.
Fiecare controlor are un anumit numar de registrii care sun folositi in comunicarea cu el. De exemplu un controlor minimal de disc ar putea avea registrii pentru specificarea adresei discului, adresei memoriei, numerotarea sectoarelor si directia (citire sau scriere).
Pentru a activa controlorul, driver-ul primeste o comanda de la SO, apoi o traduce corespunzator pentru scrierea in registrii dispozitivului.
La unele SO registrii dispozitivelor sunt in spatiul de adrese a SO a.i acestia pot fi cititi sau scrisi ca niste cuvinte obisnuite din memorie.
Nu exista instructiuni speciale de I/E, iar programele utilizator sunt tinute departe de hardware prin punerea acestor adrese de memorie intr-o zona inaccesibila lor.
La alte SO registrii dispozitivelor sunt pusi intr-un spatiu special de porturi de I/E, fiecare registru avand o adresa de port. Exista intructiuni speciale IN si OUT in modul nucleu pentru a permite drivere-lor sa citeasca sau sa scrie in registrii.
Operatiile de I/E pot fi facute in trei moduri:
Prima metoda:
un program utilizator efectueaza un apel de sistem
nucleul transforma apelul de sistem intr-un apel procedura catre driver-ul corespunzator.
Driver-ul incepe operatiile de I/E si ramane intr-o bucla continua de interogare a dipozitivului pentru a verifica daca operatiile s-au terminat.
Cand operatiile s-au terminat driver-ul depune datele acolo unde erau necesare.
SO intoarce controlul catre procesul apelant.
Aceasta a fost metoda asteptarii ocupate.
A doua metoda
Driver-ul proneste dispozitivul si ii cere sa transmita o intrerupere cand a terminat.
SO blocheaza procesul apelant daca este nevoie si cauta alte operatii de executat.
A treia metoda
Utilizeaza un chip special numit DMA (Direct Memory Access) care controleaza fluxul de biti intre memorie si un anumit controlor fara interventia constanta a procesorului.
Procesorul pune in functiune chip-ul DMA spunandu- I cati octeti trebuie transferati, dispozitivul si adresele de memorie implicate, precum si directia.
Cand DMA a terminat, el determina o intrerupere.
Intreri/Iesiri - intreruperi.
Pasul 1: driver-ul precizeaza controlorului ce are de facut, prin scriere in registrele dispozitivului
Controlorul declanseaza activitatea dispozitivului.
Pasul 2: dupa ce controlorul a terminat de citit sau de scris numarul de octeti care trebuiau transferati, va semnala acest lucru controlorului de intreruperi.
Pasul 3: daca controlorul de intreruperi este pregatit sa accepte intreruperea, atinci activeaza un pin din chip-ul procesorului.
Pasul 4: controlorul de intreruperi plaseaza numarul
dispozitivului pe magistrala, a.i. procesorul sa-l poata citi si sa stie care dintre dispozitive si-a terminat activitatea.
Cand procesorul a decis sa accepte intreruperea, contorul program si PSW
sunt memorate in stiva curenta, iar procesorul trece in modul nucleu.
Numarul dispozitivului este folosit in vectorul de intreruperi pentru a gasi rutina de tratare pentru dispozitivul respectiv.
Dupa ce rutina de tratare s-a declansat, ea salveaza contorul de program si PSW si transmite dispozitivului cererea.
Dupa terminarea rutinei de tratare (finalizarea operatiei de I/E) programul se reia cu prima instructiune care nu a fost executata.
Intrari/Iesiri - principiile softului de I/E,modalitaTi de executare a operaTiilor de I/E.
Principiile softului de I/E
IndependenTa de echipament - posibilitatea de a scrie programe care pot accesa orice echipament de I/E fara a preciza dinainte care este echipamentul.
Exemplu: un program care citeste dintr-un fisier trebuie sa poata citi
fisierul atat de pe o unitate de discheta, cat si de pe un disc sau CD, fara a fi
necesara modificarea programului pentru fiecare echipament in parte.
Denumire uniforma: numele unui fisier sau echipament trebuie sa fie doar un sir de caractere sau un numar, fara a fi dependent de dispozitiv.
Tratarea erorilor: trebuie sa se faca cat mai aproape de hard. Daca controlorul asociat unitaTii de I/E descopera o eroare ar trebui sa o corecteze el insusi. Daca nu poate, atunci ar trebui sa o trateze driver-ul echipamentului. De multe ori tratarea erorilor se poate face la un nivel jos, fara ca nivelele superioare sa afle de eroare.
Alegerea intre transferul sincron (synchronous) - blocant si transferul asincron (asynchronous) - condus de intreruperi. Majoritatea echipamentelor de I/E sunt asincrone - procesorul porneste transferul si apoi se ocupa cu altceva pana la finalizarea operaTiei de I/E. Programele utilizatorilor sunt mai usor de scris daca operaTiile de I/E sunt blocante. SO trebuie sa faca astfel incat operaTiile de I/E sa para blocante.
Utilizarea memoriei tampon (buffering): de multe ori datele care vin de la un echipament nu pot fi memorate in locaTia finala. Memorarea in zona tampon implica multe copieri.
Alegerea intre utilizarea de echipamente partajate si utilizarea de echipamente dedicate. Discurile pot fi folosite de mai multi utilizatori in acelasi timp, dar unitatile de banda magnetica nu.
ModalitaTi de executare a operaTiilor de I/E
I/E programate: procesorul executa fara intreruperi toate operaTiile.
Dupa prelucrarea unui grup de date, procesorul testeaza in continuu echipamentul pentru a vedea daca este sau nu pregatit sa primeasca urmatorul
grup.
Au dezavantajul ca este ocupat tot timpul procesorului pana cand operaTia este terminata.
Sunt utile cand prelucrarea este de scurta durata.
I/E cu intreruperi
procesorul face altceva in timp ce asteapta ca dispozitivul de I/E sa fie pregatit pentru prelucrarea datelor.
In timp ce asteapta, procesorul apeleaza planificatorul de procese si incepe sa ruleze alt proces.
Procesul care a cerut prelucrarea datelor este blocat pana la terminarea prelucrarii.
Cand dispozitivul este pregatit sa primeasca al doilea set de date se genereaza o intrerupere.
I/E folosind DMA
DMA - acces direct la memorie (Direct Memory Access). Se face
prin intermediul unui controlor DMA care este are acces la magistrala independent
faTa de procesor. Dispozitivul DMA are cateva registre care pot fi citite sau scrise de procesor.
Controlorul DMA efectueaza operaTiile de I/E si astfel este redus numarul de intreruperi.
dispozitivul DMA este mai lent decat procesorul. Se apeleaza la el atunci cand procesorul este ocupat.
Intrari/Iesiri - nivelurile softului de I/E.
Nivelurile softului de I/E
Exista patru niveluri:
Rutinele de tratare a intreruperilor
Nivelul cel mai de jos
Cand se porneste o operaTie de I/E driverul care a pornit-o se blocheaza pana cand operaTia se termina si apare o intrerupere.
In acest moment intervin rutinele de tratare a intreruperilor care pregatesc si pornesc execuTia unui nou proces.
Drivere de echipament
Fiecare echipament de I/E este controlat de un program specific -
driver de echipament.
Fiecare driver controleaza un singur tip de echipament sau o clasa
de echipamente asemanatoare
Pentru SO actuale driverele ruleaza la nivelul nucleului.
Exista drivere care lucreaza in modul bloc (block devices) care
conTin mai multe blocuri de date ce pot fi accesate separat.
Exista drivere care lucreaza in modul caracter (character devices) - tastaturi si imprimante, care genereaza sau accepta un sir de caractere.
SO are definita o interfaTa standard pe care trebuie sa o suporte toate
driverele bloc si o interfaTa standard pentru toate driverele caracter.
InterfeTele sunt formate dintr-un numar de proceduri pe care SO le poate apela pentru a folosi driverul.
Cateva din funcTiile unui driver:
. sa accepte cereri abstracte de citire si scriere de la partea de soft independenta de echipament
. sa iniTializeze echipamentul daca este nevoie
. sa controleze cererea de energie.
. in timp ce lucreaza trebuie sa se astepte la un alt apel.
Programe de I/E independente de echipament
Efectueaza operaTii de:
. InterfaTare uniforma pentru driverele de echipament.
. Utilizarea memoriei tampon.
. Raportarea erorilor.
. Alocarea si eliberarea echipamentelor dedicate.
. Furnizarea unei dimensiuni de bloc independente de echipament
InterfaTarea uniforma a driverelor de echipament - face ca toate echipamentele de I/E si driverele lor sa arate mai mult sau mai puTin asemanator. Se evita astfel un efort de programare ridicat pentru
interfaTarea fiecarui nou echipament.
Utilizarea memoriei tampon - datele sunt puse intrun buffer pana cand acesta se umple. Se pot utiliza si trei buffere (doua nucleu si unul utilizator) pentru a evita blocarea paginilor in memorie pierderea datelor cand pagina cu bufferul utilizatorului este incarcata pe disc - double buffering.
Raportarea erorilor - erorile apar mai des din cauze de I/E decat din alte cauze. Sunt mai multe tipuri de erori (specifice echipamentelor, de programare,
etc.) si in urma lor este transmis un cod de eroare apelantului. Raportarea erorilor depinde de mediu si de natura erorilor.
Alocarea si eliberarea echipamentelor dedicate - SO analizeaza cererile de folosire a unui anumit echipament si le accepta sau le respinge in funcTie
de disponibilitatea echipamentului solicitat
Furnizarea unei dimensiuni de bloc independente de echipament - desi diferite discuri pot avea sectoare de dimensiuni diferite este furnizata nivelurilor
superioare o dimensiune uniforma a blocurilor. Nivelurile superioare lucreaza numai cu echipamente abstracte care folosesc aceeasi dimensiune de bloc
logic, independenta de dimensiunea fizica a sectorului.
Programe de I/E din spaTiul utilizator
proceduri de biblioteca - executa apeluri de sistem, formateaza intrarile si iesirile
sistemul de virtualizare: modalitatea de a lucra cu echipamente I/E dedicate in sistemele cu multiprogramare.
Exemplu: nu orice proces poate sa deschida fisierul special al imprimantei. Exista un proces special printer daemon si un catalog special (de virtualizare) spooling directory.
Alt exemplu: intr-o retea transferul de fisiere foloseste un daemon.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1213
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved