sisteme de operare introducere - cedc.ro · arhitectura unui calculator 13/03/2009 cursul 1 5 ......
TRANSCRIPT
Cursul 1Cursul 1 1113/03/200913/03/2009
Sisteme de operareSisteme de operareIntroducereIntroducere
13/03/200913/03/2009 Cursul 1Cursul 1 33
AgendaAgenda
•• IstoricIstoric
•• Clasificarea sistemelor de operareClasificarea sistemelor de operare
•• Nucleul sistemului de operareNucleul sistemului de operare
•• Sistemul de intreruperiSistemul de intreruperi
•• Drivere de dispozitivDrivere de dispozitiv
13/03/200913/03/2009 Cursul 1Cursul 1 44
BibliografieBibliografie
•• A. Tanenbaum A. Tanenbaum –– Sisteme de operare moderneSisteme de operare moderne--editia editia a doua,a doua, Editura Byblos, Bucuresti, 2004.Editura Byblos, Bucuresti, 2004.
•• C. Popescu, A. Stepan, C. Popescu, A. Stepan, Sisteme de operareSisteme de operare, Editura , Editura Universitatii din Oradea, Oradea, 1999.Universitatii din Oradea, Oradea, 1999.
•• A. Tanenbaum, A. Tanenbaum, Operating Systems: Design and Operating Systems: Design and ImplementationImplementation, Prentice Hall, Englewood Cliffs, New , Prentice Hall, Englewood Cliffs, New Jersey, 1986.Jersey, 1986.
Arhitectura unui calculatorArhitectura unui calculator
13/03/200913/03/2009 Cursul 1Cursul 1 55
•• Un calculator este compus din:Un calculator este compus din:
–– HardwareHardware
–– Programe de sistemPrograme de sistem
–– Programe de aplicatiiPrograme de aplicatii
13/03/200913/03/2009 Cursul 1Cursul 1 66
Definitia unui Sistem de operareDefinitia unui Sistem de operare
•• Un Un sistem de operare (SO)sistem de operare (SO) este o este o colectie organizata de programe care:colectie organizata de programe care:–– gestioneaza resursele calculatorului, gestioneaza resursele calculatorului,
implementând algoritmi prin care se incearca o implementând algoritmi prin care se incearca o optimizare a performantelor calculatoruluioptimizare a performantelor calculatorului
–– realizeaza o interfata intre utilizator si calculator, realizeaza o interfata intre utilizator si calculator, extinzând setul de operatii disponibile extinzând setul de operatii disponibile utilizatorului si simplificând modul de lucru cu utilizatorului si simplificând modul de lucru cu calculatorul.calculatorul.
Sisteme de operareSisteme de operare
•• Functiile generale unui sistem de Functiile generale unui sistem de operare:operare:
–– Alocarea de resurse proceselorAlocarea de resurse proceselor
–– Contabilizarea resurselor Contabilizarea resurselor –– ce resurse sunt ce resurse sunt libere libere
–– Planificarea proceselorPlanificarea proceselor
–– Protectia Protectia –– un process poate accesa resurse un process poate accesa resurse numai cand numai cand îîi este permisi este permis
13/03/200913/03/2009 Cursul 1Cursul 1 77
Sisteme de operareSisteme de operare
•• Functii de baza:Functii de baza:
–– Managementul proceselorManagementul proceselor
–– Managementul resurselorManagementul resurselor•• Managmentul perifericelor Managmentul perifericelor
•• Managmentul memoriei Managmentul memoriei
•• Managmentul fisierelorManagmentul fisierelor
13/03/200913/03/2009 Cursul 1Cursul 1 88
13/03/200913/03/2009 Cursul 1Cursul 1 99
Sisteme de operareSisteme de operare
•• Proiectantul unui sistem de operare trebuie Proiectantul unui sistem de operare trebuie sa realizeze urmatoarele actiuni: sa realizeze urmatoarele actiuni: –– sa asigure buna functionare a componentelor sa asigure buna functionare a componentelor
hardware, precum si comunicarea si cooperarea hardware, precum si comunicarea si cooperarea intre acestea intre acestea
–– sa previna interferentele nedorite intre diferitele sa previna interferentele nedorite intre diferitele programe de aplicatiiprograme de aplicatii
–– inclusiv sa impiedice pe cat posibil propagarea inclusiv sa impiedice pe cat posibil propagarea efectelor erorilor unui program asupra celorlalteefectelor erorilor unui program asupra celorlalte
13/03/200913/03/2009 Cursul 1Cursul 1 1010
Istoria sistemelor de operareIstoria sistemelor de operare
1.1. Prima generatie (1945Prima generatie (1945--1955)1955)--Tuburi cu vid Tuburi cu vid si placi de conexiunisi placi de conexiuni
2.2. A doua generatie (1955A doua generatie (1955--1965)1965)--Tranzistoare si sisteme cu procesare pe Tranzistoare si sisteme cu procesare pe loturi de lucrariloturi de lucrari
3.3. Generatia a treia (1965Generatia a treia (1965--1980)1980)--Circuite Circuite integrate si multiprogramareintegrate si multiprogramare
4.4. Generatia a patra (1980Generatia a patra (1980--pana in prezent)pana in prezent)--Calculatoare personaleCalculatoare personale
13/03/200913/03/2009 Cursul 1Cursul 1 1111
Istoria UNIXIstoria UNIX
•• 19691969, anul na, anul nassterii UNIXterii UNIX--uluiului
•• 19771977, anul apari, anul aparittiei variantelor comerciale iei variantelor comerciale de UNIX de UNIX –– autori Kenneth Thompson autori Kenneth Thompson ssi Dennis Ritchie.i Dennis Ritchie.
•• System V Release 4 (SVR4)System V Release 4 (SVR4)
•• Solaris 2.xSolaris 2.x
•• 4.4BSD4.4BSD
•• LinuxLinux
13/03/200913/03/2009 Cursul 1Cursul 1 1212
Istoria Microsoft Windows (1)Istoria Microsoft Windows (1)
•• Windows 1.0Windows 1.0–– Anuntat in 1983, lansat in Noiembrie 1985Anuntat in 1983, lansat in Noiembrie 1985
•• Windows 2.0Windows 2.0–– Lansat in 1987Lansat in 1987–– Procesoarele Intel 8086 si 8088Procesoarele Intel 8086 si 8088–– Putea accesa 1 MB memoriePutea accesa 1 MB memorie
•• Windows 3.0Windows 3.0–– Introdus in 22 Mai, 1990Introdus in 22 Mai, 1990–– Schimbare majora: Suporta modul protejat pe 16Schimbare majora: Suporta modul protejat pe 16--biti biti
(procesoare Intel 286/386)(procesoare Intel 286/386)–– Putea accesa pina la 16 MB memoriePutea accesa pina la 16 MB memorie
13/03/200913/03/2009 Cursul 1Cursul 1 1313
Istoria Microsoft Windows (2)Istoria Microsoft Windows (2)
•• Windows 3.1Windows 3.1–– Lansat in Aprilie 1992Lansat in Aprilie 1992–– A introdus fonturile TrueTypeA introdus fonturile TrueType–– MultimediaMultimedia–– Ruleaza numai in modul protejatRuleaza numai in modul protejat–– Procesoare 286/386Procesoare 286/386
•• Windows NTWindows NT–– Introdus in iulie 1993Introdus in iulie 1993–– Prima versiune Windows care suporta accesul pe 32Prima versiune Windows care suporta accesul pe 32--
biti de la procesoarele Intel 386, 486 si Pentiumbiti de la procesoarele Intel 386, 486 si Pentium–– Proiectat sa fie portabil pe procesoare nonProiectat sa fie portabil pe procesoare non--IntelIntel
13/03/200913/03/2009 Cursul 1Cursul 1 1414
Istoria Microsoft Windows (3)Istoria Microsoft Windows (3)
•• Windows 95Windows 95–– Introdus in August 1995Introdus in August 1995
–– Suporta modul de acces pe 32Suporta modul de acces pe 32--bitibiti
•• Windows 98Windows 98–– Lansat in iunie 1998Lansat in iunie 1998
–– Performante imbunatatite si suport pentru hardwarePerformante imbunatatite si suport pentru hardware
–– Integrare facilitati InternetIntegrare facilitati Internet
•• Windows 2000Windows 2000–– Introdus in Februarie 2000Introdus in Februarie 2000
•• Windows MillenniumWindows Millennium–– Lansat in Septembrie 2000Lansat in Septembrie 2000
•• Windows XPWindows XP–– Lansat in 2001Lansat in 2001
•• Windows 2003Windows 2003
13/03/200913/03/2009 Cursul 1Cursul 1 1515
Clasificarea sistemelor de operareClasificarea sistemelor de operare
•• Putem clasifica sistemele de operare dupa mai Putem clasifica sistemele de operare dupa mai multe criterii:multe criterii:
–– Dupa numarul de programe care pot rula simultan: Dupa numarul de programe care pot rula simultan:
•• singlesingle--taskingtasking -- permit rularea uni singur program la un permit rularea uni singur program la un moment dat; singurul sistem din aceasta clasa care mai este moment dat; singurul sistem din aceasta clasa care mai este folosit astazi (dar din ce in ce mai putin) este DOS folosit astazi (dar din ce in ce mai putin) este DOS
•• multitaskingmultitasking -- Unix, Windows 9x/NT/2000/XP, OS/2 etc. Unix, Windows 9x/NT/2000/XP, OS/2 etc.
–– Dupa numarul de utilizatori care pot lucra simultan pe Dupa numarul de utilizatori care pot lucra simultan pe un calculator: un calculator:
•• sisteme monoutilizator (singlesisteme monoutilizator (single--user)user) –– familia Windows familia Windows
•• sisteme multiutilizator (multiuser)sisteme multiutilizator (multiuser) –– familia Unixfamilia Unix
13/03/200913/03/2009 Cursul 1Cursul 1 1616
Tipuri de sisteme de operareTipuri de sisteme de operare
1.1. Sisteme de operare pentru masini mari de calculSisteme de operare pentru masini mari de calcul
2.2. Sisteme de operare pentru servereSisteme de operare pentru servere
3.3. Sisteme de operare multiprocesorSisteme de operare multiprocesor
4.4. Sisteme de operare pentru calculatoare Sisteme de operare pentru calculatoare personalepersonale
5.5. Sisteme de operare in timp realSisteme de operare in timp real
6.6. Sisteme de operare pentru dispozitive Sisteme de operare pentru dispozitive incorporateincorporate
7.7. Sisteme de operare pentru cartele inteligenteSisteme de operare pentru cartele inteligente
13/03/200913/03/2009 Cursul 1Cursul 1 1717
Sisteme de operare pentru Sisteme de operare pentru masini mari de calculmasini mari de calcul
•• Sisteme de operare pentru calculatoare mariSisteme de operare pentru calculatoare mari•• Pentru marile companiiPentru marile companii•• Capacitate mare de lucru cu dispozitive de I/ECapacitate mare de lucru cu dispozitive de I/E•• Un astfel de calculator are in jur de 1000 de Un astfel de calculator are in jur de 1000 de
discuri si mii de gigaoctetidiscuri si mii de gigaocteti•• Calculatoarele mari tind sa devina servere de Calculatoarele mari tind sa devina servere de
Web, servere pentru siteWeb, servere pentru site--uri de comert electronic uri de comert electronic sau servere pentru tranzactii intre companiisau servere pentru tranzactii intre companii
•• Exemplu de astfel de SO este OS/390Exemplu de astfel de SO este OS/390--urmas al lui urmas al lui OS/360OS/360--IBMIBM
13/03/200913/03/2009 Cursul 1Cursul 1 1818
Sisteme de operare pentru Sisteme de operare pentru servereservere
•• Se afla cu un nivel mai josSe afla cu un nivel mai jos
•• Ruleaza pe servereRuleaza pe servere
•• Deservesc mai multi utilizatori deodata prin Deservesc mai multi utilizatori deodata prin intermediul unei reteleintermediul unei retele
•• Partajeaza resurse hard si softPartajeaza resurse hard si soft
•• Serverele pot furniza servicii de imprimare, servicii Serverele pot furniza servicii de imprimare, servicii pentru fisiere sau servicii de Webpentru fisiere sau servicii de Web
•• Ex.: UNIX si Windows 2000 (2003 sau Vista)Ex.: UNIX si Windows 2000 (2003 sau Vista)
•• Linux castiga teren in aceasta competitieLinux castiga teren in aceasta competitie
13/03/200913/03/2009 Cursul 1Cursul 1 1919
Sisteme de operare Sisteme de operare multiprocesormultiprocesor
•• Se cistiga putere de calculSe cistiga putere de calcul
•• Sunt conectate mai multe procesoare intrSunt conectate mai multe procesoare intr--un un sistemsistem
•• In functie de numarul de procesoare conectate si In functie de numarul de procesoare conectate si de resursele partajate avem calculatoare de resursele partajate avem calculatoare denumite:denumite:
–– Calculatoare paraleleCalculatoare paralele
–– MultiMulti--calculatoarecalculatoare
–– MultiprocesoareMultiprocesoare
Ex.: Variante ale sistemelor de operare pentru servereEx.: Variante ale sistemelor de operare pentru servere
13/03/200913/03/2009 Cursul 1Cursul 1 2020
Sisteme de operare pentru Sisteme de operare pentru calculatoare personalecalculatoare personale
•• Ofera interfata eficienta unui singur Ofera interfata eficienta unui singur utilizatorutilizator
•• Sunt folosite pentru procesarea textelor, foi Sunt folosite pentru procesarea textelor, foi de calcul, acces la Internetde calcul, acces la Internet
•• Ex.: Windows 98, Windows 2000, Linux, Ex.: Windows 98, Windows 2000, Linux, MacintoshMacintosh
13/03/200913/03/2009 Cursul 1Cursul 1 2121
Sisteme de operare in timp realSisteme de operare in timp real
•• Timpul reprezinta un parametru cheie Timpul reprezinta un parametru cheie pentru elepentru ele
•• Colecteaza date despre procesul de Colecteaza date despre procesul de productie si le foloseste pentru a comanda productie si le foloseste pentru a comanda masinile din fabrica (de ex.)masinile din fabrica (de ex.)
•• Sistemele audio digitale si sistemele Sistemele audio digitale si sistemele multimedia se incadreaza in aceasta multimedia se incadreaza in aceasta categoriecategorie
•• Exemple: VxWorks si QNXExemple: VxWorks si QNX
13/03/200913/03/2009 Cursul 1Cursul 1 2222
Sisteme de operare pentru Sisteme de operare pentru dispozitive incorporatedispozitive incorporate
•• Calculatoarele Calculatoarele palmtoppalmtop si si sistemele sistemele incorporateincorporate folosesc aceste sisteme de folosesc aceste sisteme de operareoperare
•• Palmtop sau PDA (Personal Digital Palmtop sau PDA (Personal Digital Assistant)Assistant)--calculator de dimensiuni redusecalculator de dimensiuni reduse
•• Executa un numar redus de functii:Executa un numar redus de functii:–– Agenda cu adreseAgenda cu adrese
–– Scurte notiteScurte notite
Ex.: Palm OS si WindowsCEEx.: Palm OS si WindowsCE
13/03/200913/03/2009 Cursul 1Cursul 1 2323
Sisteme de operare pentru Sisteme de operare pentru cartele inteligentecartele inteligente
•• Cartele inteligenteCartele inteligente--dispozitive de marimea unei dispozitive de marimea unei carti de credit dotata cu un cipcarti de credit dotata cu un cip
•• Restrictie de memorie si de procesareRestrictie de memorie si de procesare
•• Unele cartele inteligente sunt orientate pe JavaUnele cartele inteligente sunt orientate pe Java
•• Memoria ROM de pe cartela contine un interpretor Memoria ROM de pe cartela contine un interpretor pentru JVM (Java Virtual Machine)pentru JVM (Java Virtual Machine)
•• AppletApplet--urile Java sunt descarcate pe card si sunt urile Java sunt descarcate pe card si sunt interpretate de interpretorul JVMinterpretate de interpretorul JVM
ComponenteComponente hardwarehardware
13/03/200913/03/2009 Cursul 1Cursul 1 2424
ProcesorulProcesorul
•• CreierulCreierul calculatoruluicalculatorului
•• CitesteCiteste instructiunileinstructiunile din din memoriememorie sisi le le executaexecuta
•• ProgrameleProgramele suntsunt listeliste de de instructiuniinstructiuniexecutateexecutate de de procesorprocesor
13/03/200913/03/2009 CursulCursul 11 2525
IerarhiaIerarhia MemorieiMemoriei
13/03/200913/03/2009 CursulCursul 11 2626
Banda Banda magneticamagnetica
•• MediuMediu de de arhivarearhivare sisi stocarestocare a a unorunor seturiseturimarimari de datede date
•• AccesulAccesul la date se face la date se face doardoar secventialsecvential
•• PretPret foartefoarte micmic
•• EsteEste detasabiladetasabila
•• FoarteFoarte utilizatautilizata in in deceniiledeceniile trecutetrecute
13/03/200913/03/2009 CursulCursul 11 2727
DisculDiscul magneticmagnetic
•• DisculDiscul optic (optic CD)optic (optic CD)
–– Mai rapid Mai rapid decatdecat bandabanda magneticamagnetica
–– StocareStocare permanentapermanenta ((acumacum se se poatepoate rescrierescrie))
•• DisculDiscul magneticmagnetic
–– Mai rapid Mai rapid decatdecat bandabanda magneticamagnetica sisi disculdiscul opticoptic
–– EsteEste alcatuitalcatuit dintrdintr--ulul sausau maimai multemulte plataneplatane
–– CercuriCercuri concentriceconcentrice--pistepiste
–– FiecareFiecare pistapista esteeste impartitaimpartita in in sectoaresectoare (512 (512 octetiocteti))
13/03/200913/03/2009 CursulCursul 11 2828
MemoriaMemoria RAM RAM sisi cachecache
•• MemoriaMemoria RAM:RAM:
–– VolatilaVolatila
–– MultMult maimai rapidarapida decatdecat disculdiscul magneticmagnetic
–– PreaPrea scumpascumpa
•• MemoriaMemoria cachecache
–– Mai Mai rapidarapida decatdecat RAM RAM sisi maimai scumpascumpa
–– EsteEste impartitaimpartita in in liniilinii de de memoriememorie (de (de obiceiobicei 64 64 octetiocteti))
13/03/200913/03/2009 CursulCursul 11 2929
RegistreleRegistrele
•• CeleCele maimai rapiderapide
•• SuntSunt plasateplasate in in procesorprocesor
•• CapacitateaCapacitatea de de memorarememorare disponibiladisponibila::
–– 32x32 32x32 bitibiti pentrupentru procesoareprocesoare de 32 de 32 bitibiti
–– 64x64 64x64 bitibiti pentrupentru procesoareprocesoare de 64 de 64 bitibiti
13/03/200913/03/2009 CursulCursul 11 3030
13/03/200913/03/2009 CursulCursul 11 3131
NucleulNucleul sistemuluisistemului de de operareoperare (1)(1)
•• SistemulSistemul de de operareoperare constaconsta dintrdintr--oo multimemultime de de secventesecvente de program, de program, fiecarefiecare indeplinindindeplinind o o anumitaanumitasarcinasarcina
•• PartilePartile de program care de program care indeplinescindeplinesc acesteaceste sarcinisarcinifundamentalefundamentale formeazaformeaza nucleulnucleul sistemuluisistemului de de operareoperare
•• NucleulNucleul dirijeazadirijeaza sisi controleazacontroleaza functionareafunctionareasistemuluisistemului de de calculcalcul in in ansamblulansamblul sausau
•• NuNu existaexista intotdeaunaintotdeauna o o delimitaredelimitare claraclara intreintrenucleunucleu sisi celelaltecelelalte componentecomponente. .
•• ConceptiileConceptiile diversilordiversilor producatoriproducatori de de sistemesisteme de de operareoperare diferadifera in in ceeaceea cece privestepriveste locullocul unoraunora dintredintrefunctiifunctii -- in in nucleunucleu sausau in in afaraafara sasa..
13/03/200913/03/2009 CursulCursul 11 3232
NucleulNucleul sistemuluisistemului de de operareoperare (2)(2)
•• TotusiTotusi, , practicpractic toatetoate sistemelesistemele de de operareoperareexistenteexistente includinclud in in nucleunucleu urmatoareleurmatoarelecomponentecomponente: : –– gestiuneagestiunea proceselorproceselor
–– gestiuneagestiunea memorieimemoriei
–– sistemelesistemele de de fisierefisiere
•• MajoritateaMajoritatea activitatiloractivitatilor pepe care le care le desfasoaradesfasoarasistemulsistemul de de operareoperare nunu pot pot fifi realizaterealizate exclusivexclusivprinprin software. software.
•• EsteEste necesarnecesar un un sprijinsprijin, , uneoriuneori substantial, din substantial, din parteapartea componentelorcomponentelor hardware hardware sisi in special din in special din parteapartea procesoruluiprocesorului. .
13/03/200913/03/2009 CursulCursul 11 3333
SistemulSistemul de de intreruperiintreruperi (1)(1)
•• PrincipalaPrincipala facilitate facilitate oferitaoferita de de catrecatre procesorprocesor o o constituieconstituie sistemulsistemul de de intreruperiintreruperi. .
•• UzualUzual, , procesorulprocesorul executaexecuta instructiunileinstructiunile intrintr--ooordineordine data de data de urmatoareleurmatoarele regulireguli: : –– dacadaca instructiuneainstructiunea curentacurenta esteeste unauna de salt, de salt, vava fifi
executataexecutata in in continuarecontinuare instructiuneainstructiunea de la de la adresaadresala care se face la care se face saltulsaltul
–– in in cazcaz contrarcontrar, , vava fifi executataexecutata in in continuarecontinuareinstructiuneainstructiunea aflataaflata in in memoriememorie la la adresaadresa imediatimediaturmatoareurmatoare dupadupa instructiuneainstructiunea curentacurenta
SistemulSistemul de de intreruperiintreruperi (2)(2)
•• SistemulSistemul de de operareoperare trebuietrebuie sasa poatapoatainterveniinterveni in in anumiteanumite situatiisituatii binebine definite, definite, cum cum arar fifi: : –– incercareaincercarea unuiunui program de a program de a efectuaefectua o o actiuneactiune
nepermisanepermisa
–– o o cererecerere explicitaexplicita adresataadresata de de programulprogramul de de aplicatieaplicatie, , privindprivind efectuareaefectuarea unuiunui anumitanumitserviciuserviciu de de catrecatre sistemulsistemul de de operareoperare
–– altealte evenimenteevenimente aparuteaparute in in sistemsistem, care pot , care pot sasanunu aibaaiba legaturalegatura cu cu programulprogramul aflataflat in in executieexecutie, , dardar care care trebuietrebuie tratatetratate imediatimediat
13/03/200913/03/2009 CursulCursul 11 3434
13/03/200913/03/2009 CursulCursul 11 3535
SistemulSistemul de de intreruperiintreruperi (3)(3)
•• SistemulSistemul de de intreruperiintreruperi oferaofera tocmaitocmai posibilitateaposibilitateaintreruperiiintreruperii executieiexecutiei programuluiprogramului curentcurent in in unaunadin din urmatoareleurmatoarele situatiisituatii: : –– o o cererecerere de de intrerupereintrerupere venitavenita din din parteapartea unuiunui
dispozitivdispozitiv perifericperiferic; ; acestacest cazcaz poartapoarta denumireadenumirea de de intrerupereintrerupere hardwarehardware
–– o o operatieoperatie executataexecutata de de procesorprocesor, care a , care a datdat un un rezultatrezultat anormalanormal (de (de exempluexemplu o o operatieoperatie de de impartireimpartirela 0); la 0); asemeneaasemenea situatiisituatii suntsunt denumitedenumite exceptiiexceptii
–– o o cererecerere explicitaexplicita venitavenita chiarchiar din din parteapartea programuluiprogramuluiaflataflat in curs de in curs de executieexecutie; ;
–– asemeneaasemenea cerericereri, , numitenumite intreruperiintreruperi softwaresoftware, , suntsuntutilizateutilizate de de obiceiobicei pentrupentru a a cerecere sistemuluisistemului de de operareoperareefectuareaefectuarea unuiunui anumitanumit serviciuserviciu pepe care care programulprogramul de de aplicatieaplicatie nunu--ll poatepoate realizarealiza singursingur. .
13/03/200913/03/2009 CursulCursul 11 3636
SistemulSistemul de de intreruperiintreruperi (4)(4)
•• IndiferentIndiferent care care esteeste cauzacauza care a care a produsprodusintrerupereaintreruperea, , comportareacomportarea procesoruluiprocesorului esteesteurmatoareaurmatoarea: : –– executiaexecutia programuluiprogramului curentcurent esteeste suspendatasuspendata sisi se se
memoreazamemoreaza informatiileinformatiile necesarenecesare pentrupentru a a puteaputea reluareluain in viitorviitor executiaexecutia respectivuluirespectivului program, program, farafara aa--i i fifiafectataafectata comportareacomportarea
–– se se identificaidentifica sursasursa cereriicererii de de intrerupereintrerupere
–– in in functiefunctie de de cauzacauza intreruperiiintreruperii, se , se apeleazaapeleaza o o anumitaanumitarutinarutina care care esteeste responsabilaresponsabila de de tratareatratarea respectiveirespectiveisituatiisituatii
–– la la terminareaterminarea rutineirutinei, , folosindfolosind informatiileinformatiile memoratememorate, se , se revinerevine la la executiaexecutia programuluiprogramului intreruptintrerupt, exact in , exact in punctulpunctul in care se in care se aflaafla acestaacesta in in momentulmomentul intreruperiiintreruperii..
13/03/200913/03/2009 CursulCursul 11 3737
DrivereDrivere de de dispozitivdispozitiv
•• Se Se preferaprefera ca ca gestionareagestionarea perifericelorperifericelor sasa fie fie lasatalasata in in seamaseama unorunor module de program, module de program, numitenumite driveredrivere, , exterioareexterioare nucleuluinucleului, , dardarcare pot care pot cooperacoopera cu cu acestaacesta. .
•• PentruPentru fiecarefiecare dispozitivdispozitiv perifericperiferic existent existent intrintr--un calculator un calculator trebuietrebuie sasa existeexiste un un driver, driver, altfelaltfel respectivulrespectivul perifericperiferic nunu vavaputeaputea fifi folositfolosit..
•• UtilitateaUtilitatea mecanismuluimecanismului driverelordriverelor esteesteevidentaevidenta: : permitepermite schimbareaschimbarea usoarausoara a a oricaruioricarui perifericperiferic, , farafara a a fifi necesaranecesarareinstalareareinstalarea intreguluiintregului sistemsistem de de operareoperare..
13/03/200913/03/2009 CursulCursul 11 3838
DrivereDrivere de de dispozitivdispozitiv
•• De De asemeneaasemenea, , depistareadepistarea sisi corectareacorectarea erorilorerorilordevinedevine multmult maimai facilafacila..
•• Cu Cu toatetoate acesteaacestea, in mod traditional, , in mod traditional, sistemelesistemelede de operareoperare din din familiafamilia Unix au o Unix au o abordareabordare maimaiputinputin flexibilaflexibila, , incluzandincluzand drivereledriverele in in nucleunucleu. .
•• AceastaAceasta atitudineatitudine se se justificajustifica prinprin faptulfaptul ca, ca, pentrupentru majoritateamajoritatea sistemelorsistemelor Unix, Unix, producatorulproducatorul esteeste sisi singurulsingurul ofertantofertant de de hardware. hardware.
CursulCursul 22 1113/03/200913/03/2009
SistemeSisteme de de operareoperareNoNo!!iuniiuni fundamentalefundamentale
13/03/200913/03/2009 CursulCursul 22 22
AgendaAgenda
•• Sistemul de fiSistemul de fi""iere UNIXiere UNIX•• GestiuneaGestiunea memorieimemoriei•• SegmentareaSegmentarea memorieimemoriei•• ProceseProcese•• FisiereFisiere•• SecuritateaSecuritatea datelordatelor•• ApeluriApeluri sistemsistem
13/03/200913/03/2009 CursulCursul 22 33
Sistemul de fiSistemul de fi""iere UNIXiere UNIX (1)(1)
•• Din Din punctpunct de de vederevedere al al sistsist. de . de operareoperare UNIX, un UNIX, un fifi""ierier esteeste un un ""irir de de lungimelungime nedefinitnedefinit##, , terminatterminatcu un cu un caractercaracter special de special de sfârsfâr""itit de de fifi""ierier, EOF , EOF (CTL/D (CTL/D –– codulcodul 04H). 04H).
•• ÎÎnn sistemulsistemul de de operareoperare UNIX se UNIX se deosebescdeosebesc patrupatrutipuritipuri de de fifi""iereiere::–– OrdinareOrdinare –– programeprograme surssurs##, , textetexte sausau programeprograme îînn
formform## executabilexecutabil##–– SpecialeSpeciale –– dispozitiveledispozitivele de I/Ede I/E–– CatalogCatalog –– directordirector–– Pipe (FIFO)Pipe (FIFO) –– fifi""iereiere temporaretemporare..
13/03/200913/03/2009 CursulCursul 22 44
Sistemul de fiSistemul de fi""iere UNIXiere UNIX (2)(2)
•• Din rDin r##dd##cincin# # pornesc mai multe cataloage, pornesc mai multe cataloage, folosite frecvent de sistem:folosite frecvent de sistem:–– /dev/dev fifi""iereiere specialespeciale pentrupentru echipamenteechipamente
perifericeperiferice: : consolaconsola sistemsistem, , terminaleterminale, , discuridiscuri, , imprimantaimprimanta
–– /bin/bin programeprograme utilitareutilitare îînn format format executabilexecutabil: : compilatoarecompilatoare, , asamblorasamblor, , utilitareutilitare pentrupentrudezvoltareadezvoltarea de de programeprograme
13/03/200913/03/2009 CursulCursul 22 55
Sistemul de fiSistemul de fi""iere UNIXiere UNIX (3)(3)
•• /etc/etc date de date de sistemsistem cu cu accesacces limitatlimitat, , utilitareutilitare de de îîntrentre$$inereinere, , funcfunc$$iiii cu cu accesacces restrânsrestrâns ((numainumai pentrupentru administratoruladministratorulsistemuluisistemului): ): fifi""ierulierul de parole, de parole, fifi""ierulierul de de comenzicomenzi Shell de Shell de iniini$$ializareializare
•• /lib/lib bibliotecibiblioteci ""ii utilitareutilitare (C, FORTRAN, (C, FORTRAN, bibliotecibiblioteci matematicematematice, , etc.)etc.)
•• //tmptmp fifi""iereiere temporaretemporare folositefolosite de de editoareeditoare, , compilatoarecompilatoare, , asamblorasamblor, etc., etc.
•• //usrusr esteeste celcel maimai mare catalog din mare catalog din sistemsistem, , îînn el el gg##sindusindu--se se maimai multemulte subcataloagesubcataloage (bin, (bin, tmptmp, , dictdict, lib), cu , lib), cu funcfunc$$iiii similaresimilarecelorcelor legate de legate de rr##dd##cincin##, , dardar maimai rarrar folositefolosite
•• /man/man concon$$ineine, on, on--line, line, manualelemanualele sistemuluisistemului•• /spool/spool zonzon## tampon tampon pentrupentru imprimantimprimant## ""ii popo""tata electronicelectronic##•• /users/users subcatalogulsubcatalogul îînn care se care se conecteazconecteaz## utilizatoriiutilizatorii, ,
numnum##rulrul lorlor putândputând merge merge pâpânn## al al ordinulordinul sutelorsutelor..
13/03/200913/03/2009 CursulCursul 22 66
Sistemul de fiSistemul de fi""iere UNIXiere UNIX (4)(4)
•• Un Un volumvolum disc disc iniini$$ializatializat ca un ca un sistemsistem de de fifi""iereiereconcon$$ineine un un numnum##rr de de blocuriblocuri adresbileadresbile de la 0 la de la 0 la valoareavaloarea maximmaxim## datdat## la la iniini$$ializareializare, , organizateorganizate îînnurmurm##toareletoarele zone: zone: –– bloculblocul de boot, de boot, –– superbloculsuperblocul, , –– eticheteetichete de de fisierfisier, , –– zonazona de swapping.de swapping.
•• BloculBlocul de bootde boot concon$$ineine programulprogramul de de îîncnc##rcarercare a a pp##rr$$iiii rezidenterezidente ((nucleuluinucleului) ) sistemuluisistemului de de operareoperareUNIX UNIX ""ii, conform , conform reguliiregulii general general acceptateacceptate, , ocupocup##primulprimul sector al sector al unuiunui disc.disc.
13/03/200913/03/2009 CursulCursul 22 77
Sistemul de fiSistemul de fi""iere UNIXiere UNIX (5)(5)
•• SuperbloculSuperblocul concon$$ineine etichetaeticheta de de volumvolum, , cu cu informainforma$$iiii referitoarereferitoare la:la:–– identificareaidentificarea volumuluivolumului–– data data ultimeiultimei actualizactualiz##riri–– tabloutablou de de ii--nodurinoduri liberelibere ((cândcând se se epuizeazepuizeaz##
aceastaceast## tabeltabel##, se , se rereîîncarcncarc## îînn urmaurma uneiuneiparcurgeriparcurgeri a a zoneizonei de de ii--nodurinoduri de de pepe disc)disc)
–– primulprimul element din element din listalista spaspa$$iuluiiului liberliber((tabloutablou de 50 de de 50 de adreseadrese de de blocuriblocuri liberelibere).).
13/03/200913/03/2009 CursulCursul 22 88
Sistemul de fiSistemul de fi""iere UNIXiere UNIX (6)(6)
•• EticheteleEtichetele de de fifi!!ierier ((ii--nodurilenodurile)) au o au o lungimelungime de 64 de de 64 de octeocte$$ii ""ii prinprin numnum##rulrulde de ordineordine asociatasociat ((ii--numnum##rr), ), desemneazdesemneaz## îînn mod mod unicunic numelenumele interne interne ale ale fifi""ierelorierelor. .
•• ZonaZona de swappingde swapping concon$$ineine imaginileimaginileproceselorproceselor utilizatorutilizator care care suntsunt temporartemporareliminate din eliminate din memoriamemoria internintern##..
13/03/200913/03/2009 CursulCursul 22 99
GestiuneaGestiunea memorieimemoriei (1)(1)
•• MemoriaMemoria constituieconstituie o o resursresurs## fizicfizic##fundamentalfundamental## îînn oriceorice sistemsistem de de calculcalcul. .
•• MemoriaMemoria se se caracterizeazcaracterizeaz## prinprin::–– capacitatecapacitate–– mod de mod de accesacces la la informainforma$$ieie–– timptimp de de accesacces–– duratadurata cicluluiciclului–– vitezaviteza de transfer a de transfer a informainforma$$ieiiei, cost, etc., cost, etc.
13/03/200913/03/2009 CursulCursul 22 1010
GestiuneaGestiunea memorieimemoriei (2)(2)
•• ÎÎnn raportraport de de locullocul ocupatocupat îîntrntr--un un sistemsistem de de calculcalcul, se , se poatepoate vorbivorbi de o de o divizaredivizare a a echipamentelorechipamentelor, , prevprev##zutezute cu cu posibilitateaposibilitateade a de a îînregistranregistra, , pp##strastra ""ii redareda informainforma$$iaia, , îînn doudou## categoriicategorii::–– memoriamemoria internintern##, , numitnumit## ""ii operativoperativ##, ,
principalprincipal##, , centralcentral##–– memoriamemoria externextern##..
13/03/200913/03/2009 CursulCursul 22 1111
GestiuneaGestiunea memorieimemoriei (3)(3)
•• Atunci cand un nou program este lansat in Atunci cand un nou program este lansat in executie, acesta va trebui plasat intrexecutie, acesta va trebui plasat intr--una sau mai una sau mai multe zone de memorie libere, astfel incat sa nu multe zone de memorie libere, astfel incat sa nu existe suprapuneri cu variabilele si instructiunile existe suprapuneri cu variabilele si instructiunile altor programe.altor programe.
•• Rezulta ca sistemul de operare trebuie sa Rezulta ca sistemul de operare trebuie sa cunoasca in orice moment situatia exacta a cunoasca in orice moment situatia exacta a tuturor locatiilor de memorie. tuturor locatiilor de memorie.
•• O eroare des intalnita este incercarea unui O eroare des intalnita este incercarea unui program de a accesa adrese de memorie program de a accesa adrese de memorie incorecte;incorecte;
13/03/200913/03/2009 CursulCursul 22 1212
GestiuneaGestiunea memorieimemoriei (4)(4)
•• CCauza cea mai frecventa o constituie lucrul cu auza cea mai frecventa o constituie lucrul cu pointeri neinitializati. pointeri neinitializati.
•• O eroare de acest tip este foarte periculoasa, O eroare de acest tip este foarte periculoasa, deoarece in acest fel se poate ajunge ca un deoarece in acest fel se poate ajunge ca un program sa acceseze zone de memorie apartinand program sa acceseze zone de memorie apartinand altui program si deci sa afecteze functionarea altui program si deci sa afecteze functionarea acestuia intracestuia intr--un mod complet imprevizibil. un mod complet imprevizibil.
•• Solutia este de a permite accesul fiecarui program Solutia este de a permite accesul fiecarui program numai la anumite zone de memorie, care numai la anumite zone de memorie, care !!i i apartin.apartin.
13/03/200913/03/2009 CursulCursul 22 1313
GestiuneaGestiunea memorieimemoriei (5)(5)
•• De multe ori zonele de memorie ale unui proces De multe ori zonele de memorie ale unui proces trebuiesc evacuate (total sau partial) din memorie si trebuiesc evacuate (total sau partial) din memorie si memorate pe disc, pentru a fi ulterior incarcate din memorate pe disc, pentru a fi ulterior incarcate din nou in memorie; nou in memorie;
•• MMemoria principala este adesea insuficienta pentru emoria principala este adesea insuficienta pentru programele aflate in executie. programele aflate in executie.
•• Din pacate, reincarcarea in memorie nu se poate face Din pacate, reincarcarea in memorie nu se poate face intotdeauna la aceleasi adrese de unde au fost intotdeauna la aceleasi adrese de unde au fost evacuate informatiileevacuate informatiile
•• PPractic segmentul a fost mutat in alta zona de ractic segmentul a fost mutat in alta zona de memoriememorie
•• CCeea ce inseamna ca adresele folosite de program nu eea ce inseamna ca adresele folosite de program nu mai sunt corecte.mai sunt corecte.
13/03/200913/03/2009 CursulCursul 22 1414
SegmentareaSegmentarea memorieimemoriei (1)(1)
•• Un segment Un segment esteeste o o zonazona continua de continua de memoriememorie, , utilizatutilizatpentrupentru a a retineretine instructiuniinstructiuni sausau date. date.
•• AdresaAdresa unuiunui octet octet dintrdintr--un segment se un segment se compunecompune din din douadouapartiparti independenteindependente: : –– adresa de inceput (de baza) a segmentului adresa de inceput (de baza) a segmentului –– deplasamentul octetului in interiorul segmentului deplasamentul octetului in interiorul segmentului
•• DeciDeci, , oriceorice adresaadresa poatepoate fifi scrisascrisa sub forma sub forma uneiunei perechiperechide forma: de forma:
((adresa_baza_segmentadresa_baza_segment, , deplasamentdeplasament). ). •• FiecaruiFiecarui segment existent in segment existent in memoriememorie i se i se asociazaasociaza o o
structurastructura de date de date numitanumita descriptor de segment. descriptor de segment. •• InformatiileInformatiile continutecontinute de de acestaacesta suntsunt urmatoareleurmatoarele: :
–– adresa de inceput a segmentului adresa de inceput a segmentului –– dimensiunea segmentului dimensiunea segmentului –– drepturi de acces la segment etc. drepturi de acces la segment etc.
13/03/200913/03/2009 CursulCursul 22 1515
SegmentareaSegmentarea memorieimemoriei (2)(2)
•• TotiToti descriptoriidescriptorii de segment de segment suntsunt grupatigrupati intrintr--un un tabeltabel•• PentruPentru a a puteaputea identificaidentifica un segment un segment esteeste suficientsuficient sasa fie fie
cunoscutcunoscut indiceleindicele descriptoruluidescriptorului sausau in in tabeltabel..•• In In acestacest moment, moment, adreseleadresele devindevin perechiperechi de forma: de forma:
((indice_descriptorindice_descriptor, , deplasamentdeplasament). ). •• In In momentulmomentul in care un in care un procesproces incearcaincearca sasa accesezeacceseze o o
adresaadresa de de memoriememorie, au loc , au loc urmatoareleurmatoarele actiuniactiuni: : –– se verifica in descriptorul segmentului drepturile de acces, pense verifica in descriptorul segmentului drepturile de acces, pentru a tru a
se decide daca procesul are dreptul de a accesa adresa dorita se decide daca procesul are dreptul de a accesa adresa dorita –– se verifica daca deplasamentul nu depaseste dimensiunea se verifica daca deplasamentul nu depaseste dimensiunea
segmentului segmentului –– daca se produce o eroare la unul din pasii anteriori, se genereadaca se produce o eroare la unul din pasii anteriori, se genereaza o za o
intrerupere, a carei rutina de tratare va anunta procesul asupraintrerupere, a carei rutina de tratare va anunta procesul asupra erorii erorii sau il va termina in mod fortat sau il va termina in mod fortat
–– daca nu sdaca nu s--a produs nici o eroare, se calculeaza adresa fizica si se a produs nici o eroare, se calculeaza adresa fizica si se realizeaza accesul propriurealizeaza accesul propriu--zis zis
13/03/200913/03/2009 CursulCursul 22 1616
SegmentareaSegmentarea memorieimemoriei (3)(3)
•• EsteEste decideci necesarnecesar sasa existeexiste un un algoritmalgoritm care care sasa decidadecidacare din care din zonelezonele liberelibere esteeste ceacea maimai potrivitapotrivita pentrupentru a a fifi ocupataocupata de de noulnoul segment. segment.
•• SuntSunt utilizatiutilizati maimai multi multi algoritmialgoritmi in in acestacest scopscop: : –– First FitFirst Fit: se parcurge memoria in ordine crescatoare a : se parcurge memoria in ordine crescatoare a
adreselor si se plaseaza segmentul in prima zona libera adreselor si se plaseaza segmentul in prima zona libera suficient de mare. suficient de mare.
–– Best FitBest Fit: se parcurge intreaga memorie si se plaseaza : se parcurge intreaga memorie si se plaseaza segmentul in cea mai mica zona libera suficient de mare. segmentul in cea mai mica zona libera suficient de mare.
–– Worst FitWorst Fit: se parcurge intreaga memorie si se plaseaza : se parcurge intreaga memorie si se plaseaza segmentul in cea mai mare zona libera existenta.segmentul in cea mai mare zona libera existenta.
13/03/200913/03/2009 CursulCursul 22 1717
ProceseProcese
•• Un Un procesproces esteeste un program in un program in executieexecutie•• FiecaruiFiecarui procesproces i se i se asociazaasociaza un un spatiuspatiu de de adreseadrese, ,
adicaadica o o listalista de de locatiilocatii de de memoriememorie•• LocatiileLocatiile suntsunt cuprinsecuprinse intreintre douadoua limitelimite, , unauna
minima (de minima (de obiceiobicei 0) 0) sisi unauna maximamaxima•• SpatiulSpatiul de de adreseadrese continecontine programulprogramul executabilexecutabil, ,
dateledatele programuluiprogramului sisi stivastiva•• SistemulSistemul de de operareoperare decide, periodic, decide, periodic, sasa opreascaopreasca
rularearularea unuiunui procesproces sisi declansareadeclansarea altuiaaltuia
13/03/200913/03/2009 CursulCursul 22 1818
ProceseProcese
•• ProcesulProcesul suspendatsuspendat trebuietrebuie repornitrepornit dupadupa un un timptimp exact din exact din stareastarea pepe care o care o aveaavea in in momentulmomentul suspendariisuspendarii
•• ToateToate informatiileinformatiile despredespre procesproces trebuietrebuiesalvatesalvate sisi pastratepastrate pepe toatatoata durataduratasuspendariisuspendarii
•• AcesteAceste informatiiinformatii suntsunt memoratememorate intrintr--un un tabeltabel de de proceseprocese
•• ApelurileApelurile de de sistemsistem se se ocupaocupa de de initiereainitierea sisiterminareaterminarea proceselorproceselor
13/03/200913/03/2009 CursulCursul 22 1919
ProceseProcese•• Un Un procesproces poatepoate creacrea unulunul sausau maimai multemulte proceseprocese--
numitenumite copiicopii•• La La rindulrindul lorlor pot pot creacrea propriilepropriile proceseprocese--copiicopii•• Se Se ajungeajunge la o la o structurastructura de de proceseprocese de tip de tip arborearbore•• ProceseleProcesele inruditeinrudite care care coopereazacoopereaza la la realizarearealizarea
unuiunui job au job au adeseaadesea nevoienevoie sasa comunicecomunice intreintre eleeleca ca sasa--sisi sincronizezesincronizeze activitatileactivitatile
•• AceastaAceasta comunicatiecomunicatie se se numestenumeste comunicatiecomunicatieinterprocesinterproces
13/03/200913/03/2009 CursulCursul 22 2020
ProceseProcese
•• FiecaruiFiecarui utilizatorutilizator i se i se atribuieatribuie un un UIDUID (User (User Identification) de Identification) de catrecatre administratoruladministratorul de de sistemsistem
•• FiecareFiecare procesproces care care pornesteporneste continecontine UIDUID--ululpersoaneipersoanei care lcare l--a a declansatdeclansat
•• Un Un procesproces--copilcopil are are acelasiacelasi UID ca UID ca sisi procesulprocesulparinteparinte
•• UtilizatoriiUtilizatorii pot pot fifi membriimembrii unuiunui grupgrup, , fiecarefiecare dintredintreeiei avandavand un un GIDGID (Group Identification)(Group Identification)
13/03/200913/03/2009 CursulCursul 22 2121
InterblocarileInterblocarile•• AtunciAtunci cindcind douadoua sausau maimai multemulte proceseprocese
interactioneazainteractioneaza, , eleele pot pot ajungeajunge, , uneoriuneori, in , in situatiisituatiiconflictualeconflictuale din care din care nunu pot pot iesiiesi
•• O O astfelastfel de de situatiesituatie se se numestenumeste interblocareinterblocare
•• ExempluExemplu: : DouaDoua proceseprocese care care dorescdoresc sasa realizezerealizezecopiicopii pepe CDCD--ROM ale ROM ale datelordatelor de de pepe bandabanda
•• ProcesulProcesul 1 1 solicitasolicita sisi primesteprimeste accesulaccesul la la unitateaunitateade de bandabanda
•• ProcesulProcesul 2 2 solicitasolicita sisi primesteprimeste accesulaccesul la CDla CD--ROMROM•• ProcesulProcesul 1 1 solicitasolicita accesacces la CDla CD--ROM ROM sisi vava fifi refuzatrefuzat
panapana cindcind procesulprocesul 2 2 nunu cedeazacedeaza accesulaccesul•• La La felfel se se intimplaintimpla sisi cu cu procesulprocesul 2 cu 2 cu unitateaunitatea de de
bandabanda•• A A aparutaparut o o interblocareinterblocare
13/03/200913/03/2009 CursulCursul 22 2222
FisiereFisiere
•• ApelurileApelurile de de sistemsistem oferiteoferite suntsunt, de , de obiceiobicei, , pentrupentru creareacrearea, , stergereastergerea, , citireacitirea sisi scriereascriereade de fisierefisiere
•• InainteInainte ca un ca un fisierfisier sasa fie fie cititcitit el el trebuietrebuie maimaiintaiintai sasa fie fie localizatlocalizat pepe disc disc sisi deschisdeschis, , iariardupadupa citirecitire el el trebuietrebuie inchisinchis
•• PentruPentru toatetoate acesteaceste operatiioperatii suntsunt generate generate apeluriapeluri sistemsistem
•• FisiereleFisierele suntsunt grupategrupate in in cataloagecataloage
13/03/200913/03/2009 CursulCursul 22 2323
FisiereFisiere•• ConductaConducta ((pipepipe)) esteeste un pseudoun pseudo--fisierfisier care care poatepoate
fifi folositfolosit pentrupentru conectareaconectarea a a douadoua proceseprocese•• AtunciAtunci cindcind douadoua proceseprocese A A sisi B B intentioneazaintentioneaza sasa
conversezeconverseze, , eleele trebuietrebuie configurateconfigurate in in prealabilprealabil•• CindCind procesulprocesul A A vreavrea sasa trimitatrimita date date procesuluiprocesului B, B,
el el scriescrie in pseudoin pseudo--fisierfisier ca ca sisi cindcind arar scriescrie intrintr--un un fisierfisier de de iesireiesire
•• ProcesulProcesul B B poatepoate citiciti dateledatele din pseudodin pseudo--fisierfisier ca ca dintrdintr--un un fisierfisier de de intrareintrare
•• AstfelAstfel, , comunicatiacomunicatia intreintre proceseprocese in UNIX se in UNIX se comportacomporta ca ca sisi citireacitirea sisi scriereascrierea in in fisierefisiereobisnuiteobisnuite..
13/03/200913/03/2009 CursulCursul 22 2424
SecuritateaSecuritatea datelordatelor•• ConsideramConsideram sistemulsistemul de de operareoperare UNIXUNIX•• FisiereleFisierele din UNIX din UNIX suntsunt protejateprotejate prinprin coduricoduri
de de protectieprotectie de cite 9 de cite 9 bitibiti, care se , care se atribuieatribuiefiecaruifiecarui fisierfisier
•• CodulCodul de de protectieprotectie esteeste compuscompus din 3 din 3 cimpuricimpuri de cite 3 de cite 3 bitibiti (read, write, execute):(read, write, execute):–– UnulUnul pentrupentru proprietarproprietar–– UnulUnul pentrupentru ceilalticeilalti membrimembri aiai grupuluigrupului
proprietaruluiproprietarului–– UnulUnul pentrupentru oricineoricine altcinevaaltcineva
13/03/200913/03/2009 CursulCursul 22 2525
InterpretorulInterpretorul de de comenzicomenzi (shell)(shell)
•• SistemulSistemul de de operareoperare esteeste codulcodul care care executaexecutaapelurileapelurile de de sistemsistem
•• InterpretorulInterpretorul de de comenzicomenzi (UNIX) (UNIX) esteeste interfatainterfataprimaraprimara intreintre utilizatorutilizator sisi sistemulsistemul de de operareoperare
•• Module de Module de interpretareinterpretare de de comenzicomenzi: : shsh, , cshcsh, , kshksh sisibashbash..
•• ToateToate derivaderiva din din celcel original, original, shsh..•• AfiseazaAfiseaza un prompt, un un prompt, un caractercaracter (de ex. (de ex. ““$$””) care ) care
ilil informeazainformeaza pepe utilizatorutilizator ca ca interpretorulinterpretorul esteestepregatitpregatit sasa accepteaccepte o o comandacomanda
13/03/200913/03/2009 CursulCursul 22 2626
ApeluriApeluri sistemsistem (1)(1)
•• PracticPractic toatetoate procesoareleprocesoarele existenteexistente astaziastazi pot pot functionafunctiona in in douadoua modurimoduri distinctedistincte: : –– modulmodul utilizatorutilizator (user mode),(user mode), in care in care existaexista
anumiteanumite restrictiirestrictii pentrupentru procesorprocesor, in principal , in principal nunu se se pot pot executaexecuta instructiunileinstructiunile de de accesacces la la perifericeperiferice((incercareaincercarea de a de a executaexecuta o o asemeneaasemenea instructiuneinstructiune duce duce la la generareagenerarea uneiunei exceptiiexceptii) )
–– modulmodul supervizorsupervizor sausau nucleunucleu (kernel mode)(kernel mode), in , in care care procesorulprocesorul nunu are are nicinici o o limitarelimitare..
•• In mod In mod uzualuzual, , programeleprogramele de de aplicatiiaplicatii se se executaexecutain mod in mod utilizatorutilizator, , iariar sistemulsistemul de de operareoperare ruleazaruleazain mod in mod nucleunucleu. .
•• In In acestacest felfel se se asiguraasigura controlulcontrolul sistemuluisistemului de de operareoperare asupraasupra operatiiloroperatiilor criticecritice. .
13/03/200913/03/2009 CursulCursul 22 2727
ApeluriApeluri sistemsistem (2)(2)•• O O cererecerere a a unuiunui program program asupraasupra sistemuluisistemului de de
operareoperare pentrupentru furnizareafurnizarea unuiunui anumitanumit serviciuserviciu poartapoartanumelenumele de de apelapel sistemsistem ((system callsystem call)) sisi constaconsta din din urmatoriiurmatorii pasipasi::–– programulprogramul, care , care ruleazaruleaza in in modulmodul utilizatorutilizator al al procesoruluiprocesorului, ,
depunedepune parametriiparametrii apeluluiapelului sistemsistem pepe care care ilil solicitasolicita intrintr--ooanumitaanumita zonazona de de memoriememorie; ;
–– practicpractic, , mecanismulmecanismul esteeste similar similar apelurilorapelurilor de de proceduriproceduri–– se se executaexecuta o o instructiuneinstructiune specialaspeciala (in general o (in general o intrerupereintrerupere
software), care software), care trecetrece procesorulprocesorul in in modulmodul nucleunucleu–– se se salveazasalveaza (in general (in general pepe stivastiva) ) informatiileinformatiile legate de legate de
programulprogramul intreruptintrerupt care care suntsunt necesarenecesare pentrupentru reluareareluareaulterioaraulterioara a a executieiexecutiei sale din sale din acelasiacelasi punctpunct
–– se se identificaidentifica serviciulserviciul cerutcerut sisi se se apeleazaapeleaza rutinarutinacorespunzatoarecorespunzatoare
13/03/200913/03/2009 CursulCursul 22 2828
ApeluriApeluri sistemsistem (3)(3)–– rutinarutina respectivarespectiva preiapreia parametriiparametrii apeluluiapelului din din zonazona in care in care
au au fostfost depusidepusi, ii , ii verificaverifica sisi, , dacadaca nunu suntsunt erorierori, , realizeazarealizeazaactiuneaactiunea cerutaceruta; ;
–– rezultatelerezultatele obtinuteobtinute suntsunt la la randulrandul lorlor depusedepuse intrintr--oo zonazona de de memoriememorie cunoscutacunoscuta programuluiprogramului de de aplicatieaplicatie
–– la la terminareaterminarea rutineirutinei, , procesorulprocesorul revinerevine in mod in mod utilizatorutilizator sisise se reiareia executiaexecutia programuluiprogramului din din punctulpunctul in care a in care a fostfostintreruptintrerupt ((utilizandutilizand informatiileinformatiile memoratememorate anterior in anterior in acestacestscopscop); );
–– programulprogramul poatepoate preluaprelua rezultatelerezultatele apeluluiapelului din din zonazona in care in care au au fostfost depusedepuse..
•• Se Se poatepoate observaobserva ca ca executiaexecutia unuiunui apelapel sistemsistem esteestemare mare consumatoareconsumatoare de de timptimp. .
13/03/200913/03/2009 CursulCursul 22 2929
AdministrareaAdministrarea proceselorproceselor
ApelApel DescriereDescriere
pidpid=Fork( )=Fork( ) CreareCreare procesproces fiufiu identicidenticcu cu parinteleparintele
pidpid==waitpid(pidwaitpid(pid, , &&statlocstatloc, , optiunioptiuni))
AsteptareAsteptare terminareterminareprocesproces fiufiu
s=s=Execve(nume,argvExecve(nume,argv, , environpenvironp))
Imagine Imagine continutcontinut zonazonamemoriememorie a a procesuluiprocesului
Exit(stareExit(stare)) TerminareTerminare executieexecutieprocesproces sisi intoarcereintoarcere starestare
13/03/200913/03/2009 CursulCursul 22 3030
AdministrareaAdministrarea fisierelorfisierelorApelApel DescriereDescriere
fdfd==open(fisier,modopen(fisier,mod,,……)) DeschidereDeschidere fisierfisier citirecitire, , scrierescrieresausau ambeleambele
s=s=close(fdclose(fd)) InchidereInchidere fisierfisier deschisdeschis
n=n=read(fd,zonamem,noctetiread(fd,zonamem,nocteti)) CitireCitire date din date din fisierfisier in in zonazona memmem. . tampontampon
n=n=write(fdwrite(fd, , zonamemzonamem,,noctetinocteti))
ScriereScriere date din date din fisierfisier in in zonazonamemmem. tampon. tampon
pozitiepozitie==lseek(fdlseek(fd, , deplasament,bazadeplasament,baza))
MutareaMutarea cursoruluicursorului asociatasociatfisieruluifisierului
s=s=Stat(nume,&bufStat(nume,&buf)) ObtinereObtinere informatiiinformatii de stare de stare pentrupentru un un fisierfisier
13/03/200913/03/2009 CursulCursul 22 3131
AdministrareaAdministrarea cataloagelorcataloagelor sisi a a sistemelorsistemelor de de fisierefisiereApelApel DescriereDescriere
s=s=Mkdir(nume,ModMkdir(nume,Mod)) CreareaCrearea unuiunui nounou catalogcatalog
s=s=Rmdir(numeRmdir(nume)) StergereaStergerea unuiunui catalog catalog golgol
s=Link(nume1,nume2)s=Link(nume1,nume2) CreareaCrearea uneiunei noinoi intrariintrari, nume2 , nume2 ref. la nume1ref. la nume1
s=s=Unlink(numeUnlink(nume)) StergereaStergerea uneiunei intrariintrari in catalogin catalog
s=s=mount(special,numemount(special,nume, , flag)flag)
MontareaMontarea unuiunui sistemsistem de de fisierefisiere
s=s=unmount(specialunmount(special)) DemontareaDemontarea unuiunui sistemsistem de de fisierefisiere
13/03/200913/03/2009 CursulCursul 22 3232
Diverse Diverse apeluriapeluri sistemsistem
ApelApel DescriereDescriere
s=s=Chdir(numedirChdir(numedir)) SchimbareaSchimbarea cataloguluicatalogului de de lucrulucru curentcurent
s=s=Chmod(numeChmod(nume, Mod), Mod) ModificareaModificarea bitilorbitilor de de protectieprotectie pt. un pt. un fisierfisier
s=s=kill(pid,Semnalkill(pid,Semnal)) TrimitereaTrimiterea unuiunui semnalsemnalcatrecatre un un procesproces
SecundeSecunde==Time(&secundeTime(&secunde)) ObtinereaObtinerea timpuluitimpului scursscursde la 1 ian.1970de la 1 ian.1970
Cursul 3Cursul 3 1113/03/200913/03/2009
Sisteme de operareSisteme de operare ProceseProcese
13/03/200913/03/2009 Cursul 3Cursul 3 22
AgendaAgenda
•• Modelul de procesModelul de proces
•• Crearea proceselorCrearea proceselor
•• Terminarea proceselorTerminarea proceselor
•• Ierarhii de proceseIerarhii de procese
•• Starile unui procesStarile unui proces
•• Implementarea proceselorImplementarea proceselor
13/03/200913/03/2009 Cursul 3Cursul 3 33
Modelul de procesModelul de proces
•• ProcesulProcesul este o abstractizare a unui este o abstractizare a unui program in executieprogram in executie
•• La orice moment de timp procesorul ruleaza La orice moment de timp procesorul ruleaza doar un programdoar un program
•• In timpul unei secunde procesorul poate In timpul unei secunde procesorul poate executa mai multe programeexecuta mai multe programe
•• Astfel, se ofera iluzia paralelismuluiAstfel, se ofera iluzia paralelismului
•• Acesta se numeste Acesta se numeste pseudoparalelismpseudoparalelism
•• La sistemele La sistemele multiprocesormultiprocesor intilnimintilnimparalelismul hard realparalelismul hard real
13/03/200913/03/2009 Cursul 3Cursul 3 44
Modelul de procesModelul de proces
•• Orice componenta soft executabila dintrOrice componenta soft executabila dintr--unun
calculator (cateodata incluzand si sistemul de calculator (cateodata incluzand si sistemul de
operare), este organizata introperare), este organizata intr--un numar de un numar de
procese secventialeprocese secventiale sau simplu sau simplu proceseprocese
•• UnUn procesproces este doar un program in executie, este doar un program in executie,
incluzand valorile curente ale contorului program, incluzand valorile curente ale contorului program,
registrelor si variabilelorregistrelor si variabilelor
•• Procesorul comuta de la un proces la altulProcesorul comuta de la un proces la altul
•• Aceasta comutare rapida se numeste Aceasta comutare rapida se numeste
multiprogramaremultiprogramare
13/03/200913/03/2009 Cursul 3Cursul 3 55
Modelul de procesModelul de proces
•• Exista o diferenta intre un proces si un programExista o diferenta intre un proces si un program
•• Programul este un algoritm exprimat intrProgramul este un algoritm exprimat intr--oo
notatie potrivitanotatie potrivita
•• Procesul este activitatea care Procesul este activitatea care ““citesteciteste”” algoritmul,algoritmul,
interpreteaza eventualele intreruperiinterpreteaza eventualele intreruperi
•• Un singur procesor poate fi partajat de mai multe Un singur procesor poate fi partajat de mai multe
procese, folosinduprocese, folosindu--se un algoritm de planificarese un algoritm de planificare
•• Pentru a determina cand sa se opreasca lucrul cu Pentru a determina cand sa se opreasca lucrul cu
un proces si sa fie servit altulun proces si sa fie servit altul
13/03/200913/03/2009 Cursul 3Cursul 3 66
Crearea proceselorCrearea proceselor
•• Exista patru evenimente principale care Exista patru evenimente principale care
determina crearea proceselor:determina crearea proceselor:
–– Initializarea sistemuluiInitializarea sistemului
–– Executia unui apel de sistem pentru crearea Executia unui apel de sistem pentru crearea
unui proces de catre un proces in executieunui proces de catre un proces in executie
–– O cerere a utilizatorului pentru crearea unui O cerere a utilizatorului pentru crearea unui
nou procesnou proces
–– Initierea unei lucrari in fundalInitierea unei lucrari in fundal
13/03/200913/03/2009 Cursul 3Cursul 3 77
Crearea proceselorCrearea proceselor
•• Atunci cind un sistem de operare porneste sunt Atunci cind un sistem de operare porneste sunt
create mai multe procesecreate mai multe procese
•• O parte dintre aceste procese sunt procese de O parte dintre aceste procese sunt procese de
prim plan (foreground processes)prim plan (foreground processes)
•• Acestea sunt procese care interactioneaza cu Acestea sunt procese care interactioneaza cu
utilizatorul si efectueaza operatii pentru acestautilizatorul si efectueaza operatii pentru acesta
•• Celelalte sunt procese de fundal (background Celelalte sunt procese de fundal (background
processes) care nu sunt asociate cu un utilizatorprocesses) care nu sunt asociate cu un utilizator
•• Ele au anumite functii specificeEle au anumite functii specifice
13/03/200913/03/2009 Cursul 3Cursul 3 88
Crearea proceselorCrearea proceselor
•• De exemplu, un proces de fundal poate fi De exemplu, un proces de fundal poate fi
desemnat sa accepte posta electronicadesemnat sa accepte posta electronica
•• Un alt proces de fundal ar putea fi Un alt proces de fundal ar putea fi
desemnat sa accepte cereri pentru pagini de desemnat sa accepte cereri pentru pagini de
Web gazduite pe acea masina, activinduWeb gazduite pe acea masina, activindu--sese
atunci cind soseste o cerere pentru a o atunci cind soseste o cerere pentru a o
deservideservi
•• Aceste procese de fundal se numesc Aceste procese de fundal se numesc demonidemoni
13/03/200913/03/2009 Cursul 3Cursul 3 99
Crearea proceselorCrearea proceselor
•• Sistemele mari au de obicei multe astfel de Sistemele mari au de obicei multe astfel de proceseprocese
•• In UNIX, programul In UNIX, programul psps poate fi utilizat poate fi utilizat pentru a afisa procesele in executiepentru a afisa procesele in executie
•• In Windows 95/98/Me, folosirea tastelor In Windows 95/98/Me, folosirea tastelor CtrlCtrl--AltAlt--Del o singura data afiseaza Del o singura data afiseaza programele ce ruleazaprogramele ce ruleaza
•• In UNIX exista un singur apel de sistem In UNIX exista un singur apel de sistem pentru crearea unui nou proces: pentru crearea unui nou proces: forkfork..
13/03/200913/03/2009 Cursul 3Cursul 3 1010
Crearea proceselorCrearea proceselor
•• Acest apel creaza o clona exacta a procesului Acest apel creaza o clona exacta a procesului apelantapelant
•• Dupa apelul Dupa apelul forkfork, cele doua procese, parinte si , cele doua procese, parinte si copil, au aceeasi imagine a memoriei, aceleasi copil, au aceeasi imagine a memoriei, aceleasi valori de mediu si acelesi fisiere deschisevalori de mediu si acelesi fisiere deschise
•• In Windows exista o singura functie Win32, In Windows exista o singura functie Win32, CreateProcessCreateProcess, care se ocupa atit de crearea de , care se ocupa atit de crearea de procese cit si de incarcarea programului corect in procese cit si de incarcarea programului corect in noul procesnoul proces
•• Atit in UNIX cit si in Windows, atit parintele cit si Atit in UNIX cit si in Windows, atit parintele cit si copilul au spatiul lor de adrese propriucopilul au spatiul lor de adrese propriu
13/03/200913/03/2009 Cursul 3Cursul 3 1111
Crearea proceselorCrearea proceselor
•• Daca unul dintre procese modifica un cuvint in Daca unul dintre procese modifica un cuvint in spatiul sau de adrese, modificarea nu este vizibila spatiul sau de adrese, modificarea nu este vizibila pentru celalalt procespentru celalalt proces
•• In UNIX, spatiul initial de adrese al procesului In UNIX, spatiul initial de adrese al procesului copil este o copie a celui al parinteluicopil este o copie a celui al parintelui
•• Sunt doua spatii de adrese diferiteSunt doua spatii de adrese diferite
•• Nu se partajeaza memorie care se poate scrieNu se partajeaza memorie care se poate scrie
•• Este posibil ca un proces nou creat sa partajeze Este posibil ca un proces nou creat sa partajeze anumite resurse ale creatorului sau, cum ar fi anumite resurse ale creatorului sau, cum ar fi fisierele deschisefisierele deschise
•• In Windows, spatiile de adrese ale proceselor In Windows, spatiile de adrese ale proceselor parinte si copil sunt diferite de la inceputparinte si copil sunt diferite de la inceput
13/03/200913/03/2009 Cursul 3Cursul 3 1212
Terminarea proceselorTerminarea proceselor
•• Dupa crearea unui proces, acesta incepe sa Dupa crearea unui proces, acesta incepe sa
se execute si isi efectueaza sarcinase execute si isi efectueaza sarcina
•• Noul proces se va termina datorita uneia din Noul proces se va termina datorita uneia din
conditiile urmatoare:conditiile urmatoare:
–– Iesire normala (voluntara)Iesire normala (voluntara)
–– Iesire cu eroare (voluntara)Iesire cu eroare (voluntara)
–– Eroare fatala (involuntara)Eroare fatala (involuntara)
–– Terminare de catre alt proces (involuntara)Terminare de catre alt proces (involuntara)
13/03/200913/03/2009 Cursul 3Cursul 3 1313
Terminarea proceselorTerminarea proceselor
•• Majoritatea proceselor se termina pentru ca Majoritatea proceselor se termina pentru ca sisi--au indeplinit sarcinaau indeplinit sarcina
•• Cind un compilator a compilat programul Cind un compilator a compilat programul care icare i--a fost furnizat, compilatorul executa a fost furnizat, compilatorul executa un apel de sistem pentru a informa sistemul un apel de sistem pentru a informa sistemul de operare ca a terminatde operare ca a terminat
•• Acest apel este Acest apel este exitexit in UNIX si in UNIX si ExitProcessExitProcess ininWindowsWindows
•• Programele cu interfata grafica suporta si Programele cu interfata grafica suporta si terminare voluntaraterminare voluntara
13/03/200913/03/2009 Cursul 3Cursul 3 1414
Terminarea proceselorTerminarea proceselor
•• Al doilea motiv de terminare este Al doilea motiv de terminare este
descoperirea unei erori gravedescoperirea unei erori grave
•• Spre exemplu, daca un utilizator tasteaza Spre exemplu, daca un utilizator tasteaza
comanda:comanda:
•• pentru a compila programul pentru a compila programul prime.cprime.c si nu si nu
exista un astfel de fisier, compilatorul exista un astfel de fisier, compilatorul
termina pur si simplutermina pur si simplu
13/03/200913/03/2009 Cursul 3Cursul 3 1515
Terminarea proceselorTerminarea proceselor
•• Al treilea motiv pentru terminare este o eroare Al treilea motiv pentru terminare este o eroare cauzata de proces, adesea datorita unei erori in cauzata de proces, adesea datorita unei erori in program:program:–– Executia unei instructiuni ilegaleExecutia unei instructiuni ilegale
–– Referentiere ilegala de memorieReferentiere ilegala de memorie
–– Impartirea la zeroImpartirea la zero
•• Al patrulea motiv pentru terminare este executia Al patrulea motiv pentru terminare este executia de catre un proces a unui apel de sistem care sa de catre un proces a unui apel de sistem care sa ““ucidaucida”” un alt procesun alt proces
•• In UNIX acest apel este In UNIX acest apel este killkill
•• In Windows, functia Win32 corespondenta este In Windows, functia Win32 corespondenta este TerminateProcessTerminateProcess
13/03/200913/03/2009 Cursul 3Cursul 3 1616
Ierarhii de proceseIerarhii de procese
•• In cazul UNIX, un proces, toti copiii sai si alti In cazul UNIX, un proces, toti copiii sai si alti descendenti formeaza impreuna un grup de descendenti formeaza impreuna un grup de proceseprocese
•• Un proces are un sinur parinte (dar are zero, unul, Un proces are un sinur parinte (dar are zero, unul, doi sau mai multi copii)doi sau mai multi copii)
•• Ex.: modul in care UNIX se initializeaza atunci Ex.: modul in care UNIX se initializeaza atunci cind este pornitcind este pornit
•• Un proces special numit Un proces special numit initinit este prezent in este prezent in imaginea de initializare (boot image)imaginea de initializare (boot image)
•• Atunci cind acesta incepe sa se execute, citeste Atunci cind acesta incepe sa se execute, citeste un fisier care spune cite terminale existaun fisier care spune cite terminale exista
13/03/200913/03/2009 Cursul 3Cursul 3 1717
Ierarhii de proceseIerarhii de procese
•• Apoi creaza cite un proces nou pentru fiecare Apoi creaza cite un proces nou pentru fiecare terminal folosind terminal folosind forkfork
•• Aceste procese asteapta ca cineva sa se identifice Aceste procese asteapta ca cineva sa se identifice in sistem (log in)in sistem (log in)
•• Daca identificarea este efectuata cu succes, Daca identificarea este efectuata cu succes, procesul de identificare executa un interpretor de procesul de identificare executa un interpretor de comenzicomenzi
•• Aceste comenzi pot porni noi procese s.a.m.d.Aceste comenzi pot porni noi procese s.a.m.d.
•• Astfel toate procesele din intregul sistem apartin Astfel toate procesele din intregul sistem apartin unui singur arbore cu procesul unui singur arbore cu procesul initinit ca radacinaca radacina
13/03/200913/03/2009 Cursul 3Cursul 3 1818
Ierarhii de proceseIerarhii de procese
•• Windows nu contine conceptul de ierarhie de Windows nu contine conceptul de ierarhie de proceseprocese
•• Toate procesele sunt egaleToate procesele sunt egale
•• Singurul loc unde exista ceva similar cu Singurul loc unde exista ceva similar cu ierarhia de procese este momentul creerii unui ierarhia de procese este momentul creerii unui proces, cind parintele primeste un jeton (numit proces, cind parintele primeste un jeton (numit manipulatormanipulator--handle)handle)
•• Procesul parinte este insa liber sa transmita Procesul parinte este insa liber sa transmita jetonul unui alt proces, invalidand ierarhiajetonul unui alt proces, invalidand ierarhia
•• In UNIX, procesele nu pot saIn UNIX, procesele nu pot sa--sisidezmosteneasca procesele copii.dezmosteneasca procesele copii.
13/03/200913/03/2009 Cursul 3Cursul 3 1919
Starile unui procesStarile unui proces
•• Starile in care se poate afla un proces:Starile in care se poate afla un proces:
–– In executieIn executie (folosind procesorul in acel (folosind procesorul in acel
moment)moment)
–– Gata de executieGata de executie (executabil; oprit temporar (executabil; oprit temporar
pentru a lasa alt proces sa se execute)pentru a lasa alt proces sa se execute)
–– BlocatBlocat (incapabil de a se executa pana cand (incapabil de a se executa pana cand
apare un eveniment extern)apare un eveniment extern)
13/03/200913/03/2009 Cursul 3Cursul 3 2020
Starile unui procesStarile unui proces
•• Primele doua stari sunt similarePrimele doua stari sunt similare
•• In ambele cazuri procesul doreste sa se In ambele cazuri procesul doreste sa se execute, dar in a doua situatie nu exista execute, dar in a doua situatie nu exista pentru moment suficient procesor pentru pentru moment suficient procesor pentru acestaacesta
•• A treia stare e diferita de primele douaA treia stare e diferita de primele doua
•• In acest caz procesul nu poate sa se In acest caz procesul nu poate sa se execute, chiar daca procesorul nu are execute, chiar daca procesorul nu are altceva de facutaltceva de facut
13/03/200913/03/2009 Cursul 3Cursul 3 2121
Starile unui procesStarile unui proces
•• Intre aceste 3 stari sunt posibile patru Intre aceste 3 stari sunt posibile patru
tranzitii:tranzitii:
–– Procesul se blocheaza in asteptarea datelor de Procesul se blocheaza in asteptarea datelor de
intrareintrare
–– Modulul planificator alege un alt procesModulul planificator alege un alt proces
–– Modulul planificator alege alt procesModulul planificator alege alt proces
–– Datele de intrare devin disponibileDatele de intrare devin disponibile
13/03/200913/03/2009 Cursul 3Cursul 3 2222
Starile unui procesStarile unui proces
13/03/200913/03/2009 CursulCursul 33 2323
StarileStarile unuiunui procesproces
•• TranzitiaTranzitia 11 apareapare atunciatunci candcand unun procesprocesdescoperadescopera caca nunu poatepoate sasa continuecontinue
•• InIn anumiteanumite sistemesisteme,, procesulprocesul trebuietrebuie sasaexecute un execute un apelapel dede sistemsistem caca blockblock sausaupausepause pentrupentru a intra in a intra in stareastarea blocatblocat
•• InIn altealte sistemesisteme,, inclusivinclusiv UNIX,UNIX, atunciatunci candcandunun procesproces citesteciteste de la o de la o conductaconducta (pipe)(pipe)sausau dintrdintr--unun fisierfisier special (de ex. terminal) special (de ex. terminal) sisi nunu existaexista date de date de intrareintrare disponibiledisponibile,,procesulprocesul esteeste blocatblocat automatautomat
13/03/200913/03/2009 CursulCursul 33 2424
StarileStarile unuiunui procesproces
•• TranzitiileTranzitiile 22 sisi 33 suntsunt produseproduse dede planificatorulplanificatoruldede proceseprocese, care , care esteeste parteparte aa sistemuluisistemului dedeoperareoperare,, farafara caca proceseleprocesele sasa stiestie acestacest lucrulucru
•• TranzitiaTranzitia 22 apareapare candcand modululmodulul planificatorplanificatordecide ca decide ca procesulprocesul inin executieexecutie aa rulatrulat suficientsuficientsisi ee timpultimpul sasa laselase un alt un alt procesproces sasa ocupeocupeprocesorulprocesorul pentrupentru oo perioadaperioada dede timptimp
•• TranzitiaTranzitia 33 apareapare candcand toatetoate celelaltecelelalte proceseproceseauau detinutdetinut procesorulprocesorul oo perioadaperioada justajusta dede timptimpsisi esteeste timpultimpul caca primulprimul procesproces sasa obtinaobtinaprocesorulprocesorul sisi sasa rulezeruleze dindin nounou
13/03/200913/03/2009 CursulCursul 33 2525
StarileStarile unuiunui procesproces
•• TranzitiaTranzitia 44 apareapare candcand se produce se produce evenimentulevenimentul
externextern pepe carecare ilil asteaptaasteapta procesulprocesul (cum(cum arar fifi
aparitiaaparitia unorunor date de date de intrareintrare))
•• DacaDaca nicinici un alt un alt procesproces nunu esteeste inin executieexecutie inin
acelacel moment,moment, vava fifi activataactivata tranzitiatranzitia 33 sisi
procesulprocesul vava incepeincepe sasa rulezeruleze
•• InIn cazcaz contrarcontrar,, procesulprocesul arar puteaputea asteptaastepta inin
stareastarea gatagata dede executieexecutie oo perioadaperioada scurtascurta dede
timptimp panapana candcand procesorulprocesorul esteeste disponibildisponibil sisi
procesoruluiprocesorului ii vine ii vine randulrandul sasa rulezeruleze
13/03/200913/03/2009 CursulCursul 33 2626
ModululModulul planificatorplanificator
•• NivelulNivelul inferior al inferior al sistemuluisistemului dede operareoperare esteeste
modululmodulul planificatorplanificator
•• TratareaTratarea intreruperilorintreruperilor sisi detaliiledetaliile legate de legate de
creareacrearea sisi terminareaterminarea proceselorproceselor suntsunt ascunseascunse inin
modululmodulul planificatorplanificator
ProceseProcese
00 11
……nn--22 nn--11
ModululModulul planificatorplanificator
13/03/200913/03/2009 CursulCursul 33 2727
ImplementareaImplementarea proceselorproceselor
•• PentruPentru aa implementaimplementa modelulmodelul dede procesproces,,sistemulsistemul dede operareoperare folosestefoloseste oo tabelatabelanumitanumita tabelatabela dede proceseprocese cu o cu o intrareintrarepentrupentru fiecarefiecare procesproces
•• AceastaAceasta intrareintrare continecontine informatiiinformatii despredespre::
–– stareastarea procesuluiprocesului,,
–– contorulcontorul program,program, indicatorulindicatorul dede stivastiva,,
–– alocareaalocarea memorieimemoriei,, stareastarea fisierelorfisierelor deschisedeschise,,
–– detaliidetalii dede contabilizarecontabilizare sisi planificareplanificare
13/03/200913/03/2009 CursulCursul 33 2828
ImplementareaImplementarea proceselorproceselor
•• IntrareaIntrarea maimai continecontine sisi altealte informatiiinformatii despredespreunun procesproces carecare trebuietrebuie salvatesalvate
•• AtunciAtunci candcand procesulprocesul comutacomuta intreintre starilestarile ininexecutieexecutie,, gatagata dede executieexecutie sisi blocatblocat
•• AstfelAstfel incatincat sasa poatapoata fifi repornitrepornit maimai tarziutarziu caca sisicumcum nunu arar fifi fostfost opritoprit niciodataniciodata
13/03/200913/03/2009 CursulCursul 33 2929
CampurileCampurile uneiunei intrariintrari dindin tabelatabela
dede proceseprocese
•• GestiuneaGestiunea procesuluiprocesului
–– RegistreRegistre
–– ContorulContorul programprogram
–– CuvantulCuvantul de stare al de stare al programuluiprogramului
–– IndicatorulIndicatorul dede stivastiva
–– StareaStarea procesuluiprocesului
–– PrioritatePrioritate
–– ParametriiParametrii dede planificareplanificare
–– IdentificatorulIdentificatorul procesuluiprocesului
–– ProcesProces primarprimar
13/03/200913/03/2009 Cursul 3Cursul 3 3030
Campurile unei intrari din tabela Campurile unei intrari din tabela
de procesede procese
–– Grupul procesuluiGrupul procesului
–– SemneSemne
–– Momentul inceperii procesuluiMomentul inceperii procesului
–– Durata de utilizare a procesoruluiDurata de utilizare a procesorului
–– Durata de utilizare a procesorului de catre copiiDurata de utilizare a procesorului de catre copii
–– Momentul urmatoarei alarmeMomentul urmatoarei alarme
13/03/200913/03/2009 Cursul 3Cursul 3 3131
Campurile unei intrari din tabela Campurile unei intrari din tabela
de procesede procese
•• Gestiunea memorieiGestiunea memoriei
–– Indicator spre segmentul de textIndicator spre segmentul de text
–– Indicator spre segmentul de dateIndicator spre segmentul de date
–– Indicator spre segmentul de stivaIndicator spre segmentul de stiva
•• Gestiunea fisierelorGestiunea fisierelor
–– Directorul radacinaDirectorul radacina
–– Directorul de lucruDirectorul de lucru
–– Descriptorii de fisiereDescriptorii de fisiere
–– Identificatorul utilizatoruluiIdentificatorul utilizatorului
–– Identificatorul grupuluiIdentificatorul grupului
13/03/200913/03/2009 Cursul 3Cursul 3 3232
Implementarea proceselorImplementarea proceselor
•• Cum se obtine iluzia mai multor procese Cum se obtine iluzia mai multor procese
secventiale pe un calculator cu un singur secventiale pe un calculator cu un singur
procesor si mai multe dispozitive de I/Eprocesor si mai multe dispozitive de I/E
•• Fiecare clasa de dispozitive de I/E are Fiecare clasa de dispozitive de I/E are
asociata o locatie (adesea aproape de asociata o locatie (adesea aproape de
partea de jos a memoriei) numita partea de jos a memoriei) numita vectorvector
de intreruperede intrerupere
•• Aceasta locatie contine adresa rutinei de Aceasta locatie contine adresa rutinei de
tratare a intreruperiitratare a intreruperii
13/03/200913/03/2009 Cursul 3Cursul 3 3333
Implementarea proceselorImplementarea proceselor
•• Sa presupunem ca procesul utilizator cu Sa presupunem ca procesul utilizator cu numarul 3 se afla in executie cand apare o numarul 3 se afla in executie cand apare o intrerupere in legatura cu disculintrerupere in legatura cu discul
•• Contorul program, cuvantul de stare al Contorul program, cuvantul de stare al programului si posibil unul sau mai multe programului si posibil unul sau mai multe registre ale procesului 3 sunt impinsi pe stiva registre ale procesului 3 sunt impinsi pe stiva de catre hardul de intreruperede catre hardul de intrerupere
•• Calculatorul executa apoi un salt la adresa Calculatorul executa apoi un salt la adresa specificata in vectorul de intrerupere al specificata in vectorul de intrerupere al disculuidiscului
13/03/200913/03/2009 Cursul 3Cursul 3 3434
Implementarea proceselorImplementarea proceselor
•• Toate intreruperile incep cu salvarea Toate intreruperile incep cu salvarea registrelor, adesea in intrarea din tabela de registrelor, adesea in intrarea din tabela de procese corespunzatoare procesului curentprocese corespunzatoare procesului curent
•• Apoi, informatia impinsa pe stiva de Apoi, informatia impinsa pe stiva de intrerupere este stearsa si indicatorul de stiva intrerupere este stearsa si indicatorul de stiva va adresa o stiva temporara folosita de va adresa o stiva temporara folosita de modulul de gestiune a proceselormodulul de gestiune a proceselor
•• Se apeleaza apoi o functie C pentru a efectua Se apeleaza apoi o functie C pentru a efectua restul sarcinilor pentru acel tip particular de restul sarcinilor pentru acel tip particular de intrerupereintrerupere
13/03/200913/03/2009 Cursul 3Cursul 3 3535
Implementarea proceselorImplementarea proceselor
•• Cand aceasta siCand aceasta si--a terminat lucrul si poate a a terminat lucrul si poate a determinat un proces sa devina gata de determinat un proces sa devina gata de executie, se apeleaza la modulul planificator executie, se apeleaza la modulul planificator pentru a determina cine se executa in pentru a determina cine se executa in continuarecontinuare
•• Dupa aceasta, controlul revine codului in Dupa aceasta, controlul revine codului in limbaj de asamblare pentru a incarca limbaj de asamblare pentru a incarca registrele si harta memoriei pentru procesul registrele si harta memoriei pentru procesul devenit acum procesul curent si a incepe devenit acum procesul curent si a incepe executia acestuiaexecutia acestuia
Cursul 4Cursul 4 1113/03/200913/03/2009
Sisteme de operareSisteme de operare
Fire de executieFire de executie
13/03/200913/03/2009 Cursul 4Cursul 4 22
AgendaAgenda
•• Modelul firelor de executieModelul firelor de executie
•• Utilizarea firelor de executieUtilizarea firelor de executie
•• Implementarea firelor de executieImplementarea firelor de executie
•• Fire de executie de tip popFire de executie de tip pop--upup
13/03/200913/03/2009 Cursul 4Cursul 4 33
Modelul firelor de executieModelul firelor de executie
•• Modelul orientat pe procese se bazeaza pe Modelul orientat pe procese se bazeaza pe
doua concepte fundamentale:doua concepte fundamentale:
–– Gruparea resurselorGruparea resurselor
–– ExecutiaExecutia
•• O modalitate de a privi un proces este ca o O modalitate de a privi un proces este ca o
grupare de resurse inruditegrupare de resurse inrudite
•• Un proces are un spatiu de adrese ce contine Un proces are un spatiu de adrese ce contine
textul programului si date, precum si alte textul programului si date, precum si alte
resurseresurse
13/03/200913/03/2009 Cursul 4Cursul 4 44
Modelul firelor de executieModelul firelor de executie
•• Aceste resurse pot include:Aceste resurse pot include:
–– Fisiere deschiseFisiere deschise
–– Procese copilProcese copil
–– Semnale de alarma in asteptareSemnale de alarma in asteptare
–– Rutine de tratare a semnalelorRutine de tratare a semnalelor
–– Informatii de contabilizare si alteleInformatii de contabilizare si altele
•• Resursele enumerate pot fi Resursele enumerate pot fi gestionate mai usor prin gruparea lor gestionate mai usor prin gruparea lor sub forma unui processub forma unui proces
13/03/200913/03/2009 Cursul 4Cursul 4 55
Modelul firelor de executieModelul firelor de executie
•• Celalalt concept la care se refera un proces este Celalalt concept la care se refera un proces este
firul de executie (thread)firul de executie (thread)
•• Acesta are un contor de program care tine Acesta are un contor de program care tine
evidenta urmatoarei instructiuni de executatevidenta urmatoarei instructiuni de executat
•• Firul de executie detine registre, care tin Firul de executie detine registre, care tin
variabilele curente de lucruvariabilele curente de lucru
•• Firul de executie are o stiva care contine Firul de executie are o stiva care contine
istoricul executiei, cu un cadru pentru fiecare istoricul executiei, cu un cadru pentru fiecare
procedura apelata din care nu sprocedura apelata din care nu s--a revenit incaa revenit inca
13/03/200913/03/2009 Cursul 4Cursul 4 66
Modelul firelor de executieModelul firelor de executie
•• Desi un fir de executie trebuie sa ruleze intrDesi un fir de executie trebuie sa ruleze intr--ununproces, firul si procesul sunt concepte diferiteproces, firul si procesul sunt concepte diferite
•• Ele pot fi tratate separatEle pot fi tratate separat
•• Procesele sunt utilizate pentru a grupa resurseProcesele sunt utilizate pentru a grupa resurse
•• Firele de executie sunt entitati planificate Firele de executie sunt entitati planificate pentru executie in cadrul procesoruluipentru executie in cadrul procesorului
•• Firele de executie permit executii multiple in Firele de executie permit executii multiple in cadrul aceluiasi procescadrul aceluiasi proces
•• TermenulTermenul programare cu fire de executie programare cu fire de executie multiple (multithreading)multiple (multithreading) este folosit in cazul in este folosit in cazul in care avem multiple fire de executie in cadrul care avem multiple fire de executie in cadrul aceluiasi procesaceluiasi proces
13/03/200913/03/2009 Cursul 4Cursul 4 77
Modelul firelor de executieModelul firelor de executie
•• Fiecare proces are Fiecare proces are
propriul spatiu de propriul spatiu de
adrese si un singur adrese si un singur
fir de executiefir de executie
•• Cele 3 fire Cele 3 fire
opereaza intropereaza intr--unun
spatiu de adrese spatiu de adrese
diferitdiferitNucleu
Proces 1 Proces 2 Proces 3
Fir de executie
Spatiuutilizator
Spatiunucleu
•• Trei procese, fiecare Trei procese, fiecare
cu un fir de executiecu un fir de executie
13/03/200913/03/2009 Cursul 4Cursul 4 88
Modelul firelor de executieModelul firelor de executie
•• Un singur proces cu 3 fire de executieUn singur proces cu 3 fire de executie
•• Cele 3 fire de executie partajeaza acelasi spatiu de Cele 3 fire de executie partajeaza acelasi spatiu de adreseadrese
Nucleu
Fir de executie
Proces
Spatiuutilizator
Spatiunucleu
13/03/200913/03/2009 Cursul 4Cursul 4 99
Modelul firelor de executieModelul firelor de executie
•• Cand un proces cu mai multe fire de executie Cand un proces cu mai multe fire de executie
este rulat pe un sistem cu un singur procesor, este rulat pe un sistem cu un singur procesor,
firele de executie ruleaza pe randfirele de executie ruleaza pe rand
•• Procesorul comuta rapid intre firele de executie Procesorul comuta rapid intre firele de executie
oferind iluzia ca acestea ruleaza in paraleloferind iluzia ca acestea ruleaza in paralel
•• In cazul unui proces cu 3 fire de executie, toate In cazul unui proces cu 3 fire de executie, toate
efectuind calcule, acestea par sa se execute in efectuind calcule, acestea par sa se execute in
paralel, fiecare pe un procesor cu o viteza de 3 paralel, fiecare pe un procesor cu o viteza de 3
ori mai mica decat a procesorului realori mai mica decat a procesorului real
13/03/200913/03/2009 Cursul 4Cursul 4 1010
Modelul firelor de executieModelul firelor de executie
•• Firele de executie din cadrul unui proces nu Firele de executie din cadrul unui proces nu
sunt la fel de independente ca procesele sunt la fel de independente ca procesele
separateseparate
•• Toate firele de executie au acelasi spatiu de Toate firele de executie au acelasi spatiu de
adreseadrese
•• Adica ele partajeaza si aceleasi variabile Adica ele partajeaza si aceleasi variabile
globaleglobale
•• Un fir poate citi, scrie sau sterge intreaga stiva Un fir poate citi, scrie sau sterge intreaga stiva
a unui alt fir de executiea unui alt fir de executie
13/03/200913/03/2009 Cursul 4Cursul 4 1111
Modelul firelor de executieModelul firelor de executie
•• Nu exista protectie intre firele de executieNu exista protectie intre firele de executie
•• Firele de executie partajeaza:Firele de executie partajeaza:
–– Aceeasi multime de fisiere deschiseAceeasi multime de fisiere deschise
–– Procese copilProcese copil
–– AlarmeAlarme
–– SemnaleSemnale
–– Informatii de bilantInformatii de bilant
13/03/200913/03/2009 Cursul 4Cursul 4 1212
Modelul firelor de executieModelul firelor de executie
•• Un fir de executie se poate afla in una din Un fir de executie se poate afla in una din starile:starile:
–– In executieIn executie
–– BlocatBlocat
–– Gata de executieGata de executie
•• Un fir de executie detine procesorul si Un fir de executie detine procesorul si este activeste activ
•• Un fir de executie blocat asteapta un Un fir de executie blocat asteapta un eveniment pentru a se deblocaeveniment pentru a se debloca
13/03/200913/03/2009 Cursul 4Cursul 4 1313
Modelul firelor de executieModelul firelor de executie
•• Un fir gata de executie este planificat sa ruleze Un fir gata de executie este planificat sa ruleze si va rula imediat ce si va rula imediat ce !!i vine randuli vine randul
•• Tranzitiile intre starile unui fir de executie sunt Tranzitiile intre starile unui fir de executie sunt identice cu cele ale unui procesidentice cu cele ale unui proces
•• Fiecare fir de executie are propria stivaFiecare fir de executie are propria stiva
•• Stiva fiecarui fir contine un cadru pentru Stiva fiecarui fir contine un cadru pentru fiecare procedura apelata, dar din care nu sfiecare procedura apelata, dar din care nu s--aarevenit incarevenit inca
•• Cadrul contine variabilele locale ale procedurii Cadrul contine variabilele locale ale procedurii si adresa de revenire, care se foloseste cand si adresa de revenire, care se foloseste cand apelul de proceduta sapelul de proceduta s--a incheiata incheiat
13/03/200913/03/2009 Cursul 4Cursul 4 1414
Modelul firelor de executieModelul firelor de executie
•• Crearea unui nou fir de executie se face prin Crearea unui nou fir de executie se face prin
apelarea functiei de biblioteca: apelarea functiei de biblioteca:
thread_createthread_create
•• Terminarea unui fir de executie se face prin Terminarea unui fir de executie se face prin
apelarea functiei: apelarea functiei: thread_exitthread_exit
•• Un fir poate astepta terminarea unui alt fir Un fir poate astepta terminarea unui alt fir
apeland functia: apeland functia: thread_waitthread_wait
–– Aceasta functie blocheaza firul apelant pana Aceasta functie blocheaza firul apelant pana
cand un anume fir scand un anume fir s--a terminata terminat
13/03/200913/03/2009 Cursul 4Cursul 4 1515
Modelul firelor de executieModelul firelor de executie
•• Renuntarea unui fir de executie la detinerea Renuntarea unui fir de executie la detinerea procesorului, pentru a lasa un alt fir sa se procesorului, pentru a lasa un alt fir sa se execute se face cu apelul: execute se face cu apelul: thread_yieldthread_yield
•• Firele de executie renunta voluntar la Firele de executie renunta voluntar la procesor din cand in cand pentru a da procesor din cand in cand pentru a da celorlalte fire posibilitatea sa se executecelorlalte fire posibilitatea sa se execute
•• Alte apeluri permit unui fir sa astepte ca alt fir Alte apeluri permit unui fir sa astepte ca alt fir de executie:de executie:–– sa termine o anumita sarcinasa termine o anumita sarcina
–– sa anunte terminarea unor operatii, etc.sa anunte terminarea unor operatii, etc.
13/03/200913/03/2009 Cursul 4Cursul 4 1616
Utilizarea firelor de executieUtilizarea firelor de executie
•• Exemplu: un server pentru un site InternetExemplu: un server pentru un site Internet
•• Paginile utilizate intens se stocheaza in Paginile utilizate intens se stocheaza in memoriememorie--imbunatatirea performantelorimbunatatirea performantelor
•• Aceasta memorie se numeste Aceasta memorie se numeste memoriememorieascunsa (cache)ascunsa (cache)
•• Un fir de executie, Un fir de executie, dispeceruldispecerul, citeste , citeste cererile de lucru de la reteacererile de lucru de la retea
•• Apoi alege un Apoi alege un fir de executie lucratorfir de executie lucrator liber si liber si ii transmite cerereaii transmite cererea
13/03/200913/03/2009 Cursul 4Cursul 4 1717
Utilizarea firelor de executieUtilizarea firelor de executie
Nucleu
Fir de executiedispecer
Conexiune de retea
Fir de executielucrator
Memorie cachepentru pagini Web
Procesul serverului Web
Spatiuutilizator
Spatiunucleu
13/03/200913/03/2009 Cursul 4Cursul 4 1818
Utilizarea firelor de executieUtilizarea firelor de executie
•• Dispecerul apeleaza apoi lucratorul inactiv, Dispecerul apeleaza apoi lucratorul inactiv, mutandumutandu--l din starea blocat in starea gata l din starea blocat in starea gata de executiede executie
•• Lucratorul verifica daca cererea poate fi Lucratorul verifica daca cererea poate fi satisfacuta din memoria cachesatisfacuta din memoria cache
•• In caz contrar, porneste o noua operatie de In caz contrar, porneste o noua operatie de citire pentru a obtine pagina de pe disccitire pentru a obtine pagina de pe disc
•• Si se blocheaza pana cand se termina Si se blocheaza pana cand se termina aceasta operatieaceasta operatie
13/03/200913/03/2009 Cursul 4Cursul 4 1919
Utilizarea firelor de executieUtilizarea firelor de executie
•• Cand firul se blocheaza la operatia cu discul, Cand firul se blocheaza la operatia cu discul,
se alege un alt fir pentru executie:se alege un alt fir pentru executie:
–– Posibil chiar dispecerul pentru a obtine alte Posibil chiar dispecerul pentru a obtine alte
sarcinisarcini
–– Sau alt lucrator care este gata de executieSau alt lucrator care este gata de executie
•• Acest model permite ca serverul sa fie scris Acest model permite ca serverul sa fie scris
ca o colectie de fire de executie secventialeca o colectie de fire de executie secventiale
13/03/200913/03/2009 Cursul 4Cursul 4 2020
Utilizarea firelor de executieUtilizarea firelor de executie
while(TRUE) {while(TRUE) {
obtine_urmatoarea_cerere(&buf);obtine_urmatoarea_cerere(&buf);
transmite_lucrul(&buf);transmite_lucrul(&buf);
}}
•• Programul dispecerului este format dintrProgramul dispecerului este format dintr--oo
bucla infinita pentru achizitia unei sarcinibucla infinita pentru achizitia unei sarcini
•• Si transmiterea ei catre un lucratorSi transmiterea ei catre un lucrator
13/03/200913/03/2009 Cursul 4Cursul 4 2121
Utilizarea firelor de executieUtilizarea firelor de executiewhile(TRUE) {while(TRUE) {
asteapta_lucru(&buf);asteapta_lucru(&buf);
cauta_pagina_in_mem_ascunsa(&buf,&page);cauta_pagina_in_mem_ascunsa(&buf,&page);
if(pagina_nu_e_in_mem_ascunsa(&page))if(pagina_nu_e_in_mem_ascunsa(&page))
citeste_pagina_de_pe_disc (&buf,&page);citeste_pagina_de_pe_disc (&buf,&page);
intoarce_pagina(&page);intoarce_pagina(&page);
}}
•• Codul unui fir de executie lucrator este format dintrCodul unui fir de executie lucrator este format dintr--o bucla infinita o bucla infinita in care se accepta o cerere de la dispecerin care se accepta o cerere de la dispecer
•• Si se verifica daca pagina este prezenta in memoria ascunsa Si se verifica daca pagina este prezenta in memoria ascunsa pentru pagini Webpentru pagini Web
•• In caz afirmativ, pagina este intoarsa clientului si firul lucraIn caz afirmativ, pagina este intoarsa clientului si firul lucrator se tor se blocheaza in asteptarea unei noi cereriblocheaza in asteptarea unei noi cereri
•• In caz negativ, lucratorul obtine pagina de pe disc, o intoarce In caz negativ, lucratorul obtine pagina de pe disc, o intoarce clientului si se blocheaza in asteptarea unei noi cerericlientului si se blocheaza in asteptarea unei noi cereri
13/03/200913/03/2009 Cursul 4Cursul 4 2222
Implementarea firelor de executieImplementarea firelor de executie
•• Implementarea firelor de executie se poate Implementarea firelor de executie se poate
face in doua moduri:face in doua moduri:
–– In spatiul utilizatorIn spatiul utilizator
–– In nucleuIn nucleu
•• Exista si implementari hibridExista si implementari hibrid
•• In primul caz, toate firele de executie se pun In primul caz, toate firele de executie se pun
in spatiul utilizatorin spatiul utilizator
•• Nucleul nu stie nimic despre eleNucleul nu stie nimic despre ele
13/03/200913/03/2009 Cursul 4Cursul 4 2323
Implementarea firelor de executie Implementarea firelor de executie
in spatiul utilizatorin spatiul utilizator
•• Fiecare proces are nevoie de o Fiecare proces are nevoie de o tabela de fire tabela de fire
de executiede executie pentru a urmari firele procesului pentru a urmari firele procesului
respectivrespectiv
•• Aceasta tabela este similara cu tabela de Aceasta tabela este similara cu tabela de
procese a nucleuluiprocese a nucleului
•• Mentine doar proprietatile firelor de executieMentine doar proprietatile firelor de executie
•• Tabela de fire este gestionata de executivTabela de fire este gestionata de executiv
13/03/200913/03/2009 Cursul 4Cursul 4 2424
Implementarea firelor de executie Implementarea firelor de executie
in spatiul utilizatorin spatiul utilizator
Proces Fir de executie
Executiv Tabela de fire Tabela de procese
Nucleu
Spatiuutilizator
Spatiunucleu
13/03/200913/03/2009 Cursul 4Cursul 4 2525
Implementarea firelor de executie Implementarea firelor de executie
in spatiul utilizatorin spatiul utilizator
•• Cand un fir de executie comuta in starea Cand un fir de executie comuta in starea
gata de executie sau blocat, informatia gata de executie sau blocat, informatia
necesara pentru anecesara pentru a--l reporni este stocata in l reporni este stocata in
tabela de firetabela de fire
•• In acelasi mod in care nucleul stocheaza In acelasi mod in care nucleul stocheaza
informatia despre procese in tabela de informatia despre procese in tabela de
proceseprocese
13/03/200913/03/2009 Cursul 4Cursul 4 2626
Implementarea firelor de executie Implementarea firelor de executie
in spatiul utilizatorin spatiul utilizator
•• Cand un fir de executie efectueaza o Cand un fir de executie efectueaza o
actiune care poate determina blocarea actiune care poate determina blocarea
locala a acestuia, el apeleaza o procedura a locala a acestuia, el apeleaza o procedura a
executivuluiexecutivului
•• Aceasta procedura verifica daca firul trebuie Aceasta procedura verifica daca firul trebuie
trecut in starea blocattrecut in starea blocat
•• In caz afirmativ, se stocheaza registrii firului In caz afirmativ, se stocheaza registrii firului
curent in tabela de firecurent in tabela de fire
13/03/200913/03/2009 Cursul 4Cursul 4 2727
Implementarea firelor de executie Implementarea firelor de executie
in spatiul utilizatorin spatiul utilizator
•• Se cauta in tabela un fir gata de executie si Se cauta in tabela un fir gata de executie si
se reincarca registrii masinii cu valorile se reincarca registrii masinii cu valorile
salvate anterior de noul firsalvate anterior de noul fir
•• Acesta redevine activ automat, imediat ce Acesta redevine activ automat, imediat ce
indicatorul de stiva si contorul program au indicatorul de stiva si contorul program au
fost modificatefost modificate
13/03/200913/03/2009 Cursul 4Cursul 4 2828
Implementarea firelor de executie Implementarea firelor de executie
in nucleuin nucleu
•• Nu mai este nevoie de executiv pentru Nu mai este nevoie de executiv pentru fiecare procesfiecare proces
•• Nu mai exista cate o tabela de fire pentru Nu mai exista cate o tabela de fire pentru fiecare procesfiecare proces
•• Nucleul are insa o tabela de fire care tine Nucleul are insa o tabela de fire care tine evidenta tuturor firelor din sistemevidenta tuturor firelor din sistem
•• Cand un fir doreste crearea unui fir nou sau Cand un fir doreste crearea unui fir nou sau distrugerea altui fir, efectueaza un apel distrugerea altui fir, efectueaza un apel catre nucleucatre nucleu
13/03/200913/03/2009 Cursul 4Cursul 4 2929
Implementarea firelor de executie Implementarea firelor de executie
in nucleuin nucleu
Nucleu
Tabelade fire
Tabelade procese
Spatiunucleu
Spatiuutilizator
Fir de executieProces
13/03/200913/03/2009 Cursul 4Cursul 4 3030
Implementarea firelor de executie Implementarea firelor de executie
in nucleuin nucleu
•• Firele implementate in nucleu nu necesita Firele implementate in nucleu nu necesita
apeluri noi de sistem nonapeluri noi de sistem non--blocanteblocante
•• Dezavantajul principal este ca un apel de Dezavantajul principal este ca un apel de
sistem are un cost mai mare ca duratasistem are un cost mai mare ca durata
•• Astfel ca in cazul in care operatiile cu fire Astfel ca in cazul in care operatiile cu fire
(creare, terminare, etc.) sunt frecvente, va (creare, terminare, etc.) sunt frecvente, va
apare o supraincarcare mai mare apare o supraincarcare mai mare
13/03/200913/03/2009 Cursul 4Cursul 4 3131
Implementari hibrideImplementari hibride
•• Combina avantajele firelor implementate in Combina avantajele firelor implementate in
spatiul utilizator cu cele implementate la nivel spatiul utilizator cu cele implementate la nivel
de nucleude nucleu
•• Nucleul este constient numai de existenta Nucleul este constient numai de existenta
firelor din nucleu si le planifica doar pe acesteafirelor din nucleu si le planifica doar pe acestea
•• O parte din aceste fire pot avea multiplexate in O parte din aceste fire pot avea multiplexate in
cadrul lor mai multe fire in spatiul utilizatorcadrul lor mai multe fire in spatiul utilizator
•• Fiecare fir din nucleu este utilizat pe rand de o Fiecare fir din nucleu este utilizat pe rand de o
serie de fire din spatiul utilizatorserie de fire din spatiul utilizator
ImplementariImplementari hibridehibride
13/03/200913/03/2009 CursulCursul 44 3232
Mai multe fire in spatiul utilizatorPe un fir din nucleu
Spatiulnucleu
Spatiulutilizator
Nucleu
Fire de Fire de executieexecutie de tip popde tip pop--upup
•• FireleFirele dede executieexecutie suntsunt adeseaadesea folositoarefolositoare inin
sistemelesistemele distribuitedistribuite
•• De ex. De ex. tratareatratarea mesajelormesajelor sositesosite, al , al cererilorcererilor
catrecatre unun serviciuserviciu
•• AbordareaAbordarea traditionalatraditionala esteeste aceeaaceea in care un in care un
procesproces sausau fir de fir de executieexecutie esteeste blocatblocat la un la un
apelapel dede sistemsistem receivereceive pentrupentru primireaprimirea unuiunui
mesajmesaj
13/03/200913/03/2009 CursulCursul 44 3333
Fire de Fire de executieexecutie de tip popde tip pop--upup
•• AtunciAtunci candcand sosestesoseste unun mesajmesaj,, entitateaentitatea
respectivarespectiva acceptaaccepta mesajulmesajul sisi ilil proceseazaproceseaza
•• EsteEste posibilaposibila sisi oo abordareabordare completcomplet diferitadiferita
•• SosireaSosirea unuiunui mesajmesaj determinadetermina sistemulsistemul sasa
creezecreeze unun nounou fir de fir de executieexecutie pentrupentru aa tratatrata
mesajulmesajul
•• UnUn astfelastfel de fir se de fir se numestenumeste fir de fir de executieexecutie
poppop--upup
13/03/200913/03/2009 CursulCursul 44 3434
Fire de Fire de executieexecutie de tip popde tip pop--upup
13/03/200913/03/2009 CursulCursul 44 3535
Proces Fir de executie existent
Retea
Sosire mesaj
Fir de executie pop-up creatpentru procesareamesajului sosit
Crearea unui fir inaintede sosirea mesajului
Crearea unui fir dupasosirea mesajului
Fire de Fire de executieexecutie de tip popde tip pop--upup
•• AvantajulAvantajul unuiunui astfelastfel de fir de fir esteeste caca nunu au un au un
istoricistoric carecare trebuietrebuie restauratrestaurat ––registreregistre,, stivastiva,,
etc. (etc. (deoarecedeoarece esteeste un fir un fir nounou))
•• FiecareFiecare astfelastfel de fir de fir pornesteporneste de la zero de la zero sisi
esteeste identicidentic cucu oricareoricare altulaltul
•• AcestAcest faptfapt permitepermite creareacrearea rapidarapida aa unuiunui firfir
dede executieexecutie poppop--upup
•• MesajulMesajul sese transmitetransmite apoiapoi nouluinoului firfir pentrupentru
procesareprocesare13/03/200913/03/2009 CursulCursul 44 3636
Fire de Fire de executieexecutie de tip popde tip pop--upup
•• RezultatulRezultatul utilizariiutilizarii firelorfirelor poppop--upup esteeste micsorareamicsorarea
decisivadecisiva aa intirzieriiintirzierii intreintre momentulmomentul sosiriisosirii
mesajuluimesajului sisi inceputulinceputul procesariiprocesarii acestuiaacestuia
•• FolosireaFolosirea firelorfirelor poppop--upup necesitanecesita oo planificareplanificare
atentaatenta
•• DacaDaca sistemulsistemul suportasuporta fire de fire de executieexecutie carecare
ruleazaruleaza inin contextulcontextul nucleuluinucleului
•• AtunciAtunci noulnoul firfir arar fifi executatexecutat aiciaici
•• FirulFirul poppop--upup executatexecutat inin nucleunucleu esteeste maimai usorusor dede
implementatimplementat sisi maimai rapidrapid13/03/200913/03/2009 CursulCursul 44 3737
Cursul 5Cursul 5 1113.03.200913.03.2009
Sisteme de operareSisteme de operareComunicarea interproceseComunicarea interprocese
13.03.200913.03.2009 Cursul 5Cursul 5 22
AgendaAgenda
•• Conditii de cursaConditii de cursa
•• Regiuni criticeRegiuni critice
•• Alternarea strictaAlternarea stricta
•• Problema ProducatorProblema Producator--ConsumatorConsumator
•• SemafoareSemafoare
•• Probleme clasice ale comunicarii interproceseProbleme clasice ale comunicarii interprocese
13.03.200913.03.2009 Cursul 5Cursul 5 33
IntroducereIntroducere
•• Adesea, procesele trebuie sa comunice cu alte Adesea, procesele trebuie sa comunice cu alte proceseprocese
•• Comunicarea trebuie sa fie bine structurata, Comunicarea trebuie sa fie bine structurata, fara intreruperifara intreruperi
•• Vom studia Vom studia comunicarea interprocese comunicarea interprocese (InterProcess Communication)(InterProcess Communication)
Conditii de cursaConditii de cursa
•• Procesele care lucreaza impreuna pot Procesele care lucreaza impreuna pot partaja o zona de memorie comunapartaja o zona de memorie comuna
•• Pe care fiecare o poate citi si scriePe care fiecare o poate citi si scrie
•• Ex.: o coada de tiparire (print spooler)Ex.: o coada de tiparire (print spooler)
•• Cand un proces vrea sa tipareasca un fisier, Cand un proces vrea sa tipareasca un fisier, introduce numele fisierului intrintroduce numele fisierului intr--un catalog un catalog de tiparire special (de tiparire special (spooler directoryspooler directory))
13.03.200913.03.2009 Cursul 5Cursul 5 44
Conditii de cursaConditii de cursa
•• Alt proces, care se ocupa cu tiparirea Alt proces, care se ocupa cu tiparirea documentelor (print daemon), verifica documentelor (print daemon), verifica periodic daca exista fisiere de tiparitperiodic daca exista fisiere de tiparit
•• Daca exista, le tipareste si apoi sterge Daca exista, le tipareste si apoi sterge numele lor din catalognumele lor din catalog
•• In cazul in care doua sau mai multe procese In cazul in care doua sau mai multe procese citesc sau scriu date partajatecitesc sau scriu date partajate
•• Rezultatul final depinde de cine se executa Rezultatul final depinde de cine se executa exact candexact cand
•• Aceste situatii se numesc Aceste situatii se numesc conditii de cursaconditii de cursa13.03.200913.03.2009 Cursul 5Cursul 5 55
Regiuni criticeRegiuni critice
•• Apar probleme atunci cand memoria sau Apar probleme atunci cand memoria sau fisierele sunt partajatefisierele sunt partajate
•• In aceste cazuri, se cere determinarea unui In aceste cazuri, se cere determinarea unui mod in care sa se interzica citirea si scrierea mod in care sa se interzica citirea si scrierea de catre mai multe procese simultan a de catre mai multe procese simultan a datelor partajatedatelor partajate
•• Partea de program in care memoria Partea de program in care memoria partajata este accesata se numeste partajata este accesata se numeste regiune regiune criticacritica
13.03.200913.03.2009 Cursul 5Cursul 5 66
Regiuni criticeRegiuni critice
•• Pentru a evita cursele doua procese trebuie sa Pentru a evita cursele doua procese trebuie sa nu fie niciodata in acelasi timp in regiunile lor nu fie niciodata in acelasi timp in regiunile lor criticecritice
•• Pentru ca procesele paralele sa coopereze Pentru ca procesele paralele sa coopereze corect si eficient, folosind date partajate, corect si eficient, folosind date partajate, trebuie sa fie indeplinite 4 conditii:trebuie sa fie indeplinite 4 conditii:
–– Oricare 2 procese nu se pot afla simultan in Oricare 2 procese nu se pot afla simultan in regiunile lor criticeregiunile lor critice
–– Nu se poate face nici o presupunere asupra Nu se poate face nici o presupunere asupra vitezelor sau numarului de procesoarevitezelor sau numarului de procesoare
13.03.200913.03.2009 Cursul 5Cursul 5 77
Regiuni criticeRegiuni critice
–– Nici un proces care ruleaza in afara regiunii lui Nici un proces care ruleaza in afara regiunii lui critice nu poate bloca alte procesecritice nu poate bloca alte procese
–– Nici un proces nu trebuie sa astepte la infinit Nici un proces nu trebuie sa astepte la infinit pentru a intra in regiunea lui criticapentru a intra in regiunea lui critica
13.03.200913.03.2009 Cursul 5Cursul 5 88
Dezactivarea intreruperilorDezactivarea intreruperilor
•• Fiecare proces dezactiveaza toate intreruperile Fiecare proces dezactiveaza toate intreruperile imediat dupa ce a intrat in regiunea criticaimediat dupa ce a intrat in regiunea critica
•• Si le reactiveaza imediat inainte de a parasi regiunea Si le reactiveaza imediat inainte de a parasi regiunea criticacritica
•• Procesorul comuta intre procese via intreruperii de Procesorul comuta intre procese via intreruperii de ceas sau alta intrerupereceas sau alta intrerupere
•• Dezavantaje:Dezavantaje:
–– Se da proceselor utilizator puterea sa dezactiveze Se da proceselor utilizator puterea sa dezactiveze intreruperileintreruperile
–– Metoda nu este fezabila in cazul in care avem mai multe Metoda nu este fezabila in cazul in care avem mai multe procesoare (dezactivarea intreruperilor afecteaza doar procesoare (dezactivarea intreruperilor afecteaza doar procesorul in cauza)procesorul in cauza)
13.03.200913.03.2009 Cursul 5Cursul 5 99
Variabile Variabile zz!!vorvor
•• Presupunem ca avem o singura variabila partajata, Presupunem ca avem o singura variabila partajata, zz!!vorvor, cu valoarea initiala 0, cu valoarea initiala 0
•• Cand un proces vrea sa intre in regiunea critica Cand un proces vrea sa intre in regiunea critica verifica zavorul:verifica zavorul:
–– Daca zavorul este 0, procesul Daca zavorul este 0, procesul îîi seteaza valoarea pe 1 si i seteaza valoarea pe 1 si intra in regiunea criticaintra in regiunea critica
–– Daca zavorul este 1, procesul asteapta pana cand zavorul Daca zavorul este 1, procesul asteapta pana cand zavorul devine 0devine 0
–– Un 0 inseamna ca nici un proces nu se afla in reg. criticaUn 0 inseamna ca nici un proces nu se afla in reg. critica
–– Un 1 inseamna ca in regiunea critica se afla un procesUn 1 inseamna ca in regiunea critica se afla un proces
•• Dar nici aceasta schema nu rezolva problemaDar nici aceasta schema nu rezolva problema
13.03.200913.03.2009 Cursul 5Cursul 5 1010
Variabile Variabile zz!!vorvor
•• Presupunem ca un proces citeste zavorul si Presupunem ca un proces citeste zavorul si observa ca e 0observa ca e 0
•• Alt proces este activat, se executa si Alt proces este activat, se executa si modifica val. zavorului din 0 in 1modifica val. zavorului din 0 in 1
•• Primul proces isi continua executia, va seta Primul proces isi continua executia, va seta val. zavorului la 1val. zavorului la 1
•• Astfel apar 2 procese ce se vor afla in Astfel apar 2 procese ce se vor afla in regiunile lor critice in acelasi timpregiunile lor critice in acelasi timp
13.03.200913.03.2009 Cursul 5Cursul 5 1111
Alternarea strictAlternarea strict!!
•• O variabila de tip intreg O variabila de tip intreg turnturn, initial cu valoarea 0, , initial cu valoarea 0, determina al cui rdetermina al cui râând este sa intre in regiunea criticand este sa intre in regiunea critica
•• Variabila Variabila turnturn verifica sau actualizeaza memoria verifica sau actualizeaza memoria partajatapartajata
13.03.200913.03.2009 Cursul 5Cursul 5 1212
Procesul 0 Procesul 1
Alternarea strictAlternarea strict!!
•• Procesul 0 verifica Procesul 0 verifica turnturn, observa ca are valoarea 0 si , observa ca are valoarea 0 si intra in regiunea criticaintra in regiunea critica
•• Procesul 1 gaseste tot valoarea 0 si de aceea cicleaza Procesul 1 gaseste tot valoarea 0 si de aceea cicleaza intrintr--o bucla mica, verificand mereu o bucla mica, verificand mereu turnturn pana devine 1pana devine 1
•• Verificarea in continuu a unei variabile pana cand are o Verificarea in continuu a unei variabile pana cand are o anumita valoare se numeste anumita valoare se numeste asteptare ocupataasteptare ocupata
•• Aceasta trebuie evitata intotdeauna, deoarece iroseste Aceasta trebuie evitata intotdeauna, deoarece iroseste timp pe procesortimp pe procesor
•• Cand procesul 0 paraseste regiunea critica, va seta Cand procesul 0 paraseste regiunea critica, va seta turnturn pe 1, pentru a permite procesului 1 sa intre in pe 1, pentru a permite procesului 1 sa intre in regiunea lui criticaregiunea lui critica
13.03.200913.03.2009 Cursul 5Cursul 5 1313
Alternarea strictAlternarea strict!!
•• Presupunem ca procesul 1 termina executia regiunuii Presupunem ca procesul 1 termina executia regiunuii lui critice repedelui critice repede
•• Astfel, ambele procese sunt in afara regiunilor lor Astfel, ambele procese sunt in afara regiunilor lor critice, cu critice, cu turnturn avand valoarea 0avand valoarea 0
•• Acum, procesul 0 executa rapid intreaga bucla, iesind Acum, procesul 0 executa rapid intreaga bucla, iesind din regiunea lui critica si modificand din regiunea lui critica si modificand turnturn la valoarea 1la valoarea 1
•• In acest moment In acest moment turnturn are valoarea 1 si ambele are valoarea 1 si ambele procese se executa in afara regiunilor lor criticeprocese se executa in afara regiunilor lor critice
•• Brusc, procesul 0 termina executia regiunii sale Brusc, procesul 0 termina executia regiunii sale necritice si reia buclanecritice si reia bucla
13.03.200913.03.2009 Cursul 5Cursul 5 1414
Alternarea strictAlternarea strict!!
•• Procesului 0 nu ii este permis sa intre in regiunea Procesului 0 nu ii este permis sa intre in regiunea critica, deoarece critica, deoarece turnturn are valoarea 1are valoarea 1
•• Iar procesul 1 este ocupat cu executia regiunii sale Iar procesul 1 este ocupat cu executia regiunii sale necriticenecritice
•• Procesul 0 va ramane agatat in bucla Procesul 0 va ramane agatat in bucla whilewhile pana cand pana cand procesul 1 va seta procesul 1 va seta turnturn pe 0pe 0
•• Aceasta situatie nu respecta conditia 3 stabilita mai Aceasta situatie nu respecta conditia 3 stabilita mai sus:sus:
–– Procesul 0 este blocat de un proces care nu se afla in Procesul 0 este blocat de un proces care nu se afla in regiunea lui criticaregiunea lui critica
13.03.200913.03.2009 Cursul 5Cursul 5 1515
Solutia lui PatersonSolutia lui Paterson
13.03.200913.03.2009 Cursul 5Cursul 5 1616
Solutia lui PatersonSolutia lui Paterson
•• Fiecare proces apeleaza Fiecare proces apeleaza enter_regionenter_region cu numarul sau cu numarul sau de ordine, 0 sau 1, drept parametrude ordine, 0 sau 1, drept parametru
•• Procesul asteapta daca e cazul pana cand este in Procesul asteapta daca e cazul pana cand este in regula sa intre in regiunea criticaregula sa intre in regiunea critica
•• Procesul apeleaza Procesul apeleaza leave_regionleave_region pentru a indica faptul pentru a indica faptul ca a terminat si pentru a permite altui proces sa intre, ca a terminat si pentru a permite altui proces sa intre, daca dorestedaca doreste
•• Initial nici un proces nu se afla in regiunea lui criticaInitial nici un proces nu se afla in regiunea lui critica
•• Procesul 0 apeleaza apeleaza Procesul 0 apeleaza apeleaza enter_regionenter_region
•• Seteaza Seteaza turnturn pe 0pe 0
•• Procesul 1 nefiind interesat, Procesul 1 nefiind interesat, enter_regionenter_region se termina se termina de executat imediatde executat imediat
13.03.200913.03.2009 Cursul 5Cursul 5 1717
Solutia lui PatersonSolutia lui Paterson•• Daca procesul 1 apeleaza acum Daca procesul 1 apeleaza acum enter_regionenter_region, va ramane , va ramane
agatat acolo pana cand agatat acolo pana cand interested[0]interested[0] devine FALSEdevine FALSE
•• Aceasta se intampla doar cand procesul Aceasta se intampla doar cand procesul 00 apeleaza apeleaza leave_regionleave_region pentru a parasi regiunea criticapentru a parasi regiunea critica
•• Consideram ca ambele procese apeleaza Consideram ca ambele procese apeleaza enter_regionenter_regionaproape simultanaproape simultan
•• Ambele vor salva numarul propriu de ordine in Ambele vor salva numarul propriu de ordine in turnturn
•• Salvarea care se face ultima va contaSalvarea care se face ultima va conta
•• Presupunem ca procesul 1 salveaza ultimul, deci Presupunem ca procesul 1 salveaza ultimul, deci turnturn e 1e 1
•• Cand ambele procese ajung la Cand ambele procese ajung la whilewhile, procesul 0 o , procesul 0 o executa de zero ori si intra in regiunea critica proprieexecuta de zero ori si intra in regiunea critica proprie
•• Procesul 1 cicleaza si nu va intra in regiunea lui critica Procesul 1 cicleaza si nu va intra in regiunea lui critica pana cand procesul 0 nu iese din regiunea lui criticapana cand procesul 0 nu iese din regiunea lui critica13.03.200913.03.2009 Cursul 5Cursul 5 1818
Problema ProducatorProblema Producator--ConsumatorConsumator
•• Doua procese impart o zona tampon comuna cu Doua procese impart o zona tampon comuna cu lungime fixalungime fixa
•• Un proces (producatorul) pune date in zona tamponUn proces (producatorul) pune date in zona tampon
•• Celalalt proces (consumatorul) scoate acele dateCelalalt proces (consumatorul) scoate acele date
•• Problemele apar atunci cand producatorul doreste sa Problemele apar atunci cand producatorul doreste sa introduca un nou element in zona tampon, dar introduca un nou element in zona tampon, dar aceasta e deja plinaaceasta e deja plina
•• Solutia este ca producatorul sa fie suspendat si sa fie Solutia este ca producatorul sa fie suspendat si sa fie trezit atunci cand consumatorul a scos unul sau mai trezit atunci cand consumatorul a scos unul sau mai multe elementemulte elemente
13.03.200913.03.2009 Cursul 5Cursul 5 1919
Problema ProducatorProblema Producator--ConsumatorConsumator
13.03.200913.03.2009 Cursul 5Cursul 5 2020
•Apare o conditie de cursa•Zona tampon este goala si consumatorul tocmai a citit countpentru a verifica daca acesta e 0•Planificatorul de procese suspenda executia consumatorului•Apoi se executa producatorul•Producatorul apeleaza wakeuppentru a trezi consumatorul•Consumatorul este suspendat astfel ca semnalul de trezire este pierdut•In final ambele procese vor fi suspendate pentru totdeauna•O rezolvare ar fi sa adaugam un bit de asteptare a trezirii•Acest bit se seteaza atunci cand un semnal de trezire este trimis unui proces care inca nu a fost suspendat•Cand avem 3 sau mai multe procese apar probleme
Rezolvarea problemei producatorRezolvarea problemei producator--consumator folosind semafoareconsumator folosind semafoare
•• Propusa de Dijkstra ( Propusa de Dijkstra ( 11 Mai 1930 11 Mai 1930 -- 6 August 6 August
2002)2002)
•• Nascut in Rotterdam, OlandaNascut in Rotterdam, Olanda
•• In 1972 a primit premiul ACM Turing Award (Premiul In 1972 a primit premiul ACM Turing Award (Premiul Nobel pentru calculatoare) Nobel pentru calculatoare)
•• Este cunoscut ca fiind proiectantul si dezvoltatorul Este cunoscut ca fiind proiectantul si dezvoltatorul compilatorului Algol 60compilatorului Algol 60
•• A dus o campanie de renuntare la folosirea A dus o campanie de renuntare la folosirea instructiunii GOTO in programareinstructiunii GOTO in programare
13.03.200913.03.2009 Cursul 5Cursul 5 2121
SemafoareSemafoare
•• SemaforSemafor=un nou tip de variabila=un nou tip de variabila
•• ContorizContorizeeaazaza numarul de semnale de trezire salvate numarul de semnale de trezire salvate pentru folosire in viitorpentru folosire in viitor
•• Un semafor ia valoarea 0 daca nu fusese salvat nici Un semafor ia valoarea 0 daca nu fusese salvat nici un semnal de trezireun semnal de trezire
•• Un semafor ia o valoare pozitiva daca unul sau mai Un semafor ia o valoare pozitiva daca unul sau mai multe semnale de trezire erau in asteptaremulte semnale de trezire erau in asteptare
•• Exista 2 operatii cu semafoare:Exista 2 operatii cu semafoare:
–– DownDown: verifica valoarea semaforului: verifica valoarea semaforului•• Daca valoarea lui >0, decrementeaza valoarea si continuaDaca valoarea lui >0, decrementeaza valoarea si continua
•• Daca valoarea lui =0, procesul este suspendat, fara a termina Daca valoarea lui =0, procesul este suspendat, fara a termina efectuarea operatiei efectuarea operatiei downdown pentru moment pentru moment
13.03.200913.03.2009 Cursul 5Cursul 5 2222
SemafoareSemafoare
–– UpUp: incrementeaza valoarea semaforului: incrementeaza valoarea semaforului
•• Daca unul sau mai multe procese erau in asteptarea Daca unul sau mai multe procese erau in asteptarea terminarii efectuarii unei operatii terminarii efectuarii unei operatii downdown pe acel pe acel semaforsemafor
•• Unul dintre ele este ales de catre sistem si ii este Unul dintre ele este ales de catre sistem si ii este permis sapermis sa--si termine operatia si termine operatia downdown
•• Dupa efectuarea unui Dupa efectuarea unui upup pe un semafor, care avea pe un semafor, care avea procese ce astepta la el, semaforul va avea tot val.0procese ce astepta la el, semaforul va avea tot val.0
•• Dar vor fi cu unul mai putine procese care sa Dar vor fi cu unul mai putine procese care sa astepte la acel semafor astepte la acel semafor
13.03.200913.03.2009 Cursul 5Cursul 5 2323
SemafoareSemafoare
13.03.200913.03.2009 Cursul 5Cursul 5 2424
SemafoareSemafoare•• Se folosesc 3 semafoare:Se folosesc 3 semafoare:
–– fullfull: numara locurile ocupate din zona tampon: numara locurile ocupate din zona tampon
–– emptyempty: numara locurile libere din zona tampon: numara locurile libere din zona tampon
–– mutexmutex: asigura accesul exclusiv al producatorului si : asigura accesul exclusiv al producatorului si consumatorului la zona tamponconsumatorului la zona tampon
•• Semafoarele care sunt egale cu 1 si sunt folosite de Semafoarele care sunt egale cu 1 si sunt folosite de doua sau mai multe procese pentru a asigura accesul doua sau mai multe procese pentru a asigura accesul unuia singur in regiunea lui critica la un moment dat, unuia singur in regiunea lui critica la un moment dat, sunt numite sunt numite semafoare binaresemafoare binare
•• Daca fiecare proces efectueaza un Daca fiecare proces efectueaza un downdown chiar inainte chiar inainte de a intra in regiunea lui criticade a intra in regiunea lui critica
•• Si apoi un Si apoi un upup chiar inainte de a iesi din ea, nu mai chiar inainte de a iesi din ea, nu mai avem blocaje (nu mai avem conditii de cursa)avem blocaje (nu mai avem conditii de cursa)
13.03.200913.03.2009 Cursul 5Cursul 5 2525
Probleme clasice ale comunicarii Probleme clasice ale comunicarii interproceseinterprocese
•• Problema FilozofilorProblema Filozofilor
–– Propusa de Dijkstra in 1965Propusa de Dijkstra in 1965
–– Problema de sincronizareProblema de sincronizare
•• Problema Cititorilor si ScriitorilorProblema Cititorilor si Scriitorilor
–– Propusa de Courtois et al. in 1971Propusa de Courtois et al. in 1971
–– Modeleaza accesul la o baza de dateModeleaza accesul la o baza de date
•• Problema Frizerului SomnorosProblema Frizerului Somnoros
–– Situatia de formare de cozi, cum ar fi serviciul de relatii cu Situatia de formare de cozi, cum ar fi serviciul de relatii cu clientii format din mai multe persoaneclientii format din mai multe persoane
–– Si care dispune de un sistem de apel in asteptare Si care dispune de un sistem de apel in asteptare computerizat pentru retinerea unui numar limitat de apeluri computerizat pentru retinerea unui numar limitat de apeluri primiteprimite
13.03.200913.03.2009 Cursul 5Cursul 5 2626
Problema filozofilorProblema filozofilor
13.03.200913.03.2009 Cursul 5Cursul 5 2727
•• 5 filozofi sunt asezati in jurul unei mese 5 filozofi sunt asezati in jurul unei mese circularecirculare
•• Fiecare filozof are o farfurie cu spagheteFiecare filozof are o farfurie cu spaghete
•• Un filozof are nevoie de 2 furculite Un filozof are nevoie de 2 furculite pentru a mancapentru a manca
•• Filozofii au perioade de hranire si gandireFilozofii au perioade de hranire si gandire
•• Perioade care alterneazaPerioade care alterneaza
•• Cand unui filozof i se face foame, va Cand unui filozof i se face foame, va incerca sa preia furculitele din stinga si incerca sa preia furculitele din stinga si din dreapta, pe rand, in orice ordinedin dreapta, pe rand, in orice ordine
•• Daca reuseste sa preia cele doua Daca reuseste sa preia cele doua furculite, acesta va manca un timpfurculite, acesta va manca un timp
•• Apoi va pune furculitele inapoi si va Apoi va pune furculitele inapoi si va continua sa gandeascacontinua sa gandeasca
Problema filozofilorProblema filozofilor•• IntrebareIntrebare: se poate scrie un program pentru fiecare : se poate scrie un program pentru fiecare
filozof care face ce trebuie, dar nu se impotmoleste filozof care face ce trebuie, dar nu se impotmoleste niciodata? Mai jos este o solutie gresita!niciodata? Mai jos este o solutie gresita!
13.03.200913.03.2009 Cursul 5Cursul 5 2828
Problema filozofilorProblema filozofilor
•• De ce este solutia gresita?De ce este solutia gresita?
•• Sa presupunem ca toti cei cinci filozofi iau simultan Sa presupunem ca toti cei cinci filozofi iau simultan furculita din dreapta lorfurculita din dreapta lor
•• In acest caz nici unul dintre ei nu va putea lua In acest caz nici unul dintre ei nu va putea lua furculita din stingafurculita din stinga
•• Si va fi o interblocareSi va fi o interblocare
•• Solutia: dupa preluarea furculitei din stinga, Solutia: dupa preluarea furculitei din stinga, programul verifica daca furculita din dreapta este programul verifica daca furculita din dreapta este disponibiladisponibila
•• Daca nu este, filozoful pune jos furculita din stingaDaca nu este, filozoful pune jos furculita din stinga
•• Asteapta un timp si apoi repeta intregul procedeuAsteapta un timp si apoi repeta intregul procedeu
•• Exista inca o problema!Exista inca o problema!13.03.200913.03.2009 Cursul 5Cursul 5 2929
Problema filozofilorProblema filozofilor
•• Problema aparuta: Toti filozofii ar putea incepe Problema aparuta: Toti filozofii ar putea incepe algoritmul simultan, preluind furculita din stingaalgoritmul simultan, preluind furculita din stinga
•• Observind ca furculita din dreapta nu este disponibilaObservind ca furculita din dreapta nu este disponibila
•• Eliberind furculita din stinga, asteptindEliberind furculita din stinga, asteptind
•• Preluind din nou simultan furculita din stinga si tot Preluind din nou simultan furculita din stinga si tot asa la infinitasa la infinit
•• Programele se executa la infinit, nu se face nici un fel Programele se executa la infinit, nu se face nici un fel de progresde progres
•• O astfel de situatie se numesteO astfel de situatie se numeste infometare infometare (starvation)(starvation)
13.03.200913.03.2009 Cursul 5Cursul 5 3030
Problema filozofilorProblema filozofilor
13.03.200913.03.2009 Cursul 5Cursul 5 3131
Problema filozofilorProblema filozofilor
13.03.200913.03.2009 Cursul 5Cursul 5 3232
Problema Cititorilor si ScriitorilorProblema Cititorilor si Scriitorilor
•• Modeleaza accesul la o baza de dateModeleaza accesul la o baza de date
•• Fie un sistem de rezervari pentru cursele aerieneFie un sistem de rezervari pentru cursele aeriene
•• Cu multe procese concurente care doresc sa citeasca Cu multe procese concurente care doresc sa citeasca si sa scrie in acest sistemsi sa scrie in acest sistem
•• Citirea bazei de date simultan de catre mai multe Citirea bazei de date simultan de catre mai multe procese este acceptabilprocese este acceptabil
•• Dar daca un proces actualizeaza (scrie) baza de dateDar daca un proces actualizeaza (scrie) baza de date
•• Nici un alt proces nu poate avea acces la baza de Nici un alt proces nu poate avea acces la baza de date, nici macar cititoriidate, nici macar cititorii
•• Solutia este prezentata mai josSolutia este prezentata mai jos
13.03.200913.03.2009 Cursul 5Cursul 5 3333
Problema Cititorilor si ScriitorilorProblema Cititorilor si Scriitorilor
13.03.200913.03.2009 Cursul 5Cursul 5 3434
Problema Cititorilor si ScriitorilorProblema Cititorilor si Scriitorilor
•• Primul cititor care acceseaza baza de date Primul cititor care acceseaza baza de date efectueaza o operatie efectueaza o operatie downdown asupra semaforului asupra semaforului dbdb
•• Urmatorii cititori doar vor incrementa un contor, Urmatorii cititori doar vor incrementa un contor, rcrc
•• Pe masura ce cititorii pleaca, acestia vor Pe masura ce cititorii pleaca, acestia vor decrementa contoruldecrementa contorul
•• Si ultimul dintre ei va efectua o operatie Si ultimul dintre ei va efectua o operatie upup asupra asupra semaforuluisemaforului
•• Permitind unui scriitor blocat, daca exista, sa intrePermitind unui scriitor blocat, daca exista, sa intre
13.03.200913.03.2009 Cursul 5Cursul 5 3535
Problema Cititorilor si ScriitorilorProblema Cititorilor si Scriitorilor
•• Apare o problema: scriitorul nu va putea accesa Apare o problema: scriitorul nu va putea accesa niciodata baza de date daca baza de date va fi niciodata baza de date daca baza de date va fi asaltata de foarte multi cititoriasaltata de foarte multi cititori
•• Solutia: la sosirea unui cititor, daca un scriitor era in Solutia: la sosirea unui cititor, daca un scriitor era in asteptare, cititorul este suspendat in spatele asteptare, cititorul este suspendat in spatele scriitorului, in loc sa fie acceptat imediatscriitorului, in loc sa fie acceptat imediat
•• In acest fel, un scriitor trebuie sa astepte ca cititorii In acest fel, un scriitor trebuie sa astepte ca cititorii care erau activi la sosirea lui sa terminecare erau activi la sosirea lui sa termine
•• Dar nu trebuie sa astepte dupa cititorii care au ajuns Dar nu trebuie sa astepte dupa cititorii care au ajuns dupa eldupa el
•• Dezavantajul: micsorarea concurentei, deci Dezavantajul: micsorarea concurentei, deci performanta mai slabaperformanta mai slaba
13.03.200913.03.2009 Cursul 5Cursul 5 3636
Problema Frizerului SomnorosProblema Frizerului Somnoros
13.03.200913.03.2009 Cursul 5Cursul 5 3737
•Frizeria are un frizer, un scaun de tuns si n scaune pentru clientii care asteapta•Daca nu sunt clienti, frizerul sta pe scaunul de tuns si adoarme•Cand soseste un client trebuie sa il trezeasca pe frizerul adormit•Daca mai sosesc si alti clienti cat timp frizerul tunde un client•Fie stau jos (daca sunt scaune goale), fie parasesc frizeria (daca toate scaunele sunt ocupate)•Problema consta in programarea frizerului si a clientilor fara a intra in conditii de cursa
Problema Frizerului SomnorosProblema Frizerului Somnoros
13.03.200913.03.2009 Cursul 5Cursul 5 3838
Cursul 6Cursul 6 1113.03.200913.03.2009
Sisteme de operareSisteme de operare
Planificarea proceselorPlanificarea proceselor
13.03.200913.03.2009 Cursul 6Cursul 6 22
AgendaAgenda
•• Comportarea proceselorComportarea proceselor
•• Algoritmi de planificareAlgoritmi de planificare
•• Algoritmul primulAlgoritmul primul-- venit primulvenit primul--servitservit
•• Algoritmul roundAlgoritmul round--robinrobin
•• Planificarea bazata pe prioritatiPlanificarea bazata pe prioritati
13.03.200913.03.2009 Cursul 6Cursul 6 33
IntroducereIntroducere
•• In cazul multiprogramarii pe un calculator, acesta In cazul multiprogramarii pe un calculator, acesta
contine mai multe procese, ce concureaza simultan contine mai multe procese, ce concureaza simultan
pentru controlul procesoruluipentru controlul procesorului
•• Aceasta situatie apare ori de cate ori doua sau mai Aceasta situatie apare ori de cate ori doua sau mai
multe procese se afla simultan in starea multe procese se afla simultan in starea gata de gata de
executieexecutie
•• Daca exista un singur procesor trebuie facuta o Daca exista un singur procesor trebuie facuta o
alegere cu privire la procesul care se va rula in alegere cu privire la procesul care se va rula in
continuarecontinuare
•• Componenta sistemului de operare care face aceasta Componenta sistemului de operare care face aceasta
alegere se numeste alegere se numeste planificatorplanificator
•• Algoritmul folosit se numeste Algoritmul folosit se numeste algoritm de planificarealgoritm de planificare
Introducere in problema planificariiIntroducere in problema planificarii
•• Sistemul de operare mentine lista de proceseSistemul de operare mentine lista de procese
•• Procesul curent ruleaza atata timp cat:Procesul curent ruleaza atata timp cat:
–– apare o intrerupere, sauapare o intrerupere, sau
–– se face un apel sistem, sause face un apel sistem, sau
–– ruleaza de prea mult timp (timpul a expirat)ruleaza de prea mult timp (timpul a expirat)
•• Sistemul de operare controleaza procesele, Sistemul de operare controleaza procesele,
intreruperile, apelurile sistemintreruperile, apelurile sistem
•• Sistemul de operare plaseaza procesele in lista de Sistemul de operare plaseaza procesele in lista de
proceseprocese
•• Planificatorul, ca parte a sistemului de operare:Planificatorul, ca parte a sistemului de operare:
–– Alege un nou proces din lista de proceseAlege un nou proces din lista de procese
–– Incarca registrii, apoi activeaza proceseleIncarca registrii, apoi activeaza procesele13.03.200913.03.2009 Cursul 6Cursul 6 44
Comportarea proceselorComportarea proceselor
•• Aproape toate procesele alterneaza intre calculele de Aproape toate procesele alterneaza intre calculele de
rafala si cererile de operatii de intrare/iesirerafala si cererile de operatii de intrare/iesire
13.03.200913.03.2009 Cursul 6Cursul 6 55
Rafala procesor lunga
Rafala procesor scurta Se asteapta operatii I/E
Timp
(a)
(b)
(a) Un proces ce foloseste predominant procesorul(b) Un proces ce foloseste predominant operatii I/E
Comportarea proceselorComportarea proceselor
•• Procesele din (a) efectueaza majoritatea Procesele din (a) efectueaza majoritatea
timpului calculetimpului calcule
•• Procesele din (b) efectueaza majoritatea Procesele din (b) efectueaza majoritatea
timpului operatii de I/Etimpului operatii de I/E
•• Primele se numesc Primele se numesc procese limitate de procese limitate de
calculecalcule
•• Ultimele se numesc Ultimele se numesc procese limitate de I/Eprocese limitate de I/E
13.03.200913.03.2009 Cursul 6Cursul 6 66
Cand planificamCand planificam
1.1. Atunci cand se creaza un nou proces:Atunci cand se creaza un nou proces:–– Cine se executa: procesul parinte sau procesul copilCine se executa: procesul parinte sau procesul copil
–– Deoarece ambele procese sunt in starea gata de executieDeoarece ambele procese sunt in starea gata de executie
–– Planificatorul alege sa se execute fie parintele, fie copilulPlanificatorul alege sa se execute fie parintele, fie copilul
2.2. Trebuie luata o decizie de planificare cand se Trebuie luata o decizie de planificare cand se
termina un proces:termina un proces:–– Acel proces nu mai poate rula (fiindca nu mai exista)Acel proces nu mai poate rula (fiindca nu mai exista)
–– Un alt proces trebuie ales dintre cele gata de executieUn alt proces trebuie ales dintre cele gata de executie
–– Daca nu exista un astfel de proces se executa un proces Daca nu exista un astfel de proces se executa un proces
inactiv al sistemuluiinactiv al sistemului
13.03.200913.03.2009 Cursul 6Cursul 6 77
Cand planificamCand planificam
3.3. Cand un proces se blocheaza la o operatie de Cand un proces se blocheaza la o operatie de
I/E, la un semafor, etc.:I/E, la un semafor, etc.:
–– Trebuie selectat un alt proces spre executieTrebuie selectat un alt proces spre executie
4.4. Cand apare o intrerupere legata de I/E:Cand apare o intrerupere legata de I/E:
–– Daca intreruperea a venit de la un dispozitiv de Daca intreruperea a venit de la un dispozitiv de
I/E care siI/E care si--a terminat sarcinaa terminat sarcina
–– Un anumit proces blocat in asteptarea operatiei ar Un anumit proces blocat in asteptarea operatiei ar
putea sa fie acum gata de executieputea sa fie acum gata de executie
13.03.200913.03.2009 Cursul 6Cursul 6 88
Algoritmi de planificareAlgoritmi de planificare
•• Algoritmi de planificare nonAlgoritmi de planificare non--preemptivi:preemptivi:–– Alege un proces pentru executieAlege un proces pentru executie
–– Apoi il lasa sa ruleze pana se blocheaza sau pana cand Apoi il lasa sa ruleze pana se blocheaza sau pana cand
procesul renunta voluntar la procesorprocesul renunta voluntar la procesor
–– Chiar daca ruleaza ore intregi, procesul nu va fi suspendat Chiar daca ruleaza ore intregi, procesul nu va fi suspendat
fortatfortat
•• Algoritmi de planificare preemptivi:Algoritmi de planificare preemptivi:–– Alege un proces si il lasa sa se execute o durata maxima Alege un proces si il lasa sa se execute o durata maxima
fixatafixata
–– La sfarsitul intervalului de timp este suspendatLa sfarsitul intervalului de timp este suspendat
–– Apoi planificatorul alege alt procesApoi planificatorul alege alt proces
13.03.200913.03.2009 Cursul 6Cursul 6 99
PrimulPrimul-- venit primulvenit primul--servitservit
•• Cel mai simplu algoritm de planificare este Cel mai simplu algoritm de planificare este primulprimul--
venit primulvenit primul--servitservit
•• Este un algoritm nonEste un algoritm non--preemptivpreemptiv
•• Procesele se executa in ordinea in care sosesc in Procesele se executa in ordinea in care sosesc in
coada de asteptarecoada de asteptare
•• Exemplu: Sarcina P1 dureaza 24 unitati, P2(3), P3(3)Exemplu: Sarcina P1 dureaza 24 unitati, P2(3), P3(3)
•• Sosirea este in aceasta ordineSosirea este in aceasta ordine
13.03.200913.03.2009 Cursul 6Cursul 6 1010
P1 P2 P3
24 27 300
Cea mai scurta lucrare la inceputCea mai scurta lucrare la inceput
•• Este un algoritm de planificare nonEste un algoritm de planificare non--preemptivpreemptiv
•• Timpii de rulare sunt cunoscuti aprioriTimpii de rulare sunt cunoscuti apriori
•• Avem 4 sarcini A,B,C,D cu timpi de rulare de 8,4,4,4 Avem 4 sarcini A,B,C,D cu timpi de rulare de 8,4,4,4
minuteminute
13.03.200913.03.2009 Cursul 6Cursul 6 1111
B C DA
8 4 4 4
Timpul de raspuns pentru A este 8 minuteTimpul de raspuns pentru B este 12 min, pt. C este 16 min., iar pt. D 20 minuteTimpul mediu de raspuns este 14 minute
B C D A
Primul-venit primul-servit Executia incepand cu cea mai scurta lucrare
Timpul de raspuns pentru B este 4 minuteTimpul de raspuns pentru C este 8 min, pt. D este 12 min., iar pt. A 20 minuteTimpul mediu de raspuns este 11 minute
44 4 8
Urmatorul timp minim ramasUrmatorul timp minim ramas
•• Este o varianta preemptiva a algoritmului cea mai Este o varianta preemptiva a algoritmului cea mai
scurta lucrare la inceputscurta lucrare la inceput
•• Planificatorul alege mereu procesul al carui timp de Planificatorul alege mereu procesul al carui timp de
executie ramas este cel mai scurtexecutie ramas este cel mai scurt
•• Trebuie cunoscut apriori timpul de rulareTrebuie cunoscut apriori timpul de rulare
•• Atunci cand soseste o noua lucrare, durata sa totala Atunci cand soseste o noua lucrare, durata sa totala
este comparata cu timpul ramas pentru procesul este comparata cu timpul ramas pentru procesul
curentcurent
•• Daca noua lucrare necesita mai putin timp decat Daca noua lucrare necesita mai putin timp decat
procesul curentprocesul curent
•• Acesta este suspendat si se porneste noua lucrareAcesta este suspendat si se porneste noua lucrare
13.03.200913.03.2009 Cursul 6Cursul 6 1212
Planificarea RoundPlanificarea Round--RobinRobin
•• Unul dintre cei mai vechi, simpli, corecti si des folositiUnul dintre cei mai vechi, simpli, corecti si des folositi
•• FiecaruiFiecarui proces i se atribuie un interval de timp numit proces i se atribuie un interval de timp numit
cuantacuanta in care i se permite sa rulezein care i se permite sa ruleze
•• Daca procesul este inca in executie la sfarsitul cuantei, Daca procesul este inca in executie la sfarsitul cuantei,
procesorul se ia fortat de la respectivul proces si se procesorul se ia fortat de la respectivul proces si se
atribuie altui procesatribuie altui proces
•• Daca procesul sDaca procesul s--a blocat sau sa blocat sau s--a terminat inainte de a terminat inainte de
terminarea cuantei de timp, comutarea procesorului se terminarea cuantei de timp, comutarea procesorului se
face in momentul blocarii procesuluiface in momentul blocarii procesului
13.03.200913.03.2009 Cursul 6Cursul 6 1313
Planificarea RoundPlanificarea Round--RobinRobin
•• Algoritmul roundAlgoritmul round--robin este usor de implementatrobin este usor de implementat
•• Planificatorul trebuie sa tina o lista de procese gata Planificatorul trebuie sa tina o lista de procese gata
de executiede executie
•• Cand procesul isi termina cuanta de timp, este plasat Cand procesul isi termina cuanta de timp, este plasat
la sfirsitul listeila sfirsitul listei
13.03.200913.03.2009 Cursul 6Cursul 6 1414
B F D G A
Procesulcurent Urmatorul
proces
Lista proceselor gata de executie
F D G A B
Procesulcurent
Lista proceselor gata de executiedupa ce B si-a folosit cuanta
Planificarea RoundPlanificarea Round--RobinRobin
13.03.200913.03.2009 Cursul 6Cursul 6 1515
•• Folosirea unei cuante prea scurte:Folosirea unei cuante prea scurte:
–– poate cauza prea multe comutari de proces sipoate cauza prea multe comutari de proces si
–– micsoreaza eficienta procesoruluimicsoreaza eficienta procesorului
•• Folosirea unei valori prea mari:Folosirea unei valori prea mari:
–– poate cauza timpi de raspuns neadecvati poate cauza timpi de raspuns neadecvati
pentru cereri interactive scurtepentru cereri interactive scurte
•• O cuanta de 20O cuanta de 20--50 msec este adeseori un 50 msec este adeseori un
compromis rezonabilcompromis rezonabil
Planificarea bazata pe prioritatiPlanificarea bazata pe prioritati
•• Pana acum toate procesele au avut aceeasi Pana acum toate procesele au avut aceeasi
importantaimportanta
•• Fiecare proces are o prioritateFiecare proces are o prioritate
•• Se permite rularea procesului gata de executie cu cea Se permite rularea procesului gata de executie cu cea
mai mare prioritatemai mare prioritate
•• Exemplu:Exemplu:
–– Un proces ce trimite posta electronica in fundalUn proces ce trimite posta electronica in fundal
–– Are o prioritate mai mica decat un proces ce afiseaza Are o prioritate mai mica decat un proces ce afiseaza
imagini video pe ecran in timp realimagini video pe ecran in timp real
13.03.200913.03.2009 Cursul 6Cursul 6 1616
PlanificareaPlanificarea bazatabazata pepe prioritatiprioritati--ExempluExemplu
13.03.200913.03.2009 CursulCursul 66 1717
PlanificareaPlanificarea bazatabazata pepe prioritatiprioritati
•• PentruPentru aa preintimpinapreintimpina cazurilecazurile in care in care proceseleprocesele cucu
prioritateprioritate maremare ruleazaruleaza lala infinitinfinit
•• PlanificatorulPlanificatorul poatepoate descrestedescreste prioritateaprioritatea procesuluiprocesului
curentcurent lala fiecarefiecare semnalsemnal dede ceasceas ((intrerupereintrerupere dede ceasceas))
•• DacaDaca aceastaaceasta actiuneactiune determinadetermina prioritateaprioritatea
respectivuluirespectivului procesproces sasa scadascada sub a sub a urmatoruluiurmatorului dindin
ierarhieierarhie
•• AcestAcest ultimultim procesproces areare posibilitateaposibilitatea sasa se executese execute
•• PrioritatilePrioritatile se pot se pot atribuiatribui proceselorproceselor in mod static in mod static sausau
dinamicdinamic
13.03.200913.03.2009 CursulCursul 66 1818
PlanificareaPlanificarea bazatabazata pepe prioritatiprioritati
13.03.200913.03.2009 CursulCursul 66 1919
•• PrioritatilePrioritatile staticestatice pot conduce la pot conduce la proceseprocese carecare
sese executaexecuta lala infinitinfinit
•• EsteEste adeseaadesea utilutil sasa sese grupezegrupeze proceseleprocesele inin
claseclase dede prioritateprioritate
•• SiSi sasa sese foloseascafoloseasca planificareaplanificarea bazatabazata pepe
prioritatiprioritati intreintre claseclase
•• SiSi algoritmulalgoritmul roundround--robin in robin in cadrulcadrul fiecareifiecarei
claseclase
Cursul 7Cursul 7 1113.03.200913.03.2009
Sisteme de operareSisteme de operare
Interblocari (Deadlocks)Interblocari (Deadlocks)
univ. dr. Constantin POPESCU
13.03.200913.03.2009 Cursul 7Cursul 7 22
AgendaAgenda
•• ResurseResurse
•• Obtinerea accesului la resurseObtinerea accesului la resurse
•• Conditii pentru interblocareConditii pentru interblocare
•• Modelarea interblocarilorModelarea interblocarilor
13.03.200913.03.2009 Cursul 7Cursul 7 33
IntroducereIntroducere
•• Resursele pot fi folosite doar de un singur proces Resursele pot fi folosite doar de un singur proces
la un moment datla un moment dat
•• Exemple de resurse ale unui calculator:Exemple de resurse ale unui calculator:
–– ImprimantaImprimanta
–– Banda magneticaBanda magnetica
–– Unitate de inscriptionare a CDUnitate de inscriptionare a CD--uluiului
–– MemoriaMemoria
–– Intrari in tabelele interne ale sistemuluiIntrari in tabelele interne ale sistemului
–– Inregistrari ale bazelor de dateInregistrari ale bazelor de date
IntroducereIntroducere
•• Sistemul de operare permite unui proces accesul Sistemul de operare permite unui proces accesul
exclusiv la anumite resurseexclusiv la anumite resurse
•• Cand doua sau mai multe procese sunt blocate Cand doua sau mai multe procese sunt blocate
spunem ca apare o spunem ca apare o interblocare (deadlock)interblocare (deadlock)
•• Interblocarile pot aparea pe resursele hard sau pe Interblocarile pot aparea pe resursele hard sau pe
resursele softresursele soft
•• Exemplu:Exemplu:
–– Avem un sistem de baze de dateAvem un sistem de baze de date
–– Procesul A blocheaza inregistrarea R1Procesul A blocheaza inregistrarea R1
–– Procesul B blocheaza inregistrarea R2Procesul B blocheaza inregistrarea R2
–– Apoi fiecare proces incearca sa blocheze inregistrarea Apoi fiecare proces incearca sa blocheze inregistrarea
celuilaltceluilalt
–– Apare astfel o inteblocareApare astfel o inteblocare13.03.200913.03.2009 Cursul 7Cursul 7 44
ResurseResurse
•• O resursa poate fi folosita doar de un singur O resursa poate fi folosita doar de un singur
proces in orice moment de timpproces in orice moment de timp
•• Resursele sunt de doua tipuri:Resursele sunt de doua tipuri:
–– PreemptibilePreemptibile
–– NonNon--preemptibilepreemptibile
•• O O resursa preemptibila resursa preemptibila este o resursa care poate este o resursa care poate
fi luata de la procesul care o detine fara efecte fi luata de la procesul care o detine fara efecte
nedoritenedorite
•• Memoria este un exemplu de resursa preemptibilaMemoria este un exemplu de resursa preemptibila
13.03.200913.03.2009 Cursul 7Cursul 7 55
Resurse preemptibileResurse preemptibile
•• Exemplu:Exemplu:
–– Consideram un sistem cu 32 MB de memorie, o Consideram un sistem cu 32 MB de memorie, o
imprimanta si doua procese de 32 MBimprimanta si doua procese de 32 MB
–– Fiecare proces doreste sa tipareasca cevaFiecare proces doreste sa tipareasca ceva
–– Procesul A cere si primeste acces la imprimantaProcesul A cere si primeste acces la imprimanta
–– Inainte de a termina prelucrarea, i se termina Inainte de a termina prelucrarea, i se termina
cuanta de timp si este scos din memorie si pus pe cuanta de timp si este scos din memorie si pus pe
disc (swapped out)disc (swapped out)
–– Procesul B ruleaza acum si incearca fara succes sa Procesul B ruleaza acum si incearca fara succes sa
acceseze imprimantaacceseze imprimanta
–– Avem o situatie de interblocare potentialaAvem o situatie de interblocare potentiala
13.03.200913.03.2009 Cursul 7Cursul 7 66
Resurse preemptibileResurse preemptibile
–– A aparut o interblocare potentiala deoarece A are A aparut o interblocare potentiala deoarece A are
imprimanta, iar B are memoriaimprimanta, iar B are memoria
–– Si nici unul nu poate continua fara resursa detinuta Si nici unul nu poate continua fara resursa detinuta
de celalaltde celalalt
–– Solutia: memoria poate fi preemptata de la B prin Solutia: memoria poate fi preemptata de la B prin
punerea acestuia pe disc si prin aducerea lui A in punerea acestuia pe disc si prin aducerea lui A in
locul slocul s!!u (swapped in)u (swapped in)
–– Acum procesul A poate rula, tipari si apoi elibera Acum procesul A poate rula, tipari si apoi elibera
imprimantaimprimanta
–– Nu apare astfel nici o interblocareNu apare astfel nici o interblocare
13.03.200913.03.2009 Cursul 7Cursul 7 77
Resurse nonResurse non--preemptibilepreemptibile
•• Este o resursa ce nu poate fi luata de la detinatorul ei Este o resursa ce nu poate fi luata de la detinatorul ei
fara ca executia acestuia sa esuezefara ca executia acestuia sa esueze
•• Exemplu: unitatile de inscriptionare CDExemplu: unitatile de inscriptionare CD--uriuri
•• In general, interblocarile implica resurse nonIn general, interblocarile implica resurse non--
preemptibilepreemptibile
•• Interblocarile care implica resurse preemptibile pot fi Interblocarile care implica resurse preemptibile pot fi
rezolvate de obicei prin realocarea resurselor de la un rezolvate de obicei prin realocarea resurselor de la un
proces la altulproces la altul
•• Secventa de evenimente pentru folosirea unei resurse:Secventa de evenimente pentru folosirea unei resurse:
–– Cerere resursaCerere resursa
–– Folosire resursaFolosire resursa
–– Eliberare resursaEliberare resursa
13.03.200913.03.2009 Cursul 7Cursul 7 88
Resurse nonResurse non--preemptibilepreemptibile
•• Daca resursa nu este disponibila cand este cerutaDaca resursa nu este disponibila cand este ceruta
•• Procesul care doreste acces la resursa este fortat sa astepteProcesul care doreste acces la resursa este fortat sa astepte
•• Un proces pentru care cererea de acces la resursa a esuat Un proces pentru care cererea de acces la resursa a esuat
va sta intrva sta intr--o bucla de cerere a resurseio bucla de cerere a resursei
•• Acest proces nu este blocat, practic este ca si blocatAcest proces nu este blocat, practic este ca si blocat
•• Nu poate face lucruri utileNu poate face lucruri utile
•• Resursele sunt cunoscute sistemului de operare sub forma Resursele sunt cunoscute sistemului de operare sub forma
unor fisiere specialeunor fisiere speciale
•• Si doar un proces le deschide la un moment datSi doar un proces le deschide la un moment dat
•• Acestea sunt deschise prin apelul de sistem Acestea sunt deschise prin apelul de sistem openopen
•• Daca fisierul este deja deschis, apelantul este blocat pana Daca fisierul este deja deschis, apelantul este blocat pana
cand detinatorul actual il va deblocacand detinatorul actual il va debloca
13.03.200913.03.2009 Cursul 7Cursul 7 99
Introducere in interblocariIntroducere in interblocari
•• Definitia formala:Definitia formala:
O multime de procese se afla in O multime de procese se afla in interblocareinterblocare daca fiecare daca fiecare
proces din multime asteapta un eveniment care poate proces din multime asteapta un eveniment care poate
fi furnizat numai de alt proces din multimefi furnizat numai de alt proces din multime
•• Evenimentul pe care il asteapta fiecare proces este Evenimentul pe care il asteapta fiecare proces este
eliberarea unor resurseeliberarea unor resurse
•• Care in prezent sunt detinute de un alt membru al Care in prezent sunt detinute de un alt membru al
multimiimultimii
•• Nici un proces nu poate rulaNici un proces nu poate rula
•• Nici un proces nu poate elibera nici o resursaNici un proces nu poate elibera nici o resursa
•• Nici un proces nu poate fi deblocatNici un proces nu poate fi deblocat13.03.200913.03.2009 Cursul 7Cursul 7 1010
Conditii pentru interblocareConditii pentru interblocare
•• Trebuie sa fie indeplinite patru conditii pentru a fi Trebuie sa fie indeplinite patru conditii pentru a fi
posibila interblocarea:posibila interblocarea:
1.1. Conditia de excludere mutuala. Fiecare resursa este fie Conditia de excludere mutuala. Fiecare resursa este fie
alocata unui singur proces, fie disponibilaalocata unui singur proces, fie disponibila
2.2. Conditia de detinere si asteptare. Procesele care detin Conditia de detinere si asteptare. Procesele care detin
resurse pot cere noi resurseresurse pot cere noi resurse
3.3. Condita de lipsa preemptiei. Resursele la care sCondita de lipsa preemptiei. Resursele la care s--a obtinut a obtinut
deja accesul nu pot fi luate cu forta de la un proces. Ele deja accesul nu pot fi luate cu forta de la un proces. Ele
trebuie sa fie eliberate in mod explicit de la procesul care trebuie sa fie eliberate in mod explicit de la procesul care
le detinele detine
4.4. Conditia de asteptare circulara. Trebuie sa existe un lant Conditia de asteptare circulara. Trebuie sa existe un lant
circular de doua sau mai multe resurse, fiecare din ele circular de doua sau mai multe resurse, fiecare din ele
asteptand la o resursa detinuta de urmatorul membru al asteptand la o resursa detinuta de urmatorul membru al
lantuluilantului13.03.200913.03.2009 Cursul 7Cursul 7 1111
Conditii pentru interblocareConditii pentru interblocare
13.03.200913.03.2009 Cursul 7Cursul 7 1212
•• Important!Important!
–– Toate aceste patru conditii trebuie sa fie Toate aceste patru conditii trebuie sa fie
indeplinite indeplinite
–– Pentru a fi posibila aparitia interblocarilorPentru a fi posibila aparitia interblocarilor
–– Daca una dintre ele nu este indeplinita nu este Daca una dintre ele nu este indeplinita nu este
posibila nici o interblocareposibila nici o interblocare
Modelarea interblocarilorModelarea interblocarilor
•• Cu ajutorul grafurilor orientateCu ajutorul grafurilor orientate
•• ProceseleProcesele--reprezentate prin cercurireprezentate prin cercuri
•• ResurseleResursele--reprezentate prin patratereprezentate prin patrate
•• Resursa R este in prezent alocata procesului AResursa R este in prezent alocata procesului A
•• Procesul B asteapta eliberarea resursei SProcesul B asteapta eliberarea resursei S
•• InterblocareInterblocare--procesele C si D. procesele C si D. 13.03.200913.03.2009 Cursul 7Cursul 7 1313
Modelarea interblocarilorModelarea interblocarilor
13.03.200913.03.2009 Cursul 7Cursul 7 1414
•• Procesul C asteapta dupa resursa T, care este in Procesul C asteapta dupa resursa T, care este in
prezent detinuta de procesul Dprezent detinuta de procesul D
•• Procesul D nu va elibera resursa T deoarece asteapta Procesul D nu va elibera resursa T deoarece asteapta
dupa resursa U, detinuta de Cdupa resursa U, detinuta de C
•• Ambele procese asteapta la nesfirsitAmbele procese asteapta la nesfirsit
•• Un ciclu in graf arata ca exista o interblocare, ce Un ciclu in graf arata ca exista o interblocare, ce
implica procesele si resursele din cicluimplica procesele si resursele din ciclu
•• In figura precedenta ciclul este CIn figura precedenta ciclul este C--TT--DD--UU--CC
Modelarea interblocarilorModelarea interblocarilor•• Ex.: modul in care grafurile de resurse pot fi folositeEx.: modul in care grafurile de resurse pot fi folosite
•• Avem trei procese A, B, C si trei resurse R, S, TAvem trei procese A, B, C si trei resurse R, S, T
13.03.200913.03.2009 Cursul 7Cursul 7 1515
Modelarea interblocarilorModelarea interblocarilor
13.03.200913.03.2009 Cursul 7Cursul 7 1616
•• In cazurile (a), (b) si (c) sistemul de operare In cazurile (a), (b) si (c) sistemul de operare
este liber sa execute oricand orice proces care este liber sa execute oricand orice proces care
nu este blocatnu este blocat
•• Mai intai ruleaza A pana isi termina treabaMai intai ruleaza A pana isi termina treaba
•• Apoi ruleaza B pana la terminarea luiApoi ruleaza B pana la terminarea lui
•• In final ruleaza procesul CIn final ruleaza procesul C
•• Aceasta ordonare nu duce la interblocareAceasta ordonare nu duce la interblocare
•• Executia secventiala a proceselor nu e optimaExecutia secventiala a proceselor nu e optima
Modelarea interblocarilorModelarea interblocarilor
•• Avem cererile de resurse din fig. (d)Avem cererile de resurse din fig. (d)
•• Grafurile rezultate sunt cele din fig. (e)Grafurile rezultate sunt cele din fig. (e)--(j)(j)
•• Dupa cererea nr. 4, A se blocheaza in Dupa cererea nr. 4, A se blocheaza in
asteptarea lui Sasteptarea lui S
•• In urmatorii 2 pasi B si C se blocheazaIn urmatorii 2 pasi B si C se blocheaza
•• Se ajunge la interblocare: fig. (j)Se ajunge la interblocare: fig. (j)
13.03.200913.03.2009 Cursul 7Cursul 7 1717
Modelarea interblocarilorModelarea interblocarilor
13.03.200913.03.2009 Cursul 7Cursul 7 1818
(o) (p) (q)
Procesul B este suspendat
Modelarea interblocarilorModelarea interblocarilor
•• Dupa pasul q, procesului B ii poate fi acordata Dupa pasul q, procesului B ii poate fi acordata
resursa Sresursa S
•• Deoarece A a terminat si C are tot ceDeoarece A a terminat si C are tot ce--i trebuiei trebuie
•• Chiar daca B sChiar daca B s--ar bloca pana la urma cerand ar bloca pana la urma cerand
acces la T, nu poate aparea interblocareacces la T, nu poate aparea interblocare
•• B va astepta doar pana cand C va terminaB va astepta doar pana cand C va termina
13.03.200913.03.2009 Cursul 7Cursul 7 1919
Strategii impotriva interblocarilorStrategii impotriva interblocarilor
•• Ignorarea in totalitate a problemeiIgnorarea in totalitate a problemei
•• Detectarea si restaurareaDetectarea si restaurarea
•• Evitarea dinamica printrEvitarea dinamica printr--o alocare cu atentie o alocare cu atentie
a resurselora resurselor
•• PrevenireaPrevenirea
–– Prin negarea uneia dintre cele patru conditii Prin negarea uneia dintre cele patru conditii
necesare pentru aparitia interblocariinecesare pentru aparitia interblocarii
13.03.200913.03.2009 Cursul 7Cursul 7 2020
Detectarea interblocarii si Detectarea interblocarii si
restaurarearestaurarea
Cursul 7Cursul 7 212113.03.200913.03.2009
Detectarea interblocarii pentru o Detectarea interblocarii pentru o
singura resursa din fiecare tipsingura resursa din fiecare tip
•• Exista o singura resursa din fiecare tipExista o singura resursa din fiecare tip
•• Starea sistemului d.p.d.v. al resurselor cerute, Starea sistemului d.p.d.v. al resurselor cerute,
respectiv detinute:respectiv detinute:
–– Procesul A detine resursa R si cere resursa SProcesul A detine resursa R si cere resursa S
–– Procesul B nu detine nici o resursa, dar cere resursa TProcesul B nu detine nici o resursa, dar cere resursa T
–– Procesul C nu detine nici o resursa, dar cere resursa SProcesul C nu detine nici o resursa, dar cere resursa S
–– Procesul D detine resursa U si cere resursele S si TProcesul D detine resursa U si cere resursele S si T
–– Procesul E detine resursa T si cere resursa VProcesul E detine resursa T si cere resursa V
–– Procesul F detine resursa W si cere resursa SProcesul F detine resursa W si cere resursa S
–– Procesul G detine resursa V si cere resursa UProcesul G detine resursa V si cere resursa U
13.03.200913.03.2009 Cursul 7Cursul 7 2222
Detectarea interblocarii pentru o Detectarea interblocarii pentru o
singura resursa din fiecare tipsingura resursa din fiecare tip
13.03.200913.03.2009 Cursul 7Cursul 7 2323
Detectarea interblocarii pentru o Detectarea interblocarii pentru o
singura resursa din fiecare tipsingura resursa din fiecare tip
•• Graful de resurse in fig. (a)Graful de resurse in fig. (a)
•• Graful ce contine un ciclu in fig. (b)Graful ce contine un ciclu in fig. (b)
•• Procesele D, E si G se afla in interblocareProcesele D, E si G se afla in interblocare
•• Procesele A, C si F nu sunt in interblocareProcesele A, C si F nu sunt in interblocare
•• Deoarece S poate fi alocata oricaruia dintre Deoarece S poate fi alocata oricaruia dintre
ele, care apoi termina si o elibereazaele, care apoi termina si o elibereaza
•• Apoi celelalte doua o pot lua pe rand si se Apoi celelalte doua o pot lua pe rand si se
pot terminapot termina
13.03.200913.03.2009 Cursul 7Cursul 7 2424
Detectarea interblocarii pentru o Detectarea interblocarii pentru o
singura resursa din fiecare tipsingura resursa din fiecare tip
•• Exista algoritmi care sa detecteze ciclurile din Exista algoritmi care sa detecteze ciclurile din
grafurile orientategrafurile orientate
•• Este folosita o singura structura de date Este folosita o singura structura de date –– o lista o lista
de noduri de noduri LL
•• Arcele vor fi marcate pentru a indica faptul ca ele Arcele vor fi marcate pentru a indica faptul ca ele
au fost deja parcurseau fost deja parcurse
•• Cu scopul de a preveni inspectarea repetata a lorCu scopul de a preveni inspectarea repetata a lor
13.03.200913.03.2009 Cursul 7Cursul 7 2525
Detectarea interblocarii pentru o Detectarea interblocarii pentru o
singura resursa din fiecare tipsingura resursa din fiecare tip
•• Algoritmul:Algoritmul:
1.1. Pentru fiecare nod Pentru fiecare nod NN din graf, executa urmatorii pasi din graf, executa urmatorii pasi
avanduavandu--l pe l pe NN ca nod de startca nod de start
2.2. Initializeaza Initializeaza L L la lista vida si seteaza toate arcele ca fiind la lista vida si seteaza toate arcele ca fiind
nemarcatenemarcate
3.3. Adauga nodul curent la sfarsitul lui Adauga nodul curent la sfarsitul lui LL si verifica daca nodul si verifica daca nodul
apare in apare in L L de doua ori. Daca apare, graful are un ciclu si de doua ori. Daca apare, graful are un ciclu si
algoritmul se terminaalgoritmul se termina
4.4. Pornind de la nodul curent, verifica daca mai exista arce Pornind de la nodul curent, verifica daca mai exista arce
nemarcate care pornesc din el. Daca da, executa pasul 5; nemarcate care pornesc din el. Daca da, executa pasul 5;
daca nu, executa pasul 6daca nu, executa pasul 6
13.03.200913.03.2009 Cursul 7Cursul 7 2626
Detectarea interblocarii pentru o Detectarea interblocarii pentru o
singura resursa din fiecare tipsingura resursa din fiecare tip
5. 5. Alege la intamplare un arc nemarcat care pleaca Alege la intamplare un arc nemarcat care pleaca
din acel nod si marcheazadin acel nod si marcheaza--l. Apoi, mergand pe l. Apoi, mergand pe
acel arc, ia urmatorul nod si reia de la pasul 3acel arc, ia urmatorul nod si reia de la pasul 3
6. Am ajuns la o fundatura. Scoate nodul din lista si 6. Am ajuns la o fundatura. Scoate nodul din lista si
reia de la pasul 3 considerand nodul anterior ca reia de la pasul 3 considerand nodul anterior ca
fiind nodul curent Daca acest nod este nodul fiind nodul curent Daca acest nod este nodul
initial, graful nu contine cicluri si algoritmul se initial, graful nu contine cicluri si algoritmul se
termina.termina.
13.03.200913.03.2009 Cursul 7Cursul 7 2727
Detectarea interblocarii pentru mai Detectarea interblocarii pentru mai
multe resurse din fiecare tipmulte resurse din fiecare tip
•• Fie Fie nn procese notate procese notate P1, P2, P1, P2, ……, Pn, Pn
•• Fie Fie mm numarul de clase de resursenumarul de clase de resurse
•• E1E1 -- resurse de clasa 1resurse de clasa 1
•• E2E2 –– resurse de clasa 2,resurse de clasa 2,……,,En En -- resurse de clasa resurse de clasa nn
•• EE este vectorul de resurse existenteeste vectorul de resurse existente
•• EE furnizeaza numarul total de instante ale fiecarei furnizeaza numarul total de instante ale fiecarei
resurse existenteresurse existente
•• De ex., daca resursele de clasa 1 sunt unitatile de De ex., daca resursele de clasa 1 sunt unitatile de
banda magnetica, atunci banda magnetica, atunci E1=2E1=2 inseamna ca sistemul inseamna ca sistemul
are 2 unitati de banda magneticaare 2 unitati de banda magnetica
13.03.200913.03.2009 Cursul 7Cursul 7 2828
Detectarea interblocarii pentru mai Detectarea interblocarii pentru mai
multe resurse din fiecare tipmulte resurse din fiecare tip
•• In orice moment unele resurse sunt alocate si nu sunt In orice moment unele resurse sunt alocate si nu sunt
disponibiledisponibile
•• Fie Fie AA vectorul de resurse disponibilevectorul de resurse disponibile
•• AiAi fiind numarul instantelor resursei fiind numarul instantelor resursei ii care sunt care sunt
disponibile in prezent (nu sunt alocate nici unui proces)disponibile in prezent (nu sunt alocate nici unui proces)
•• Daca ambele unitati de banda magnetica sunt alocate, Daca ambele unitati de banda magnetica sunt alocate,
A1 A1 va fi 0va fi 0
•• Fie Fie CC matricea de alocare curentamatricea de alocare curenta
•• Randul Randul ii din matricea din matricea CC arata cate instante ale fiecarei arata cate instante ale fiecarei
clase de resurse detine procesul clase de resurse detine procesul PiPi
•• CijCij –– numarul de instante ale resursei numarul de instante ale resursei jj care sunt care sunt
detinute de procesul detinute de procesul ii13.03.200913.03.2009 Cursul 7Cursul 7 2929
Detectarea interblocarii pentru mai Detectarea interblocarii pentru mai
multe resurse din fiecare tipmulte resurse din fiecare tip
•• Fie Fie RR matricea de cererimatricea de cereri
•• RijRij reprezinta numarul de instante ale resursei reprezinta numarul de instante ale resursei jj pe care pe care
procesul procesul PiPi le cerele cere
13.03.200913.03.2009 Cursul 7Cursul 7 3030
Detectarea interblocarii pentru mai Detectarea interblocarii pentru mai
multe resurse din fiecare tipmulte resurse din fiecare tip
•• Fiecare resursa este fie alocata, fie disponibila:Fiecare resursa este fie alocata, fie disponibila:
•• Adica, daca adunam toate instantele resursei Adica, daca adunam toate instantele resursei j j care au fost alocate cu toate instantele care au fost alocate cu toate instantele
disponibile ale eidisponibile ale ei
•• Va rezulta numarul total de instante existente Va rezulta numarul total de instante existente
pentru acea clasa de resursepentru acea clasa de resurse
13.03.200913.03.2009 Cursul 7Cursul 7 3131
! "#$
$%$&n
i
jjij mjEAC1
,...,1
Detectarea interblocarii pentru mai Detectarea interblocarii pentru mai
multe resurse din fiecare tipmulte resurse din fiecare tip
•• Initial fiecare proces este nemarcatInitial fiecare proces este nemarcat
•• Pe parcurs ele vor fi marcate indicand faptul ca Pe parcurs ele vor fi marcate indicand faptul ca
ele isi pot termina treaba si deci nu se afla in ele isi pot termina treaba si deci nu se afla in
interblocareinterblocare
•• Orice proces nemarcat dupa terminarea Orice proces nemarcat dupa terminarea
algoritmului se afla in interblocarealgoritmului se afla in interblocare
13.03.200913.03.2009 Cursul 7Cursul 7 3232
Detectarea interblocarii pentru mai Detectarea interblocarii pentru mai
multe resurse din fiecare tipmulte resurse din fiecare tip
•• Algoritmul de detectare a interblocarii:Algoritmul de detectare a interblocarii:
1.1. Cauta un proces nemarcat Cauta un proces nemarcat PiPi, pentru care , pentru care
randul randul ii din din RR este mai mic sau egal cu este mai mic sau egal cu AA
2.2. Daca este gasit un asemenea procesDaca este gasit un asemenea proces
!! aduna randul aduna randul ii din din CC la la AA, ,
!! marcheaza procesul si reia de la pasul 1marcheaza procesul si reia de la pasul 1
3.3. Daca nu exista un asemenea proces, Daca nu exista un asemenea proces,
algoritmul se terminaalgoritmul se termina
13.03.200913.03.2009 Cursul 7Cursul 7 3333
Detectarea interblocarii pentru mai Detectarea interblocarii pentru mai
multe resurse din fiecare tipmulte resurse din fiecare tip
13.03.200913.03.2009 Cursul 7Cursul 7 3434
•• Avem 3 procese si 4 clase de resurseAvem 3 procese si 4 clase de resurse
•• Procesul 1 are un scanner, procesul 2 are 2 unitati de Procesul 1 are un scanner, procesul 2 are 2 unitati de
banda magnetica si o unitate CDbanda magnetica si o unitate CD--ROM, procesul 3 are ROM, procesul 3 are
un trasator (plotter) si 2 scannereun trasator (plotter) si 2 scannere
Detectarea interblocarii pentru mai Detectarea interblocarii pentru mai
multe resurse din fiecare tipmulte resurse din fiecare tip
•• Fiecare proces are nevoie de resurse suplimentareFiecare proces are nevoie de resurse suplimentare--
vezi matricea Rvezi matricea R
•• Doar cererea celui deDoar cererea celui de--al treilea proces poate fi al treilea proces poate fi
satisfacutasatisfacuta
•• Asadar, procesul 3 ruleaza si apoi elibereaza resursele Asadar, procesul 3 ruleaza si apoi elibereaza resursele
sale, rezultand: A=(2,2,2,0)sale, rezultand: A=(2,2,2,0)
•• Procesul 2 poate rula si apoi elibereaza resursele sale, Procesul 2 poate rula si apoi elibereaza resursele sale,
rezultand: A=(4,2,2,1)rezultand: A=(4,2,2,1)
•• Acum poate rula si procesul 1Acum poate rula si procesul 1
•• Astfel, sistemul nu contine nici o interblocareAstfel, sistemul nu contine nici o interblocare
13.03.200913.03.2009 Cursul 7Cursul 7 3535
Restaurarea in urma interblocariiRestaurarea in urma interblocarii
•• Algoritmul a detectat o interblocareAlgoritmul a detectat o interblocare
•• Este necesara restaurarea sistemului astfel incat sa Este necesara restaurarea sistemului astfel incat sa
functioneze din noufunctioneze din nou
•• Restaurarea prin preemtiuneRestaurarea prin preemtiune
–– Ia o resursa de la detinator si o aloca altui procesIa o resursa de la detinator si o aloca altui proces
–– Depinde in mare masura de natura resurseiDepinde in mare masura de natura resursei
•• Restaurarea prin revenire (Rollback)Restaurarea prin revenire (Rollback)
–– Verifica fiecare proces periodic (se creaza Verifica fiecare proces periodic (se creaza puncte de reluarepuncte de reluare))
–– Se utilizeaza datele salvate ale procesului, astfel incat sa poaSe utilizeaza datele salvate ale procesului, astfel incat sa poata ta
fi repornit mai tarziu din acelasi punctfi repornit mai tarziu din acelasi punct
13.03.200913.03.2009 Cursul 7Cursul 7 3636
Restaurarea prin distrugerea proceselorRestaurarea prin distrugerea proceselor
•• Metoda cea mai primitiva si cea mai simplaMetoda cea mai primitiva si cea mai simpla
•• O posibilitate este distrugerea unui proces dintrO posibilitate este distrugerea unui proces dintr--un cicluun ciclu
•• Celelalte procese isi vor putea continua executiaCelelalte procese isi vor putea continua executia
•• Distrugerea se poate repeta pana cand ciclul este Distrugerea se poate repeta pana cand ciclul este
terminatterminat
•• Cand este posibil, este mai bine sa fie distruse procese Cand este posibil, este mai bine sa fie distruse procese
care pot fi executate din nou de la inceput fara efecte care pot fi executate din nou de la inceput fara efecte
nedoritenedorite
Nici una dintre metode nu este atractiva in mod Nici una dintre metode nu este atractiva in mod
special !special !13.03.200913.03.2009 Cursul 7Cursul 7 3737
Evitarea interblocarilorEvitarea interblocarilor
•• Exista un algoritm care sa poata evita Exista un algoritm care sa poata evita
interblocarea facand tot timpul alegerea potrivita?interblocarea facand tot timpul alegerea potrivita?
•• Raspunsul este: DARaspunsul este: DA
•• Dar numai daca anumite informatii sunt Dar numai daca anumite informatii sunt
disponibile in avansdisponibile in avans
–– Fiecare proces trebuie sa Fiecare proces trebuie sa ““declaredeclare””, in avans, de ce , in avans, de ce
resurse are nevoieresurse are nevoie
–– Si care este numarul maxim de resurse de care are Si care este numarul maxim de resurse de care are
nevoienevoie
13.03.200913.03.2009 Cursul 7Cursul 7 3838
Stari sigure si nesigureStari sigure si nesigure
•• Starea unui sistem inseamna:Starea unui sistem inseamna:
–– Cate resurse sunt alocate fiecarui procesCate resurse sunt alocate fiecarui proces
–– Care este numarul maxim de resurse pe care Care este numarul maxim de resurse pe care
un proces le poate cereun proces le poate cere
–– Cate resurse sunt disponibileCate resurse sunt disponibile
•• O stare este O stare este sigurasigura daca:daca:
–– Sistemul nu este in interblocare in acel momentSistemul nu este in interblocare in acel moment
–– Exista o ordine de planificare in care fiecare Exista o ordine de planificare in care fiecare
proces poate rula pana la terminareproces poate rula pana la terminare
13.03.200913.03.2009 Cursul 7Cursul 7 3939
Stari sigure si nesigureStari sigure si nesigure
•• Ex.: Se foloseEx.: Se folose""te o singurte o singur! ! resursresurs! ! (cu un numar total (cu un numar total
de 10 instante ale resursei)de 10 instante ale resursei)
•• In fig. (a) exista o stare in care A are 3 instante ale In fig. (a) exista o stare in care A are 3 instante ale
resursei, dar poate avea nevoie in cele din urma de 9resursei, dar poate avea nevoie in cele din urma de 9
•• B detine 2 instante si ar putea avea nevoie de 4B detine 2 instante si ar putea avea nevoie de 4
•• C are 2 instante si ar putea avea nevoie de 7C are 2 instante si ar putea avea nevoie de 7
•• Exista 10 instante ale resursei, 7 sunt deja ocupateExista 10 instante ale resursei, 7 sunt deja ocupate13.03.200913.03.2009 Cursul 7Cursul 7 4040
Stari sigure si nesigureStari sigure si nesigure
•• Starea din fig. (a) este siguraStarea din fig. (a) este sigura
•• Exista o secventa de alocari care permit tuturor Exista o secventa de alocari care permit tuturor
proceselor saproceselor sa--si termine corect executiasi termine corect executia
•• Este planificat sa ruleze mai intii procesul BEste planificat sa ruleze mai intii procesul B
•• Cand se termina de executat B (fig. c) se incepe Cand se termina de executat B (fig. c) se incepe
executia procesului C (fig. d)executia procesului C (fig. d)
•• In final se executa procesul A (obtine cele 6 instante In final se executa procesul A (obtine cele 6 instante
ale resursei)ale resursei)
•• Se termina executia procesului ASe termina executia procesului A
13.03.200913.03.2009 Cursul 7Cursul 7 4141
Stari sigure si nesigureStari sigure si nesigure
•• Procesul A cere si primeste inca o resursaProcesul A cere si primeste inca o resursa
•• Se ruleaza B pana se termina si se ajunge la fig. (c)Se ruleaza B pana se termina si se ajunge la fig. (c)
•• SS--a ajuns dintra ajuns dintr--o stare sigura (fig. a) intro stare sigura (fig. a) intr--una una
nesigura (fig. b)nesigura (fig. b)
•• Cererea lui A nu ar fi trebuit sa fie aprobataCererea lui A nu ar fi trebuit sa fie aprobata
13.03.200913.03.2009 Cursul 7Cursul 7 4242
StariStari siguresigure sisi nesigurenesigure
•• Stare sigura Stare sigura –– sistemul poate garanta ca sistemul poate garanta ca
toate procesele se vor terminatoate procesele se vor termina
–– Interblocarile sunt evitateInterblocarile sunt evitate
•• Stare nesigura Stare nesigura –– nu se poate da o astfel de nu se poate da o astfel de
garantiegarantie
–– Nu inseamna neaparat ca se va ajunge la o Nu inseamna neaparat ca se va ajunge la o
interblocareinterblocare
13.03.200913.03.2009 CursulCursul 77 4343
Cursul 8Cursul 8 1113.03.200913.03.2009
Sisteme de operareSisteme de operareGestiunea memorieiGestiunea memoriei
13.03.200913.03.2009 Cursul 8Cursul 8 22
AgendaAgenda
•• Memoria ierarhicaMemoria ierarhica
•• Gestiunea elementara a memorieiGestiunea elementara a memoriei
•• InterschimbareaInterschimbarea
•• Algoritmi pentru alocarea de memorieAlgoritmi pentru alocarea de memorie
•• Memoria virtualaMemoria virtuala
13.03.200913.03.2009 Cursul 8Cursul 8 33
IntroducereIntroducere
•• Ideal, orice programator ar dori ca memoria sa fie:Ideal, orice programator ar dori ca memoria sa fie:
–– Infinit de mareInfinit de mare
–– Infinit de rapidaInfinit de rapida
–– Nevolatila (saNevolatila (sa--si pastreze continutul cand nu este alimentata cu si pastreze continutul cand nu este alimentata cu curent electric)curent electric)
•• Memorie ierarhica:Memorie ierarhica:
–– Cu putina memorie cache foarte rapida, scumpa si volatilaCu putina memorie cache foarte rapida, scumpa si volatila
–– Sute (mii) de megaocteti de memorie principala (RAM)Sute (mii) de megaocteti de memorie principala (RAM)
–– Sute de gigaocteti de spatiu de stocare pe disc (incet, ieftin sSute de gigaocteti de spatiu de stocare pe disc (incet, ieftin si i nevolatil)nevolatil)
•• Manager de memorieManager de memorie--partea sistemului de operare care partea sistemului de operare care gestioneaza aceasta memorie ierarhicagestioneaza aceasta memorie ierarhica
Memoria ierarhicaMemoria ierarhica
13.03.200913.03.2009 Cursul 8Cursul 8 44
Registrii
Memoria Cache
Memoria principala (RAM)
Magnetic (Hard) Disk
Magnetic Tape
1 nsec
2 nsec
10 nsec
10 msec
100 sec
Timpul de acces Capacitate
< 1 KB
1 MB
64MB-4GB
50GB-1000GB
>100GB
Alte tipuri de memorie: ROM, EEPROM, Flash RAM
Gestiunea elementara a Gestiunea elementara a memorieimemoriei
Cursul 8Cursul 8 5513.03.200913.03.2009
Monoprogramare fara interschimbare Monoprogramare fara interschimbare (swapping) sau paginare(swapping) sau paginare
•• Se ruleaza un singur program la un moment datSe ruleaza un singur program la un moment dat
•• Se imparte memoria intre acest program si Se imparte memoria intre acest program si sistemul de operaresistemul de operare
13.03.200913.03.2009 Cursul 8Cursul 8 66
Multiprogramare cu partitii fixeMultiprogramare cu partitii fixe
•• Monoprogramarea nu mai este folosita aproape Monoprogramarea nu mai este folosita aproape nicaieri (exceptienicaieri (exceptie--sisteme incorporate simple)sisteme incorporate simple)
•• Sistemele moderne permit rularea mai multor procese Sistemele moderne permit rularea mai multor procese in acelasi timpin acelasi timp
•• Cea mai simpla modalitate de a face multiprogramare Cea mai simpla modalitate de a face multiprogramare este de a diviza memoria in este de a diviza memoria in nn partitii (posibil inegale)partitii (posibil inegale)
•• Cand un proces trebuie executat va fi pus in coada de Cand un proces trebuie executat va fi pus in coada de intrare a celei mai mici partitiiintrare a celei mai mici partitii
•• Care este suficient de mare pentru aCare este suficient de mare pentru a--l cuprindel cuprinde
•• Deoarece partitiile sunt fixe, orice spatiu care nu este Deoarece partitiile sunt fixe, orice spatiu care nu este folosit de un proces va fi pierdutfolosit de un proces va fi pierdut
13.03.200913.03.2009 Cursul 8Cursul 8 77
Multiprogramare cu partitii fixeMultiprogramare cu partitii fixe
13.03.200913.03.2009 Cursul 8Cursul 8 88
(a) Cozi de intrare separate pentru fiecare partitie(b) O singura coada de intrare
Probleme cu partitiile fixeProbleme cu partitiile fixe
•• Cozi separate:Cozi separate: memoria nu este utilizata eficient memoria nu este utilizata eficient daca sunt multe procese intrdaca sunt multe procese intr--o clasa si putine in o clasa si putine in alta clasa (ex.: Partitiile 1 si 3)alta clasa (ex.: Partitiile 1 si 3)
•• O singura coada: O singura coada: procesele mici pot utiliza o procesele mici pot utiliza o partitie prea marepartitie prea mare--memoria nu este utilizata memoria nu este utilizata eficienteficient
•• Este de preferat sa se ofere proceselor mici cea Este de preferat sa se ofere proceselor mici cea mai buna servire, nu cea mai proastamai buna servire, nu cea mai proasta
•• Partitii fixe: folosite de OS/360 de la IBMPartitii fixe: folosite de OS/360 de la IBM
13.03.200913.03.2009 Cursul 8Cursul 8 99
InterschimbareaInterschimbarea
•• Consta in aducerea unui intreg proces in Consta in aducerea unui intreg proces in memorie,memorie,
•• Executia sa pentru un timp,Executia sa pentru un timp,
•• Apoi trecerea lui inapoi pe discApoi trecerea lui inapoi pe disc
13.03.200913.03.2009 Cursul 8Cursul 8 1010
InterschimbareaInterschimbarea
13.03.200913.03.2009 Cursul 8Cursul 8 1111
• Initial doar procesul A este in memorie• Apoi procesele B si C sunt create sau aduse de pe disc• In fig. (d) procesul A este trecut pe disc• Apoi intra procesul D si iese procesul B• La sfirsit intra din nou procesul A
InterschimbareaInterschimbarea
13.03.200913.03.2009 Cursul 8Cursul 8 1212
•• (a) Alocare de spatiu pentru un segment de date in crestere(a) Alocare de spatiu pentru un segment de date in crestere
•• (b) Alocare de spatiu pentru segmente de date si stiva pentru (b) Alocare de spatiu pentru segmente de date si stiva pentru a putea crestea putea creste
InterschimbareaInterschimbarea
•• Atunci cand prin interschimbare sunt create Atunci cand prin interschimbare sunt create spatii in memorie este posibil ca ele sa fie spatii in memorie este posibil ca ele sa fie unite intrunite intr--un singur spatiu mare prin mutarea un singur spatiu mare prin mutarea tuturor proceselor in jos cat mai departe tuturor proceselor in jos cat mai departe posibilposibil
•• Aceasta tehnica se numeste Aceasta tehnica se numeste compactareacompactarea
memorieimemoriei
•• Nu este folosita in mod normal deoarece Nu este folosita in mod normal deoarece necesita mult timp de procesornecesita mult timp de procesor
•• De evitat: fragmentarea memorieiDe evitat: fragmentarea memoriei
13.03.200913.03.2009 Cursul 8Cursul 8 1313
Gestiunea memoriei utilizand harti de bitiGestiunea memoriei utilizand harti de biti
13.03.200913.03.2009 Cursul 8Cursul 8 1414
•• Memoria este impartita in unitati de alocareMemoria este impartita in unitati de alocare
•• Acestea pot fi de la cativa octeti pana la cativa KBAcestea pot fi de la cativa octeti pana la cativa KB
•• Fiecarei unitati de alocare ii corespunde un bit in harta Fiecarei unitati de alocare ii corespunde un bit in harta de bitide biti
•• Bitul este 0 daca daca unitatea este libera si 1 daca Bitul este 0 daca daca unitatea este libera si 1 daca este ocupataeste ocupata
Gestiunea memoriei utilizand harti de bitiGestiunea memoriei utilizand harti de biti
•• In figura precedenta avem o parte din memorie cu 5 In figura precedenta avem o parte din memorie cu 5 procese cu 3 regiuni libereprocese cu 3 regiuni libere
–– Liniutele indica unitatile de alocareLiniutele indica unitatile de alocare
–– Zonele hasurate indica regiunile libereZonele hasurate indica regiunile libere
•• Cu cat unitatea de alocare este mai mica cu atat Cu cat unitatea de alocare este mai mica cu atat harta de biti este mai mareharta de biti este mai mare
•• Totusi, daca unitatea de alocare este de 4 octeti Totusi, daca unitatea de alocare este de 4 octeti atunci pentru 32 de biti de memorie va fi necesar un atunci pentru 32 de biti de memorie va fi necesar un singur bit in hartasingur bit in harta
•• O memorie de 32O memorie de 32nn biti va necesita o harta de biti va necesita o harta de nn bitibiti
•• Asadar, harta de biti va ocupa doar 1/33 din memorieAsadar, harta de biti va ocupa doar 1/33 din memorie
13.03.200913.03.2009 Cursul 8Cursul 8 1515
Gestiunea memoriei utilizand liste Gestiunea memoriei utilizand liste inlantuiteinlantuite
•• PP--proceseprocese
•• HH--gaura (zona libera)gaura (zona libera)
13.03.200913.03.2009 Cursul 8Cursul 8 1616
Gestiunea memoriei utilizand liste Gestiunea memoriei utilizand liste inlantuiteinlantuite
•• Fiecare intrare din lista este compusa din:Fiecare intrare din lista este compusa din:
–– Identificator al tipului (SIdentificator al tipului (S--spatiu sau Pspatiu sau P--proces)proces)
–– Adresa la care incepeAdresa la care incepe
–– DimensiuneaDimensiunea
–– Indicator catre urmatoarea intrareIndicator catre urmatoarea intrare
13.03.200913.03.2009 Cursul 8Cursul 8 1717
Gestiunea memoriei utilizand Gestiunea memoriei utilizand liste inlantuiteliste inlantuite
•• Ce se intampla atunci cand un proces se Ce se intampla atunci cand un proces se termina?termina?
•• Exista 4 combinatii posibileExista 4 combinatii posibile13.03.200913.03.2009 Cursul 8Cursul 8 1818
Algoritmi pentru alocarea de memorieAlgoritmi pentru alocarea de memorie
•• Algoritmul prima potrivire (first fit):Algoritmul prima potrivire (first fit):
–– Gestionarul de memorie cauta in lista de segmente Gestionarul de memorie cauta in lista de segmente un spatiu liber suficient de mareun spatiu liber suficient de mare
–– Spatiul este spart in doua parti, una pentru proces Spatiul este spart in doua parti, una pentru proces iar cealalta va ramane ca memorie nefolosita, doar iar cealalta va ramane ca memorie nefolosita, doar daca nu se potriveste exactdaca nu se potriveste exact
13.03.200913.03.2009 Cursul 8Cursul 8 1919
Algoritmi pentru alocarea de memorieAlgoritmi pentru alocarea de memorie
•• Exemplu:Exemplu:
•• Avem o lista de spatii libere de dimensiunile:Avem o lista de spatii libere de dimensiunile:10, 20, 10, 50, 510, 20, 10, 50, 5
Un proces are nevoie de o dimensiune egala Un proces are nevoie de o dimensiune egala cu 4. Care spatiu liber e folosit?cu 4. Care spatiu liber e folosit?
•• First fit First fit : alege primul spatiu liber destul de : alege primul spatiu liber destul de mare (spatiul de dimensiune 10)mare (spatiul de dimensiune 10)
•• Sparge spatiul in unul utilizat si altul de Sparge spatiul in unul utilizat si altul de dimensiune 10 dimensiune 10 -- 4 = 64 = 6
•• Algoritmul este simplu si rapidAlgoritmul este simplu si rapid13.03.200913.03.2009 Cursul 8Cursul 8 2020
Algoritmi pentru alocarea de memorieAlgoritmi pentru alocarea de memorie
•• Algoritmul urmatoarea potrivire (next fit):Algoritmul urmatoarea potrivire (next fit):
–– Memoreaza pozitia la care a gasit un spatiu suficient Memoreaza pozitia la care a gasit un spatiu suficient de marede mare
–– La urmatoarea cautare va incepe sa caute in lista de La urmatoarea cautare va incepe sa caute in lista de la pozitia la care a terminat inainte, in loc sa inceapa la pozitia la care a terminat inainte, in loc sa inceapa mereu de la inceputmereu de la inceput--asa cum se face la alg. first fitasa cum se face la alg. first fit
–– Este un pic mai lent decat alg. First fitEste un pic mai lent decat alg. First fit
13.03.200913.03.2009 Cursul 8Cursul 8 2121
Algoritmi pentru alocarea de memorieAlgoritmi pentru alocarea de memorie
•• Algoritmul cea mai buna potrivire (best fit):Algoritmul cea mai buna potrivire (best fit):
–– Cauta in toata lista si alege cel mai mic spatiu liber Cauta in toata lista si alege cel mai mic spatiu liber care este potrivitcare este potrivit
–– Este mai lentEste mai lent
–– Creaza multe spatii mici ceea ce duce la Creaza multe spatii mici ceea ce duce la fragmentarea memorieifragmentarea memoriei
•• Algoritmul celei mai proaste potriviri ( worst fit):Algoritmul celei mai proaste potriviri ( worst fit):
–– Alege cel mai mare spatiu liber a.i. spatiul liber Alege cel mai mare spatiu liber a.i. spatiul liber rezultat sa fie suficient de mare incat sa fie utilrezultat sa fie suficient de mare incat sa fie util
–– Simularile au aratat ca nu este foarte bunSimularile au aratat ca nu este foarte bun
13.03.200913.03.2009 Cursul 8Cursul 8 2222
Algoritmi pentru alocarea de memorieAlgoritmi pentru alocarea de memorie
•• Algoritmul de potrivire rapida (quick fit):Algoritmul de potrivire rapida (quick fit):
–– Mentine liste separate pentru cele mai uzuale Mentine liste separate pentru cele mai uzuale dimensiuni cerutedimensiuni cerute
–– Spatiile libere sunt gasite foarte repedeSpatiile libere sunt gasite foarte repede
–– Algoritm complicat atunci cand un proces se Algoritm complicat atunci cand un proces se terminatermina
–– Memoria se poate fragmenta foarte repedeMemoria se poate fragmenta foarte repede
13.03.200913.03.2009 Cursul 8Cursul 8 2323
Memoria virtualaMemoria virtuala
•• Procesele utilizeaza spatii de adrese virtualeProcesele utilizeaza spatii de adrese virtuale
•• Fiecare proces are propriul sau spatiu de adreseFiecare proces are propriul sau spatiu de adrese
•• Spatiul de adresa poate fi mai mare decat Spatiul de adresa poate fi mai mare decat memoria fizicamemoria fizica
•• Sistemul de operare tine in memorie acele parti Sistemul de operare tine in memorie acele parti ale programului care sunt folosite iar restul este ale programului care sunt folosite iar restul este pastrat pe discpastrat pe disc
•• HardwareHardware--ul si sistemul de operare coopereaza ul si sistemul de operare coopereaza astfel incat sa mute continutul memoriei de pe astfel incat sa mute continutul memoriei de pe disc in memorie si inversdisc in memorie si invers
13.03.200913.03.2009 Cursul 8Cursul 8 2424
Memoria virtualaMemoria virtuala
•• Unitatea de gestiune a memoriei (MMU):Unitatea de gestiune a memoriei (MMU):
–– Asociaza adresele virtuale cu adrese din memoria fizicaAsociaza adresele virtuale cu adrese din memoria fizica
13.03.200913.03.2009 Cursul 8Cursul 8 2525
Memoria virtualaMemoria virtuala
•• Spatiul virtual de adrese este impartit in unitati Spatiul virtual de adrese este impartit in unitati numite numite paginipagini
•• Unitatile corespunzatoare din memoria fizica se Unitatile corespunzatoare din memoria fizica se numesc numesc cadre de pagina (page frames)cadre de pagina (page frames)
•• Paginile si cadrele de pagina trebuie sa aiba Paginile si cadrele de pagina trebuie sa aiba intotdeauna aceeasi dimensiuneintotdeauna aceeasi dimensiune
13.03.200913.03.2009 Cursul 8Cursul 8 2626
Memoria virtualaMemoria virtuala
•• Relatiile dintre adresele Relatiile dintre adresele virtuale si adresele fizice virtuale si adresele fizice sunt trecute intrsunt trecute intr--o o tabela tabela de paginide pagini
•• Exista o tabela de pagini Exista o tabela de pagini pentru fiecare procespentru fiecare proces
•• Sistemul de operare Sistemul de operare mentine tabela de paginimentine tabela de pagini
•• MMU utilizeaza aceasta MMU utilizeaza aceasta tabela de paginitabela de pagini
13.03.200913.03.2009 Cursul 8Cursul 8 2727
Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 1102.06.201002.06.2010
Sisteme de operareSisteme de operareIntIntrr!!ri/Ieri/Ie""iriiri
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 22
ConCon##inutul cursuluiinutul cursului
•• Tipuri de echipamente de I/ETipuri de echipamente de I/E
•• Controlore de echipamenteControlore de echipamente
•• I/E cu corespondenta in memorieI/E cu corespondenta in memorie
•• Arhitectura magistraleiArhitectura magistralei
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 33
IntroducereIntroducere
•• Unul din rolurile principale ale unui sistem de Unul din rolurile principale ale unui sistem de operare este sa operare este sa controleze toate controleze toate echipamentele de I/Eechipamentele de I/E
•• El trebuieEl trebuie::
–– Sa dea comenzi echipamentelorSa dea comenzi echipamentelor
–– Sa trateze intreruperile si erorileSa trateze intreruperile si erorile
–– Sa furnizeze o interfata simpla si usor de folosit Sa furnizeze o interfata simpla si usor de folosit intre echipamente si restul sistemuluiintre echipamente si restul sistemului
•• Aceasta interfata ar trebui sa fie aceeasi Aceasta interfata ar trebui sa fie aceeasi pentru toate echipamentelepentru toate echipamentele..
Tipuri de eTipuri de echipamente de I/Echipamente de I/E
•• Echipamente bloc (block devices):Echipamente bloc (block devices):
–– Pastreaza informatia in blocuri de dimensiune fixaPastreaza informatia in blocuri de dimensiune fixa
–– Dimensiuni uzuale: intre 512 octeti si 32768 octetiDimensiuni uzuale: intre 512 octeti si 32768 octeti
–– Fiecare bloc poate fi citit sau scris independent fata de Fiecare bloc poate fi citit sau scris independent fata de celelaltecelelalte
–– Ex: discuri, floppy, CDEx: discuri, floppy, CD--uriuri
•• Echipamente caracter (character devices):Echipamente caracter (character devices):
–– Primeste sau transmite un flux de caracterePrimeste sau transmite un flux de caractere
–– Nu este adresabilNu este adresabil
–– Nu are nici o operatie de cautareNu are nici o operatie de cautare
–– Ex: tastatura, imprimanta, placa de retea, mouseEx: tastatura, imprimanta, placa de retea, mouse
•• Altele: ceasul, ecrane cu corespondenta in memorieAltele: ceasul, ecrane cu corespondenta in memorie..02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 44
Tipuri de eTipuri de echipamente de I/Echipamente de I/E
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 55
Echipament Viteza de transfer
Tastatura 10 octeti/sec
Mouse 100 octeti/sec
56K modem 7KB/sec
Canal telefonic 8KB/sec
Linii duale ISDN 16 KB/sec
Imprimanta laser 100 KB/sec
Scanner 400 KB/sec
Ethernet clasic 1.25 MB/sec
Disc IDE 5 MB/sec
40xCD-ROM 6 MB/sec
Magistrala ISA 16.7 MB/sec
Disc EIDE (ATA-2) 16.7 MB/sec
Monitor XGA 60 MB/sec
Disc SCSI Ultra 2 80 MB/sec
Magistrala PCI 528 MB/sec
Sun GigaplaneXB backplane 20 GB/sec
Controlore de echipamenteControlore de echipamente
•• Echipamentele de I/E sunt formate din:Echipamentele de I/E sunt formate din:
–– O O componenta mecanicacomponenta mecanica
–– O O componenta electronicacomponenta electronica
•• Componenta electronica se numeste Componenta electronica se numeste controlor de controlor de echipament (device controller)echipament (device controller) sau sau adaptor adaptor (adapter)(adapter)
•• Este o placa cu circuit imprimatEste o placa cu circuit imprimat
•• Controlerul are un conector la care poate fi Controlerul are un conector la care poate fi conectat un cablu ce face leg. cu echipamentulconectat un cablu ce face leg. cu echipamentul
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 66
Controlore de echipamenteControlore de echipamente
•• Sarcinile unui controlSarcinile unui controloor:r:
–– Converteste un flux serial de biti in blocuri de octetiConverteste un flux serial de biti in blocuri de octeti
–– Efectueaza corectia erorilorEfectueaza corectia erorilor
–– Copiaza blocul de octeti, verificat de erori, in Copiaza blocul de octeti, verificat de erori, in memoria principalamemoria principala
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 77
I/E cu corespondenta in memorieI/E cu corespondenta in memorie
•• Fiecare controlFiecare controloor are cateva registre pentru a r are cateva registre pentru a comunica cu procesorulcomunica cu procesorul
•• Astfel echipamentul poate sa transmita date, Astfel echipamentul poate sa transmita date, sa accepte date, sa devina activ sau inactiv ori sa accepte date, sa devina activ sau inactiv ori sa execute vreo alta actiunesa execute vreo alta actiune
•• Citind aceste registre, sistemul de operare Citind aceste registre, sistemul de operare poate afla in ce stare se afla echipamentulpoate afla in ce stare se afla echipamentul
•• Pe langa aceste registre, multe echipamente Pe langa aceste registre, multe echipamente au o au o memorie tampon de datememorie tampon de date
•• Aici sistemul de operare poate citi sau scrieAici sistemul de operare poate citi sau scrie..02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 88
I/E cu corespondenta in memorieI/E cu corespondenta in memorie
•• Cum comunica procesorul cu aceste registre ?Cum comunica procesorul cu aceste registre ?
•• Sau cu memoria tampon a echipamentului ?Sau cu memoria tampon a echipamentului ?
•• Prima modalitate:Prima modalitate:–– Fiecarui registru i se asociaza un numar de Fiecarui registru i se asociaza un numar de port de I/Eport de I/E
–– Acesta este un intreg pe 8 sau 16 bitiAcesta este un intreg pe 8 sau 16 biti
–– Spatiul de adrese pt. memorie si cel pt. I/E sunt diferiteSpatiul de adrese pt. memorie si cel pt. I/E sunt diferite
•• A doua modalitate:A doua modalitate:–– Se pun toate registrele in spatiul de adrese de memorieSe pun toate registrele in spatiul de adrese de memorie
–– Fiecarui registru Fiecarui registru îîi este repartizata o adresa unica de i este repartizata o adresa unica de memoriememorie
–– Careia nuCareia nu--i corespunde o celula de memoriei corespunde o celula de memorie
–– Aceste sistem se Aceste sistem se numeste I/E cu corespondenta in memorie numeste I/E cu corespondenta in memorie (memory(memory--mapped I/O)mapped I/O)
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 99
I/E cu corespondenta in memorieI/E cu corespondenta in memorie
•• O abordare hibridaO abordare hibrida::–– Spatiul de adrese pt. memorie si cel pt. I/E Spatiul de adrese pt. memorie si cel pt. I/E nu nu sunt sunt
diferitediferite
–– PentiumPentium foloseste aceasta arhitecturafoloseste aceasta arhitectura
–– Adresele de la 640 KB la 1 MB fiind rezervate pentru Adresele de la 640 KB la 1 MB fiind rezervate pentru memoria tampon impreuna cu porturile I/Ememoria tampon impreuna cu porturile I/E
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 1010
Avantajele sistemului I/E cu Avantajele sistemului I/E cu corespondenta in memoriecorespondenta in memorie
•• Un driver nu necesita instructiunui speciale, Un driver nu necesita instructiunui speciale, poate fi scris in Cpoate fi scris in C
•• Nu este necesar nici un mecanism de protectie Nu este necesar nici un mecanism de protectie pentru a impiedica procesele utilizator sa pentru a impiedica procesele utilizator sa efectueze operatii de I/Eefectueze operatii de I/E
•• Fiecare instructiune care poate referi memoria Fiecare instructiune care poate referi memoria poate referi de asemenea si registrelepoate referi de asemenea si registrele
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 1111
Dezavantajele sistemului I/E cu Dezavantajele sistemului I/E cu corespondenta in memoriecorespondenta in memorie
•• Opreste selectiv pastrarea in memoria Opreste selectiv pastrarea in memoria intermediara (memoria cash)intermediara (memoria cash)
•• Ceea ce adauga complexitate suplimentara Ceea ce adauga complexitate suplimentara hardului si sistemului de operarehardului si sistemului de operare
•• Memoria si controloarele de I/E trebuie sa fie Memoria si controloarele de I/E trebuie sa fie pe aceeasi magistrala de date:pe aceeasi magistrala de date:
–– Arhitecturile moderne au magistrale de memorie Arhitecturile moderne au magistrale de memorie separateseparate
–– Pentium are 3 magistrale: memorie, PCI, ISAPentium are 3 magistrale: memorie, PCI, ISA
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 1212
Arhitectura magistraleiArhitectura magistralei
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 1313
Procesorul Memorie I/E Procesorul Memorie I/E
Toate adresele(de memorie si de I/E)
Magistrala
Operatiile de citire si de scriere a memorieise fac prin aceasta magistrala foarte rapida
Acest port de memorie permiteechipamentelor de I/Esa acceseze memoria
(a) O arhitectura cu o singura magistrala
(b) O arhitectura cudoua magistrale
Arhitectura unui sistem PentiumArhitectura unui sistem Pentium
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 1414
Acces direct la memorie (DMA)Acces direct la memorie (DMA)
•• Procesorul poate cere date de la un controlor Procesorul poate cere date de la un controlor de I/E, octet cu octetde I/E, octet cu octet
•• Astfel, se risipeste timpul de procesorAstfel, se risipeste timpul de procesor
•• Se foloseste un mecanism diferit numit Se foloseste un mecanism diferit numit DMA DMA (Direct Memory Acces)(Direct Memory Acces)
•• Sistemul de operare poate folosi DMA numai Sistemul de operare poate folosi DMA numai daca hardul are un controlor DMAdaca hardul are un controlor DMA
•• Majoritatea calculatoarelor au acest controlorMajoritatea calculatoarelor au acest controlor
•• Controlorul DMA are acces la magistrala Controlorul DMA are acces la magistrala sistemului independent fata de procesor.sistemului independent fata de procesor.
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 1515
Acces direct la memorie (DMA)Acces direct la memorie (DMA)
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 1616
Procesul de transfer DMA
Acces direct la memorie (DMA)Acces direct la memorie (DMA)
•• Controlorul DMA contine cateva registre care Controlorul DMA contine cateva registre care pot fi scrise sau citite de procesorpot fi scrise sau citite de procesor
•• Printre acestea se numaraPrintre acestea se numara::
–– un registru de adrese a memorieiun registru de adrese a memoriei
–– un registru contor si un registru contor si
–– unul sau mai multe registre de controlunul sau mai multe registre de control
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 1717
Acces direct la memorie (DMA)Acces direct la memorie (DMA)
•• Registrele de control specifica:Registrele de control specifica:
–– Portul de I/E care trebuie folositPortul de I/E care trebuie folosit
–– Directia transferului:Directia transferului:
••Citire de la echipamentul de I/ECitire de la echipamentul de I/E
•• Scriere la echipamentul de I/EScriere la echipamentul de I/E
–– Unitatea de transfer (cUnitatea de transfer (cââte un octet sau un te un octet sau un cuvcuvâânt o data)nt o data)
–– Numarul de octeti care se transferaNumarul de octeti care se transfera
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 1818
Cum functioneaza DMA?Cum functioneaza DMA?
•• Procesorul programeaza controlorul DMA Procesorul programeaza controlorul DMA setind registrele ca acestea sa stie ce sa setind registrele ca acestea sa stie ce sa transfere si undetransfere si unde
•• DMA transmite o comanda controlorului de DMA transmite o comanda controlorului de disc spunindudisc spunindu--i sa citeasca datele de pe disc i sa citeasca datele de pe disc in memoria sa internain memoria sa interna
•• Si sa verifice suma de controlSi sa verifice suma de control
•• Cand datele din memoria controlorului sunt Cand datele din memoria controlorului sunt valide, DMA poata sa inceapa.valide, DMA poata sa inceapa.
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 1919
Cum functioneaza DMA?Cum functioneaza DMA?
•• Controlorul DMA initiaza transferul emitind o Controlorul DMA initiaza transferul emitind o cerere de citire prin magistrala catre cerere de citire prin magistrala catre controlorul de disccontrolorul de disc
•• Controlorul de disc nu stie daca a venit de la Controlorul de disc nu stie daca a venit de la procesor sau de la controlorul DMAprocesor sau de la controlorul DMA
•• Atunci cand scrierea in memoria principala Atunci cand scrierea in memoria principala este terminata:este terminata:
–– Controlorul de disc transmite un semnal de Controlorul de disc transmite un semnal de confirmare controlorului DMAconfirmare controlorului DMA
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 2020
Cum functioneaza DMA?Cum functioneaza DMA?
•• Apoi, controlorul DMA incrementeaza adresa de Apoi, controlorul DMA incrementeaza adresa de memorie care trebuie folositamemorie care trebuie folosita
•• Si decrementeaza contorul de octetiSi decrementeaza contorul de octeti
•• Daca contorul este mai mare ca 0, pasii de la 2 la Daca contorul este mai mare ca 0, pasii de la 2 la 4 sunt repetati pana cand contorul ajunge la 04 sunt repetati pana cand contorul ajunge la 0
•• In acel moment controlorul DMA instiinteaza In acel moment controlorul DMA instiinteaza procesorul ca transferul sprocesorul ca transferul s--a terminata terminat
•• Cand sistemul de operare incepe sa ruleze, nu Cand sistemul de operare incepe sa ruleze, nu trebuie sa copieze blocul de disc in memorie, trebuie sa copieze blocul de disc in memorie, deoarece este deja acolo.deoarece este deja acolo.
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 2121
Scopurile softului de I/EScopurile softului de I/E
•• Un concept importantUn concept important--independenta de independenta de echipament:echipament:
–– Programele pot accesa orice echipament de I/EProgramele pot accesa orice echipament de I/E
–– Fara a specifica dinainte care este Fara a specifica dinainte care este echipamentul (floppy, hard drive, or CDechipamentul (floppy, hard drive, or CD--ROM)ROM)
•• Denumire uniforma:Denumire uniforma:
–– Numele unui fisier sau echipament este un sir Numele unui fisier sau echipament este un sir sau un numarsau un numar
–– Fara a fi dependent de dispozitivFara a fi dependent de dispozitiv
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 2222
Scopurile softului de I/EScopurile softului de I/E
•• Tratarea erorilor:Tratarea erorilor:
–– Ar trebui sa se faca cat mai aproape de hardAr trebui sa se faca cat mai aproape de hard
–– Daca controlorul descopera o eroare de citire, Daca controlorul descopera o eroare de citire, trebuie sa incerce sa o corecteze el singur daca trebuie sa incerce sa o corecteze el singur daca poatepoate
–– Daca nu poate, o trateaza driverul dispozitivuluiDaca nu poate, o trateaza driverul dispozitivului
–– Tratarea erorilor se poate face transparent la Tratarea erorilor se poate face transparent la nivelul de josnivelul de jos
–– Fara ca nivelurile superioare sa afle de eroare.Fara ca nivelurile superioare sa afle de eroare.
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 2323
Scopurile softului de I/EScopurile softului de I/E
•• Transferul sincron (blocant) si asincron Transferul sincron (blocant) si asincron (condus de intreruperi):(condus de intreruperi):
–– Majoritatea echipamentelor de I/E sunt Majoritatea echipamentelor de I/E sunt asincrone:asincrone:
•• Procesorul porneste transferul si apoi face altceva Procesorul porneste transferul si apoi face altceva pana cand soseste intrerupereapana cand soseste intreruperea
–– Programele utilizatorilor sunt mult mai usor de Programele utilizatorilor sunt mult mai usor de scris daca operatiile de I/E sunt scris daca operatiile de I/E sunt sincronesincrone(blocante):(blocante):
•• Dupa un apel de sistem de citire, programul este Dupa un apel de sistem de citire, programul este suspendat automat pana cand datele cerute sunt suspendat automat pana cand datele cerute sunt disponibile in memoria tampondisponibile in memoria tampon
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 2424
Scopurile softului de I/EScopurile softului de I/E
•• Utilizarea memoriei tampon:Utilizarea memoriei tampon:
–– Datele care vin de la un echipament nu pot fi Datele care vin de la un echipament nu pot fi memorate direct in locatia finalamemorate direct in locatia finala
–– De exemplu: cand un pachet de date soseste De exemplu: cand un pachet de date soseste din retea:din retea:
•• sistemul de operare nu stie unde sasistemul de operare nu stie unde sa--l scrie l scrie
•• pana cand nupana cand nu--l memoreaza undeva sil memoreaza undeva si--l examineazal examineaza
•• Echipamente impartite intre mai multi Echipamente impartite intre mai multi utilizatori si cele dedicate:utilizatori si cele dedicate:
–– Discurile se pot imparti intre mai multi utiliz.Discurile se pot imparti intre mai multi utiliz.
–– Unitatile de banda magnetica sunt dedicateUnitatile de banda magnetica sunt dedicate02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 2525
I/E programateI/E programate
•• Exista trei modalitati prin care pot fi Exista trei modalitati prin care pot fi executate operatii de I/E:executate operatii de I/E:
–– I/E programateI/E programate
–– I/E condus prin intreruperiI/E condus prin intreruperi
–– I/E folosind DMAI/E folosind DMA
•• Cea mai simpla forma de I/E este de a lasa Cea mai simpla forma de I/E este de a lasa procesorul sa faca toata treabaprocesorul sa faca toata treaba
•• Aceasta metoda este numita Aceasta metoda este numita I/E programate I/E programate (programmed I/O).(programmed I/O).
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 2626
I/E programateI/E programate
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 2727
Exemplu: Tiparirea la imprimanta a unui sir de caractere
I/E programateI/E programate
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 2828
Asteptare ocupata (Busy-waiting) Procesorul testeaza incontinuu imprimanta pentru a vedea daca e pregatita sa primeasca urmatorul caracter
I/E programateI/E programate
•• Operatiile de I/E sunt simpleOperatiile de I/E sunt simple
•• Au dezavantajul ca ocupa tot timpul Au dezavantajul ca ocupa tot timpul procesorulprocesorul
•• Pana cand operatia se terminaPana cand operatia se termina
•• In sistemele complexe, unde procesorul este In sistemele complexe, unde procesorul este foarte ocupat, aceasta tehnica este foarte ocupat, aceasta tehnica este ineficientaineficienta
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 2929
I/E conduse prin intreruperiI/E conduse prin intreruperi
copiaza_de_la_utilizator(tampon,p,contor);copiaza_de_la_utilizator(tampon,p,contor);
permite_intreruperile();permite_intreruperile();
while(*registru_stare_imprimanta != READY);while(*registru_stare_imprimanta != READY);
*registru_date_imprimanta = p[0];*registru_date_imprimanta = p[0];
planificator();planificator();
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 3030
if(count==0) {deblocheaza_utilizator();
} else {registru_date_imprimanta=p[i];contor = contor – 1;i = i + 1;
}confirma_intreruperea();revenire_din_intrerupere();
Scrierea unui sir la imprimanta
(a) Codul executat cand este efectuat un apel de sistem
(b) Procedura de tratare a intreruperii
I/E conduse prin intreruperiI/E conduse prin intreruperi
•• Cand imprimanta a terminat de tiparit un Cand imprimanta a terminat de tiparit un caractercaracter
•• Si este pregatita saSi este pregatita sa--l primeasca pe urmatorul, l primeasca pe urmatorul, se genereaza o intreruperese genereaza o intrerupere
•• Aceasta intrerupere opreste procesul curent si Aceasta intrerupere opreste procesul curent si îîi salveaza stareai salveaza starea
•• Apoi este rulata procedura de tratare a Apoi este rulata procedura de tratare a intreruperii imprimanteiintreruperii imprimantei
•• Un dezavantaj a Un dezavantaj a I/E conduse prin intreruperi I/E conduse prin intreruperi este ca intreruperea apare la fiecare caracter.este ca intreruperea apare la fiecare caracter.
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 3131
I/E utilizând DMAI/E utilizând DMA
•• Controlorul DMA trimite caractere Controlorul DMA trimite caractere imprimantei câte unul odataimprimantei câte unul odata
•• Procesorul nu este deranjatProcesorul nu este deranjat
•• DMA este programatDMA este programat
•• Controlorul DMA face toata treaba in locul Controlorul DMA face toata treaba in locul procesoruluiprocesorului
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 3232
I/E utilizând DMAI/E utilizând DMA
•• Tiparirea unui sir folosind DMA:Tiparirea unui sir folosind DMA:
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 3333
Cod executat la apelul sistem pentru tiparire
copiaza_de_la_utilizator(tampon,p,contor);seteaza_controlor_DMA();planificator();
confirma_intreruperea();deblocheaza_utilizator();revenire_din_intrerupere();
Procedura de tratarea intreruperii
Softul de I/ESoftul de I/E
•• Softul de I/E este organizat pe patru Softul de I/E este organizat pe patru niveluri:niveluri:
–– Rutinele de tratare a intreruperiiRutinele de tratare a intreruperii
–– Drivere de echipamentDrivere de echipament
–– Nivelul sistemului de operare independent de Nivelul sistemului de operare independent de echipamentechipament
–– Soft I/E de nivel utilizatorSoft I/E de nivel utilizator
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 3434
Rutinele de tratare a intreruperiiRutinele de tratare a intreruperii
•• Atunci cand are loc o intrerupere, procedura Atunci cand are loc o intrerupere, procedura de tratare a intreruperii se executade tratare a intreruperii se executa
•• Apoi poate debloca driverul care a pornitApoi poate debloca driverul care a pornit--oo
•• In unele cazuri va incrementa valoarea unui In unele cazuri va incrementa valoarea unui semaforsemafor
•• In alte cazuri va trimite un mesaj driverului In alte cazuri va trimite un mesaj driverului blocatblocat
•• In toate cazurile, driverul care inainte era In toate cazurile, driverul care inainte era blocat acum se poate executa.blocat acum se poate executa.
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 3535
Drivere de echipamentDrivere de echipament
•• Fiecare controlor are registre in care primeste Fiecare controlor are registre in care primeste comenzicomenzi
•• Registre din care i se poate citi stareaRegistre din care i se poate citi starea
•• Numarul de registre de echipament si natura Numarul de registre de echipament si natura comenzilor difera de la un echipament la altulcomenzilor difera de la un echipament la altul
•• De exDe exempluemplu: :
–– un driver de mouse trebuie sa accepte informatii un driver de mouse trebuie sa accepte informatii de la mousede la mouse
–– ccare are îîi spun cât de mult si spun cât de mult s--a deplasat si ce buton a a deplasat si ce buton a apasat.apasat.
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 3636
Drivere de echipamentDrivere de echipament
•• Alt exempluAlt exemplu::
–– Un driver de disc trebuie sa stie despre Un driver de disc trebuie sa stie despre sectoare, piste, cilindri, capete de citiresectoare, piste, cilindri, capete de citire
–– Miscarea bratului, motorul discului, timpul de Miscarea bratului, motorul discului, timpul de asezare a capuluiasezare a capului
–– Si toate celelalte mecanisme care fac ca discul Si toate celelalte mecanisme care fac ca discul sa functionezesa functioneze
•• Driverele functioneaza in moduri diferite.Driverele functioneaza in moduri diferite.
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 3737
Drivere de echipamentDrivere de echipament
•• Fiecare echipament de I/E trebuie controlat de Fiecare echipament de I/E trebuie controlat de un program specificun program specific
•• Acest program este denumit Acest program este denumit driver de driver de
echipament (device driver)echipament (device driver)
•• Este scris de producatorul echipamentuluiEste scris de producatorul echipamentului
•• Si este livrat impreuna cu echipamentulSi este livrat impreuna cu echipamentul
•• Producatorii de echipamente furnizeaza drivere Producatorii de echipamente furnizeaza drivere pentru mai multe sisteme de operare populare.pentru mai multe sisteme de operare populare.
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 3838
Drivere de echipamentDrivere de echipament
•• Driverele de echipament se afla in mod Driverele de echipament se afla in mod normal la baza sistemului de operarenormal la baza sistemului de operare
•• Categorii de drivere de echipament:Categorii de drivere de echipament:
–– Echipamente bloc (block devices)Echipamente bloc (block devices)
•• Discurile, care contin mai multe blocuri de date ce Discurile, care contin mai multe blocuri de date ce pot fi accesate separatpot fi accesate separat
–– Echipamente caracter (character devices)Echipamente caracter (character devices)
•• Tastaturile si imprimantele, care genereaza sau Tastaturile si imprimantele, care genereaza sau accepta fluxuri de caractereaccepta fluxuri de caractere
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 3939
Drivere de echipamentDrivere de echipament
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 4040
Restul sistemului de operare
Driver deimprimanta
Driver de Camera digitala
Driver de CD-ROM
Controlorulimprimantei
ControlorulCamerei digitale
ControlorulCD-ROM
Program utilizator
Proces utilizator
Spatiuutilizator
Spatiunucleu
Drivere de echipamentDrivere de echipament
•• Functiile driverelor de echipament:Functiile driverelor de echipament:
–– Acceptare cereri de citire si scriere de la partea Acceptare cereri de citire si scriere de la partea soft independenta de echipamentsoft independenta de echipament
–– Indeplinirea acestor cereriIndeplinirea acestor cereri
–– Driverul trebuie sa initializeze echipamentul Driverul trebuie sa initializeze echipamentul daca este nevoiedaca este nevoie
–– Poate sa controleze cererea de energiePoate sa controleze cererea de energie
–– Sa inregistreze evenimentele, daca este nevoie.Sa inregistreze evenimentele, daca este nevoie.
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 4141
Soft de I/E independent de Soft de I/E independent de echipamentechipament
•• Functiile softului de I/E independent de Functiile softului de I/E independent de echipament:echipament:
–– Interfatarea uniforma pentru drivere Interfatarea uniforma pentru drivere echipamentechipament
–– Utilizarea memoriei tamponUtilizarea memoriei tampon
–– Raportarea erorilorRaportarea erorilor
–– Alocarea si eliberarea echipamentelor dedicateAlocarea si eliberarea echipamentelor dedicate
–– Furnizarea unei dimensiuni de bloc Furnizarea unei dimensiuni de bloc independente de echipament.independente de echipament.
02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 4242