Scrigroup - Documente si articole

     

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


Cerinte asupra hardware-ului

linux



+ Font mai mare | - Font mai mic



Cerinte asupra hardware-ului

Executia proceselor utilizator in sistemele UNIX este impartita pe 2 nivele: utilizator si nucleu. Cand un utilizator executa un apel sistem, modul de executie al procesului se schimba din modul utilizator in modul nucleu: sistemul de operare incearca sa serveasca cererea utilizatorului, returnand un cod de eroare in caz de nereusita. Chiar daca utilizatorul nu face cereri explicite de utilizare a serviciilor sistemului de operare, totusi acesta executa operatiile legate de procesul utilizator tratand intreruperile, planificand procesele, gestionand memoria, s.a.m.d. Multe arhitecturi de masini de  calcul suporta mai mult de doua nivele, insa aceste doua moduri, 'utilizator' si 'nucleu', sunt suficiente pentru sistemul UNIX.



Diferentele intre cele doua moduri sunt:

Procesele in mod utilizator pot accesa propriile instructiuni si date, dar nu si instructiunile si datele nucleului (sau cele ale altui proces). Procesele in mod nucleu pot accesa oricand adresele nucleu sau utilizator. Spre exemplu, spatiul de adresa virtuala al unui proces poate fi impartit in adrese care sunt accesibile numai in modul nucleu si adrese accesibile in orice mod.

Unele instructiuni masina sunt privilegiate si dau eroare cand sunt executate in modul utilizator. De exemplu, o masina poate contine o instructiune care manipuleaza registrii de stare ai procesului; procesele executate in modul utilizator nu trebuie sa aiba aceasta posibilitate.

Hardware-ul 'vede ' exteriorul in termenii modului nucleu si utilizator si nu face distinctia intre mai multi utilizatori care executa programe in acelasi mod. Figura 1.5 arata cum nucleul face distinctie intre procese pe orizontala, iar hardware-ul pe verticala.

Figura1.5. Procese multiple si modurile de executie

Desi sistemul executa intr-unul din cele doua moduri, nucleul este executat pentru un utilizator. Nucleul nu este un set separat de procese care ruleaza in paralel cu procesele utilizator, ci este parte a fiecarui proces utilizator. In continuare se vor folosi formularile: 'alocarea resurselor de catre nucleu' sau 'nucleul executa diferite operatii', dar prin ele se intelege ca un proces care se executa in modul nucleu aloca resurse sau executa diferite operatii. De exemplu, shell-ul citeste intrarea de la terminalul utilizatorului printr-un apel sistem; nucleul, executat pentru procesul shell, controleaza operatiile terminalului si returneaza caracterele tiparite catre shell. Shell-ul se executa apoi in modul utilizator, interpreteaza sirul de caractere tiparit de utilizator si executa o serie de actiuni specifice care pot necesita invocarea altor apeluri sistem.

Intreruperi si exceptii

Sistemul UNIX permite dispozitivelor precum perifericele de I/O sau ceasul sistem sa intrerupa U.C.P. in mod asincron.

La primirea intreruperii, nucleul salveaza contextul curent (o imagine a ceea ce procesul executa), determina cauza intreruperii si trateaza intreruperea. Dupa ce nucleul trateaza intreruperea, el reface contextul si continua ca si cum nu s-ar fi intamplat nimic. In mod obisnuit, hardware-ul acorda prioritate dispozitivelor in functie de ordinea in care intreruperile trebuiesc tratate: cand nucleul trateaza o intrerupere, blocheaza intreruperile cu prioritate mai mica si le serveste pe cele cu prioritate mai mare.

Exceptiile se refera la evenimente neasteptate, cauzate de procese, cum ar fi adresarea ilegala a memoriei, executia instructiunilor privilegiate, impartirea la zero, si altele. Spre deosebire de exceptii, intreruperile sunt cauzate de evenimente externe procesului. Exceptiile apar in "mijlocul" executiei unei instructiuni, iar sistemul incearca sa execute din nou instructiunea dupa tratarea exceptiei. Se considera ca intreruperile apar intre executia a doua instructiuni, iar sistemul continua cu instructiunea urmatoare dupa servirea intreruperii. Sistemul UNIX foloseste un mecanism unic de tratare a intreruperilor si a exceptiilor.

Nivele de executie ale procesorului

Uneori, nucleul trebuie ca pe durata secventelor critice sa previna aparitia intreruperilor deoarece acestea ar putea duce la alterarea datelor daca ar fi permise. De exemplu, nucleul trebuie sa nu accepte intreruperea de disc cat timp manipuleaza liste inlantuite, deoarece tratarea intreruperii poate deteriora pointerii (vezi capitolul urmator).

Figura 1.6. Nivele de intreruperi obisnuite

In mod obisnuit, calculatoarele au un set de instructiuni privilegiate care seteaza nivelul de executie al procesorului intr-un cuvant de stare al procesului. Setand nivelul de executie al procesorului la anumite valori, se mascheaza intreruperile pentru acel nivel si pentru cele inferioare, permitindu-se numai intreruperile de nivel superior. Figura 1.6 arata un set simplu de nivele de executie.

Daca nucleul mascheaza intreruperile de disc, sunt impiedicate toate intreruperile, cu exceptia intreruperii de ceas si a intreruperilor datorate unor erori ale masinii. Daca se mascheaza intreruperile software, toate celelalte intreruperi sunt active.

Gestiunea memoriei

Nucleul se gaseste permanent in memoria principala ca parte a procesului aflat in executie la acel moment. Cand se compileaza un program, compilatorul genereaza un set de adrese program care reprezinta adresele variabilelor si structurilor de date, sau adresele instructiunilor sau functiilor. Compilatorul genereaza adresele pentru o masina virtuala ca si cum nici un alt program nu va fi executat simultan pe masina fizica.

Cand programul este rulat pe masina, nucleul aloca spatiu in memoria principala pentru acesta, dar adresele virtuale generate de compilator nu trebuie sa fie neaparat identice cu adresele fizice pe care le vor ocupa in memorie. Nucleul coordoneaza headware-ul masinii pentru a stabili translatarea adreselor virtuale in adrese fizice. Translatarea depinde de posibilitatile hardware-ului masinii, iar partea sistemului UNIX care se ocupa cu acest lucru este de aceea dependenta de masina. De exemplu, unele masini au un hardware special care suporta paginarea la cerere.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 999
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