Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Clasificarea sistemelor de operare

Informatica


Clasificarea sistemelor de operare din punct de vedere al tehnicilor de prelucrare se împart în: Sisteme cu prelucrare pe loturi (batch processing). Sisteme în timp real. Sisteme time-sharing (cu parta-jarea timpului). Sistemele batch-processing (cu prelucrarea pe loturi) folosesc notiunea de tren de lucrari, adica succesiunea tuturor lucrarilor care trebuie executate. Urmatoarea lucrare se va executa numai dupa terminarea celei anterioare. O dezv a sist batch-processing au constituit-o sist care lucreaza în multiprogramare, în care resursele sist erau împartite catre partitii fixe. În fiecare din aceste partitii executându-se prelucrari pe loturi. Sist de op în timp real sunt bazate pe sistemul de prioritate al taskurilor, resursele sistemului de calcul fiind alocate task-ului (lucrarii) cu cea mai mare prioritate la momentul respectiv. Datorita particularitatilor lor, au fost folosite mai ales în supravegherea proceselor industriale, în care evenimentelor externe importante li se asociau task-uri cu prioritate maxima. Sist de op time-sharing, permit accesul fiecarui task la resursele sist pentru o perioada fixa de timp. Dupa scurgerea perioadei alocate, indiferent daca task-ul respectiv s-a terminat sau nu, este evacuat si lansat urmatorul s.a.m.d. La terminarea listei task-urilor care trebuie executate se reia procesul cu primul task din lista. Ciclul se repeta pâna când taskurile îsi încheie executia în mod normal, si lista task-urilor în asteptare se goleste. Acest tip de sistem de operare este folosit în prelucrarile cu multi utilizatori si cu task-uri de importanta aproximativ egala.



Starile unui proces: nelansat în executie, atunci când procesul a fost generat dar nu a fost onorata înca cererea de lansare în executie a sa;

pregatit pentru activare (READY) sau proces întrerupt; aceasta stare poate sa apara în doua cazuri: când cererea de lansare în executie a procesului a fost onorata, procesul a fost încarcat în memoria interna si este pregatit pentru activare; când un proces în executie a fost întrerupt si asteapta activarea sa, adica reluarea executiei sale din punctul în care a fost întrerupt; parametrii care descriu procesul în momentul întreruperii sale sunt memorati în vectorul de stare al procesului, pentru a permite continuarea acestuia în momentul reluarii sale;

activ (RUN), când procesul are alocat procesorul si sunt în curs de desfasurare prelucrarile aferente procesului; suspendat (blocat) sau proces în asteptare (WAIT), în cazul în care executia procesului a fost întrerupta, procesul este dezactivat, în asteptarea realizarii unui eveniment, de exemplu, eliberarea unei resurse solicitate; starea de proces complet, când procesul a fost complet executat si urmeaza dezalocarea resurselor afectate procesului si distrugerea procesului. Actiunile care determina comutarea între doua stari ale unui proces sunt:

initierea procesului, genereaza cererea de lansare în executie a procesului; procesul este în starea de proces nelansat în executie; lansarea în executie a procesului determina trecerea lui din starea de proces nelansat în executie în starea de proces pregatit pentru activare (READY); activarea procesului determina trecerea lui din starea de proces pregatit pentru activare în starea de proces activ (RUN); dezactivarea procesului determina revenirea lui din starea de proces activ în starea de proces întrerupt (READY - pregatit pentru activare); blocarea procesului activ determina trecerea lui în starea de proces în asteptare (WAIT); deblocarea procesului determina trecerea lui din starea de proces blocat în starea de proces pregatit pentru activare (READY); completarea procesului determina trecerea lui din starea de proces activ în starea de proces complet;

distrugerea procesului complet determina înlaturarea lui din sistem; dezactivarea unui proces (trecerea din RUN în READY) este proprie numai pentru exploatarea în time-sharing si în timp real, caz în care comutarea între procesele active se poate face la initiativa sistemului de operare, prin dezactivarea procesului activ în favoarea altuia; starea WAIT nu este proprie exploatarii în monoprogramare, unde, la un moment dat, în sistem se executa o singura lucrare, careia îi sunt alocate toate resursele.

Algoritmi pentru planificarea proceselor:

Cu cozi multiple combina algoritmii de planificare. Rezulta astfel planificarea cu cozi multiple, în care fiecare coada corespunde unui algoritm de planificare.

Round-Robin Si in acest caz, procesul aflat in starea running este eliminat dupa expirarea cuantei de timp maxime alocate (10ms - 100ms) in care i se permite sa ruleze iar sirul READY se trateaza ca FIFO circular. Planificatorul mentine o lista a proceselor aflate in starea ready si trimite in executie procesul aflat la inceputul acestei liste. In plus, procesul care tocmai a fost scos din starea running este plasat la sfarsitul listei (desigur, daca nu a facut un apel de sistem, caz in care este trecut in starea waiting, sau s-a terminat). Astfel, procesele sunt executate unul dupa altul, iar un proces scos din starea running va fi din nou planificat pentru executie numai dupa ce toate celelalte procese aflate in starea ready au fost si ele planificate. Considerand din nou exemplul anterior, de data aceasta pentru algoritmul Round-Robin, obtinem urmatoarea diagrama:

Un proces care tocmai a fost eliminat din starea running poate fi replanificat imediat pentru executie numai daca nu exista nici un alt proces in starea ready. Datorita simplitatii conceptuale si de implementare, precum si faptului ca nu necesita cunoasterea unor informatii suplimentare despre procese, algoritmul round-robin este cel mai utilizat in sistemele de operare.Dezavantaje: Folosirea unei cuante prea scurte poate cauza prea multe comutari de proces si micsoreaza eficienta UCP. -marime cuantei afecteaza performantele algoritmului Round-Robin ; daca cuanta este foarte mare, comportarea este asemanatoare FCFS ; daca cuanta este foarte mica, frecventa comutarii se mareste foarte mult si performantele scad deoarece se consuma mult timp pentru salvare/ restaurare registre;-se poate spune ca algoritmul Round-Robin este un algoritm preemptiv care asigura un timp aproape egal de asteptare pentru toate procesele din sistem.

Planificare bazata pe prioritati Pentru departajarea proceselor în functie de importanta, se folosesc prioritati acordate fiecarui proces în parte, sistemul rulând întotdeauna procesul cu cea mai mare prioritate din sistem. Pentru a preveni ca procesele cu cea mai mare prioritate sa ruleze tot timpul, planificatorul poate scade prioritatea procesului curent în executie la fiecare întrerupere de ceas. Când prioritatea procesului în executie a devenit mai mica decât prioritatea unui alt proces, sistemul de operare comuta între ele.

Prioritatile pot fi asignate static sau dinamic. Static, se acorda de catre utilizator sau de catre sistem, la creare. Dinamic, se asigneaza de catre sistemul de operare, pentru realizarea unui anumit scop.

Stabilirea prioritatilor si planificarea proceselor in unix Intr-un sistem cu partajarea timpului, nucleul aloca UCP unui proces pentru o anumita perioada de timp, numita cuanta de timp, cuprins intre 0 si 1 s; de obicei, in sistemul Unix este de 100 ms. Procesele au asociate prioritati, valorile mari corespunzand prioritatilor scazute. La expirarea cuantei procesului curent în executie, se va alege procesul aflat in starea PREGATIT cu priorit cea mai mare. Nucleul recalculeaza prioritatea unui proces cand acesta revine din modul nucleu in modul utilizator si, periodic, ajusteaza prioritatiile proceselor aflate in starea PREGATIT si in modul utilizator. Pentru planificare se foloseste mecanismul cu cozi multiple. Fiecare coada este asociata cu un nivel de prioritate. Alegerea in cadrul cozii se face fie utilizand mecanismul round-robin, fie va fi ales procesul care a stat cel mai mult timp in starea PREGATIT. Daca in sistem nu exista nici un proces in starea PREGATIT, procesorul sta (starea idle) pana la urmatoarea intrerupere (adica cel mult pana la urmatoarea intrerupere de ceas). Dupa tratarea intreruperii, nucleul verifica daca sunt procese de rulat. Gestiunea proceselor Spatiul de adresa a unui proces cuprinde: segmentul de cod; segmentul de date consta din:zona de date; zona de rezervari (date neinitializate); zona de alocare dinamica; segmentul de stiva. Threadul (fir de exec), e o subunit a proc, utiliz în unele SO.



Planificatorul de proces În timpul executiei lucrarilor, gestionarea executiei proceselor în sistem este realizata de componenta SO numita planificatorul de procese (process scheduler); decide care proces va dispune de procesor, când si pentru cât timp. Functiile acestui modul sunt: evidenta tuturor proceselor din sistem si a starii lor, prin intermediul componentei numita controlor de trafic (traffic controller); stabilirea procesului caruia i se aloca procesorul si, eventual, a timpului de alocare, fct realizata de componenta planificator al procesorului (processor scheduller); alocarea procesorului la proces, prin actualizarea registrilor procesorului cu informatiile privind starea curenta a procesului, functie realizata de controlorul de trafic; dezalocarea procesorului, functie care presupune salvarea continutului registrilor de stare ai procesorului, în vederea reluarii ulterioare a procesului; operatia este realizata de controlorul de trafic. (Dezalocarea procesorului are loc atunci când expira timpul afectat procesului si are loc dezactivarea procesului, care trece în starea READY, sau când a fost solicitata o resursa care nu este disponibila si procesul este blocat, intrând în starea WAIT. Dezalocarea procesorului se face fara memorarea starii procesului în cazul în care procesul intra în starea de proces complet, caz în care el urmeaza sa fie distrus.). În cazul exploatarii în monoprogramare a sistemului de calcul, notiunea de lucrare si proces se confunda iar functia SO de gestionare a proceselor se simplifica; în celelalte moduri de exploatare a sistemelor de calcul, problema planificarii si sincronizarii proceselor este foarte complexa; activitatea planificatorului de procese este precedata si determinata de activitatea planificatorului de lucrari.Modul de functionare al planificatorului de procese poate fi descris astfel: la anumite momente de timp, determinate de modalitatea de interventie, se evalueaza functia de prioritate, pentru fiecare proces si, pe baza rezultatului obtinut, se aloca procesorul unui proces; în cazul în care mai multe procese au aceeasi prioritate, se aplica o regula de arbitraj, care determina care dintre procese este tratat primul.

Comenzi pentru lucru cu procese in unix Spre deosebire de sistemul de operare MS-DOS, sistemul UNIX permite lansarea spre executare a unei comenzi (program) la un anumit moment de timp. Comanda UNIX ce face posibil acest lucru este disponibila numai administratorului de sistem. Numele comenzii este at si primeste ca argumente timpul, data, factorul de repetare a lansarii, precum si numele unui fisier care contine comanda sau comenzile ce se vor executa. De asemenea, folosind comenzile nice, kill si sleep, utilizatorul poate interveni asupra proceselor din sistem pentru a le modifica starea. Comanda UNIX ce permite afisarea starilor unor procese este ps Comanda kill emite un semnal de tip întrerupere catre un proces. De obicei, acest semnal solicita terminarea procesului. Comanda are ca argumente un numar de semnal (precedat de -) si identificatorul procesului caruia i se adreseaza semnalul. Semnalul este un numar între 1 si 31 prin care este codificat tipul semnalului de întrerupere. Cele mai importante semnale sunt: -2 întrerupere la apasarea tastei DEL; -9 oprire neconditionata; -15 semnal software de oprire; -16 -31 semnale definite de utilizator. În absenta specificarii unui semnal (ci numai a identificatorului procesului), implicit este considerat semnalul 15. O alta facilitate a sistemului de operare UNIX privind executia comenzilor o constituie lansarea în fundal (background) a proceselor care nu sunt conversationale. Pentru a lansa un astfel de proces, linia de comanda trebuie sa se încheie cu simbolul &. Comanda sleep asteapta un numar de secunde înainte de a executa o alta comanda. De exemplu comanda ls poate

fi lansata peste 40 de secunde folosind apelul: $ sleep 40; ls

Gestionarea intreruperilor Exista o categorie de sarcini a caror aparitie în sistem face necesara tratarea lor imediata de catre UCP; vom numi aceste sarcini evenimente.

Pe de alta parte, UCP nu trebuie sa afecteze timp pentru a verifica daca a aparut o astfel de solicitare în sistem. Apare astfel o problema de comunicare de la componentele fizice sau logice ale sistemului de calcul catre UCP, problema rezolvata, în sistemele de calcul moderne, utilizând tehnica întreruperilor. Întreruperea reprezinta suspendarea temporara a executiei procesului care are alocata UCP, în momentul în care apare un eveniment în sistem, în scopul tratarii acestui eveniment de catre UCP. Pentru ca o întrerupere sa fie functionala, este necesar sa poata fi îndeplinite doua conditii: UCP sa dispuna de capacitatea de a fi întrerupta, adica sa fie posibil ca UCP sa fie alocata altui proces, înainte de încheierea executiei procesului caruia îi este alocata, la un moment dat;

sa existe posibilitatea de a conserva parametrii procesului suspendat, pentru ca acesta sa poata fi continuat ulterior, din punctul în care a fost întrerupt.

Surse de întrerupere identifica acele componente fizice sau logice ale sistemului care pot solicita întreruperi, în cazul aparitiei unor evenimente.Semnalele transmise pentru UCP de catre sursele de întrerupere care solicita o întrerupere se numesc cereri de întrerupere (CI).

Tipuri de intreruperi  întreruperi hardware, generate de surse hardware, pentru evenimente externe procesului; de exemplu: dispozitivele periferice pot solicita, printr-o cerere de întrerupere, servicii sau actiuni specifice (imprimanta "anunta" terminarea hârtiei, în timpul unei listari; unitatea de disc "anunta" încheierea unei operatii de citire/scriere sau aparitia unei erori în timpul unei astfel de operatii; tastatura "anunta" activarea sau dezactivarea unei taste, etc.); dispozitivele hardware de supraveghere a functionarii normale a sistemului de calcul pot emite cereri de întrerupere în cazul sesizarii unor anomalii de functionare (circuitele detectoare de paritate pot semnala erori de paritate în timpul unui transfer de date, circuite specializate pot sesiza scaderea tensiunii de alimentare a sistemului, etc.) întreruperi software, care apar în timpul si în legatura cu executia unui proces; ele sunt de doua tipuri: întreruperi software programate generate cu ocazia executiei unui program, cu scopul de a solicita anumite servicii; aceste întreruperi nu apar întâmplator, în timpul executiei programului, ci sunt generate intentionat, prin intermediul unei instructiuni specializate care se insereaza în program si care, atunci când se executa, lanseaza o cerere de întrerupere. întreruperi software de exceptie care apar în timpul executiei unui program, când se încearca executarea unor operatii nepermise, de exemplu: împartirea la 0; depasirea domeniului de valori disponibil pentru anumite moduri de reprezentare a datelor; utilizarea, într-o instructiune, a unui cod de operatie necunoscut;încercarea de acces într-o zona de memorie protejata, etc. Aceste întreruperi sunt determinate de conditii de exceptie în executia programului si sunt generate în scopul evitarii unei evolutii imprevizibile sau eronate a procesului. Aceste întreruperi sunt sincrone cu programul, adica daca o întrerupere de exceptie apare în timpul executarii unui program, cu un anumit set de date, atunci aceasta întrerupere va apare de fiecare data când programul respectiv se executa cu acest set de date



Nivel de întrerupere; numarul nivelelor de întrerupere disponibile în sistem este o constanta constructiva a sistemului de calcul, determinata de numarul de linii pe care UCP poate primi cereri de întrerupere. Sursele de întrerupere sunt grupate, fiecare grup având rezervat un anumit nivel de întrerupere (exista câte un nivel de întrerupere pentru: hdd, imprimanta, tastatura, ceasul sistemului, etc.). În cazul întreruperilor hardware, nivelul de întrerupere este determinat de o componenta de pe placa de baza, numita controler de întreruperi hardware; acesta primeste cererea de întrerupere si o directioneaza catre UCP pe un anumit nivel de întrerupere, în functie de sursa care a generat-o. În cazul întreruperilor software, programul care lanseaza o cerere de întrerupere trebuie sa specifice si nivelul de întrerupere corespunzator. Pentru fiecare nivel de întrerupere exista un program de sistem specializat, numit rutina de tratare a întreruperii sau handler. Fiecarui nivel de întrerupere îi corespunde o adresa fixa în memorie, unde este memorata adresa rutinei de tratare a întreruperii respective. Toate aceste adrese fixe formeaza în memoria interna vectorul de întrerupere. Operatia de executare a rutinei de tratare a întreruperii corespunzatoare unei cereri de întrerupere poarta numele de servire a cererii de întrerupere respective. Rutinele de tratare a întreruperilor sunt incluse în firmware, de exemplu în ROM-BIOS, sau în componentele sistemului de operare. Pot exista si rutine de tratare a întreruperilor proprii unor programe de aplicatie. Aceste rutine pot fi create fie pentru a înlocui o întrerupere standard, fie pentru a crea un nou tip de întrerupere.

Mecanismul de functionare a întreruperilor presupune: lansarea unei cereri de întrerupere si transmiterea ei pe un nivel de întrerupere; întreruperea temporara a procesului activ, cu conservarea starii sale în momentul întreruperii; executarea rutinei de tratare a întreruperii de pe nivelul corespunzator; reluarea procesului întrerupt si continuarea lui, pornind de la starea din momentul întreruperii.

Pasii executati de sist de la aparitia intreruperii pana la rezolvare: salveaza starea procesului în executie, prin memorarea pe stiva a continutului registrului contor de program, al cuvântului de stare program si al registrelor generale; accepta întreruperea si localizeaza rutina de întrerupere; executa rutina de întrerupere; reface contextul de executie al procesului întrerupt; reia procesul din punctul în care a fost întrerupt.

Controlul întreruperilor În timpul executarii unui proces, exista anumite operatii critice, care nu trebuiesc întrerupte. În acest scop, exista posibilitatea invalidarii unei cereri de intrerupere. Controlul întreruperilor se refera la posibilitatea acordata UCP de a accepta sau nu o cerere de întrerupere. În cod masina exista doua instructiuni complementare: EI (Enable Interrupt) care permite validarea unei cereri de întrerupere; DI (Disable Interrupt) care nu permite validarea unei cereri de întrerupere, pâna la o noua instructiune EI. Prin intermediul acestei instructiuni se poate realiza invalidarea soft a unei cereri de întrerupere. Întreruperile care pot fi invalidate soft se numesc întreruperi mascabile. Exista însa si cereri de întrerupere care trebuie sa genereze obligatoriu întreruperea procesului în curs, în momentul aparitiei lor. Întreruperile care nu pot fi invalidate soft se numesc întreruperi nemascabile.

Ierarhizarea întreruperilor La un moment dat, în sistem, pot fi activate, simultan, mai multe cereri de întrerupere. Acestea sunt servite în ordinea în care apar în sistem. De exemplu: se opreste, temporar, executia unei rutine de întrerupere, pentru a lansa în executie o alta rutina de întrerupere, apelata de o cerere de întrerupere aparuta ulterior în sistem. Se poate realiza o ierarhizare a întreruperilor, prin acordarea de prioritati de executie fiecarui nivel de întrerupere. În cazul ierarhizarii întreruperilor, ordinea de servire a cererii de întrerupere va fi stabilita conform urmatoarelor principii: servirea unei cereri de întrerupere poate fi întrerupta numai de o cerere de întrerupere cu nivel de prioritate mai mare; întreruperile nemascabile au prioritate maxima; dupa încheierea unei rutine de tratare a întreruperii se reia executia întrerupta, care poate fi a unui proces sau a altei rutine de tratare a unei întreruperi cu prioritate mai mica. Functiile sistemului de întreruperi În concluzie, sistemul de întreruperi permite comunicarea în sistemul de calcul si sincronizarea activitatii UCP cu evenimentele externe sau interne din sistem, asigurând: directionarea majoritatii cererilor adresate UCP, din mediul extern; degrevarea UCP de sarcina explorarii intrarilor în sistemul de calcul, pentru a detecta sarcinile care îi revin; micsorarea timpului de raspuns al UCP la solicitarile externe sau interne primite; detectarea rapida a unor situatii de disfunctionalitate a sistemului, determinând astfel cresterea fiabilitatii acestuia.

Gestiunea memoriei Tipuri de memorie Dupa viteza de acces: memorii rapide;memorii lente; memorii foarte lente; Dupa tip: memorie principala RAM; mem secundara HDD; memorie cash Ierarhie de memorie Partea din SO care gestioneaza ierarhia de memorie are ca sarcina: sa urmareasca ce parti de memorie sunt în uz si ce parti nu sunt folosite; sa aloce memorie proceselor care au nevoie si sa o dealoce când nu mai este necesara; sa coordoneze schimbul între memoria principala si disc când memoria principala este prea mica pentru a contine toate procesele.

Incarcarea si executia unui program in memorie: încarcarea dinamica încarcarea rutinelor în memoria principala numai atunci când este nevoie de ele); suprapuneri (Overlay-urile furnizeaza un mod de scriere a programelor care necesita mai multa memorie decât memoria fizica ); legarea dinamica (WINDOWS, UNIX).

Alocarea memoriei. Alocatorul de memorie Alocarea memoriei se face ierarhic;



Alocarea memoriei este efectuata de catre alocatorul de memorie care tine contabilitatea zonelor libere si ocupate din memorie, satisface cererea pentru noi zone si reutilizeaza zonele eliberate la baza acestei ierarhii se afla sistemul de operare care furnizeaza utilizatorilor portiuni de memorie iar utilizatorul, la rândul sau, gestioneaza portiunea primita de la SO dupa necesitatile sale.in limbaje de programare )-Limbaje cu alocare si delocare explicita. Functiile new si free în PASCAL si new si delete sau malloc si free din C si C++; )-Limbaje cu colectoare de gunoaie (garbage collection); Dezavantajele limbajului: alocarea este impredictibila în timp, adica nu se stie exact în care moment se va produce; nu se poate sti daca zona de memorie utilizata va fi sau nu utilizata în viitor, deci este posibil ca un program sa pastreze alocate zone de memorie care-i sunt inutile; limbajele Lisp si Java.

in sistemele de operare Mach sau Digital.

Caracteristici ale alocatoarelor: 1)-Timp de operatie. Este timpul necesar unei operatii de alocare/dealocare; 2)-Fragmentarea: fragmentare externa apare ori de câte ori exista o partitie de memorie disponibila, dar nici un program nu încape în ea compactarea spatiului liber din memorie prin mutarea blocurilor dintr-o zona în alta . Fragmentarea interna este data de cantitatea de memorie neutilizata într-o partitie blocata ( ocupata partial de un program); 3)-Concurenta. Aceasta caracteristica se refera la gradul de acces concurent la memorie. 4)-Grad de utilizare.

Scheme de alocare a memoriei: sisteme care transporta procesele, înainte si înapoi, între memoria principala si disc (swapping si paging); sisteme care nu fac acest lucru ( fara swapping si paging); a)-Pentru sistemele cu alocare contigua, exista schemele: -alocare unica; -alocare cu partitii fixe ( alocare statica);-alocatii cu partitii variabile (alocare dinamica); -alocare cu swapping.

b)Pentru sistemele cu alocare necontigua: -alocare paginata   (simpla sau la cerere);

-alocare segmentata (simpla sau la cerere);-alocare segmentata-paginata (simpla sau la cerere). Alocare unica a) Alocare unica cu o singura partitie b) Alocare unica cu doua partitii -partitie pentru sistemul de operare(nucleul);-partitie pentru utilizator.

Alocare cu partitii fixe (alocare statica) -Memoria este împartita static în mai multe partitii, nu neaparat de dimensiuni egale. -În fiecare partitie poate rula cel mult un proces, gradul de multiprogramare fiind dat de numarul partitiilor sistemul de chei de protectie si chei de acces.-La identitatea cheii de acces cu cea de protectie, se permitea accesul în pagina respectiva Alocare cu partitii variabile -tabela partitiilor ocupate; -tabela partitiilor libere.

Algoritmi de alegere a spatiului liber: -FFA (First Fit Algoritm), prima potrivire. Se parcurge lista spatiilor libere, care este ordonata crescator dupa adresa de început si se alege primul spatiu de dimensiune suficienta. Acest algoritm este folosit în sistemul SO MINIX, creat de Tannenbaum. -BFA (Best Fit Algoritm) , cea mai buna potrivire. Se parcurge lista spatiilor libere si se alege spatiul cu dimensiunea cea mai mica în care încape programul. În acest fel se minimizeaza fragmentarea interna. În cazul în care lista spatiului liber este ordonata crescator dupa dimensiunea spatiilor libere, se alege evident primul spatiu liber; -WFA (Worst Fit Algoritm) , cea mai proasta potrivire. Se parcurge lista spatiilor libere ordonata crescator dupa dimensiune si se alege ultimul spatiu din lista.Alocarea prin swapping

Segmentarea memoriei Principiul segmentarii. Fiecare segment are un nume si o dimensiune, deci: -un nume; -un deplasament. Programatorul vede spatiul virtual de adresare al programului ca un spatiu bidimensional, nu un spatiu unidimensional ca la programare

Paginarea memoriei. Paginarea este un tip de alocare necontiguu inseamna ca unui proces ii poate fi alocata memorie oriunde atat in memoria interna cat si externa iar memoria se aloca pe bucati. Suportul hardware Memoria fizica este împartita în blocuri de lungime fixa, numite cadre de pagina (frames) sau pagini fizice.Memoria logica a unui proces este împartita în pagini logice sau pagini virtuale care sunt plasate în memoria secundara, pe hdd.

Atât adresele fizice cât si cele logice sunt implementate în hard si ele contin: -adresa fizica=numar de cadru(f)+deplasament în cadru(d); -adresa logica=numar de pagini logice(l)+deplasament în pagina logica. Prin mapare se întelege translatarea adresei logice în adresa fizica. Aceasta sarcina îi revine sistemului de operare prin utilizarea tabelei de pagini.Principalul avantaj al paginarii este eliminarea completa a fragmentarii externe. Posibilitatea de partajare a memoriei. Doua sau mai multe pagini pot vedea aceeasi zona de memorie încarcând paginile logice în acelasi cadru fizic. Un dezavantaj al paginarii este faptul ca fiecare acces la memorie presupune un acces suplimentar la tabela de pagini pentru calculul de adresa.




Document Info


Accesari: 6173
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2025 )