Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Intrari/Iesiri - generalitati, dispozitive de I/E

hardware



+ Font mai mare | - Font mai mic



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.

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



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1213
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved