Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  


AccessAdobe photoshopAlgoritmiAutocadBaze de dateC
C sharpCalculatoareCorel drawDot netExcelFox pro
FrontpageHardwareHtmlInternetJavaLinux
MatlabMs dosPascalPhpPower pointRetele calculatoare
SqlTutorialsWebdesignWindowsWordXml

Starea de interblocare

calculatoare

+ Font mai mare | - Font mai mic



DOCUMENTE SIMILARE

Trimite pe Messenger
Limbaje de programare specifice Web-ului
Crearea unei baze da date Oracle9I
Obiecte in OOP
Mediul de programare SCILAB
Constructia sistemelor informatice
SISTEME INFORMATICE CLIENT/SERVER
Urmarirea desfasurarii proiectului - Microsoft Project
Protocolul UDP
Bruel & Kjaer PULSE
SISTEMELOR DE OPERARE PENTRU CALCULATOARE PERSONALE


Starea de interblocare




Intr-un sistem cu multiprogramare se intampla frecvent ca mai multe procese sa concureze pentru folosirea unui numar finit de resurse. In cazul in care resursa ceruta de catre un proces nu este disponibila, procesul va intra in starea de asteptare. Daca resursa ceruta este mentinuta in starea ocupat de catre alt proces aflat la randul sau in asteptare, apare interblocarea ( deadlock , o situatie nedorita in care procesele implicate nu reusesc

sa-si incheie executia, mentinand ocupate resursele sistemului si impiedicand astfel celelalte procese sa-si inceapa la randul lor executia.

Resursele pot fi: resurse fizice ( imprimate, spatiu de memorie, cicluri UC etc. ) sau resurse logice ( fisiere, semafoare, monitoare ). In general, se considera ca resursele sistemului sunt grupate in tipuri de resurse, fiecare dintre acestea fiind format dintr-un anumit numar de elemente identice. Ca exemple de tipuri de resursa pot fi enumerate: cicluri

de UC, spatiu de memorie, fisiere si dispozitive de I/O ( in cazul in care sistemul contine doua UC, se spune ca tipul resursa UC contine doua elemente.) Inainte de a putea utiliza o resursa, procesul formuleaza o cerere de acces, iar dupa terminarea operatiei elibereaza resursa respectiva. Atunci cand un proces formuleaza o cerere de acces la un element al unui

tip resursa, cererea va fi satisfacuta prin alocarea oricarui element apartinand tipului precizat.

Pe scurt, etapele parcurse de un proces in cursul utilizarii unei resurse sunt:

cerere de acces: daca cererea nu poate fi satisfacuta imediat, procesul care a

formulat-o va fi nevoit sa astepte pana in momentul in care poate dobandi resursa;

utilizare: procesul poate folosi resursa;

eliberare: procesul elibereaza resursa.

Cererea si eliberarea resurselor se realizeaza prin apeluri de sistem cum ar fi, de exemplu, apelurile de sistem pentru cerere/eliberare dispozitiv, deschidere/inchidere fisier si alocare/eliberare memorie sau prin intermediul operatiilor cu semafoare, Wait si Signal. Tot

cu ajutorul apelurilor de sistem se poate realiza si utilizarea resurselor ( de exemplu, pentru citirea sau scrierea unui fisier ). De aceea, sistemul verifica de fiecare data daca procesul a formulat cererea si daca i-a fost alocata resursa ceruta, folosind un tabel de sistem in care se specifica pentru fiecare resursa faptul ca este libera sau este deja alocata, in aceasta ultima

situatie fiind precizat si procesul asociat. In cazul in care un proces cere o resursa deja alocata altui proces, procesul care a formulat cererea va fi adaugat la sirul de asteptare asociat resursei in cauza.

Se spune ca un set de procese se afla in starea de interblocare atunci cand oricare proces din set se afla in asteptarea unui eveniment ce poate fi produs numai de catre un alt proces din setul respectiv, principalele evenimente luate in discutie fiind dobandirea si eliberarea resurselor ( desigur, interblocarea poate fi provocata si de alte tipuri de evenimente ). Interblocarile pot sa apara atat in cazul in care procesele concureaza pentru dobandirea unui acelasi tip de resursa, cat si in cazul in care se cere acces la resurse de tip diferit.

Pentru rezolvarea problemei interblocarii se folosesc, in principiu, doua metode. Prima metoda consta in utilizarea unui protocol care sa nu permita niciodata sistemului sa intre in starea de interblocare. Acest deziderat se realizeaza fie prin prevenirea interblocarii,

fie prin evitarea interblocarii. Cea de-a doua metoda permite sistemului intrarea in starea de interblocare si rezolva apoi aceasta situatie, reprezentand de multe ori o solutie destul de dificila si costisitoare.

Conditii necesare pentru aparitia interblocarii

Interblocarea apare daca si numai daca in sistem sunt indeplinite simultan urmatoarele 4 conditii:

excluderea mutuala: exista cel putin o resursa ocupata in mod exclusiv ( adica fara a putea fi folosita in comun ) de catre un singur proces; daca un alt proces formuleaza cerere pentru aceeasi resursa, va fi nevoit sa astepte pana in momentul eliberarii ei;

ocupare si asteptare: exista cel putin un proces care mentine ocupata cel putin o resursa si asteapta sa obtina resurse suplimentare ocupate in acel moment de catre alte procese;

imposibilitatea achizitionarii fortate: resursele nu pot fi achizitionate fortat, adica nu pot fi dobandite in mod 'abuziv' de catre un proces de la procesul care le ocupa la momentul considerat; resursele pot fi eliberate numai de catre procesele care le ocupa, dupa ce acestea si-au indeplinit sarcinile;

asteptarea circulara: in sistem exista un set de procese aflate in starea de asteptare, ( P0, P1, Pn ), astfel incat P0 asteapta eliberarea unei resurse ocupate de catre P1, P1 asteapta eliberarea unei resurse ocupate de catre P2, , Pn asteapta eliberarea unei

resurse ocupate de catre P0.

Se observa ca ultima conditie implica si conditia de ocupare si asteptare, astfel incat cele patru conditii nu sunt complet independente; cu toate acestea este util ca fiecare conditie sa fie discutata si tratata separat.

Prevenirea interblocarii

Starea de interblocare poate fi prevenita daca cel putin una dintre conditiile necesare

si suficiente pentru aparitia sa nu este indeplinita.

Excluderea mutuala

In cazul tipurilor de resurse nepartajabile ( care nu pot fi folosite in comun ) aceasta conditie trebuie neaparat indeplinita. De exemplu, o imprimanta nu poate fi folosita simultan de catre mai multe procese. Pe de alta parte, deoarece resursele partajabile nu necesita acces mutual exclusiv, ele nu vor fi niciodata implicate intr-o interblocare. Un exemplu edificator de resursa partajabila sunt fisierele ce pot fi accesate doar pentru citire ( read only . Daca mai multe procese incearca in acelasi moment de timp sa deschida un fisier de acelasi tip, li se poate acorda accesul simultan. In cazul unei resurse partajabile procesul nu va fi niciodata nevoit sa astepte. Totusi, in general, nu este posibila prevenirea interblocarilor prin neimplinirea conditiei de excludere mutuala, deoarece anumite resurse sunt in mod intrinsec nepartajabile.

Ocupare si asteptare

Pentru ca in sistem sa nu fie indeplinita niciodata conditia de ocupare si asteptare trebuie sa existe certitudinea ca in momentul in care un proces cere o resursa el nu mai are alocate si alte resurse. In acest scop se poate utiliza un protocol prin care, inainte de a-si incepe executia, fiecare proces sa ceara si sa i se aloce toate resursele de care are nevoie. Implementarea se poate realiza impunand conditia ca apelurile de sistem ce formuleaza cereri de acces la resurse sa se produca inaintea altor apeluri de sistem. Un alt protocol care poate fi utilizat este cel ce permite unui proces sa ceara resurse numai in cazul in care nu detine niciuna; procesul poate sa ceara anumite resurse si sa le utilizeze dar, inainte de a cere resurse suplimentare, trebuie sa le elibereze pe cele care ii sunt deja alocate. Tipurile de protocol prezentate au doua mari dezavantaje:



gradul de utilizare a resurselor poate fi foarte redus deoarece multe dintre acestea pot

fi alocate dar neutilizate o lunga perioada de timp;

pericolul aparitiei 'infometarii' ( starvation ): procesul care doreste sa obtina acces la mai multe resurse publice poate fi nevoit sa astepte la infinit, in timp ce cel putin una dintre resursele cerute este alocata permanent altor procese.

Imposibilitatea achizitionarii fortate

Cea de-a treia conditie necesara pentru aparitia starii de interblocare este ca resursele deja alocate sa nu poata fi achizitionate fortat. Pentru a avea certitudinea ca aceasta conditie

nu va fi indeplinita se poata folosi urmatorul protocol: daca un proces care ocupa anumite resurse formuleaza cerere pentru o alta resursa ce nu ii poate fi alocata imediat ( adica

procesul trebuie sa astepte), atunci toate resursele detinute in mod curent vor fi

'achizitionate fortat' ( in mod implicit, toate vor fi eliberate ). Ele vor fi adaugate in lista de resurse a caror eliberare este asteptata de catre proces, iar acesta isi va relua executia numai

in momentul in care va reusi sa dobandeasca atat vechile resurse, cat si noua resursa pe care

o ceruse.

Ca alternativa se poate folosi urmatorul protocol: se verifica daca resursele cerute de catre un proces sunt disponibile. Daca da, ii sunt alocate. Daca nu, se verifica daca nu cumva ii sunt alocate altui proces care se afla in asteptare de resurse suplimentare. Daca da, resursele dorite vor fi achizitionate de la procesul aflat in asteptare si vor fi alocate procesului care a formulat cererea. Daca resursele nu sunt disponibile, sau sunt ocupate de catre un proces aflat in asteptare, procesul care a formulat cererea e nevoit sa astepte. In acest timp este posibil ca unele dintre resursele sale sa fie achizitionate fortat, dar aceasta se intampla numai daca sunt cerute de catre un alt proces. Procesul isi poate relua executia numai in momentul in care a obtinut atat alocarea noii resurse pentru care formulase cererea,

cat si a tuturor resurselor care ii fusesera achizitionate fortat in timp ce se afla in starea de asteptare. Acest protocol se aplica frecvent in cazul resurselor a caror stare poate fi usor

salvataa si apoi refacuta, asa cum sunt registri UC si spatiul de memorie ( celulele de memorie ), dar, in general, nu se poate aplica unor resurse ca imprimatele, de exemplu.

Asteptare circulara

Pentru a impiedica indeplinirea conditiei de asteptare circulara se poate impune o ordonare completa a tuturor tipurilor de resursa, asociind fiecarui tip de resursa un unic numar intreg care sa permita compararea a doua resurse si sa precizeze ordinea in care acestea sunt inscrise in sir.

Fir R=(r ,r ,,rn) setul de tipuri resursa. Se poate defini o functie de tip unu-la-unu, F:R N, in care N reprezinta multimea numerelor naturale. Functia F poate fi definita in deplin acord cu ordonarea fireasca a folosirii resurselor in cadrul sistemului. De exemplu, daca setul R contine drivere de disc flexibil, drivere de hard disc si imprimante, atunci functia F se poate defini astfel:

F(driver_floppy) = 1

F(driver_disc) = 2

F(imprimanta) = 3

Pentru prevenirea interblocarii se poate utiliza un protocol conform caruia fiecre proces poate cere resurse numai in ordinea crescatoare a enumerarii. De exemplu, daca un proces poate cere initial oricate elemente de tip resursa ri, dupa aceea el poate cere elemente

de tip resursa rk, daca si numai daca F(rk)>F(ri). In cazul in care sunt necesare mai multe

elemente apartinand aceluiasi tip resursa, trebuie formulata o singura cerere pentru toate.

Ca alternativa se poate impune ca un proces sa nu poata cere un element al tipului tipului resursa rk inainte de a fi eliberat deja toate resursele ri cu proprietatea F(ri)>F(rk

Evitarea interblocarii

Algoritmii prezentati anterior realizeaza prevenirea interblocarii prin stabilirea unor restrictii asupra modului in care se pot formula cererile de acces. Restrictiile impun cel putin una dintre conditiile necesare sa nu fie indeplinita, ceea ce conduce la imposibilitatea aparitiei interblocarii. Aceasta metoda are insa un dezavantaj: poate genera un grad redus de utilizare a dispozitivelor si un volum de lucru in unitatea de timp destul de mic.

O alta metoda, pentru evitarea interblocarii, este folosirea de informatii suplimentare referitoare la modul in care se va face cererea de acces la resurse. Cunoscand toata secventa

de cereri si eliberari de resurse pentru fiecare dintre procese se poate hotari pentru fiecare cerere in parte daca procesul va trebui sau nu sa astepte. In cazul fiecarei formulari de cerere

se impune ca sistemul sa ia in considerare resursele disponibile in momentul respectiv, resursele alocate deja, precum si viitoarele cereri si eliberari de resurse corespunzatoare fiecarui proces, pentru a putea decide daca cererea curenta poate fi satisfacuta sau trebuie sa astepte in vederea evitarii aparitiei unei interblocari.

Pentru implementarea acestei metode se folosesc in prezent mai multi algoritmi care difera intre ei prin tipul si cantitatea de informatie necesara.

In cazul celui mai simplu si mai des utilizat, fiecare proces trebuie sa declare numarul maxim de resurse din fiecare tip de care ar putea avea nevoie. Dispunand apriori de o astfel

de informatie, se poate construi un algoritm prin intermediul caruia sa se evite complet aparitia unei interblocari. Algoritmul examineaza in mod dinamic starea alocarii resurselor pentru a avea certitudinea ca nu va aparea niciodata o conditie de asteptare circulara.

Starea alocarii resurselor este definita de numarul de resurse disponibile si alocate si

de numarul maxim de cereri de resurse formulate de catre procese. Se spune ca o stare este

singura daca sistemul poate aloca fiecarui proces resursele cerute ( pana la numarul maxim

), intr-o anumita ordine si evitand aparitia interblocarii. Mai exact, sistemul se afla intr-o stare sigura numai daca exista o secventa sigura. Se spune ca o secventa de procese



<p ,p ,..,pn>este o secventa sigura pentru starea de alocare curenta daca, pentru fiecare pi resursele pe care pi le-ar mai putea cere pot fi alocate din resursele disponibile, la care se adauga resursele detinute de catre toate celelalte pk, cu k<i. In acest caz, daca resursele dorite de catre procesul pi nu sunt imediat disponibile, pi trebuie sa astepte pana cand toate

pk isi incheie executia. In acel moment pi poate obtine toate resursele de care are nevoie, isi completeaza sarcina, elibereaza resursele si se incheie, dupa care pi+1 poate obtine resursele

pe care le doreste si asa mai departe. In cazul in care nu exista o astfel de secventa se spune

ca starea sistemului este nesigura.

O stare de interblocare este o stare nesigura. Totusi, nu toate starile nesigure reprezinta interblocari ( Figura 12 ). O stare nesigura poate insa conduce la o interblocare. Atata timp cat starea este sigura, sistemul de operare poate evita starile nesigure ( si starile

de interblocare ). Intr-o stare nesigura sistemul de operare nu poate impiedica procesele sa formuleze in asa fel cererile de alocare a resurselor incat sa nu apara interblocare: comportarea proceselor este cea care controleaza starile nesigure.

Figura 12

Ca exemplu se poate utiliza un sistem in care patru procese, notate p p p , p folosesc in comun un numar de 20 de resurse de acelasi tip. Pe durata intregii executii procesele au nevoie de maximum 14, 6, 10 si respectiv 9 resurse fecare. Initial procesele formuleaza carere pentru 7, 3, 4 si respectiv 2 resurse. Analizand situatia sistemului la momentul initial se constata ca el se afla intr-o stare sigura deoarece, de exemplu, secventa

<p , p , p , p > este o secventa sigura. Primind inca trei resurse din cele 4 ramase nealocate, procesul p1 isi poate incheia executia, eliberand la randul sau 6 resurse. Procesul p0 primeste aceste 6 resurse la care se adauga resursa ramasa nealocata si se incheie, eliberand in total

14 resurse care pot satisface necesarul celorlalte procese din sistem ( p si p3

Se observa insa ca este posibil ca dintr o stare sigura sa se ajunga intr-o stare nesigura. Daca, de exemplu, din starea initiala a sistemului prezentat anterior, procesul p formuleaza cerere pentru inca doua resurse si acestea ii sunt alocate, se trece nu numai intr-o stare nesigura ci, in mod evident, in stare de interblocare: numarul de resurse libere ( 2 ) este insuficient pentru oricare dintre procesele implicate in asteptare ( 7 pentru p , 3 pentru p , 6 pentru p si 5 pentru p ). Situatia ar fi putut fi evitata numai daca cererea formulata de procesul p2 ar fi putut fi respinsa, urmand a fi acceptata mai tarziu, dupa incheierea executiei altor procese si eliberarea resurselor ocupate de acestea.

Ideea de baza in jurul careia se construiesc algoritmii destinati evitarii aparitiei interblocarii este necesitatea ca in urma oricarei operatii de alocare a resurselor, sistemul sa ramana intotdeauna intr-o stare sigura. Deoarece initial sistemul se afla intr-o astfel de stare,

ori de cate ori unul dintre procese formuleaza cerere pentru resursa disponibila, sistemul trebuie sa hotarasca daca resursa va fi alocata imediat sau daca procesul trebuie sa astepte,

cererea fiind satisfacuta numai in cazul in care prin alocarea resursei sistemul ramane intr-o

stare sigura.

4. Detectarea interblocarii

Atunci cand sistemul nu utilizeza nici algoritmi de prevenire si nici algoritmi de evitare, interblocarea poate sa apara. In acest caz sistemul trebuie sa furnizeze un algoritm

care sa examineze starea sistemului pentru a afla daca a aparut o interblocare si un algoritm care sa realizeze revenirea din starea de interblocare. Metodele de detectare si revenire necesita insa cheltuieli suplimentare care includ nu numai costurile implicate de pastrarea informatiei necesare si executarea algoritmului de detectare, dar si posibile pierderi inerente revenirii din starea de interblocare.

Decizia de folosire a algoritmilor de detectare a interblocarii este influentata in principiu de frecventa aparitiei starii de interblocare si de numarul proceselor implicate.

Starea de interblocare poate sa apara in momentul in care un proces oarecare formuleaza o cerere ce nu poate fi acceptata imediat. Algoritmul de detectare a interblocarii

se poate apela ori de cate ori se intampla ca o cerere de alocare sa nu poata fi permisa imediat, caz in care poate fi identificat nu numai setul de procese interblocate, ci si procesul care a determinat aparitia interblocari ( in realitate, fiecare dintre procesele interblocate face parte din bucla aparuta in graful alocarii resurselor si, deci, se poate spune ca toate aceste procese colaboreaza la aparitia interblocarii ). Daca in sistem exista mai multe tipuri de resursa, o singura cerere poate determina aparitia mai multor bucle in cadrul grafului,

fiecare bucla fiind completata de catre cea mai recenta cerere si 'cauzata' de catre un anumit proces ce poate fi identificat.

Apelarea algoritmului de detectare a interblocarii, ori de cate ori se formuleaza o cerere de resurse, poate avea ca efect un substantial consum suplimentar de timp si calcul. O varianta mai putin costisitoare este apelarea algoritmului la intervale mai mari de timp, de exemplu la o ora sau ori de cate ori gradul de utilizare a UC scade sub 40% ( o interblocare poate conduce la 'paralizarea' functionarii sistemului si deci la o scadere a gradului de utilizare a UC ). In cazul in care algoritmul de detectarea a interblocarii este apelat la momente de timp alese in mod arbitrar, in graful resurselor pot exista simultan mai multe bucle si, de aceea, in general, nu se va putea preciza care dintre procesele interblocate a

'cauzat' interblocarea.

5. Revenirea din starea de interblocare



In cazul in care algoritmul de detectare a interblocarii a semnalat aparitia unei astfel

de stari in sistem, revenirea poate fi realizata de catre operatorul uman ( in mod manual ) sau de catre sistemul de operare ( in mod automat ). Oricare ar fi varianta aleasa, se poate folosi una dintre urmatoarele doua metode: incheierea fortata a executiei unuia sau a mai multor procese pentru a face sa dispara asteptarea circulara si, respectiv, achizitionarea fortata a unor resurse de la unul sau de la mai multe dintre procesele interblocate.

Incheierea executiei procesului

Aceasta metoda pune la dispozitia sistemului toate resursele ce fusesera alocate pana

in acel moment proceselor care se incheie; se aplica sub una dintre urmatoarele forme:

incheierea fortata a executiei tuturor proceselor interblocate: asigura eliminarea buclei de interblocare, dar este o metoda foarte costisitoare deoarece toate rezultatele obtinute prin executia proceselor pana la momentul considerat trebuie abandonate, urmand a fi recalculate ulterior;

incheierea fortata a executiei cate unui singur proces pana in momentul in care se elimina bucla de interblocare: necesita un timp de calcul suplimentar destul de mare deoarece, dupa incheierea fortata a fiecarui proces, trebuie apelat un algoritm de detectare a interblocarii pentru a constata daca mai exista sau nu procese interblocate.

Atunci cand pentru revenirea din starea de interblocare se foloseste cea de-a doua metoda, este necesar sa se determine care proces ( sau care procese ) trebuie incheiat ( sau incheiate ), pentru ca interblocarea sa fie eliminata. Aceasta decizie, asemanatoare problemelor ce apar in planificarea UC, este de natura economica: vor fi incheiate fortat procesele care implica un cost minim. Din pacate insa, termenul de cost minim nu este foarte precis, procesele care vor fi incheiate fortat sunt alese in functie de mai multi factori, dintre care se pot enumera: prioritatea procesului, perioada de timp pe parcursul careia s-a executat procesul si cea care i-ar mai fi necesara pentru a-si incheia executia intr-un mod normal, numarul si tipul resurselor ce au fost deja utilizate de catre proces, numarul resurselor ce i-ar mai fi necesare procesului pentru a-si incheia normal executia, numarul proceselor a caror executie ar trebui incheiata fortat etc.

Achizitionarea fortata a resurselor

Aceasta metoda asigura eliminarea starii de interblocare prin achizitionarea succesiva

a resurselor ocupate de anumite procese si alocarea acestora altor procese pana in momentul

in care se realizeaza eliminarea buclei de interblocare. Principalele probleme care trebuie rezolvate in acest caz sunt:

alegerea unei 'victime': adica selectarea resurselor care vor fi achizitionate fortat

si a proceselor implicate, urmarindu-se, evident, asigurarea unui 'cost' minim;

factorul cost poate sa includa ca parametri, de exemplu, numarul resurselor ocupate

de catre procesul interblocat si marimea duratei de timp de executie consumate deja

de catre aceasta;

reluarea executiei: un proces caruia i sa achizitionat fortat o resursa nu-si mai poate continua executia normala, ci trebuie 'intors in timp' pana cand ajunge intr-o stare sigura si abia apoi, pornind din acea stare, executia procesului poate fi reluata; cea mai simpla solutie este o revenire totala, adica incheierea fortata a procesului si apoi reinceperea executiei; totusi, 'intoarcerea in timp' numai pana acolo unde este necesar pentru a iesi din interblocare este o metoda mai eficienta, cu toate ca impune sistemului pastrarea mai multor informatii despre starea tuturor proceselor aflate in executie;

'infometarea : in cazul unui sistem in care alegerea 'victimei' se bazeaza, in principal, pe factorul cost, se poate intampla ca de fiecare data sa fie desemnat ca

'victima' acela;i proces, astfel incat el nu va putea niciodata sa-si incheie normal executia, pentru evitarea unei asemenea situatii ('infometare'), este necesar sa se impuna o limitare a numarului de alegeri ca 'victima' ale procesului, de exemplu prin includerea in factorul cost a numarului de 'intoarceri in timp' ale acestuia.

6. Metode mixte de tratare a interblocarilor

Practica a demonstrat ca nici una dintre metodele de baza pentru tratarea interblocarii

( adica prevenirea, evitarea si detectarea ) nu poate acoperi intregul spectru de probleme de alocare a resurselor ce apar in cadrul sistemelor de operare. O posibilitate de rezolvare a acestor probleme este combinarea algoritmilor de baza descrisi anterior, ceea ce permite folosirea abordarii optime a fiecarei clase de resurse din sistem. Metoda propusa are la baza ideea ca resursele pot fi grupate in clase ordonate ierarhic, carora li se aplica o tehnica de ordonare a resurselor, in interiorul fiecarei clase fiind utilizata pentru gestionarea interblocarilor cea mai potrivita metoda. Datorita folosirii tehnicii de ordonare a resurselor,

o interblocare nu poate implica mai mult decat o clasa de resurse si, cum in interiorul fiecarei clase se foloseste una dintre abordarile de baza, in sistem nu pot sa apara interblocari.

Ca exemplu, se poate considera un sistem format din 4 clase de resurse:

resurse interne: resursele utilizate de catre sistem ( de exemplu, blocul de control al procesului );

memoria centrala;

resursele job-ului: dispozitive ( de exemplu un driver de disc flexibil ) si fisiere ;

spatiul din memoria auxiliara alocat fiecarui utilizator.

O metoda mixta pentru rezolvarea interblocarii in cazul acestui sistem ordoneaza

clasele descrise anterior, folosind in cadrul fiecarei clase urmatoarele abordari:

prevenirea interblocarii prin ordonarea resurselor interne deoarece, in timpul executiei, nu este necesara alegerea uneia dintre cererile nerezolvate;

prevenirea interblocarii prin achizitie fortata a memoriei centrale, deoarece se poate evacua oricand un job in memoria auxiliara, astfel incat memoria centrala aferenta acestuia sa fie folosita in alt scop;

evitarea interblocarii in cazul resurselor job-ului, deoarece informatiile necesare despre formularea cererilor de resurse pot fi obtinute din liniile de comanda;

alocarea prealabila a spatiului din memoria auxiliara asociat fiecarui job utilizator deoarece, in general, se cunoaste necesarul maxim de memorie al fiecarui job.






Politica de confidentialitate



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 2347
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 2022 . All rights reserved

Distribuie URL

Adauga cod HTML in site