sisteme de operare introducere - cedc.ro · arhitectura unui calculator 13/03/2009 cursul 1 5 ......

310
Cursul 1 Cursul 1 1 1 13/03/2009 13/03/2009 Sisteme de operare Sisteme de operare Introducere Introducere

Upload: others

Post on 03-Nov-2019

21 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

Cursul 1Cursul 1 1113/03/200913/03/2009

Sisteme de operareSisteme de operareIntroducereIntroducere

Page 2: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 3: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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.

Page 4: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 5: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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.

Page 6: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 7: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 8: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 9: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 10: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 11: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 12: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 13: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 14: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 15: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 16: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 17: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 18: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 19: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 20: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 21: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 22: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 23: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

ComponenteComponente hardwarehardware

13/03/200913/03/2009 Cursul 1Cursul 1 2424

Page 24: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 25: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

IerarhiaIerarhia MemorieiMemoriei

13/03/200913/03/2009 CursulCursul 11 2626

Page 26: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 27: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 28: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 29: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 30: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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..

Page 31: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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. .

Page 32: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 33: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 34: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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. .

Page 35: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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..

Page 36: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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..

Page 37: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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.

Page 38: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

CursulCursul 22 1113/03/200913/03/2009

SistemeSisteme de de operareoperareNoNo!!iuniiuni fundamentalefundamentale

Page 39: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 40: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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..

Page 41: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 42: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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..

Page 43: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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.

Page 44: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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).).

Page 45: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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##..

Page 46: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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.

Page 47: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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##..

Page 48: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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;

Page 49: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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.

Page 50: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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.

Page 51: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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.

Page 52: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 53: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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.

Page 54: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 55: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 56: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 57: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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)

Page 58: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 59: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 60: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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..

Page 61: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 62: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 63: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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. .

Page 64: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 65: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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. .

Page 66: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 67: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 68: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 69: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 70: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

Cursul 3Cursul 3 1113/03/200913/03/2009

Sisteme de operareSisteme de operare ProceseProcese

Page 71: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 72: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 73: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 74: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 75: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 76: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 77: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 78: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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..

Page 79: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 80: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 81: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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)

Page 82: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 83: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 84: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 85: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 86: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 87: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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.

Page 88: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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)

Page 89: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 90: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 91: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

13/03/200913/03/2009 Cursul 3Cursul 3 2222

Starile unui procesStarile unui proces

Page 92: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 93: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 94: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 95: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 96: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 97: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 98: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 99: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 100: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 101: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 102: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 103: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 104: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 105: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

Cursul 4Cursul 4 1113/03/200913/03/2009

Sisteme de operareSisteme de operare

Fire de executieFire de executie

Page 106: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 107: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 108: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 109: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 110: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 111: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 112: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 113: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 114: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 115: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 116: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 117: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 118: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 119: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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.

Page 120: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 121: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 122: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 123: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 124: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 125: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 126: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 127: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 128: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 129: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 130: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 131: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 132: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 133: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 134: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 135: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 136: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

ImplementariImplementari hibridehibride

13/03/200913/03/2009 CursulCursul 44 3232

Mai multe fire in spatiul utilizatorPe un fir din nucleu

Spatiulnucleu

Spatiulutilizator

Nucleu

Page 137: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 138: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 139: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 140: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 141: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 142: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

Cursul 5Cursul 5 1113.03.200913.03.2009

Sisteme de operareSisteme de operareComunicarea interproceseComunicarea interprocese

Page 143: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 144: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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)

Page 145: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 146: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 147: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 148: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 149: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 150: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 151: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 152: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 153: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 154: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 155: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 156: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 157: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

Solutia lui PatersonSolutia lui Paterson

13.03.200913.03.2009 Cursul 5Cursul 5 1616

Page 158: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 159: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 160: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 161: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 162: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 163: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 164: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 165: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

SemafoareSemafoare

13.03.200913.03.2009 Cursul 5Cursul 5 2424

Page 166: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 167: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 168: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 169: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 170: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 171: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 172: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

Problema filozofilorProblema filozofilor

13.03.200913.03.2009 Cursul 5Cursul 5 3131

Page 173: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

Problema filozofilorProblema filozofilor

13.03.200913.03.2009 Cursul 5Cursul 5 3232

Page 174: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 175: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

Problema Cititorilor si ScriitorilorProblema Cititorilor si Scriitorilor

13.03.200913.03.2009 Cursul 5Cursul 5 3434

Page 176: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 177: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 178: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 179: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

Problema Frizerului SomnorosProblema Frizerului Somnoros

13.03.200913.03.2009 Cursul 5Cursul 5 3838

Page 180: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

Cursul 6Cursul 6 1113.03.200913.03.2009

Sisteme de operareSisteme de operare

Planificarea proceselorPlanificarea proceselor

Page 181: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 182: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 183: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 184: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 185: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 186: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 187: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 188: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 189: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 190: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 191: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 192: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 193: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 194: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 195: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 196: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

PlanificareaPlanificarea bazatabazata pepe prioritatiprioritati--ExempluExemplu

13.03.200913.03.2009 CursulCursul 66 1717

Page 197: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 198: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 199: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

Cursul 7Cursul 7 1113.03.200913.03.2009

Sisteme de operareSisteme de operare

Interblocari (Deadlocks)Interblocari (Deadlocks)

univ. dr. Constantin POPESCU

Page 200: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 201: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 202: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 203: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 204: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 205: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 206: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 207: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 208: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 209: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 210: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 211: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 212: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 213: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 214: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 215: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 216: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

Modelarea interblocarilorModelarea interblocarilor

13.03.200913.03.2009 Cursul 7Cursul 7 1818

(o) (p) (q)

Procesul B este suspendat

Page 217: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 218: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 219: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

Detectarea interblocarii si Detectarea interblocarii si

restaurarearestaurarea

Cursul 7Cursul 7 212113.03.200913.03.2009

Page 220: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 221: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 222: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 223: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 224: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 225: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 226: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 227: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 228: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 229: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 230: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 231: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 232: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 233: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 234: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 235: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 236: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 237: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 238: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 239: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 240: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 241: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 242: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

Cursul 8Cursul 8 1113.03.200913.03.2009

Sisteme de operareSisteme de operareGestiunea memorieiGestiunea memoriei

Page 243: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 244: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 245: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 246: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

Gestiunea elementara a Gestiunea elementara a memorieimemoriei

Cursul 8Cursul 8 5513.03.200913.03.2009

Page 247: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 248: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 249: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 250: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 251: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 252: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 253: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 254: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 255: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 256: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 257: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 258: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 259: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 260: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 261: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 262: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 263: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 264: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 265: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 266: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 267: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 268: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 269: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 1102.06.201002.06.2010

Sisteme de operareSisteme de operareIntIntrr!!ri/Ieri/Ie""iriiri

Page 270: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 271: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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..

Page 272: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 273: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 274: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 275: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 276: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 277: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 278: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 279: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 280: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 281: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 282: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

Arhitectura unui sistem PentiumArhitectura unui sistem Pentium

02.06.201002.06.2010 Sisteme de operare Sisteme de operare -- Cursul 9Cursul 9 1414

Page 283: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 284: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 285: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 286: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 287: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 288: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 289: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 290: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 291: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 292: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 293: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 294: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 295: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 296: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 297: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 298: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 299: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 300: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 301: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 302: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 303: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 304: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 305: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 306: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 307: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 308: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 309: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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

Page 310: Sisteme de operare Introducere - cedc.ro · Arhitectura unui calculator 13/03/2009 Cursul 1 5 ... Tipuri de sisteme de operare 1. Sisteme de operare pentru masini mari de calcul 2

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