os(ro) not.de curs(12) [t1 4]

19
Referinte Bibliografice recomandate: În limba română 1. Radu Mârşanu. Sisteme de operare. –Bucureşti, ASE, 2001 2. George Dodescu şi alţii. Sisteme de operare Unix şi Windows. - Bucureşti, Editura Economică, 2003 3. Răzvan Zota. Sisteme de operare pentru rețele de calculatoare. - București, Editura Economică, 2002 În limba engleză Abraham Silberschatz and others. Operating System Concepts (7th Edition) -USA, BARENTS, Group LLC, 2007 A. Nico Habermann . Introduction to Operation Systems Design. - USA, Science Research Associates, 2005 În limba rusă Гордеев А.В. Операционные системы. - М.,Питер, 2007 Дейтел Х.М. и др. Операционные системы. - М.,Бином, 2006 Э. Таненбаум , Современные операционные системы, Питер, 2004, =============== ===================== ================= =================== T1. Introducere în Sisteme de operare (SO) 1. Rolul SO in Sisteme de Calcul 2. Evolutia SO 3. Clasificarea SO moderne Un sistem de calcul este format din următoarele componente: 1. Componenta hard ansamblu de componente electronice interconectate; 2. Programe pentru calculator (scenarii logice preformulate pentru funcţionarea şi conlucrarea componentelor electronice) eng. Software 3. Utilizatorii persoanele ce exploatează sistemul de calcul. 4. Canal de comunicare 5. Informaţia Tipizarea soft-ului Operaţional (SO Windows 7/XP, Linux-Ubuntu, MacOS, …; driver-e pentru DVD-drive, p-u imprimantă ...; componente de administrare partajarea drepturilor utilizatorilor, monitorizarea acţiunilor ...; componente comunicative de reţea algoritmi de recuperare a datelor, testarea conexiunilor...) De elaborare (limbaje şi medii de programare, sisteme de macro-programare şi proiectare asistata de calculator) Aplicativ (Programe şi sisteme birotice [universale], aplicaţii funcţional-specializate, utilite) Componentele software ale unui sistem de calcul

Upload: sunnymen

Post on 20-Nov-2015

32 views

Category:

Documents


1 download

DESCRIPTION

Sisteme e operare Note de curs

TRANSCRIPT

  • Referinte Bibliografice recomandate:

    n limba romn 1. Radu Mranu. Sisteme de operare. Bucureti, ASE, 2001 2. George Dodescu i alii. Sisteme de operare Unix i Windows. - Bucureti, Editura Economic, 2003 3. Rzvan Zota. Sisteme de operare pentru reele de calculatoare. - Bucureti, Editura Economic, 2002

    n limba englez

    Abraham Silberschatz and others. Operating System Concepts (7th Edition) -USA, BARENTS, Group LLC, 2007

    A. Nico Habermann . Introduction to Operation Systems Design. - USA, Science Research Associates, 2005

    n limba rus .. . - .,, 2007 .. . . - .,, 2006 . , , , 2004,

    =============== ===================== ================= ===================

    T1. Introducere n Sisteme de operare (SO)

    1. Rolul SO in Sisteme de Calcul 2. Evolutia SO 3. Clasificarea SO moderne

    Un sistem de calcul este format din urmtoarele componente:

    1. Componenta hard ansamblu de componente electronice interconectate; 2. Programe pentru calculator (scenarii logice preformulate pentru funcionarea i conlucrarea

    componentelor electronice) eng. Software

    3. Utilizatorii persoanele ce exploateaz sistemul de calcul. 4. Canal de comunicare 5. Informaia

    Tipizarea soft-ului

    Operaional (SO Windows 7/XP, Linux-Ubuntu, MacOS, ; driver-e pentru DVD-drive, p-u imprimant ...; componente de administrare partajarea drepturilor

    utilizatorilor, monitorizarea aciunilor ...; componente comunicative de reea algoritmi de recuperare a

    datelor, testarea conexiunilor...)

    De elaborare (limbaje i medii de programare, sisteme de macro-programare i proiectare asistata de calculator)

    Aplicativ (Programe i sisteme birotice [universale], aplicaii funcional-specializate, utilite)

    Componentele software ale unui sistem de calcul

  • Firmware-ul este componenta de programe ncarcate n memoria fixa ROM de catre producatorul

    sistemului de calcul. Aceasta componenta se afla la limita dintre hardware si software, reprezentnd

    software-ul integrat n partea de hardware.

    Componenta ROM-BIOS a sistemelor de calcul compatibile PC este o componenta firmware realizata prin

    microprogramare dinamica.

    Rolul componentei BIOS este de interfata ntre hardware si software, oferind componentei software functii

    de baza pentru utilizarea hardware-ului.

    n acest fel se realizeaza independenta componentelor software fata de caracteristicile hardware specifice

    sistemului de calcul, elibernd n acelasi timp componentele software de detalii legate de modul de lucru al

    hardware-ului.

    Definirea SO SO Ansamblu de programe specializate de calculator, predestinat formrii infrastructurii integrate

    (Hard+Soft+Communication), necesare pentru deservirea aplicaiilor informatice

    Un sistem de operare este un program ce gestioneaz resursele hard ale unui computer, ofer un suport

    pentru aplicaiile de program i asigur interfaa dintre utilizatorii computerului i resursele hard.

    SO reprezinta ansamblul de programe care asigura folosirea optima a resurselor fizice si logice ale unui

    sistem de calcul

    Rolul SO in Sisteme de Calcul

    Organizarea i monitorizarea interaciunii eficiente ntre componentele electronice ale calculatorului i

    aplicaiile funcionale orientate spre soluionarea problemelor determinate de utilizator

    Principalele etape n evoluia SO

    Perioada Tipul sistemului de calcul Particularitile SC Tipul SO

    1944-~55 Calculatoare separate (de 1-ma generatie)

    Capaciti de procesare foarte reduse

    SO primitiv,

    programarea manuala

    cu reconexiuni

    manuale

    ~1955-~70 Calculatoare separate - Mainframe

    (de 2-ua generatie)

    Capaciti de procesare slabe

    SO pentru procese

    predeterminate

    ~1970-~90 Calculatoare interconectate Mainframe-Mini-Staii de lucru

    (de 3-ia generatie)

    Capaciti de procesare medii

    SO rigide, cu

    administrale prin

    consol

  • ~1990-actual

    Reele de Calculatoare Mainframe-Mini-Staii de

    lucru-PC-Calculatoare

    integrate-Accesorii inteligente

    (de 4-ra generatie)

    Capaciti de procesare mari i foarte mari

    SO variate,

    adaptabile,

    inteligente, cu

    administrare mixt

    (consolint.grafic)

    Ex. de SO n dezvoltare SO au evoluat i s-au perfecionat paralel cu calculatoare.

    Astfel, exist SO pentru calculatoare:

    Pe 8 bits CP/M Pe 16-64 bits MS-DOS, Pe 32-64 bits Windows 95, Pentru reele de calculatoare Unix, Novel Netware, OS/2,Windows NT,ect.

    Abordarea clasificrii SO moderne Clasificarea sistemelor de operare din punctul de vedere al executiei proceselor.

    Sisteme de operare monotasking - nu asigura executia concurenta si nici protejarea resurselor ntre mai multe procese. (MS-DOS, CP/M)

    Sistemele de operare multitasking - sunt acele sisteme de operare care asigura executia concurenta a mai multor procese care exista concomitent in sistem.

    Clasificarea sistemelor de operare dupa gradul de interactiune cu utilizatorul

    sisteme de operare seriale, pentru care gradul de interactiune cu utilizatorul este nul; (comunicarea dintre utilizator si sistem nu este directa, ci este mediata de persoane specializate.

    La astfel de sisteme, n timpul executiei lucrarii sale, utilizatorul pierde total controlul asupra prelucrarii; el

    furnizeaza datele care se prelucreaza odata cu formularea cererii de prelucrare, si primeste rezultatele la

    ncheierea executiei.

    sisteme de operare interactive. (sistemele de operare interactive, permit comunicarea directa ntre utilizator si sistemul de calcul prin intermediul unui limbaj dedicat acestui scop.

    Sistemele de operare interactive pot fi: monouser, cnd comunicarea cu sistemul de calcul este posibila numai pentru un singur utilizator,

    prin intermediul consolei sistemului de calcul;

    multiuser, cnd sistemul de operare poate gestiona comunicarea concomitent cu mai multi utilizatori, prin intermediul echipamentelor terminale.

    Spre exemplu, sistemul de operare MS-DOS este un sistem interactiv monouser, sistemul de operare UNIX

    este un sistem de operare multiuser.

    Calculatoare moderne Mainframes (Calculatoare cu destinatie special) Mini-computers (Server-e specializate) Microcomputers (PC, tel.mobile, Integrate n auto etc.)

    Clasificarea sistemelor de operare dupa configuratia hardware deservita

    Sisteme de operare pentru microcalculatoare

    Sunt puternic interactive. Au un limbaj de comanda accesibil si unele chiar interfete grafice. Unele dintre ele sunt multiuser si multitasking. Sunt usor configurabile, oferind proceduri automate pentru instalarea si ncarcarea sistemului

    de operare.

    Ocupa un spatiu redus n memoria interna. Suporta dezvoltari pentru a permite conectarea n retele de calculatoare sau ca terminale la

    sistemele de operare mari.

    Au functia de gestionare a informatiei dezvoltata n directia manevrarii unui numar mare de fisiere de mici dimensiuni.

  • Sunt multi-user si multitasking. Folosesc un limbaj de comanda pentru utilizatori avizati. Procedurile de instalare sunt mai laborioase. Sunt mai rigide n cazul modificarii configuratiei hardware. Asigura un sistem de prioritati de executie dezvoltat. Ofera un sistem complex de protectie a informatiei. Sunt orientate spre lucrul cu multe terminale, putnd ndeplini functia de concentrator de

    date.

    Sistemele mari (mainframes) Sisteme de operare pentru calculatoare mainframe.

    Sistemele mari au fost primele sisteme de calcul utilizate pentru aplicaii comerciale i

    tiinifice.

    Aceste sisteme au evoluat de la sisteme cu prelucrare pe loturi, ce rulau o singur

    aplicaie la un moment dat, la sisteme cu divizarea timpului, ce permiteau utilizatorului s interacioneze

    cu sisteme de calcul.

    Sunt sisteme de operare seriale sau interactive si multitasking.

    Limbajul de comanda pentru utilizatori este adresat specialistilor. Gestioneaza un numar mare de echipamente periferice. Sunt orientate pentru prelucrari complexe si pentru volume mari de date

    Clasificarea sistemelor de operare din punct de vedere al tehnicilor de prelucrare.

    Sisteme de operare cu prelucrare pe loturi (batch processing). sistemele care lucreaza n multiprogramare Sisteme de operare n timp real. Sisteme de operare time-sharing (cu partajarea timpului).

    Sisteme cu prelucrare pe loturi Sistemele de operare batch-processing (cu prelucrarea pe loturi) folosesc notiunea de tren de lucrari,

    adica succesiunea tuturor lucrarilor care trebuie executate. Urmatoarea lucrare se va executa numai dupa

    terminarea celei anterioare.

    Sisteme cu prelucrare pe loturi aveau ataate, ca dispozitive de intrare, cititoare de cartele i uniti de

    band magnetic, i ca dispozitive de ieire imprimate, uniti de band magnetic i perforatoare de cartele.

    Sistemul de operare era extrem de simplu, singura lui ndatorire fiind cea de a

    transfera automat controlul de la un task la urmtorul.

    Pentru a mrii viteza de procesare, operatorii grupau taskuri cu cerine similare n loturi i le rulau apoi

    mpreun. ntr-un astfel de mediu de executare, CPU este adesea nefolosit (idle), deoarece viteza dispozitivelor

    periferice mecanice este cu mult mai mic (de

    cel puin 3 ori) dect cea a dispozitivelor electronice.

    Sisteme cu multiprogramare O dezvoltare a sistemelor batch-processing au constituit-o sistemele care lucreaza n multiprogramare, n

    care resursele sistemului erau mpartite catre partitii fixe.

    n fiecare din aceste partitii executndu-se prelucrari pe loturi.

    Avnd acces direct la mai multe taskuri, sistemul de operare putea realiza o planificare a lor, cu scopul de a

    utiliza eficient resursele.

    Modul de lucru a unui sistem de operare cu multiprogramare este urmtorul:

    sistemul de operare pstreaz mai multe taskuri, simultan, n memorie. Atunci cnd un program solicit o operaie de I/O, sistemul de operare intervine i face ca procesorul

    s lucreze pentru alt job, pn la terminarea operaiei de I/O.

    Att timp ct n memorie exist cel puin un task, procesorul nu este neutilizat.

  • T2. Arhitectura SO 1. Funciile realizate de SO 2. Structura SO moderne 3. Regimurile de funcionare (privilegiat i neprivilegiat /user/;

    SO ansamblul de programe, utilizat ca interfa (sistem de mediere) ntre aplicaii informatice (i

    utilizator) i echipamentele electronice ale computerului i perifericele lui.

    Funciile realizate de SO

    Funciile de baz: 1. Gestiunea proceselor; 2. Gestiunea memoriei (RAM)

    (Repartizarea ntre procese, memorie virtual) 1. Accesul standardizat la dispozitive periferice (Input-Output); 2. Formarea i gestiunea sistemului de fiiere (Gestiunea accesului la fiiere pe supori de memorie; 3. Interfaa cu utilizatorul; 4. Operaiuni de reea, gestiunea protocoalelor de comunicare

    Funcii de secundare:

    1. Executarea paralel i pseudo-paralel a sarcinilor (Multitasking); 2. Interaciunea ntre procese: schimbul cu date, sincronizarea; 3. Protecia/Securizarea SO i a aplicaiilor de aciunile nocive att din partea utilizatorului

    (intenionate sau intenionate), ct i din parte altor programe;

    4. Separarea drepturilor de acces i dirijarea proceselor n regim multiutilizator (autentificarea, autorizarea).

    SO are 2 meniri principale: 1. Oferirea utilizatorului /programatorului a unei maini virtuale de procesare n loc de dirijare

    direct a componentelor electronice (=uurarea lucrului) Maina virtual de procesare sistem de procesare cu o configuraie prestabilit, prin care este

    modelat (=emulat) pentru utilizator cu programele i echipamentele computerului existent

    SO formeaz stratul de programe, cu ajutorul cruia maina real s transform n main real

    Configuraia mainii virtuale poate fi mult diferit de cea real i poate fi adaptat pentru fiecare utilizator

    2. Sporirea eficacitii utilizrii computerului prin gestiunea raional a resurselor lui.

    Nucleul i module secundare n SO SO moderne sunt alctuite dintr-o mulime de module interdependente, fiecare din care poate fi

    convenional asociat cu una din dou clase:

    Nucleu (eng. kernel) module, care execut funiile de baz din interiorul SO. Funciile acestea sunt

    inaccesibile pentru aplicaiile utilizatorului. O parte din aceste funii asigur aplicaiile cu un mediu necesar

    pentru lucru - Application programming interface (API).

    Pentru asigurarea vitezei mari de lucru al SO toate modulele nucleului sau o mare parte din ei permanent se

    afl n memoria operativ, -> sunt rezidente.

    Module secundare/asociate (eng. extramodules) cele care execut funciile de asigurare (ex. arhivarea

    operativ a datelor, defragmentarea discurilor, vizualizarea strii componentelor, etc.)

    Module secundare n SO Aceste module s grupeaz n:

    - Utilite de sistem;

    - Programele de asigurare a proceselor de prelucrare;

    - Programe care ofer utilizatorului servicii suplimentare;

    - Biblioteci cu proceduri pentru variate necesiti

    Regimurile de funcionare Privilegiat (kernel mode), (supervisor mode). Neprivilegiat (user mode)

  • Partajarea timpului

    Partajarea resurselor SC exceptie (NetWareOS)

    Straturiule SO

    6 straturi: 0 repartizarea timpului procesorului, 1 gestiunea memoriei, 2 gestiunea comunicarii intre procese si consola utilizatoruluii 3 gestiunea proceselor I/O si a fluxurilor de informatie 4 programele /aplicatiile utilizatorului 5 Administrarea manuala a sistemului

    Mobilitatea SO

    Portabile /mobile Neportabile /orientate

  • T3. Gestiunea proceselor n SO

    1. Definiia proceselor i strile a unui proces; 2. Sincronizarea proceselor i metodele de planificare a execuiei proceselor; 3. Conceptul de fir de execuie; 4. ntreruperile i Interblocarea proceselor.

    Noiuni fundamentale

    Program: ansamblu ordonat de instruciuni;

    Instruciune: o operaie elementar executat de ctre procesor indivizibil (procesorul nu poate ntrerupe

    execuia ei);

    Proces: Entitate dinamic reprezentnd un program n stare de execuie alctuit din:

    zone de cod (programul principal, proceduri, funcii), zone de date (declaraii, definiii de date), resurse alocate procesului, informaii utile pentru evaluarea strii procesului (nume proces, stare, coninut

    registrii).

    Strile unui proces n timpul execuiei, procesul i schimb starea, definit ca mulime a activitilor executate de

    proces.

    Strile unui proces sunt: new (crearea procesului), Ready (procesul este gata de execuie ateptnd s-i fie alocat un procesor), Run (procesul este n execuie), wait (procesul ateapt apariia unui anumit eveniment, cum ar fi terminarea unei

    operaii de I/O sau primirea unui semnal),

    finish (terminarea execuiei procesului). n sistemele cu multiprogramare, procesele trec dintr-o stare n alta, n funcie de specificul fiecruia

    sau de strategia de planificare adoptat.

    Diagrama strilor i tranziiilor unui proces

    new

    ready run

    wait

    finish

    Trecerea dintr-o stare n alta

    new -> ready nseamn c procesul este luat n considerare pentru a fi executat; ready ->run se produce atunci cnd procesului i este alocat un procesor; trecere invers run -> ready se produce atunci cnd, conform unei politici de planificare,

    procesorul trebuie alocat unui alt proces;

    run -> wait se produce atunci cnd procesorul ntlnete o cerere de executatre a unei operaii de intrare/ieire;

    wait -> ready se produce atunci cnd operaia de I/O s-a terminat; run -> finish, nseamn terminarea execuiei procesului

  • Blocul de control al procesului vectorul de stare al procesului (eng. PCB Process Control Block)

    Fiecare proces este reprezentat n sistem prin blocul de control al procesului, care este o zon de memorie, cu urmtoarele informii:

    1. Identificatorul procesului 2. Starea actual a procesului; 3. Timpul estimativ de execuie; 4. informaii de I/O; 5. Memoria ocupat 6. Prioritatea sa la nivelul SO; 7. un pointer ctre un alt PCB.

    Sincronizarea proceselor i metodele de planificare a execuiei proceselor

    Sincronizarea proceselor reprezint un mecanism prin care un proces activ este capabil s blocheze execuia

    altui proces(trecerea din starea run n ready i invers), sau s se autoblocheze(s treac n starea wait), sau

    s activeze un alt proces.

    Un proces este independent dac execuia lui nu afecteaz sau nu poate fi afectat de execuia altor

    procese din sistem.

    Un astfel de proces poate fi oprit sau repornit fr a genera efecte nedorite. El este determinist(ieirile depind numai de starea de intrare), reproductibil(rezultatele sunt

    totdeauna aceleai, pentru aceleai condiii de intrare),

    nu partajeaz date cu alte procese din sistem. Dac execuia unui proces poate fi afectat de execuia altor procese din sistem sau poate influena

    strile unor procese, atunci spunem c procesul este cooperant. - cooperarea pentru realizarea unui

    scop comun.

    n acest caz, procesul partajeaz date mpreun cu alte procese din sistem, evoluia lui nu este determinist, fiind influenat de strile acestora, nu este reproductibil etc.

    Interaciunea proceselor necesit sincronizarea. Sincronizarea se pune n dou situaii posibile 1. Privind folosirea resurselor 2. Referitor la gestiunea mesajelor

    resurs logic partajat de ctre dou procese se numete resurs critic Partea de program(segmentul de cod) n care un proces acceseaz o resurs critic se numete

    seciune critic

    O soluie corect a problemei seciunii critice trebuie s satisfac urmtoarele condiii: excludere mutual: la un anumit moment, un singur proces i execut propria lui seciune critic; evoluie(progres): un proces care nu este n seciunea sa critic, nu poate s blocheze intrarea altor

    procese n propriile lor seciuni critice, atunci cnd acestea doresc acest lucru;

    ateptare limitat: ntre momentul formulrii unei cereri de acces n propria seciune critic de ctre un proces i momentul obinerii accesului, trebuie acordat un numr limitat de accese celorlalte

    procese n propriile lor seciuni critice.

    Mecanisme de sincronizare. 1. Semafoare - sunt folosite pentru sincronizare ntre procese. Corespunde sistemelor n care exist

    mai multe resurse de acelai tip.

    Semafor poate fi privit ca un contor, care poate fi incementat sau decrementat.

    Un semafor S este o pereche (v,q); v -reprezint valoarea semaforului, fiind iniializat la crearea

    semaforului cu o valoare v0, iar q este o coad, iniial vid n care sunt introduse procesele care nu reuesc

    s treac de semaforul s.

    Dac v are valoarea pozitiv - resurs este disponibil Dac v=o (indisponibil) urmtoate ncercare de decrementare va duce la blocarea procesului.

    2. . Cozi de mesaje (Relaia productor/consumator) sunt folosite de procese pentru comunicare ntre ele prin mesaje

  • Sunt mecanisme de comunicare unidirecionale Depunerea, respectiv extragerea unui mesaj din zona comun (ZC), trebuie s satisfac urmtoarele

    restricii:

    Consumatorul nu poate s extrag un mesaj, pe care productorul este n curs s-l depun, adic operaiile de depunere i extragere trebuie s se execute n excludere

    mutual la nivelul mesajului.

    Productorul nu poate s depun un mesaj atunci cnd ZC este plin, iar dac ZC este vid, consumatorul nu poate extrage nici un mesaj.

    ZC

    0 1 n-1

    Produce Depune Extrage Consum

    Problema cititori/scriitori Atunci cnd o structur de date, de exemplu un fiier sau o baz de date este accesat n comun de ctre mai

    multe procese concurente, dintre care unele doresc doar s citeasc informaii, iar altele doresc s

    actualizeze(citeasc, scrie sau modifice) structura respectiv, cele dou tipuri de procese se mpart generic

    n cititori i respectiv scriitori. Se impun urmtoarele restricii:

    Doi cititori pot accesa simultan obiectul partajat; Un cititor i un scriitor nu pot accesa n acelai timp obiectul disputat.

    Metodele de planificare a execuiei proceselor Planificarea se bazeaz pe:

    Disponibilitatea resurselor Prioritatea proceselor Durata procesului Garantarea serviciilor (SO trebuie s asigure executarea oricrui proces) Garantarea termenelor (SO trebuie s ruleze orice proces ntr-un anumit timp)

    Organizarea planificrii proceselor Planificatorul este responsabil de multiplexarea proceselor n vederea utilizrii CPU. Politica de planificare determin cnd este momentul ca un proces s elibereze CPU i care dintre

    procesele aflate n starea READY s treac n starea RUN.

    Mecanismul de planificare determin modul cum administratorul de procese multiplexeaz CPU de ctre mai multe procese i cum este alocat CPU unuia dintre proces.

    Mecanismul de planificare este compus din mai multe pri, care difer n funcie de modul de implementare al SO respectiv.

    Algoritmii de planificare cu evacuare i fr evacuare

    Algoritmii de planificare fr evacuare presupun c odat ce unui proces i s-a alocat CPU, acesta va primi serviciile acesteia pna la terminarea execuiei sale.

    Algoritmii cu evacuare se bazeaz pe calculul prioritii fiecrui proces. Unul dintre procesele cu prioritatea cea mai nalt va fi servit de CPU. Cnd n lista READY este introdus un proces cu o

    prioritate mai mare dect cea a celui servit de ctre CPU, acesta va fi evacuat i introdus n lista

    READY, execuia lui fiind reluat cnd prioritatea lui va fi cea mai nalt, iar CPU va servi noul

    proces.

    Un model simplificat de planificare a proceselor Numai pentru algoritmi cu evacuare

    Proces nou Executat

    Lista Ready Planificator CPU

  • Strategiile fr evacuare Ele permit unui proces ca atunci cnd i este alocat CPU s fie executat complet, deci nu mai exist

    procesul de comutare i nici cel de introducere i extragere din lista READY. Aceste metode se

    bazeaz pe modelele de ateptare.

    Algoritmul FCFS (First Came First Served) sau FIFO (First Input First Output).

    Ordinea execuiei proceselor folosind strategi FCFS

    p4

    p3

    p2

    p1 p0

    0 350 475 950 1200 1275

    Algoritmul SJN (Shortest Job Next) De fiecare dat, jobul care se execut primul este cel care consum cel mai puin timp CPU.

    Probabil c acest algoritm este cel mai bun, ns are dezavantajul c ar trebui s se cunoasc dinainte timpul CPU necesar al fiecrui proces.

    Ordinea temporal a execuiei proceselor folosind strategia SJN

    p2

    p0

    p3

    p1 p4

    0 75 200 450 800 1275

    Algoritmul bazat pe prioriti este cel mai des folosit. Toate celelalte strategii folosite, sunt cazuri particulare ale acestora.

    n planificarea bazat pe prioriti, proceselor le este alocat CPU pe baza unor prioriti alocate extern.

    Aceste prioriti sunt numere naturale, un proces avnd prioritate fa de altul dac numrul alocat are o

    valoare mai mic. Joburile se ordoneaz dup aceste prioriti, apoi se execut n aceast ordine.

    Se disting dou tipuri de prioriti: interne i externe.

    Prioritile interne sunt acordate pe baza unor particulariti ale procesului, relative la mediului de calcul

    respectiv, cum ar fi de exemplu timpul de execuie.

    Prioritile externe reflect importana sarcinii pe care procesul respectiv o execut, stabilit pe baza

    anumitor informaii cum ar fi de, exemplu numele utilizatorului(cui aparine procesul respectiv), natura

    sarcinii(ct de important este problema pe care o rezolv) etc.

    Ordinea temporal a execuiei proceselor folosind strategia bazat pe prioriti

  • P0

    p4

    p2

    p1 p3

    0 250 375 850 925 1275

    Strategii cu evacuare - Planificarea circular(RR-Round Robin)

    P4

    P3

    p2

    p1 p0 0 100 200 300 400 450 475 550 650 750 850 950 1050 1150 1250 1275

    Procesele pregtite pentru execuie sunt ordonate ntr-o coad la CPU

    Coad principal Coad secundar

    Conceptul de fir de execuie Pe calculatoarele moderne se execut multe aplicaii n care, din punct de vedere logic, sunt structurate

    pe activiti multiple, care s-ar putea desfura simultan.

    Ex.: n cadrul unui browser de WWW, o activitate poate fi afiarea unor texte sau imagini, pe cnd alta poate fi regsirea unor informaii de pe anumite servere dintr-o

    reea de calculatoare.

    Ex.: Un procesor de texte poate executa simultan afiarea de imagini sau texte, citirea unor comenzi de la tastatur i verificarea greelilor gramaticale sau de sintax

    ale textului introdus.

    Fire de executie Un proces nu este un program. In modelul de proces discutat pn acum, programul asociat era executat secvenial, instruciune

    dup instruciune. Altfel spus,un singur proces execut o singur operaiune la un moment dat.

    Sunt cazuri n care se dorete ca un program s execute n paralel dou sau mai multe operaii. Acest lucru se obine prin introducerea n proces a mai multor fire de execuie.

    Avantaje:

    Aplicaiile rspund mai ferm la interaciunea cu utilizatorul Permit partajarea resurselor Duc la economia de memorie i de procesor Utilizarea optim a calculatoarelor multiprocesor

    Firele de execuie pot coexista ntr-un proces(n acelai spaiu de memorie), evident cu necesitatea de a fi

    sincronizate atunci cnd solicit acces la resurse partajate, ca i n cazul proceselor.

  • Resursele proprii fiecrui fir de execuie sunt, n general limitate la:

    stiv, variabile locale i numrtor(contor) de program.

    Variabilele globale ale unui program vor fi implicit accesibile tuturor firelor din acel program.

    Firele de execuie se mpart n:

    fire ale nucleului SO, implementate de ctre sistemul de operare, care realizeaz crearea, planificarea i administrarea lor n spaiul nucleului, ele realiznd anumite operaii protejate cerute

    de ctre procese

    fire ale utilizatorului, implementate de ctre o bibliotec ce poate fi accesat de ctre utilizator i care ofer posibiliti de creare, planificare i administrare a firelor, fr a fi necesar suportul

    nucleului;

    Firele pot fi gestionate la nivel de user-mode sau la nivel de kernel.

    SO moderne ofer suport pentru fire la nivel de kernel.

    Exist mai multe modele de implementare a firelor:

    Many-to-One Model: mai multe fire dintr-un proces sunt gestionate ( reprezentate )de un singur fir din kernel. Comutarea ntre fire este rapid i este gestionat n spaiul utilizator. Dar toate firele se

    blocheaz n cazul n care unul din fire este blocat ntr-un apel de sistem.

    Un singur fir poate accesa kernelul, acest model de fire nu poate permite rularea n paralel a firelor pe

    mai multe procesoare.

    One-to-One Model: fiecrui fir din spaiul user-mode i corespunde un fir n kernel. Dezavantajul este c pentru fiecare fir se mai creeaz nc unul n kernel. Linux,Windows, Unix

    implementeaz acest model.

    Many-to-Many Model: mai multe fire din kernel folosesc la planificarea mai multor fire din spaiul utilizator. Programatorii pot crea orict de multe fire n programele lor.

    Model hibrid (many to many plus one to one)

    Interblocarea proceselor Resursele logice (fiiere, baze de date, semafoare etc.) sau fizice (imprimante, spaiul de memorie intern,

    memorii externe, cicluri UC etc.) pot fi formate din unul sau mai multe elemente.

    Etapele parcurse de un proces n cursul utilizrii unei resurse sunt: cerere de acces: dac cererea nu poate fi satisfcut imediat, procesul care a

    formulat-o va fi nevoit s atepte pn cnd poate dobndi resursa;

    utilizare: procesul poate folosi resursa; eliberare: procesul elibereaz resursa.

    Cererea i eliberarea de resurse se face prin apeluri de sistem.

    Evidena alocrii resurselor se realizeaz prin intermediul unei tabele de sistem.

    Dac un proces cere o resurs ale crei elemente sunt alocate altor procese din sistem, atunci procesul care a

    efectuat cererea va fi pus ntr-o coad de ateptare, asociat resursei respective

    Un set de procese se afl n stare de interblocare atunci cnd orice proces din setul respectiv se afl n ateptarea unui eveniment de eliberare a unei resurse cerute, ce poate fi produs numai de ctre un

    proces aflat n mulimea respectiv.

    Pentru rezolvarea problemei interblocrii se folosesc, n principiu dou metode. 1. utilizarea unui protocol care s nu permit niciodat sistemului s intre n starea de

    interblocare. Acest lucru se realizeaz fie prin prevenirea, fie prin evitarea interblocrii.

    2. metod permite sistemului intrarea n starea de interblocare i apoi rezolv aceast problem.

    Condiii necesare pentru apariia interblocrii

    excludere mutual: exist cel puin o resurs ocupat n mod exclusiv, adic fr a putea fi folosit n comun de ctre un singur proces; dac un alt proces formuleaz o cerere pentru aceeai resurs, va

    fi nevoit s atepte pn n momentul eliberrii ei;

  • ocupare i ateptare: exist cel puin un proces care ine ocupat cel puin o resurs i ateapt s obin resurse suplimentare ocupate n acel moment de ctre alte procese;

    imposibilitatea achiziionrii forate: resursele nu pot fi achiziionate forat de ctre un proces de la un alt proces care le ocup n acel moment; resursele pot fi eliberate numai de ctre procesele care

    le ocup, dect dup ce acestea i-au ndeplinit sarcinile;

    ateptare circular: n sistem exist un set de procese aflate n starea de ateptare, (p0,p1,..,pn), astfel nct p0 ateapt eliberarea unei resurse ocupate de ctre p1, p1 ateapt eliberarea unei

    resurse ocupate de ctre p2, .a.m.d. pn ateapt eliberarea unei resurse ocupate de ctre p0.

    Evitarea interblocrii Starea alocrii prestabilite a resurselor Aplicarea grafului de alocare a resurselor Folosirea ntreruperilor de sistem (vezi Tema 5)

    Detectarea interblocrii Reevaluarea solicitrii de resurse la intervale prestabilite de timp,

    Detectarea gradul majorat de utilizare a CPU

    Achiziionarea forat a resurselor Aceast metod asigur eliminarea strii de intetrblocare prin achiziionarea succesiv a resurselor

    utilizate de anumite procese i alocarea lor altor procese, pn cnd se elimin interblocarea.

    Principalele probleme care trebuie rezolvate n acest caz sunt: alegerea proceselor crora li se vor lua resursele, dup criterii care s conduc la

    costuri minime(numrul resurselor ocupate, timpul de execuie consumat);

    reluarea execuiei: un proces cruia i s-au luat forat anumite resurse nu-i mai poate continua normal execuia, ea trebuie reluat dintr-un moment anterior, cnd a primit

    prima dintre resursele luate;

    evitarea nfometrii , adic s nu fie selectat pentru achizionare forat a resurselor un acelai proces.

    ntreruperi (IRQ) (de sine statator)

  • T4. Gestiunea memoriei n SO 1. Rolul memoriei RAM n calculator; Memoria ierarhic 2. Gestiunea elementara a memoriei; Interschimbarea; 3. Memoria virtual

    Ideal, orice programator ar dori ca memoria sa fie:

    Infinit de mare Infinit de rapida sa fie Nevolatil (s-i pastreze coninutul cnd nu este alimentat cu curent

    electric)

    Memoria intern este zona de memorie care poate fi accesat n mod direct de ctre microprocesor.

    Orice cantitate de date nainte de a putea fi prelucrat de microprocesor trebuie s ajunga mai nti prin

    memoria intern a calculatorului.

    Memoria RAM (Random Access Memory - Memorie cu acces aleator) este locul n care ajung datele nainte de a fi prelucrate de microprocesor - aceast memorie este spaiul de

    lucru al calculatorului.

    Pentru c totul trece prin memoria RAM, capacitatea de stocare a memoriei RAM i rapiditatea acesteia influeneaz n mod direct performanele calculatorului.

    Orice software este conceput s funcioneze n prezena unei anumite cantiti minime de memorie RAM. Dac ntr-un calculator nu se gsete minimul de memorie RAM cerut de un program -

    acesta va refuza s porneasc sau va funciona necorespunztor.

    Ierarhia memoriei

    Memorie ierarhica: Cu puina memorie cache - foarte rapid, scump i volatil Sute (mii) de megaocteti de memorie principala (RAM) rapid, pre mediu,

    dimensiuni medii, volatil

    Sute de gigaoctei de spaiu de stocare pe disc (lent, ieftin, dimensiune mare, nevolatil)

    Manager de memorie(MMU - Memory Management Unit) (Gestionarul memoriei) partea sistemului de operare care gestioneaz aceasta memorie ierarhic

    Adresarea n memoria operativ (RAM) Sa reprezint prin entitate de celule cu adrese (= identificatoare convenionale) lineare (=atribuite n

    ordine),

    Ex.: 23FF8, D36EB format hexazecimal Spaiul de adrese este redat prin 2 abordri:

    Spaiu de adrese fizice - Totalitatea tuturor adreselor accesibile n SC, Spaiu de adrese logice - Totalitatea tuturor adreselor cu care lucreaz procesorul.

  • Principiul localitii Majoritatea programelor n timpul anumitui interval de timp lucreaz cu un numr

    mic de adrese de memorie

    Reflectarea linear continu a adreselor (Adresa reala = Adresa baza + Deplasarea adresei)

    Funciile gestionarului memoriei operative Evidena strict a spaiilor libere i ocupate n memorie Formarea corespondenei ntre adresele fizice i logice Repartizarea memoriei ntre procese concurente Descrcarea proceselor (n ntregime sau parial) n memoria extern / secundar.

    Exist dou metode de gestiune a memoriei:

    metode care mut procese din memorie pe disc i invers (utilizeaz tehnica de swapping sau cea de paginare);

    metode care nu mut procesul din memorie pe disc i invers (fr swapping sau paginare).

    Gestiunea memoriei fr swapping sau paginare - Sisteme mono-proces(monoprogramming) memoria este partajat ntre programul n execuie i sistemul de operare

    Gestiunea memoriei fr swapping sau paginare - Multiprogramare cu partiii fixe Ct timp un proces ateapt terminarea unei operaii I/O, se poate executa un alt proces

  • A. cozi separate B. o singur coad a) se caut primul proces din coad (pornind din dreapta) care ncape n partiia disponibil.

    b) se caut n ntreaga coad cel mai mare proces care ncape n partiia disponibil

    Probleme cu partiiile fixe Cozi separate: memoria nu este utilizata eficient daca sunt multe procese intr-o clasa si putine in

    alta clasa (ex.: Partitiile 1 si 3);

    O singur coada: procesele mici pot utiliza o partitie prea mare - memoria nu este utilizata eficient;

    Repartiia dinamic - Interschimbarea (eng.-swapping) dac nu pot fi meninute toate procesele active n memorie swapping:

    aducerea unui proces n memorie

    executarea sa pentru un timp i apoi ducerea lui napoi pe disc

    Tehnica de swapping

    Iniial doar procesul A este n memorie Apoi procesele B i C sunt create sau aduse de pe disc n fig (d) procesul A este trecut pe disc Apoi ntr procesul D i iese procesul B La sfrit ntr din nou procesul A

    Avantaj: flexibilitate : numrul, locaiile i dimensiunile partiiilor variaz dinamic

    mbuntirea utilizrii memoriei

    Probleme: crearea de guri n memorie compactarea memoriei

    Atunci cand prin swapping sunt create spaii in memorie este posibil ca ele sa fie unite intr-un singur spaiu

    mare;

    Aceasta tehnic se numeste compactarea memoriei;

    Nu este folosita in mod normal deoarece necesit mult timp de procesor

    Monitorizarea memoriei cu hri de bii

  • Memoria este mprit n uniti de alocare (dim. de la cteva octeti la civa KB) fiecare unitate de alocare va avea asociat un bit n hart: 0 (liber) / 1 (utilizat)

    Monitorizarea memoriei cu liste nlnuite meninerea unei liste nlnuite a segmentelor alocate i a celor libere lista este sortat dup adresele segmentului simplific operaia de actualizare a listei atunci cnd

    un proces i termin execuia sau este dus pe disc

    Fiecare intrare din lista este compusa din:

    Identificator al tipului (S-spatiu sau P-proces) Adresa la care incepe Dimensiunea Indicator catre urmatoarea intrare

    Algoritmi pentru alocarea de memorie Dac segmentele ocupate i cele libere sunt pstrate ntr-o list ordonat dup adrese, atunci sunt posibile 5

    algoritmi pentru a aloca memoria necesar unui proces nou creat sau adus de pe disc:

    Algoritmul prima potrivire (first fit) (eng.fit potrivire): Gestionarul de memorie cauta in lista de segmente un spatiu liber suficient de mare Spatiul este spart in doua parti, una pentru proces iar cealalta va ramane ca memorie

    nefolosita, doar daca nu se potriveste exact

    Algoritmi pentru alocarea de memorie

    Exemplu:

    Avem o lista de spatii libere de dimensiunile: 10, 20, 10, 50, 5 Un proces are nevoie de o dimensiune egala cu 4.

    Ce spatiu liber e folosit?

    First fit : alege primul spatiu liber destul de mare (spatiul de dimensiune 10) Sparge spatiul in unul utilizat (4) si altul de dimensiune 10 - 4 = 6 Algoritmul este simplu si rapid , deoarece caut cel mai puin n list.

    Algoritmul urmatoarea potrivire (next fit): opereaz la fel ca algoritmul anterior, doar c memoreaz locul unde a gsit un segment liber

    adecvat.

    La urmtoarea cutare, va porni din locul memorat anterior. Este un pic mai lent decat alg. First fit

    Algoritmul cea mai buna potrivire (best fit):

    caut cel mai mic segment liber ce poate fi alocat procesului Este mai lent

    Algoritmul celei mai proaste potriviri ( worst fit): caut cel mai mare segment liber, astfel nct, dup separarea lui n dou segmente, segmentul liber

    va fi suficient de mare pentru a fi alocat altui proces.

    Simularile au aratat ca nu este foarte bun Observaie Viteza de procesare, a celor 4 algoritmi poate fi crescut dac se menin liste separate pentru segmentele

    alocate i cele libere.

  • Algoritmul de potrivire rapida (quick fit): menine liste separate pentru segmente de dimensiunile cele mai des ntlnite. Spatiile libere sunt gsite foarte repede

    Memoria virtuala

    Adresele ce pot fi generate de un program formeaz spaiul de adrese virtuale. MMU (Memory Management Unit) mapeaz adresele virtuale n spaiul adreselor fizice.

    Tehnica paginrii (paging):

    MMU (Memory Management Unit) se mapeaz o poriune a unui program ntr-o zon de memorie Spaiul adreselor virtuale este mprit n pagini Unitile corespunztoare din memoria fizic sunt denumite frame-uri (cadre de pagini). Dim. unei pagini = dim. unui frame

    Relatiile dintre adresele virtuale si adresele fizice sunt trecute intr-o tabela de pagini Exista o tabela de pagini pentru fiecare proces Sistemul de operare mentine tabela de pagini MMU utilizeaza aceasta tabela de pagini

  • Exemplu: Presupunem c sistemul de calcul poate

    genera adrese pe 16 bii (de la 0 la 64k), dar dispune doar de 32k de memorie.

    Pagin de 4k 16 pagini i 8 frame-uri. 8 frame-uri 8 pagini pot fi mapate n mem. fizic

    Paginile notate cu X, nu sunt mapate n mem. fizic.