Sunteți pe pagina 1din 39

CURS 1

TIPURI DE SISTEME DE CALCUL SI CARACTERISTICILE LOR:


Sistemele de calcul se impart in:
MICROCALCULATOARE, accesibile d.p.d.v al pretului, dimensiunii reduse, portabile, pot fi
folosite in orice domeniu, lucreaza in retea, putand sa realize schimburi de date;
MINICALCULATOARELE au dimensiuni medii, mai scumpe decat PC-urile, au fost create pentru
executarea unor functii specializate: aplicatii multiutilizator, masini cu control numeric,
automatizari industrial, au putere si capacitate de stocare mai mare, UCP complexa, system de I/O
foarte dezvoltat in sensul comunicarii prin retea de periferice in sistem multi-utilizator;
MAIN-FRAME-uri situate intre supercalc. Si minicalc. procesor foarte complex, volum mare de
stocare in UM, sistem de I/O complex, orientat pe gestionare de statii de lucru, permite acces multi-
utilizator, functioneaza de regula fara intrerupere, ceea ce presupune accesul controlat la date si un
sistem de protectii adecvat;
SUPERCALCULATOARELE cele mai puternice, complexe si scumpe, au procesorul format dintr-un
numar mare de microprocesoare, proiectate pentru calcul paralel.
FUNCTIILE SO:
Functiile de baza ale unui SO sunt extinderea masinii si gestionarea resurselor din perspectiva
multiplexarii intre timp si spatiu.
CE TIP DE MEMORIE SE CITESTE INITIAL LA RESTARTAREA UNUI SISTEM DE CALCUL?
Memoria ROM se citeste initial.
CE REPREZINTA ISA? Industry Set Architecture este o magistrala de date inventata de IBM.
LA CE SE REFERA TERMENUL DE MULTIPLEXARE
Multiplexarea este mijlocul prin care gradul de utilizare al unei resurse este imbunatatit ca urmare a
deservirii simultane a mai multor utilizatori.
DEFINITI TERMENUL DE MULTIPROGRAMARE
Multiprogramarea este tehnica de exploatare a SO care permite existenta simultana in memoria
interna a mai multor programe care se executa concurent, in alte parti fixe de memorie.
DEFINITI TERMENUL DE SPOOLING
Spooling reprezinta un mod eficient de exploatare a sistemelor de calcul seriale, bazat pe principiul
separarii operatiilor de intrare de op. de iesire si de restul operatiilor.
CE REPREZINTA GUI?
Graphical User Interface.- este numit sistemul de afiaj grafic-vizual pe un ecran.
CARE ESTE DIFERENTA DINTRE SO PENTRU RETEA SI SO PENTRU OPERARE DISTRIBUITE?
Diferenta este ca intr-un sistem distribuit existenta mai multor calculatoare autonome este
transparenta pentru utilizator. Utilizatorul unui sistem obisnuit nu este constient ca exista mai
multe procesoare, in schimb intr-un sistem central, utilizatorii trebuie sa se conecteze explicit la o
anumita masina.
TIPURI DE SISTEME DE OPERARE
Main-frame, Server, Multiprocesor, Pc, Real-Time, Sensor mode, Smart card.

AVANTAJELE SISTEMELOR PARALELE:
Avantajele unui sistem paralel sunt: executarea simultana a doua sau a mai multor preocese,
castigandu-se astfel timp.
DESCRIETI MULTIPROCESAREA ASIMETRICA/SIMETRICA
In multi-procesarea asimetrica procesoarele sunt dedicate unui anumit tip de sarcini; de accea un
procesor poate fi neutilizat daca sarcinile sale nu sunt necesare.
In multi-procesarea simetrica fiecare procesor este disponibil pentru orice task.
DESCRIETI SISTEMELE CLUSTER
Sunt sisteme multiprocesor, compuse din doua sau mai multe sisteme, individuale. Definitia
acceptata in general este ca sistemele cluster impartasesc depozitarea si sunt legate via LAN.
CLASIFICATI SO DUPA DESTINATIA LOR
In functie de sistemul de calcul pe care vor fi utilizate SO sunt: Main-frame(SO), Server(SO),
Multiprocesor(SO), PC SO, Real-Time SO, Embedded SO, Smart card So, Sensor mode SO.
CICLUL DE BAZA AL FUNCTIONARII UNUI PROCESOR
Faza de pregatire/Extragere instructiune Decodificarea Executarea instructiunii
DEFINITII
PSW program status word
IP Instruction pointer
SP stack pointer
RAM- Random acces memory
ROM read only memory
EEPROM electrically erasable programable read only memory
CMOS complimentary metal oxide semiconductor
APEL DE SISTEM
Apelul de sisteme inseamna de fapt apel de Kernel, deci invocarea SO
TIPURI DE MEMORIE
Memorie temporara Cache si RAM
Memorie Permanenta ROM,HDD, CD-ROM, FLASH MEMORY.
MODALITATEA DE FUNCTIONARE A MEMORIEI CACHE
Pentru a se recupera din timpul necesar la memorie se apeleaza la memoria CACHE care retine
date necesare pentru rularea programelor active.
STRUCTURA UNUI HDD
D.p.d.v constructiv, HDD-ul contine unul sau mai multe suporturi magnetice(platane) fixate pe un
ax vertical, care are rolul sa imprime miscarea de rotatie a acestora. Pentru stocarea informatiei este
necesara formatarea si eventual partitionarea.
MMU: Memory Management Unit = Translatarea un proces de atribuire si organizare(mopare) a
adreselor logice si adrese fizice de memorie
PLUG & PLAY---Sistemul PLUG & PLAY faciliteaza folosirea unei componente hardware intr-un
sistem fara a fi nevoie de configurarea dispozitivului sau interventia utilizatorului in rezolvarea
conflictelor de resurse.
MULTI-TASKING capacitatea de a executa mai multe task-uri concomitent
PROCESOARELE MULTITHREADING SI MULTI-CARE
Firele de executie aduc noutatea pentru modelul proceselor, care permit executiile multiple,
independente in interiorul unui proces. Deoarece firele de executie au proprietati asemanatoare cu
ale proceselor, acestea sunt numite procese usoare. Termenul MULTITHREADING este folosit pentru
a descrie situatia in care este permisa alocarea fiecarui fir, catre un CPU separat. Procesoarele
MULTI-CARE sunt cele care au mai mult de un nucleu.
CE REPREZINTA O INTRERUPERE?
De fiecare data cand un proces isi incepe felia de timp, executoru initializeaza un circuit de
temporizare care va masura urmatoarea cuanta. La sfarsitul cuantei , circuitul de temporizare
genereaza un semnal care poarta numele de intrerupere.
CUM FUNCTIONEAZA O INTRERUPERE?
UCP reactioneaza la acest seamnal foarte asemanator ca atunci cand este intrerupt in timpul
desfasurarii unei activitati: opreste activitatea, memoreaza unde anume se afla in operatia
respectiva, si acorda apoi atentia cuvenita sursei intreruperii. La primirea unui semnal de
intrerupere UCP completeaza ciclul curent de extragere-decodificare-executare, salveaza pozitia din
procesul curent si incepe executia unui program de tratare a intreruperilor.
DMA- direct memory acces este un proces prin care un dispozitiv extern preia controlul
magistralei, in locul procesorului. Ideea fundamentala este de a transfera blocuri de date in mod
direct intre memorie si periferice, fara interventia UCP.
PCI perifheral component interconnect. Componentele PCI fac legatura intre dispozitivele
hardware si computer
SCSI small component system interface. Controloarele SCSI sunt folosite in special in sistemele
care au nevoie de performanta si stabilitate ridicata.
USB universal serial bus
IDE integrated drive electronics
IEEE 1934 (firewire) defineste o interfata seriala de viteza inalta care se poate utiliza pentru
conectarea la PC a dispozitivelor periferice.
BIOS basic imput/output system
DIFERENTA DINTRE MODELUL DE FUNCTIONARE PIPELINE SI MODELUL DE FUNCTIONARE AL
UNEI UCP SUPER SCALARE.
In cazul in PIPELINE - UCP are unitati separate pentru extragere, decodare si executare, deci in timp
ce se executa instructiunea n, se decodeaza instructiunea n+1 si se extrage instructiunea n+2. In
cazul modelului super scalar sunt mai multe unitati de executare, deci doua sau mai multe operatii
sunt prelucrate in acelasi timp, decodate si descarcate intr-un buffer de asteptare pana pot fi
executate.
SENSOR NODE OPERATING SYSTEM
Este un SO constituit dintr-o retea de senzori. Acesti senzori comunica intre ei si cu o statie de baza,
folosind o conexiune wireless. Acesti senzori reprezinta de fapt mici calculatoare bazate pe o baterie
cu un radio incorporat. Au putere limitata si nu pot functiona pe perioade lungi de timp. Fiecare
senzor este un calculator cu CPU, RAM, ROM. Sistemul de operare trebuie sa fie mic si simplu,
deoarece senzorii au putin RAM si baterii. Un sistem de operare cunoscut este TINY OS.
Curs 2
Ce reprezinta un proces?
Procesul reprezinta o secventa de activitati care se executa la un moment dat in sistemul de calcul si
care se caracterizeaza prin:
- prelucrarile care se realizeaza, determinate de secventa de instructiuni care controleaza
procesul;
- prelucrarile care se realizeaza, determinate de secventa de instructiuni care controleaza
procesul;
- contextul de lucru asupra caruia actioneaza procesul, prin intermediul prelucrarilor, si
care include resursele alocate procesului.

De ce avem nevoie de o memorie virtuala? ---- Atunci cand spatiul de adresare este prea mic este
necesara memoria virtuala.
Sistemul de protectie al fisierelor (directoare si fisiere obisnuite) in Unix. ~ este destinat
controlului accesului la fisiere. Sistemul Unix realizeaza o buna separare a contextelor de executie.
Exista trei tipuri de acces la fisiere:
R (read) dreptul la citire, ce permite vizualizarea continutului;
W (write) dreptul de scriere, ce permite modificarea fisierului;
X (execute) dreptul la executie, ce permite incarcarea fisierului in memorie si lansarea lui in
executie sau citirea si executia unui fisier de comenzi Shell.
In cazul directoarelor, drepturile R, W, X sunt interpretate astfel:
R permite utilizatorului sa deschida si sa citeasca fisierul director cu comanda ls;
W permite utilizatorului sa creeze si sa stearga fisiere in directorul respectiv;
X permite ca sistemul sa caute in directorul respectiv in cursul prelucrarii unei cai de acces.
Pentru sistemul Unix exista trei categorii de utilizatori:
U (user) proprietar;
G (group) grup;
O (other) alti utilizatori;
A (all) pentru toate cele trei categorii.
Sistemul Unix este astfel conceput si elaborat incat fiecare fisier are un proprietar, de obicei
persoana care l-a creat. Mai multi utilizatori care fac parte dintr-un compartiment de lucru formeaza
un grup.
Sistemul de protectie a accesului la un fisier se bazeaza pe confruntarea cererilor
utilizatorului (r, w, x) cu drepturile asociate categoriei din care acesta face parte (u, g, o). Pentru
precizarea completa a drepturilor de acces la un fisier sunt necesari 9 biti, 3 biti pentru fiecare
categorie de utilizator.


Ce este file descriptor?
Identificarea fisierului se face printr-un asa-numit descriptor de fisier acesta este un numar intreg
care este asociat fisierului in momentul deschiderii acestuia.
Tipuri de fisiere Unix.
Principalele tipuri de fiiere existente pe un sistem UNIX sunt:
Fiiere text - conine caractere ASCI
Fiiere de date - conin pe lng informaia n sine i informaii speciale de formatare
Fiiere surs - conin date scrise ntr-un limbaj de programare precum C, C++, Java, Pascal
Fiiere executabile - reprezint programe obinute cu ajutorul unui compilator i editor de
legturi ce pot fi rulate
Programe shell - ste att un fiier text ct i un fiier ce poate fi rulat. El conine linii text ce
reprezint instruciuni legate de programarea shell
Fiiere legtur - este o referin ctre un fiier stocat n alt locaie n sistem
Fiiere asociate unor dispozitive - conin informaii legate de componente hardware ale
calculatorului i sunt fiiere speciale cu referire la funcii de administrare a sistemului.
Memoria tampon =>un tampon este o locatie temporara de memorie, care este utilizata in mod
traditional, deoarece instructiunile UCP-ului pur si simplu nu pot referi in mod direct date stocate in
dispozitivele periferice. Astfel, memoria adresabila este utilizata ca stadiu intermediar. In plus,
astfel de tampoane pot fi viabile cand un bloc mare de date este asamblat sau dezasamblat (ca
cerinta intr-un dispozitiv de stocare a datelor), sau cand datele trebuie trimise in alta ordine decat
cea in care sunt produse. Castiful este prezent chiar daca datele tamponate sunt scrise in memoria
tampon o singura data si citite din acesta o singura data.
Caracterizati o conducta.
Shell permite comunicarea intre procese prin conducte (pipes). Conductele sunt canale de
date ce conduc la iesirea unui program catre intrarea altui program, fara crearea unor fisiere
intermediare.
Ce inseamna a monta un sistem de fisiere?
Un disc fizic poate contine mai multe partitii logice, realizate de catre driverul de disc. Fiecare
partitie are un nume de fisier dispozitiv. Un proces poate accesa datele unei partitii deschizand
fisierul asociat acesteia, fisier tratat ca o succesiune de blocuri disc in care se poate scrie sau citi. O
astfel de partitie disc poate contine un sistem logic de fisiere ce consta din: un bloc de boot,
superblocul, lista de inoduri si blocuri de date. Un sistem de fisiere poate fi conectat logic (montat)
intr-unul din nodurile arborelui unui alt sistem de fisiere prin intermediul apelului sistem mount.
Demontarea se face folosind apelul sistem umount.
Ce reprezinta lseek?
Operatia lseek repozitioneaza cursorul de fisier, astfel incat o operatie read/write va lucra
incepand cu aceasta noua pozitie.
Win32API o interfata destinata programarii aplicatiilor pentru sistemul de operare Microsoft
Windows; prin el, programatorul are acces direct la o mare parte a functiilor de nivel de baza ale
sistemului de operare, putand crea aplicatii intr-un mod foarte flexibil.

Structura unui sistem de operare monolitic:
- un program principal care invoca procedurile de servicii necesare;
- un set de proceduri de servicii care duc la indeplinire apelurile sistem;
- un set de utilitare care vin in ajutorul procedurilor de servicii.

Sistemele stratificare ofera o constructie mai clara si o administrare mai facila a sistemului de
operare, cu anumite neajunsuri: definirea diferitelor nivele trebuie realizata cat mai clar inaintea
conceperii efective a sistemului de operare, iar realizarea de apleuri sistem din nivelele superioare
necesita un overhead mare pentru a putea identifica nivelul tinta si nivelul de origine al apelului
sistem.
Masina virtuala face posibila rularea unui alt sistem de operare intr-o fereastra a sistemului de
operare principal, fara a repartitiona hard-disc-ul.
Structura unui microkernel structura modulara, uniformitate a functiilor oferite de drivere,
lejeritate in scrierea driverelor, mod unificat de acces la functiile similare a h/w-ului facut de
producatori diferiti.
Structura unui sistem de operare bazat pe modelul client server:
~ este o structura sau arhitectura aplicatie distribuita care partajeaza procesarea intre
furnizorii de servicii numiti servere si elementele care solicita servicii numite clienti. Clientii si
serverele comunica printr-o retea de calculatoare, de obicei prin internet, avand suporturi hardware
diferite, dar pot rula si pe acelasi sistem fizic.Un server (fizic) ruleaza unul sau mai multe programe
server, care partajeaza resursele existente cu clientii. Clientul nu partajeaza niciuna dintre resursele
proprii, ci apeleaza la resursele serverului prin functiile server.Clientii initiaza comunicatia cu
serverele si asteapta mesajele acestora. Pentru mentinearea legaturii intre cei doi, indiferent de
pauzele care intervin, se foloseste conceptul de sesiune, care de obicei este limitata in timp.
Care din urmtoarele NU este un tip de nucleu de sistem de operare?
a) exokernel
b) microkernel
c) endokernel
d) monolitic
Ce component invoc un apel de sistem?
a) utilizatorul
b) hardware-ul
c) nucleul
d) biblioteca standard C
Ce component este invocat n cadrul unui apel de sistem?
a) utilizatorul
b) hardware-ul
c) nucleul
d) biblioteca standard C
La ce se refer DMA?
a) dispozitive de I/E
b) procese
c) memorie cache
d) Deadlock


Care din urmtoarele ruleaz n spaiul utilizator?
a) componenta de networking a unui SO
b) gestiunea memoriei
c) planificatorul de procese
d) shell-ul unui utilizator

Curs 3:
Definiti procesul.
Un proces este un program secvential in executie, impreuna cu zona sa de date, stiva si
numaratorul de instructiuni (program counter).
Orice proces este executat secvential, iar mai multe processe pot sa ruleze in paralel. De cele
mai multe ori, executia in paralel se realizeaza alocand pe rand procesorul cate unui proces. Desi la
un moment dat se executa un singur proces, in decurs de o secunda de exemplu, pot fi executate
portiuni din mai multe procese. Din aceasta schema rezulta ca un process se poate gasi, la un
moment dat, in una din urmatoarele stari:
in executie (RUNNING) procesul se gaseste in executie atunci cand procesorul ii executa
instructiunile;
pregatit pentru executie (READY) este un proces care, desi ar fi gata sa isi continue
executia, este lasat in asteptare din cauza ca un alt proces este in executie in mod voit sau
procesul efectureaza o operatie in afara procesorului, mare consumatoare de timp (cum e
cazul operatiilor de intrare iesire acestea sunt mai lente si intre timp procesorul ar
putea executa parti din alte procese);
blocat (BLOCKED).

Cum se creaza un proces?
Sunt patru pasi principali care duc la crearea unui proces:
initializarea sistemului;
executarea unui sistem de apel pentru crearea unui proces de catre un proces aflat deja in
rulare;
o cerere de creare proces a utilizatorului;
initializarea unui set de batch jobs (secventa de comenzi care se executa fara interventie
din afara).
Starea procesului

Cum se incheie executia unui proces?
Un proces se poate incheia din cauza unuia din patru motive:
iesire normala (voluntara);
iesire pricinuita de eroare (voluntara);
eroare fatala (involuntara);
incheiere pricinuita de alt process (involuntar).

Caracterizati ierarhia de procese.
In unele sisteme, cand un proces creaza un altul, procesul parinte contiua sa fie asociet cu cel
copil. Procesul copil poate si el sa creeze unul sau mai multe procese, astfel creandu-se o ierarhie.



Ce reprezinta un thread?
Threadul este cea mai mica unitate de procesare care poate fi programata de un sistem de
operare.

Ce inseamna multithreading?
Termenul multithread se poate referi la faptul ca mai multe threaduri exista in acelasi proces
sau rularea in paralel a mai multor threaduri, echivalentul mai multor procese rulate pe acelasi
calculator.
Modele:
Kernel-level threading threaduri create de utilizator care au corespondenta 1-1 cu entitati
din kernel. Este cea mai simpla implementare de threaduri.
User-level threading (many to one)- toate threadurile de la nivel de aplicatie ajung intr-o
singura entitate de la nivel kernel. Singurul dezavantaj major este ca nu poate beneficia de
accelerare hardware pe procesoarele multithread sau pe sistemele multi-procesor.
Hybrid threading (many to many) un numar de threaduri de aplicatii ajung la un numar de
entitati kernel (procesoare virtuale). Acesta este un compromis intre ULT si KLT. Este mai complex
de implementat decat celelalte doua.

Justificati necesitatea threadurilor.
Principalul motiv pentru existenta threadurilor este ca in multe aplicatii au loc mai multe
activitati in acelasi timp,care se pot bloca ocazional. Prin descompunerea unor astfel de aplicatii in
secvente thread care ruleaza cvasi paralel, modelul de programare devine mai simplu.
Un alt motiv este ca sunt mai usor de creat si distrus decat procesele dat fiind faptul ca nu au
resurse atasate.

Ce reprezinta o masina cu stari finite?
Masinile cu stari finite reprezinta o metoda foarte eficienta pentru modelarea circuitelor
secventiale. Prin modelarea masinilor cu stari finite intr-un limbaj de descriere hardware si
utilizarea programelor, programatorul se poate concentra asupra modelarii secventei dorite de
operatii fara a-si pune problema in privinta implementarii circuitului (aceasta operatie este lasata
programului).

Care sunt avantajele si dezavantajele thread-urilor?
Ele partajeaza acelasi spatiu de adrese si sunt mai rapide decat procesele (la task-switch, nu
se mai schimba si spatial de adrese).
Marele dezavantaj este problema la sincronizare.
Fiecare thread are propriul context, format din registri CPU si stiva.
Descrieti thread-urile pop-up.
Sunt threaduri create de sistem la aparitia unui mesaj, pentru a se ocupa de mesajul
respectiv.
- Un process sau un thread existent este blocat de catre un apel de system pana la
receptionarea unui nou mesaj
- La receptionarea mesajului se creaza un thread nou numit POP-UP thread.
ULT user level thread
KTL -
Avantaje/ DEzavantaje ULT:
pot fi implementate pachete de thread la niv de utilizator sip e SO care nu suporta
threduri.
Permite fiecarui process sa detina un alg de planificare particularizat
Schimbarea de concept de la utilizator la niv kernel se realizeaz f rapid deoarece nu exista
apeluri de sistem, din perspectiva nucleului se gestioneaza procese obisnuite cu un alg.
thread.
- Daca un tred realiz. Un apel de system blocat, toate threadurile associate proceselor din
care pornim vor fi blocate
- 2threaduri ale unui proces nu pot rula simultan pe 2 procesoare.
Avantaje/ DEzavantaje KTL:
Toate apelurile care se pot realiza pt blocarea unui thread sunt implementate ca si apeluri
de system ceea ce conduce la cresterea timpului de raspuns comparative cu threadurile
ULT, nu este nevoie de comutarea intre niv thread sin iv utilizator
Blocarea unui thread nu inseamna blocarea intregului process
Modelul implementat este de 1:1

Caracterizai implementrile hibride ale thread-urilor:
- In acest desing Kernelul planifica si gestioneaza doar KLT
- Modelul caracterizat este de mai multi la mai multi
- KTL pot fi multiplexa mai multe ULT-uri, aceste ULT sunt create, distruse si planificate ca
ULT-uri ale unui proces care ruleaza pe un SO fara functionalitati multithreading.
- In acest model fiecare KTL ruleaza un set de UTL pe rind.

Curs 4

Caracterizati notiunea de concurenta intre doua procese.
Concurena reprezinta situaia n care mai multe procese citesc sau scriu pe un set de date partajate
i rezultatul final depinde de care proces ruleaza si cnd anume.
Procesele concurente numitei procese paralele, presupun c la un moment dat, mai multe
programe pot fi urmrite ntre punctul de nceperei terminare a execuiei; n acest caz procesele
interacioneaz n dou moduri:
- indirect, prin concurarea la aceiai resurs a sistemului;
- direct, prin utilizarea simultan a acelorai resurse.
Se constat situaia n care procesele i afecteaz reciproc, ntr-un mod nedorit, execuia activitailor
critice ( s presupunem ca dou procese ncearc n acelai timp s aloce ultimul 1MB de memorie).
Dificultatea apare pentru c un proces B ncepe sa foloseasc una din variabilele partajate nainte ca
un proces A s se termine. Acest situaie poate fi evitat dac se interzice citirea si scrierea de ctre
mai multe procese simultan a datelor partajate.
Pentru a fi evitat concurena i a avea o soluie buna trebuiesc ndeplinite patru condiii:
i. Oricare dou procese nu se afla simultan n regiunile lor critice.
ii. Nici un fel de presupunere nu se poate face asupra vitezelor sau numarului de UCP-uri.
iii. Nici un proces care ruleaz n afara regiunii lui critice nu poate bloca alte procese.
iv. Nici un proces nu trebuie s atepte la infinit pentru a intra n regiunea lui critic. (Tanembaum,
2001)

Caracterizati notiunea de sincronizare intre doua procese.
Sincronizarea proceselor include mecanisme prin care anumite procese vor fi oprite la un moment
dat, pn ce apar anumite evenimente ce se afl sub controlul altei activiti. Problema sincronizrii
apare datorit partajrii resurselor n legtur cu alocarea proceselor pentru execuia i comunicaia
ntre procese .
Sincronizarea este necesar la uniprocesoare, multiprocesoare i in reelele de calculatoare.
Un program paralel const din mai multe procese independente ce coopereaz pentru a rezolva o
problem. Cooperarea se poate realiza prin intermediul unei memorii partajate.Sistemul de operare
trebuie s ofere cel putin un mecanism de baz care s permit comunicarea i sincronizarea n
cadrul unui set de procese.
n sistemele multiprogramate, aceste operaii de comunicaie se pot realiza prin intermediul
fiierelor.Un proces poate oferi unui proces informaii scriind date ntr-un fiier astfel nct cellalt
proces s poat deschide fiierul i s poat citi informaiile respective. n general,comunicarea i
sincronizarea prin intermediul fiierelor partajate este greoaie, iar procesele trebuie s fie capabile s
se sincronizeze pe baza unui mecanism mai simplu dect acela de a partaja accesul la un fiier.
Sistemele de tip timesharing stimuleaz nevoia unei metode mai facile de comunicare i sincronizare
ntre procese. n astfel de sisteme, un singur utilizator poate s creeeze dou procese, rezultatul
primului proces putnd fi rutat spre intrarea celui de-al doilea proces. Conductele (pipe) UNIX
implementeaz o astfel de facilitate. Programele bazate pe conlucrare trebuie s fie construite astfel
nct procesele s poat accesa informaiile comune, totui far a interfera unul cu altul pe parcursul
unor poriuni critice ale execuiei lor. Aceast condiie introduce o problem de sincronizare numit
problema seciunii critice. O a doua problem este existena unui punct de blocare ( deadlock) n
cadrul proceselor cooperante. Acest lucru nseamna c dou sau mai multe procese pot fi n situia
n care fiecare deine resursele necesare celuilalt proces i nici unul nu poate continua executia fr
ca s i cedeze celuilalt resursele. (Dodescu, 2003)

Dati un exemplu de situatie in care doua procese se gasesc n conditii de competitie.
Considerm existenta a doua procese A i B a cror scop este tiprirea unui fiier la imprimant.
Cnd un proces vrea s tipareasc un fiier, introduce numele fiierului ntr-un catalog de tiprire
special (spooler directory). Alt proces, care se ocup de tiprirea documentelor (printer daemon),
verific periodic dac exist fiiere de tiprit i, dac exist, le tiparete i apoi terge numele lor din
catalog. Acest catalog de tiprire are un numr foarte mare de locaii, identificate prin 0,1,2... fiecare
fiind capabil s memoreze numele unui fiier n fiecare lot. De asemenea exist dou variabile
partajate, out, care indic urmtorul fiier care trebuie tiparit i in, care indic urmtorul loc liber n
catalog.Aceste doua variabile pot fi pstrate foarte bine ntr-un fiier de doua cuvinte, disponibil
tuturor proceselor.



n figur se constat c loturile de la 0 pana la 3 sunt libere (fiierele au fost deja tiprite) i loturile
de la 4 pna la 6 sunt ncarcate (cu numele fiierelor care ateapt s fie tiprite).
Situaia care o discutm este urmtoarea: mai mult sau mai puin simultan, procesele A i B solicit s
nscrie un fiier pentru tiprire. Poate aprea situaia n care procesul A citete variabila in i salveaz
valoarea 7, ntr-o variabil local numit urmtorul_loc_liber. Chiar atunci apare o ntrerupere de
ceas i UCP decide c procesul A s-a executat suficient, aa c va comuta la procesul B. Procesul B
citete i el in i primete tot un 7. i el o va salva n variabila sa local urmtorul_loc_liber. n acest
moment ambele procese consider c urmtorul loc disponibil este 7.
Procesul B continu sa se execute. Salveaz numele fiierului lui n locul cu numrul 7 i actualizeaz
in la valoarea 8.Apoi, se execut mai departe. La un moment dat, procesul A i va relua execuia.
Verific urmtorul_loc_liber, gsete valoarea 7 acolo i scrie numele fiierului lui n locul cu numrul
7, tergnd numele pe care procesul B tocmai l scrisese acolo.Apoi calculeaza urmatotul_loc_liber
+1, adica 8 i seteaz in la valoarea 8. Catalogul de tiprire are acum o stare intern consistent, aa
c procesul care se ocup de imprimare nu va observa nimic n neregul, dar procesul B nu va primi
niciodata un rezultat. Utilizatorul B va atepta lnga imprimant ani de zile, tnjind dup rezultatul
care nu va veni niciodata. Situaii ca acestea, n care dou sau mai multe procese citesc sau scriu date
partajate i rezultatul final depinde de care proces ruleaz i cnd anume sunt numite condiii de
cursa (race conditions). (Tanembaum, 2001)



Doua procese sunt mutual exclusive.Explicati.
Pentru a preveni efectele generate de condiiile de competiie este necesar ca procesele s fie mutual
exclusive.Dac un proces ruleaz i partajeaz resurse cu alt proces, acesta din urm nu se poate
lansa n execuie pn la finalizarea execuiei primului.Zona n care dou procese acceseaz memoria
partajat de ambele se numete seciune critic.
Dac reuim ca dou procese s nu se afle n seciunea critic simultan putem evita competiian sine.
Condiiile obinerii exclusivitii mutuale sunt:
i. Dou procese nu se pot afla simultan n zona critic.
ii. Nu ne raportm la numrul i viteza de prelucrare a procesoarelor.
iii. Niciun proces, care ruleaz n afara seciunii sale critice nu poate bloca un alt proces.
iv. Un proces nu poate fi blocat la infinit la intrarea sa n seciunea critic.
Exemplu:
Situaia pe care o discutm este urmtoarea:
procese A i B doresc simultan tiprirea unui fiier.Procesul A citete variabila In i o stocheza
7.Procesorul blocheaz execuia Procesului A i red controlul Procesului B. Procesul B se execut i
plaseaz numele fiierului de tiprit n 7 i seteaza In=8.
Procesul B i transfer controlul Procesului A.
te In=7 i plaseaz numele fierului su de tiprit n lot 7 i seteay In=8.
situie putem spune c peocesele A i B se exclud mutual.
iile n care mai multe procese citesc sau scriu pe un set de date partajate i rezultatul final
depinde de care proces ruleaz i cnd anume, se numesc condiii de cursa .

Ce reprezinta o sectiune critica?
Seciunea crtitic reprezint zona n care dou procese acceseaz memoria partajat de ambele
procese.
Problema evitrii condiiilor de curs poate fi de asemenea formulat ntr-o manier abstract. O
parte din timp un proces este ocpuat cu execuia calculelor interne i a altor lucruri care nu conduc
la condiii de curs. Totui, un proces trebuie uneori s eceseze memoria sau fiierele partajate, sau
s execute alte activiti critice care pot conduce la curse. Partea de program n care memoria
partajat este accesat se numete regiune critic (critical region) sau seciune critic (critical
section). Daca s-ar putea aranja lucrurile astfel nct oricare din dou procese s nu fie niciodat n
acelai timp n regiunile lor critice, am putea evita cursele. (Tanembaum, 2001)

Doua procese obtin exclusivitate mutuala prin metoda de dezactivare a intreruperilor. Prezentati
dezavantajele metodei.
Exclusivitatea mutual utiliznd busz waiting-ul are ca prim soluie dezactivarea ntreruperilor.
Aceast abordare prezint urmtoarele dezavantaje:
a) Dac dou procese pot dezactiva ntreruperile exist posibilitatea ca acestea s blocheze activarea
ulterioar a ntreruperilor.
b) Dac lucrm pe un sistem multiprocesor exist posibilitatea ca un proces s dezactiveze
ntreruperile doar pentru unu din procesoare , metoda devenind astfel ineficient.
c) Deoarece sistemul de operare pentru buna sa operare realizeaz periodic apeluri de sistem,
dezactivarea ntreruperilor la un moment inoportun poate afecta funcionalitatea sistemului de
operare.

Concluzia este : O astfel de metod poate fi folosit cu succes doar de procese care opereaza la nivel
Kernel.

Ce reprezinta un bit de atentie?
Un mecanism de sincronizare pentru coordonarea i comunicarea ntre procese este :biul de atenie.
Prin aceast modalitate, orice resurs partajat de "n" procese va dispune de un bit de atenie "lock-
bit" folosindu-se convenia:
lock-bit = 0 - resursa este disponibil;
lock-bit =1 - resursa este n folosin.
nainte ca un proces s aib acces la un procesor, acesta va verifica starea lock-b it-ului: dac
lock-bit = 0 atunci este permis acestui proces s aib acces la procesor, iar la terminarea execuiei va
trece lock-bit-ul n starea iniial 0; dac pe parcursul execuiei un alt proces va solicita procesorul,
acesta va gsi lock-bit-ul n starea 1, el fiind trecut n starea de ateptare pn cnd lock-bit-ul devine
0.

Prezentati metoda de alternare stricta a executiei proceselor si dezavantajele ei.
Aceasta metoda presupune ca daca unul din procese

Descrieti solutia lui Peterson.
Prin combinarea ideii de alternare cu ideea variabilelor zvor si a variabilelor de avertizare, un
matematician olandez T.Dekker. a fost primul care a nascocit o solutie de tipul sistemelor de
programe pentru problema excluderii mutuale, care nu impunea alternarea stricta.
In 1981, G.L. Peterson a descoperit un mod mai simplu de obtinere a excluderii mutuale umbrind
Solutia lui Dekker. Algoritmul lui Peterson este prezentat in figura 2-201. Acest algoritm este format
din 2 proceduri scrise ANSI C, ceea ce inseam c trebuie menionate prototipurile tuturor funciilor.

Solutia lui Peterson pentru obinerea excluderii mutuale.
nainte de a folosi variabilele partajate (adica nainte de a intra in regiunea lui critica), fiecare proces
apeleaz enter_region cu numrul su de ordine, 0 sau 1, drept parametru. Acest apel l va face s
atepte dac este cazul, pn cnd este n regul s intre. Dup ce a terminat de utilizat variabilele
partajate, procesul apeleaz leave_region pentru a indica faptul c a terminat pentru a permite altui
proces s intre, dac doreste.
S vedem cum functioneaz aceasta soluie.Iniial, niciun proces nu se afl n regiunea lui
critic.n acest moment procesul 0 apeleaza enter_region. si arat interesul prin setarea elementului
din vector corespunztor lui i seteaz turn pe 0. Din moment ce procesul 1 nu este interesat,
enter_region se termin de executat imediat. Dac procesul 1 apeleaz acum enter_region, va rmne
agat acolo pn cnd interested[0] devine FALSE, eveniment care se ntmpl doar cnd procesul 0
apeleaz leave_region pentru a prasi regiunea sa critic.
S considerm acum cazul n care ambele procese apeleaz enter_region aproape simultan.Ambele
vor salva numrul propriu de ordine turn. Salvarea care se face ultima va conta: prima va fi
suprascrisa i pierdut. (Tanembaum, 2001)

Ce reprezinta TSL?
Multe calculatoare, mai ales cele proiectate innd cont de un numr mai mare de procesoare, au o
instruciune (TSL RX, LOCK) (Teste and Set Lock) care funcioneaz dup cum urmeaz. Citete
coninutul lui Lock n registrul RX i apoi salveaya o valoare diferit de zero la adresa de memorie a
lui Lock. Operaiile de citire a cuvntului i salvrii n el sunt garantat indivizibile nici un alt proces
nu poate accesa cuvntul de memorie pn cnd instruciunile nu s-au terminat. Procesorul care
execut instruciunea TSL blocheaz magistrala memeoriei pentru a interzice altor procesoare s
acceseze memoria pn ce nu a terminat de executat instruciunea.
Pentru a utiliza TSL, se va folosi o variabil partajat, Lock, pentru a coordona accesul la memoria
partajat. Cnd Lock are valoarea 0, orice proces o poate seta la 1 folosind instruciunea TSL i apoi
s citeasc sau s scrie n memoria partajat. Dup ce termin, procesulreseteaz Lock napoi la 0
folosind instruciunea Move.
Pentru a mpiedica dou procese s intre n acelai timp n regiunile lor critice, soluia este
prezentat mai jos:


Ceea ce este prezentat mai sus este o subrutin de patru instruciuni, ntr-un limbaj de asamblare
fictiv (dar tipic). Prima instruciune copiaz vechea valoare a lui Lock n registru i seteaya apoi Lock
la 1. Apoi, vechea valoare este comparat cu 0. Dac nu este 0, nseamn c LOCK esra deja setat,
astfel c programul reia codul de la nceput i testeaz din nou condiia. Mai devreme sau mai trziu
va deveni 0 (atunci cnd procesorul se afla n regiunea lui critic va termina cu aceasta), iar
subrutina se va termina, cu LOCK setat. Eliberarea lui LOCK este simpl. Programul salveaz pur i
simplu un 0 n lock. Nu sunt necesare instruciuni speciale.
O soluie la problema regiunii critiice este clar. nainte de a intra n regiune critic proprie, un
proces apeleaz enter_region, care execut ateptare ocupat pn cnd LOCK este liber: apoi, preia
LOCKuli se intoarce din apelul enter?region. Dup regiunea critic, procesul apeleaz leave_region,
care salveaz un 0 n zvor. La fel ca n cazul tuturor soluiilor bazate pe regiuni critice, procesele
trebuie s apeleze enter_region i leave_region la momentele de timp corecte pentru ca mecanismul
s funcioneze. Dac un proces trieaz, excluderea mutual va eua.
(Tanembaum, 2001)

De ce avem nevoie de metoda sleep/wakeup?
Datorit faptului c soluia lui Peterson nu poate gestiona problema inversrii prioritii s-a propus
metoda Sleep and Wakeup.S presupunem c dou procese partajeaz un buffer de dimensiune fix.
Un proces adaug date, cellalt extrage date.Aceast problem se mai numete problema productor-
consumator, unde p. care adaug date n buffer este productor, iar cel care extrage date este
consumator.Dac se ntmpl ca procesorul s ntrerup execuia procesului consumatorului i din
punct de vedere logic consumatorul se afl nc n starea wakeup, productorul va genera un semnal
de wakeup, care se va pierde datorit faptului ca nu exist o structur care s rein cte apeluri
wakeup au fost realizate.

Tratati problema producator consumator utilizand metoda sleep/wakeup.
Metoda cu apeluri sleep/wake-up este o metod simplu de implementat unde folosim apelul de
sistem sleep care are ca efect blocarea apelantului, adic suspendarea execuiei acestuia i apelul de
sistem wake/up pentru a trezi un proces.
Funcionarea acestei metode este urmtoarea: Fiecare dintre procese va verifica dac este cazul s l
trezeasc pe cellalt i dac da, l va trezi. Condiia de curs apare pentru c accesul la condiia
Memoria tampon plin? este nerestricionat. Poate aprea urmtoarea situaie- zona tampon este
goal i consumatorul tocmai a verificat condiia Memoria tampon goal? pentru a verifica dac este
DA. n acest moment planificatorul de procese decide s suspende execuia consumatorului i ncepe
s execute productorul.
Productorul introduce un element n memorie i observ c acum condiia Memoria tampon plin?
este acum DA. Deoarece condiia tocmai a fost NU i deci consumatorul este suspendat, productorul
apeleaz wakeup pentru a trezi consumatorul. Consumatorul nu este i logic suspendat i semnalul
de trezire se va pierde i astfel data urmtoare cnd consumatorul se va executa acesta va verifica
condiia Memoria tampon goal? Citit anterior, va gsi DA i i va suspenda execuia. Dup ctva
timp productorul i va suspenda i el execuia. Ambele procese vor fi suspendate. (stst.elia.pub.ro)

Prezentati cazul in care metoda sleep/wakeup devine ineficienta pentru rezolvarea problemei
producator consumator.
Problema acestei metode este pierderea suspendrii consumatorului. Din pcate, consumatorul nu
este i logic suspendat, astfel c semnalul de trezire este pierdut. Data urmtoare cnd se va executa
consumatorul, acesta va verifica valoarea lui count citit anterior, va gsi 0 i i va suspenda
execuia. Dup ctva timp, productorul va umple zona tampon i i va suspenda i el execuia.
Ambele procese vor fi suspendate pentru totdeauna.
Soluie : memorarea bitului de trezire, dac se trimite unui proces treaz. Ulterior, dac acesta vrea s
se autoblocheze, nu o va face, dar va terge bitul de memorare a trezirii. Fiecare proces care poate
trezi un proces nc treaz va trebui s i aib bitul memorat, mpreuna cu adresa procesului la care
se refer.
Ce reprezint un semafor? Exemplificai prin rezolvarea problemei productor consumator.
Un semafor controleaza nr de activari (wake up) operatia de decrementare pe un semafor se
numeste DOWN(activeaza un proces) si de incrementare se numeste UP(dezactiveaza un proces).
Daca 1 sau m multe procese sunt simultan dezactiv sistemul alege unul din pr. Aflate in coada de
asteptare a semaforului si il activeaza realizand o operatie de down pe semafor
Ce reprezint un mutex?
Ce reprezint un monitor?
Cum se realizeaz comunicarea ntre procese utiliznd mesaje?
Ce reprezint o barier?
Care din urmtoarele NU este un mecanism de sincronizare?
a) spinlock
b) mutex
c) memorie virtuala
d) semafor
Care din urmtoarele este un mecanism de sincronizare busy-waiting?
a) spinlock
b) mutex
c) memorie virtuala
d) semafor
Care din urmtoarele forme de sincronizare NU folosete busy-waiting?
a) spinlock
b) algoritmul lui Peterson
c) alternare strict
d) mutex
Cte semafoare sunt necesare pentru rezolvarea corect a problemei productor-consumator?
(mutexurile sunt considerate tot semafoare)
a) 1
b) 2
c) 3
d) problema productor-
consumator nu poate fi rezolvat
corect folosind semafoare


Curs 5:
Motivatia planificarii proceselor.
n cazul folosirii multiprogramrii pe un calculator, acesta conine frecvent mai multe procese care
concureaz simultan pt controlul UCP. Aceast situatie apare ori de cate ori doua sau mai multe
procese se afl simultan n starea gata de execuie.Dac este disponibil o singura UCP, trebuie facuta
o alegere cu privire la procesul care va rula n continuare. Componenta sistemului de operare care
face aceast alegere se numete planificator(scheduler) i algoritmul folosit de aceasta se numeste
algoritm de planificare.

Definitia algoritmului de planificare preemtiv.
Un algoritm de planificare preemtiv alege un proces i l las s se execute o durat maxim fixat. n
caz c procesul este nc n execuie la sfritul intervalului de timp, este suspendat i planificatorul
alege alt proces (daca exist un proces disponibil). Efectuarea unei planificri preemtive necesit o
intrerupere de ceas la sfritul intervalului menionat pentru a muta controlul asupra UCP inapoi la
planificator.Dac nu exist un ceas, singura opiune este planificarea non-preemtiv.

Definitia algoritmului de planificare nonpreemtiv.
Un algoritm nonpreemtiv alege un proces pentru execuie i apoi l las s ruleze pn se blocheaz
(fie la o operaie I/E sau n ateptarea altui proces) sau pn cnd procesul renunt voluntar la UCP.
Definitia compute-bound process.
Anumite procese petrec majoritatea timpului efectund calcule, acestea se numesc procese limitate
de calcule (compute-bound). Ele au n mod obinuit rafale de utilizare a UCP mai lungi si ca atare
perioade de ateptare a operaiilor I/E rare.

Definitia I/O-bound process.
Exist de asemenea anumite procese care ii petrec majoritatea timpului ateptnd completarea
operaiilor de I/E, acestea se numesc procese limitate de I/E (I/O- bound). Procesele limitate de I/E au
rafale UCP scurte i perioade( frecvente) de asteptare a operaiilor de I/E. S observam c factorul
cheie este lungimea rafalei UCP i nu lungimea rafalei I/E. Procesele limitate de I/E sunt de acest tip
pentru c nu efectueaz multe calcule ntre cererile de I/E, pentru c nu au cereri I/E deosebit de
lungi.
Care sunt obiectivele generale ale unui algoritm de planificare.
1. Corectitudine: fiecare proces primete o capacitate egal de UCP.
2. Respectarea politicilor: politica declarat trebuie respectat.
3. Echilibrul: meninerea tuturor prilor sistemului n operare.

Care sunt obiectivele generale ale unui algoritm de planificare pentru un sistem batch.
1. Productivitate: maximizarea numrului de sarcini pe or.
2. Timpul de rspuns: minimizarea timpului ntre introducerea sarcinii i terminare.
3. Gradul de utilizare a UCP: meninerea UCP ocupat tot timpul.

Care sunt obiectivele generale ale unui algoritm de planificare pentru un sistem interactiv.
1. Timpul de raspuns: rspuns rapid la cereri.
2. Proporionalitate: ndeplinirea ateptrilor utilizatorului.

Care sunt obiectivele generale ale unui algoritm de planificare pentru un sistem n timp real.
1. Respectarea termenelor: evitarea pierderii datelor.
2. Predictibilitate evitarea degradrii calitii sistemelor multimedia.

Sistemele n timp real sunt acele sisteme pentru care timpul joac un rol esenial. Astfel de
calculatoare sunt conectate de regul la un dispozitiv extern care trimite anumite semnale ctre
calculator, iar calculatorul trebuie s raspund la aceste semnale intr-un interval de timp bine
stabilit. Exemple de astfel de sisteme sunt pilotul automat ntr-un avion sau un sistem de
monotorizare a unui reactor nuclear.

Algoritmi de planificare utilizati pentru sistemele batch.
1. Primul venit-primul servit (first-come first-served). n cazul acestui algoritm, procesele primesc
UCP n ordinea n car cer.n principiu, exist o singur coad de procese gata de execuie. Atunci cnd
este introdus prima sarcin din exterior, dimineaa, este pornit imediat i i se permite s ruleze ct
timp dorete. Pe msur ce sosesc celelalte sarcini, ele sunt plasate la sfritul cozii. Atunci cnd
procesul n execuie se blocheaz este plasat la sfaritul cozii, ca i n cazul unei sarcini nou sosite.

2. Cea mai scurt lucrare la nceput(shortest job first). Atunci cnd mai multe sarcini, la fel de
importante, ateapt n coada de intrare pentru a fi pornite, planificatorul alege cea mai scurt
lucrare la nceput.

3. Urmatorul timp minim rmas(shortest remaining time next). n cazul acestui algoritm,
planificatorul alege mereu procesul al crui timp de executie rmas este cel mai scurt. Timpul de
rulare trebuie cunoscut a priori, atunci cnd sosete o nou lucrare, durata sa total este comparat
cu timpul rmas pentru procesul curent. Dac noua lucrare necesit mai puin timp dect procesul
curent, acesta este suspendat i se pornete noua lucrare. Aceast schem permite sarcinilor noi i
scurte s obin un serviciu de calitate.

4. Planificare pe trei nivele. Pe masur ce sosesc noi sarcini n sistem, ele sunt iniial plasate ntr o
coad de intrare situat pe disc. Planificatorul de primire decide ce sarcini va admite n sistem.
Celelalte sunt inute n coada de intrare pn cnd sunt selectate. Al doilea nivel de planificare
const n a decide care procese ar trebui pstrate in memorie i care ar trebui inute pe disc, aceast
sarcin este ndeplinit de planificatorul de memorie. Iar al treilea nivel de planificare consta de fapt
n a alege unul din procesele gata de execuie din memoria principal pentru a rula. Aceast
component este numit planificatorul UCP.

Algoritmi de planificare utilizati pentru sistemele interactive.
1. Planificare Round Robin. Fiecrui process i se atribuie un interval de timp numit cuant n care i
se permite s ruleze. Dac procesul este nc n execuie la sfritul cuantei, UCP se ia forat de la
respectivul proces i se atribuie altui proces. Dac procesul s-a blocat sau s-a terminat nainte de
terminarea cuantei de timp, comutarea UCP se face n momentul blocrii procesului.

2. Planificarea bazat pe prioriti. Fiecare process are o prioritate i se permite rularea procesului
gata de execuie cu cea mai mare prioritate. Pentru a prentmpina cazurile n care procesele cu
prioritate mare ruleaz la infinit, planificatorul poate decrete prioritatea procesului curent la fiecare
semnal de ceas (adic la fiecare ntrerupere de ceas). Daca aceast aciune determin prioritatea
respectivului proces s scad sub a urmatorului din ierarhie, acest ultim proces are posibilitatea s
se execute.

3. Cozi multiple. Poiectanii creeaz clase de prioritate. Procesele din cea mai mare clas erau rulate
pentru o cuant de timp. Procesele din urmatorarea clas se rulau pe trei cuante de timp,
urmatoarele pe patru cuante de timp .a.m.d. Cnd un proces folosea n ntregime cuanta alocat, era
mutat n jos o clasa.

4. Shortest process next. Procesele interactive urmeaz de obicei modelul n care se asteapt o
comand, se execut comanda, se asteapt comanda, se execut comanda .a.m.d. Dac privim
execuia fiecrei comenzi ca pe o lucrare separat, atunci putem minimiza ntreg timpul de rspuns
executnd n continuare cea mai scurt lucrare. Singura problem const n a realiza care din
procesele executabile este cel mai scurt. O abordare const n a face estimri bazate pe
comportamentul anterior i a rula procesul cu cel mai mic timp de execuie estimate. Tehnica prin
care se estimeaz urmtoarea valoare ntr o serie prin considerarea sumei ponderate a ntregii
valori curente msurate i a valorii estimate anterioare se numete mbtrnire (aging).
5. Planificarea garantat. O abordare complet diferit la problema planificrii const n a face
promisiuni reale utilizatorilor referitoare la performan i de a le respecta. Dac exist n utilizatori
conectai n sistem n timp ce noi lucrm, vom primi aproximativ 1/n din puterea de calcul; n mod
similar, pe un sistem cu un singur utilizator pe care ruleaz n procese, toate fiind egale, fiecare ar
trebui s beneficieze de 1/n din ciclurile procesorului. Pentru a respecta aceast promisiune,
sistemul trebuie s in evidena capacitii de calcul consumate de fiecare proces de la crearea sa. Se
calculeaz apoi capacitatea la care are dreptul fiecare, mai precis intervalul de la creare este mpartit
la n.

6. Planificarea n sistem de loterie. Ideea fundamental este de a atribui proceselor bilete de loterie
pentru diferite resurse ale sistemului, cum ar fi timpul alocat pe UCP. Atunci cnd trebuie luat o
decizie de planificare se alege un bilet de loterie la ntamplare i procesul care deine biletul primete
resursa. Aplicat planificrii proceselor pe UCP, acest sistem poate desfura o loterie de 50 de ori pe
secunda, fiecare ctigtor primind ca premiu 20 msec de timp alocat pe UCP.

7. Planificare cu pri egale(Fair-Share Scheduling). Unele sisteme iau n considerare i posesorul
procesului inainte de planificare. n acest model, fiecare utilizator are alocat o anumit proporie a
capacitii UCP, iar planificatorul alege procesele astfel nct s se respecte aceast regula. Astfel
dac 2 utilizatori au primit promisiunea c li se va aloca aproximativ 50 % din capacitatea UCP,
fiecare va primi exact atat , indiferent de cte procese are.

Algoritmi de planificare utilizati pentru sistemele n timp real.
Algoritmii de planificare pentru sistemele de timp real pot fi statici sau dinamici. Primii iau deciziile
de planificare nainte de inceperea rulrii sistemului. Cei din urm iau deciziile in timpul rulrii,
adica chiar n momentul apariiei evenimentelor externe. Planificarea statistic funcioneaz numai
dac sunt disponibile informaii perfecte apriori despre operaiile ce trebuie efectuate i termenele
care trebuie respectate. Algoritmii de planificare dinamic nu au aceste restricii.
(Tanembaum, 2001)
Unul dintre algoritmii de planificare n timp real foarte utilizai este algoritmul monotonic. Acesta
acord prioriti proceselor proportional cu frecvena de apariie a evenimentului ce declaneaz
procesul respectiv. De exemplu, un proces ce este declanat de un eveniment ce apare cu o perioad
de 25 ms va primi prioritatea 40, n timp ce un proces ce este declanat cu o perioada de 125 ms va
primi prioritatea 8.
Un al doilea algoritm este cel al timpului de rezerva minim. De exemplu, dac un proces are nevoie
de 100 ms pentru a fi rulat, iar el trebuie terminat n cel mult 200 ms, atunci sistemul calculeaz
timpul de rezerv pe care l are la dispoziie pentru acest proces: 200-100=100 ms. Planificatorul
menine o lista a proceselor ordonat dupa acest timp de rezerv si atribuie UCP procesului cu
timpul de rezerv cel mai mic.
Alt algoritm de planificare n timp real este algoritmul termenului limita cel mai scurt . Atunci cnd
apare un eveniment extern, procesul care trateaz acel eveniment va fi adaugat la o lista cu procese
gata de execuie. Aceast lista este meninut sortat dup termenul limit n care trebuie tratat
evenimentul. Procesul cu termenul limita cel mai apropiat va fi primul rulat.
(Dodescu, 2003)

Planificarea user-thread-urilor.
n cazul n care mai multe procese au fiecare fire de execuie multiple, exist doua nivele de
paralelism: procese si fire. Planificarea n astfel de sisteme este substanial diferit, depinznd de
tipul de implementare suportat (n spaiul user, n spaiul kernel, sau ambele).
n cazul firelor de execuie implementate n spaiul utilizator, nucleul nu este contient de existena
firelor i opereaz n modul obinuit alegnd un proces , pe care l numim A si d procesului
controlul pe parcursul cuantei sale de timp. Planificatorul de fire de execuie din interiorul
procesului A decide ce fir sa ruleze, s spunem A1. Deoarece nu exist vreo ntrerupere de ceas
pentru a multiprograma firele, acest fir poate continua s se execute ct timp doreste. Dac foloseste
toata cuanta procesului, nucleul va selecta un alt proces spre execuie.
Atunci cnd procesul A ruleaz din nou, firul A1 va rencepe s se execute. Firul ca continua s
consume timpul procesului A pna cnd termin. n orice caz, comportamentul su antisocial nu va
afecta celelalte procese. Acestea vor obine cuanta considerat potrivit de planificator, indiferent de
ce se intampl n interiorul procesului A.
Considernd cazul n care firele de execuie ale lui A au relative puin de procesat ntr-o rafal de
utilizare a UCP, s spunem 5 msec de lucru ntr-o cuant de 50 msec. n consecin, fiecare ruleaz o
perioad scurt de timp, apoi cedeaz UCP planificatorului de fire. Aceast comportare poate duce la
secvena A1, A2, A3, A1, A2, A3 ,A1, A2, A3, A1, nainte ca nucleul s comute la procesul B. Aceast
situaie este ilustrat n figura urmatoare:


Algoritmul de planificare folosit de executive poate fi oricare din cele descrise mai sus.n practic,
cele mai des folosite sunt round i planificarea bazat pe prioriti. Singura constrngere este lipsa
unui ceas pentru a ntrerupe un fir de execuie care a rulat prea mult.

Planificarea kernel-thread-urilor.
n cazul firelor implementate n nucleu, nucleul alege un anumit fir spre execuie. Nu este nevoie ca
nucleul s in seam de procesul cruia i aparine firul, dar poate face acest lucru dac dorete. Firul
primeste o cuanta de timp i este suspendat forat dac depaete aceast cuant. Cu o cuant de 50
msec, dar cu fire de execuie care se blocheaz dupa 5 msec, ordinea firelor pentru o perioad de 30
msec ar putea fi A1, B1, A2, B2, A3, B3, ceea ce nu era posibil cu aceeasi parametrii n cazul firelor
implementate n spaiul utilizator. Aceast situaie este ilustrat parial n urmatoarea figur:

Deoarece nucleul tie c a comuta de la un fir al procesului A la un fir al procesului B este mai
costisitor dect s ruleze un al doilea fir al lui A ( datorit necesitii schimbrii harii de memorie i
stricrii memoriei ascunse), poate lua aceast informaie n considerare atunci cnd ia o decizie. De
exemplu, dac lum dou fire care sunt la fel de importante , dintre care unul aparine procesului al
crui fir tocmai s-a blocat i cellalt aparinnd unui alt proces, preferinele se ndreapt spre primul
fir de execuie.

Avantaje si dezavantaje ale planificrii user-thread-urilor comparativ cu kernel-thread-urilor
Performana reprezint o diferen major ntre firele din spaiul utilizator i cele din
nucleu.Efectuarea unei comutri de fire n spaiul utilizator este format din cteva instruciuni.n
cazul firelor din nucleu, este necesar o comutare de context complet, schimbarea harii de
memorie, invalidarea memoriei ascunse, operaia fiind mai lent cu cateva ordine de mrime. Pe de
alt parte, n cazul firelor implementate n nucleu, blocarea unui fir la o operaie I/E nu cauzeaz
blocarea procesului cum se ntampl n cazul implementrii n spaiul utilizator.
Un alt factor important este acela c firele din spaiul utilizator pot angaja un planificator specific
aplicaiei. Dac am considera spre exemplu cazul serverului de web, presupunem c un fir de lucru
tocmai s-a blocat i firul de dispecerizare i 2 fire de lucru sunt gata de execuie.Executivul tiind ce
poate face fiecare thread, poate s aleag cu uurin firul de dispecerizare, pentru c acesta s
porneasc execuia unui alt fir de execuie.Aceast strategie maximizeaz paralelismul ntr-un mediu
n care firele de lucru se blocheaz frecvent n memorii de I/E. n cazul firelor implementate n
nucleu, nucleul nu ar putea tii niciodata ce a facut fiecare fir (dei acestea ar putea avea prioritai
diferite):

CURS 6
Definiti blocajul. deadlock
Un set de procese este blocat daca fiecare process din setul respective asteapta un eveniment care
poate fi cauzat doar de un alt process din acest set. Niciunul din procese nu poate rula, elibera
resurse, sau sa treaca in starea awake.
Ce este o resursa preemptibila?
O resursa care poate fi luata de la procesul care o detine fara efecte nedorite. Memoria este un
exemplu de resursa preemtibila.
Ce este o resurs nonpreemptibila?
Este o resursa care nu poate fi luata de la detinatorul ei fara ca executia acestuia sa esueze. Daca un
process a inceput sa inscriptioneze un cd-rom, de exemplu, si deodata I se ia accesul la unitatea de
inscriptionare si se da altui process, va rezulta un cd cu informative amestecata, fara sens. In
general blocajele sunt non-preemtibile.
Care sunt conditiile de aparitie a unui blocaj?
-excluziune mutual o resursa este fie ocupata de un process, fie este libera
-de detinere-asteptare a unei resurse : un process ce detine resurse poate solicita resurse noi
-nonpreemtivitatii: resursele ocupate nu pot fi retrase fortat unui process.
-de asteptare circular: lantul circular de asteptare este format din cel putin 2 procese, fiecare resursa
solicitata este detinuta de urmatorul process din lantul circular.


Cum se pot modela blocajele?
Cu ajutorul grafurilor orientate. Grafurile au doua tipuri de noduri : procesele, reprezentate prin
cercuri, si resursele, reprezentate prin patrate. Un arc de la un nod tip resursa catre un nod de tip
process arata ca acea resursa a fost ceruta, accesul la ea a fost acordat si ea este in present detinuta
de procesul respectiv.
Caracterizati algoritmul strutului.
Se bazeaza pe prezumtia ca nu exista blocaje. Prezumtia este rezonabila daca blocajele apar foarte
rar sau costul prevenirii blocajelor este mare.Unix si Windows utilizeaza aceasta abordare. Este un
compromise intre comoditate si corectitudine.
Cum se realizeaz detectia si rezolvarea blocajelor?
Cand se foloseste tehnica aceasta , sistemul nu incearca sa previna aparitia blocajelor. In schimb, le
lasa sa apara, incearca sa detecteze cand ele se intampla si apoi sa ia masuri pt recuperare. Poate fi
dentificat un ciclu care denota aparitia unui blocaj. In acest caz, se trece larezolvarea blocajelor :1.
prin preemtiune. Eliberarea unei resurse allocate unui alt process; metoda dependent de natura
resursei; 2. Prin rollback. Marcarea punctelor de executie ale uni process, salvarea starii unui process
si utilizarea ei; restartarea procesului din punctual de executie marcat daca se identifica blocaj. 3.
Oprirea proceselor. Sea mai simpla si eficienta metoda, pp. oprirea proceselor a caror executie
poate fi rulata de la inceput de exemplu nu se opreste un process de actualizare a unei baze de date.
Cum se evita blocajele?
Evitarea permite sistemului intrarea n starea de interblocare i rezolv apoi aceast situaie, reprezentnd de multe
ori o soluie destul de dificila i de costisitoare,presupune folosirea de informaii suplimentare referitoare la modul
n careprocesele vor formula cererile de acces la resurse.Cunoscnd toat secvena de cereri i eliberari de resurse
pentru fiecaredintre procese se poate hotr pentru fiecare cerere n parte dacva fi sau nu satisfcut. n cazul
fiecrei formulri de cerere se impune ca sistemul s
ia n considerare resursele disponibile n momentul respectiv, resurselealocate deja, precum
i viitoarele cereri i eliberari de resurse corespunztoare fiecrui proces, pentru a putea decide dac cererea curent
poate fi satisfcutsau trebuie s atepte n vederea evitrii apariiei unei interblocri.Pentru implementarea acestei
metode se folosesc n prezent mai muli algoritmi care difer ntre ei prin tipul i cantitatea de informaie necesar.
Caracterizati starea sigura si nesigura.
O stare este numita sigura-safe- daca sistemul nu se afla in interblocare in acel moment si exista o
ordine de planificare in care fiecare process poate rula pana la terminare, chiar daca procesele arc
ere deodata numarul lor maxim de resurse.
O stare nesigura nu este o stare in care sistemul se afla in interblocare. Dintr-o astefel de stare nu se
poate garanta faptul ca toate procesele se vor termina, pe cand la cea sigur avem aceasta garantie.
Caracterizati algoritmul bancherului pentru o singura resursa
Un algoritm de planificare care poate evita blocajele este o extensie a lgoritmului de detectare a
blocajelor. Algoritmul este modelat dupa felul in care un bancher dintr-un oras mic gestioneaza
un grup de client carora le-a deschis linii de credit. Acesta verifica daca acceptrea unei cereri va
duce la o stare nesigura.Daca da, cererea este respinsa. Daca cererea duce la o stare sigura, ea
este indeplinita. Algoritmul ia in considereare fiecare cerere pe masura aparitiei ei si se uita daca
acceptarea va duce la o stare sigura. Pentru a verifica asta, verifica daca are suficiente resurse
pentru a satisface cativ client. IN caz ca are, se presupune ca aceste imprumuturi vor fi returnate
si in continuare va fi verificat clientul cel mai apropiat de limita si asa mai departe. Daca toate
imprumuturile pot fi retunate, starea este sigura si cererea initiate va fi acceptata.
Caracterizati algoritmul bancherului pentru resurse multiple.
Cauta pe rand, un R, ale carui nevoi de resurse sunt mai mici sau egale cu A. Daca nu exista niciun
astfel de rand, sistemul se va bloca in cele din durma deoarece niciun process nu va putea relua
pana la terminare. Presupunem ca procesul ales cere toate resursele de care are nevoie si se termina.
Marcheaza acest proces ca fiind terminat si adauga toate resursele in vectorul A. Repeta acesti pasi
fie pana cand toate procesele sunt marcate ca fiind terminate, in acest caz starea initiala este sigura,
fie pana cand aparet un blocaj, caz in care starea initiala este nesigura. Acest algoritm este foarte
bine reliefat in teorie, dar practice este nefolositor deoarece rareori procesle stiu in avans care vor fi
nevoile lor maxime de resurse, iar numarul de procese variaz pe masura ce apar sau dispar
utilizatori.
Cum se previn blocajele?
Blocajele se previn cu ajutorula patru conditii. Daca ne asiguram ca cel putin una dintre ele nu va fi
niciodata satisfacuta, atunci este imposibil sa apara blocaje.
1.Combaterea contidiei de excludere mutuala. Daca nicio resursa nu ar fi alocata exclusive pt un
rproces, nu am avea niciodata blocaje. Totusi, daca am permite ca doua procese sa scrie in acelasi
timp s-ar crea haos. Prin introducere in coasa de asteptare(spooling) mai multe rpocese pot genera
simultan date de iesire. Insa, nu toate dispozitivele pot face spooling. Procesele care gestioneaza o
actiune, sunt programate sa actioneze doar dup ace sunt disponibile doate datele de iesire. In acest
caz avem doua procese care au furnizat fiecare o parte din datele de iesire, dar nu toate si de acees
nu se poate continua. Niciunul dintre procese nu se va termina vreodata, asadar avem un blocaj.
Totusi frecvent, se evita alocarea unei resurse cand aceasta nu este absolute necesara si se incearca
asigurarea ca vor exista ca mai putine procese care ar putea cere resursa.
2. Combaterea conditiei de detinere si asteptare. Daca am putea impiedica procesele care detin
resurse sa mai astepte prolucrarea altor resurse, am pute alumina blocajele. Un mod de a face asta
este sa le cerem tuturor proceseloe sa ceara toate resursele inainte de inceperea executiei. Daca
totul este disponbil, procesului ii va fi alocat tot ceea ce ii trebuie si va putea rula pana se va
termina. Daca una sau mai multe resurse sunt ocupate, nu se va aloca nimic si procesul doar va
astepta. Un alt mode de combatere a cond de detinere si asteptare este ca fiecarui process care
doreste o resursa sa I s e ceara sa elibereze temporar toate resursele pe care le detine in present.
Apoi va incerca sa ia dintr-o data tot ce are nevoie.
3.Combaterea lipsei de preeemptie este destul de rar folosita . Daca uni process i-a fost alocata
imprimanta de ex, si se afla in mijlocul tiparirii datelor de iesire, faptul ca I s-ar lua fortat
imprimanta deoarece un trasator cerut nu este disponibil, ar fi derutant sau chiar imposibil.
4. Combaterea conditiei de asteptare circular. Asteptarea circular poate fi eliminate in mai multe
fe;luri. Un mod ar fi sa impunem regula ca orice process are dreptul la o singura resursa la un
moment dat. Daca are nevoie de o a doua, trebuie sa o elibereze pe prima. Pt un proces care are
nevoie sa scoata la imprimanta un fisier urias pe o banda magnetic, aceasta restrictive este
inacceptabila. Un at mod ar fi realizarea unei numerotari globale a resurselor. Regula este
urmatoarea : procesele pot cere resurse oricand vor, dar toate cererile rebuiesc facute in ordinea
numerelor. Un process poate cere mai intai o imprimanta si apoi o banda magnetic, dar nu va putea
cere mai intai un trasator si apoi o imprimanta.Cu aceasta regula, nu pot exista niciodata cilcuri.
Desi ordonarea numerica a resurselor elimiba problema blocajelor, ar putea fi indisponibila alegerea
unei ordini in care sa satisfaca pe toata lumea. Cand resursele include intrari in tabela de procese,
spatial de pe disc alocat pt spooling, intregistrari detinute din baza de date si alte surse, atat ele cat
si diverse folosiri pot fi atat de numeroase a.i. nicio abordare nu mai este posibila.

Explicati si dati exemplu de two-phase blocking.
In momentul in care exista mai multe procese care ruleaza in acelasi timp exista un real risc de
aparitie a interblocarii. Abordarea folosita este denumita blocarea in doua faze. Aici, procesul
incearca mai intai sa blocheze accesul pe rand la toate inregistrarile de care are nevoie. Dca reusese,
incepe faza a doua in care realizeza actualizarile si apoi blocheaza accesul. In rima faza nu este
realizata nicio modificcare. Daca in prima faza este nevoie de o inregistrare care este dj blocata de
altcineva, procesul deblocheaza toate inregistrarile si reia aceasta etapa. Intr-un anumit sens aceasta
abordare este similara cu cereaza in avans a tuturor resurselor necesar, sau cel putin inainte de a se
realize ceva ireversibil. In ultimele versiuni ale blocarii in doaua faze nu are loc eliberarea si
reluarea in cazul in care prima faza este intalnita cu o resursa dj blocata. In aceste versiuni poate
aparea un blocaj. Algoritmul functioneaza doar in acele situatii in care programatorul are lucrurile
aranjate foarte atent astfel incat programul sa poata fi oprit in orice punct in timpul unei faze si
reluat. Multe aplicatii nu pot fi structurate in acest fel.
Explicati si dati exemplu de comunication deadlock.
Dou procese se pot bloca chiar dac nu doresc partajarea aceleiai resurse:
o Procesul A trimite o cerere ctre procesul B.
o Procesul A intr n starea blocked pn la recepionarea unui mesaj de la procesul B.
o Procesul B trimite mesaj ctre procesul A i intr la rndul su n starea blocked.
o Mesajul se pierde i ambele procese sunt blocate.

Ce reprezint un livelock? Exemplificai.
Nici unul din procese nu va realiza un progres n execuia sa dar nici nu va intra n starea
blocked. Acest tip de blocaj se numete livelock.
Exemplificati notiunea de starvation.
Algoritm pentru alocarea imprimantei:fiierele de dimensiune mai mic au prioritate la tiprire.
Algoritmul funcioneaz dac imprimanta primete numeroase cereri de tiprire a unor fiiere de
dimensiune mic.
Totui dac apare o cerere de tiprire a unui fiier de dimensiune mare, aceast cerere va fi
amnat la infinit fr a comuta procesul aferent n starea blocked (The process is starving to
death.)
Soluia este: aplicarea strategiei de alocare primul sosit primul servit.
CURS 7
Caracterizati cazul in care utilizam tehnica de multiprogramare pe partitii fixate de
memorie.
Cea mai simpla modalitate de a face multiprogramare este de a diviaza memoria in n partitii. Cand
un proces trebuie executat va fi pus in coada de intrare a celei mai mici partitii care este suficient
de mare pt a-l cuprinde. Deoarece partitiile sunt fixe, orice spatiu care nu este folosit de un proces
va fi pierdut. Dezavantajul sortarii proceselor executate in cozi de asteptare devine evident cand o
coada pt o partitie mare este goala iar una pt o partitie mica este plina
Cum se realizeaza translatarea adreselor logice n adrese fizice?
Alocarea spaiului din memoria interna se realizeazn funcie de disponibilitatea memoriein acel moment, fapt care
nu permite cunoaterea adreselor reale ocupate de program la momentul execuiei (numite i adrese fizice) n
etapele scrierii i translatrii programelor a cror adrese de memorie, sunt simbolice (numiteadrese
logice). Translatarea adreselor logice n adrese fizice se realizeazprintr-o funcie de translatare care
precede execuia instruciunii respective.Activitatea de gestiune a memoriei are la baz trei algoritmi
:1) algoritmul detransfer care determin cnd un bloc trebuie transferat din memoria externn memoria intern-
naintea execuiei sau n timpul execuiei;2) algoritmul de plasarecare determin ce zonnealocat din
memoria intern este folosit pentru plasarea blocului ncrcat din memoria extern;3) algoritmul
dereamplasarecare determin care blocuri i la ce moment trebuie rencrcate n memoria intern.
Cum se realizeaza swapping-ul ?
Exista mai multe metode de gestiune a memoriei,dintre acestea metodele cu partitii.In sisteme
multiutilizator cu partajare a timpului, sau in computere care au de indeplinit sarcini
consumatoare de memorie apare problema ca memoria principala nu este suficienta.
Solutia in acest caz este ca o parte din procese sa fie stocate pe hard disk si adus in memoria
principala atunci cand este nevoie. Se folosesc doua strategii generale in acest caz:cea mai simpla,
numita swapping, consta in mutarea proceselor cu totul intre memorie si hard fixe pot fi utile in
cazul unui sistem cu prelucrare pe loturi.
Avantajul la swapping este practic ca partitiile memoriei sunt de marime variabila, in functie de
process si astfel memoria poate fi utilizata mai eficient, principalul dezavantaj insaeste ca se
complica algoritmul de alocare a memoriei.
Dupa folosirea swappingului un timp e posibil sa se creeze mai multe zone de
memorie libera care sa fie prea mici pentru a putea incarca un proces intreg in ele, pentru a
rezolva aceasta problema se poate compactata memoria astfel incat sa avem o singura zona de
memorie libera foarte mare si compacta.

Managementul memoriei utilizand bitmap(harta de biti)
O metoda de gestiune a memoriei in cazul swappingului este cu ajutorul hartilor de biti(bitmaps).
Metoda presupune creerea unei harti in care fiecare bit corespunde unei zone dememorie de
dimensiune fixa, bitul fiind 0 pentru o zona libera si 1 pentru o zona ocupata.
Memoria este impartita in unitati de alocare care pot fi de la cativa octeti pana la cativa KB. Fiecarei
unitati de alocare ii corespunde un bit in harta de biti. Bitul este 0 daca unitatea este libera si 1 daca
este ocupata; (AICI) avem 5 procese cu 3 regiuni libere. Cu cat unitatea de alocare este mai libera, cu
atat harta de biti este mai mare. Totusi, daca unitatea de alocare e de 4 octeti, atunci pentru 32 de
biti de memorie va fi necesar un singur bit in harta. O memorie de 32n biti va necesita o harta de n
biti. Asadar, harta de biti va ocupa doar 1\33 din memorie.
Descrieti cum se realizeaza managementul memoriei utiliznd liste.
Utilizarea listelor inlantuite pentru gestiunea memoriei presupune creerea une
liste in care fiecare element se refera la o zona de memorie astfel: zona poate fi
ocupata sau libera, se retine adresa de inceput a zonei si adresa de sfarsit a zonei si un pointer catre
elementele vecine. Lista de obicei este ordonata dupa adrese astfel incat atunci cand trebuie
modificata aceasta sa se faca usor : atunci cand se dezaloca memorie dintr-o zona elementele
corespunzatoare zonelor vecine libere impreuna cu elmentul respectiv se combina formand un nou
element cu adresa de inceput a primului si adresa de final a ultimului si marcat ca liber.
Pentru a aduce un proces din memorie trebuie cautata o zona de memorie
adecvata, pentru aceasta exista mai multi algoritmi cum ar fi first fit (care alege prima zona suficient
de mare pentru a tine procesul respectiv, dupa care la urmatorul process cautarea se face din nou de
la inceput), next fit (alege prima zona suficient de mare, dupa care la urmatorul proces cautarea se
face incepand cu ultima zona unde s-a ajuns), best-fit (se cauta prin toata lista pana se gaseste cea
mai mica zona liberacapabila sa acomodeze procesul respectiv), worst fit (se cauta prin toata lista si
se alege cea mai mare zona libera).



Caracterizati memoria virtuala.
Memoria virtual reprezint o metod de organizare a memoriei prin intermediul creia
programatorul "vede" un spaiu virtual de adresare foarte mare care este mapat n memoria
fizic disponibil, fr ca programatorul s "simt aceasta. Aceasta soluie a aparut din nevoia unui
spatiu mare de memorie, pentru programe prea mari pentru a intra in memoria disponibila. Soluia
folosit n mod uzual a fost mprireaprogramului respectiv n buci numite overlay. Overlay 0
ncepea s ruleze primul. Atuncicnd acesta termin, chem un alt overlay. Unele sisteme bazate pe
overlay erau destul de
complexe permind mai multe overlay-uri n memorie, n acelai timp. Overalay-urile erau
inute pe disc i erau schimbate ntre ele n memorie, n mod dinamic, conform cerinelor.
Schimbarea efectiva a overlay-urilor si operaia de mprire a programului n buci este
fcut de sistem, cu ajutorul memoriei virtuale. Ideea de baz a memoriei virtuale este aceea c
mrimea total a programului, a datelor, poate depi mrimea memoriei fizice disponibile pentru
acesta. Programul menine
prile ce sunt folosite n memorie iar restul prilor sunt inute pe disc. De exemplu, un
program de 16 MB poate rula pe un sistem cu 4MB alegnd cu grij care 4MB trebuie s fie
meninui n memorie n orice moment, iar prile de care este nevoie se vor schimba ntre
disc i memorie. Prin mecanismele de memorie virtual se mrete probabilitatea ca informaia ce se
dorete a fi accesat de ctre CPU din spaiul virtual (disc), s se afle n memoria principal,
reducndu-se astfel n mod semnificativ timpul de acces de la 10-15 ms (timp acces discuri), la 50-
80 ns (timp acces DRAM-uri) n tehnologiile actuale.

Ce reprezinta TLB ?
TLB-uri Translation Lookaside Buffers.
n majoritatea schemelor de paginare tabelele sunt inute n memorie din cauza mrimii lor.Din
moment ce viteza de execuie este limitat de rata cu care CPU-ul poate lua instruciuni i date din
memorie, faptul c este necesar s se fac referine la tabel pentru dou pagini duce la reducerea
performanei.Soluia cu care s-a venit a fost echiparea calculatoarelor cu un dispozitiv hardware mic
pentru maparea adreselor virtuale n adrese fizice fr a trece prin tabel. Dispozitivul se numete
TLB sau uneori o memorie asociativ, este de obicei n interiorul MMU i este alctuit dintr-un
numr mic de intrri, opt n acest exemplu, dar rareori sunt mai mult de 64. Fiecare intrare conine
informaii cu privire la o pagin inclusiv numrul paginii virtuale, un bit ce este setat cnd pagina
este modificat, codul de protecie (permisii decitire/scriere/executare), i cadrul de paginii fizice n
care pagina este situat. Aceste cmpuri au o coresponden unu la unu cu cmpurile din tabelul de
pagin.Un alt bit indic dac o intrare este valid sau nu. Atunci cnd o adres virtual este
prezentat la MMU pentru translaie, hardware-ul verific mai nti s vad dac numrul paginii
virtuale este presetat n TLB comparndu-l simultan cu toate intrrile (n paralel). Dac se gsete o
pereche valid i accesul nu ncalc biii de protecie cadrul paginii este luat din TLB, fr a mai
merge la tabel. Dac numrul paginii virtual este prezent n TLB dar instruciunea ncearc s scrie
pe o pagin ce nu poate fi scris, o eroare de proteci este generat, la fel cum s-ar fi ntmplat i din
tabel.
Prezentati algoritmii de inlocuire a paginilor.
OPTIMAL. Fiecare pagin se eticheteaz cu numrul de instruciuni ce se vor executa pn cnd este
referit pagina pentru prima dat. Atunci cnd trebuie eliminat o pagin din memorie, se selecteaz
pagina cu cea mai mare valoare a etichetei. Dei acest algoritm genereaz cea mai mic rat de
pagini invalidate, el nu poate fi implementat, deoarece sistemul de operare nu poate determina cnd
urmeaz s fie referit o pagin. Acest algoritm este utilizat doar pentru studii comparative. De
exemplu, pentru un algoritm care nu este optimal, este util de tiut c are performane cu 12% mai
slabe dect cele optimal.
NRU. Pentru fiecare pagin existent n memorie, intrarea corespunztoare din tabela paginilor
conine doi bii de stare: R i M: bitul R este pus pe 1 ori de cte ori pagina este referit (n citire
sau scriere), bitul M devine 1 atunci cnd pagina este modificat. Aceti biii trebuie actualizai la
fiecare referire a memoriei. Dac un bit devine 1, el rmne pe aceeai valoare pn cnd este resetat
explicit de ctre sistemul de operare. La prima intrarea n execuie a unui proces, biii R i M asociai
paginilor ce aparin procesului sunt pui pe 0 de ctre sistemul de operare. Periodic (ex. la fiecare
ntrerupere de ceas) bitul R este pus pe 0 pentru a putea face distincie ntre paginile care nu au fost
referite recent i cele care au fost referite. n momentul generrii unei ntreruperi de pagin invalid
de operare inspecteaz toate paginile i le mparte n 4 categorii pe baza valorilor biilor R i M. Clasa
0: nereferit, nemodificatClasa 1: nereferit, modificatClasa 2: referit, nemodificatClasa 3:
referit, modificatPagina care va fi eliminat din memorie este selectat aleator din clasa nevid
avnd cel mai mic indice.
FIFO.Acest algoritm asociaz fiecare pagini momentul la care a fost adus n memorie. Cnd se pune
problema nlocuirii unei pagini se selecteaz pagina cea mai veche. Nu mai trebuie memorat
momentul la care o pagin este adus n memorie dac sistemul de operare menine o list nlnuit
a paginilor din memorie, pagina din capul listei fiind cea mai veche, iar cea de la sfritul listei fiind
cea mai nou. Pagina eliminat din memorie va fi pagina din capul listei, iar atunci cnd se aduce n
memorie o pagin ea va fi nserat la sfritul listei.
SECOND CHANCE ALGORITHM.Folosind algoritmul FIFO exist posibilitatea de a elimina din
memoriei o pagin utilizat intens. Eliminarea unei astfel de pagini va conduce doar la creterea ratei
de pagini invalide. Pentru a evita o astfel de problem se poate modifica algoritmi FIFO astfel nct
s se verifice bitul R al celei mai vechi pagini. Dac R este 0 pagina este veche i neutilizat, deci va
fi nlocuit imediat. Dac R este 1, se reseteaz bitul R, pagina este mutat la sfritul listei i
procesul de cutare continu. Aceast variant modificat a algoritmului FIFO este denumit
algoritmul celei de a doua anse. Acest algoritm caut o pagin veche care nu a fost referit n
perioada anterioar de ceas.
LAST RECENTLY USED. Este o aproximare bun a algoritmului optimal i se bazeaz pe observaia c
paginile care au fost utilizate intens n ultimele cteva instruciuni vor fi, probabil, utilizate intens i
n urmtoarele cteva instruciuni. Aceste observaii sugereaz c atunci cnd se refer o pagin
inexistent n memorie se va nlocui pagina care a fost neutilizat cel mai mult timp. Algoritmul LRU
poate fi implementat n 2 moduri: a) cu ajutorul unei liste nlnuite a tuturor paginilor din memorie.
n capul listei sunt plasate pagini referite recent, iar la sfritul listei se gsesc pagini nereferite de
mult timp. La fiecare referire a unei pagini din memorie ea trebuie cutat n list i mutat n capul
listei. n cazul n care trebuie eliminat o pagin din memorie se va alege ultima pagin din list. b)
cu ajutorul unui contor C (contor hardware) care este incrementat dup fiecare instruciune. Fiecare
intrare din tabela paginilor trebuie s dein un cmp n care s se poat stoca valoarea contorului C.
Dup fiecare referire la memorie, valoarea curent a lui C se stocheaz n intrarea din tabela paginii
corespunztoare paginii referite. La o ntrerupere de pagin invalid se va selecta pagina din
memorie avnd cea mai micvaloare a contorului C (care a fost neutilizat cel mai mult timp).
Care este diferenta dintre o adresa fizica si una virtuala?








CURS 8
Probleme de proiectare a sistemelor cu paginare
Alocare global vs alocare local.
Cnd un proces declanseaz un page fault (pagina accesat nu se gsete n
memoria principal), un algoritm de alocare local a paginilor seleceaz pentru nlocuire o
pagin care aparine acelui proces (sau un grup de procese care mpart aceeai partiie de
memorie). Algoritmul de alocare global a paginilor poate selecta orice pagin din memorie
pentru nlocuire.
Alocarea local a paginilor presupune existena unei partiionri a memoriei care
s determine cte pagini sunt alocate unui proces sau unui grup de procese.
In general, algoritmii de alocare global sunt mai eficieni dect cei de alocare
local, mai ales cnd dimensiunea setului n lucru variaz pe toat durata procesului. Daca se
folosete un algoritm pentru alocare local, iar dimeniunea setului n lucru crete, va rezulta
thrashing-ul. Daca dimeniunea setului scade, algoritmii locali folosesc memoria n mod
ineficient. Pentru un algoritm de alocare global, sistemul trebuie s decid mereu cte pagini
s aloce pentru fiecare proces. O metod este de a monitoriza dimensiunea setului n lucru cu
ajutorul biilor de vrst, dar n acest caz nu se poate spune cu certitudine dac nu va rezulta
thrashing-ul. Dimeniunea setului se poate modifica n cteva microsecunde, pe cnd biii de
vrst dureaz cteva tacturi de ceas.
O alt metod este existena unui algoritm care s aloce pagini proceselor n lucru.
Se determin numarul proceselor n lucru i se aloc pentru fiecare un numr egal de pagini.
La folosirea unui algoritm de alocare global, este posibil s alocm pentru nceput
un numr de pagini proporional cu dimensiunea procesului, dar alocarea trebuie updatat pe
msur ce procesele se execut. Astfel se folosete algoritmul frecvenei page fault-urilor
(PFF page fault frequency), care stabilete cnd s se mreasc sau s scad numrul de
pagini alocate unui proces. Acest algoritm nu d nici o informaie asupra crei pagini sa fie
nlocuit cnd apare un fault, ci doar controleaz dimensiunea setului alocat.
Controlul alocrii paginilor
Chiar dac se folosesc cei mai buni algoritmi de alocare a paginilor, se poate
ntmpla s rezulte tharshing-ul. De fapt, de fiecare dat cnd suma tuturor seturile n lucru
ale proceselor este mai mare dect capacitatea memoriei, rezulta thrashing-ul.
Acest lucru se poate observa atunci cnd algoritmul PFF indic existena unui
proces care are nevoie de mai mult memorie, dar nici un proces nu are nevoie de mai puin
memorie. Situaia n care se ajunge este destul de delicat: nu se poate aloca memorie n
plus procesului care are nevoie, deoarece nu avem de unde. Trebuie s scpm temporar
de anumite procese. Singura metod pentru a realiza acestu lucru, fr a termina forat
procese, este s le mutm pe disc (swap). Astfel, paginile rmase libere de la procesle mutate
vor fi acum alocate proceselor care au mai mult nevoie de memorie.
Dimensiunea paginilor
Dimensiunea paginilor este de obicei determinat de arhitectura procesorului.
Un sistem cu dimensiune mic a paginilor utilizeaz mai multe pagini, astfel c
tabela de pagini (page table), care este utilizat pentru a face legtura ntre adresele virtuale
i adresele fizice, va ocupa mai mult spaiu.
Pentru a face legtura ntre adresele fizice si adresele virtuale, procesoarele au
nevoie de o tabela speciala, numita Translation Lookaside Buffer, sau TLB, care este
consultata la fiecare acces de memorie. TLB nu are o dimensiune fix, iar cnd nu poate
completa cerere de adres (TLB miss), tabelele de pagini trebuie cautate manual (hardware
or software), pentru a se gasi adresa cautat. Daca dimensiunea paginilor este mare, atunci
tabela TLB poate memora mai multe legturi ntre adresele virtuale si adresele fizice,
evitndu-se astfel acele TLB misses, mari consumatoare de timp.
Rareori se ntmpl ca un proces sa aib nevoie de un numr fix (ntreg) de pagini.
Astfel, ultima pagin va fi parial ocupat, restul de memorie neocupat din acea pagin
neputnd fi utilizat. Astfel, dimensiunea mare a paginilor va crete probabilitatea ca poriuni
mari din memorie s nu poat fi utilizate. Dimensiunea mic a paginilor asigur o mai bun
egalitate ntre dimensiunea memoriei si dimensiunea total a proceselor.
Spaiul datelor i spaiul instruciunilor
Instruciunile i datele ocup spaii de adrese diferite n memorie. Astfel, exist o
adresa 0 n spaiul adreselor instruciunilor, care pointeaz ctre o locaie unde este
memorat o instruciune; la fel i pentru date.
La un calculator cu acest design, ambele spaii de adrese (al instruciunilor i al
datelor) sunt paginate independent una de cealalt. Fiecare are tabela ei de pagini, cu legturi
independente ntre adrese virtuale si adrese fizice de date i instruciuni. Cnd este nevoie de
o instruciune, procesorul tie ca trebuie s foloseasc spaiul instruciunilor si tabela de
pagini a instruciunilor. La fel i pentru date.
Pagini partajate
Intr-un sistem multiprogramat, este ceva normal ca mai muli utilizatori s ruleze
acelai program n acelai timp. Este evident c este mai eficient s se utilizeze aceleai
pagini, dect s fie mai multe copii ale acelor pagini n memorie.
41Dac exist spaii separate pentru date i instruciuni, este evident c pentru a
partaja programele, procesele vor folosi aceeasi tabel de pagini pentru instruciuni, dar
tabele de pagini diferite pentru date. Tabelele de pagini sunt structuri de date independente
de tabela de procese. Fiecare proces are doi pointeri n tabela de procese: unul pentru tabela
de date i unul pentru tabela de instruciuni.
Cnd mai multe procese folosesc aceleai instruciuni, apar probleme cu paginile
pe care le folosesc. Daca un proces se execut si este eliminat din memorie, toate
coninuturile paginilor care i-au fost alocate sunt terse, iar paginile vor fi alocate altor
procese. Astfel, procesele care foloseau paginile primului proces vor genera multe fault-uri,
pentru a ncrca n memorie paginile necesare lor. Similar, cnd un procesul i termin
execuia, este esenial s se tie care dintre paginile lui sunt folosite de alte programe, pentru
a nu fi golite din greeal. Se folosesc astfel structuri de date speciale care memoreaz care
pagini sunt folosite de mai multe procese i care sunt aceste procese.
n cazul datelor, fiecrui proces i este alocat o tabel de pagini, fiecare pointnd
cre acelai set de date. Nu este nevoie s sa copieye setul de date, pentru fiecare proces.
Paginile de date sunt Read Only pentru fiecare proces n parte.
Atta timp ct procesele nu modific datele, ci doar le citesc, nu este nici o
problem. Cnd un proces modific o anume data din memorie, se creaz o copie a paginii,
astfel ca fiecare proces are acum pagina lui de date. Acestea sunt acum Read Write, astfel c
viitoare modificri ale datelor nu vor produce nici o violare n sistem.
Aceast strategie mrete performanele sistemului, deoarece paginile al cror
coninut nu este modificat nu vor fi copiate.
Eliberarea (curarea) paginilor
Cnd este nevoie de o nou pagin, iar nu este nici o pagin goal n memorie
spre a fi scris cu noua informaie, una din paginile actuale trebuie mutat pe disc (swap).
Toate sistemele au un proces numit paging daemon, care cerceteaz periodic
memoria i menine un numar suficient de pagini goale spre a fi folosite la nevoie. El
selecteaz i transfer pe disc, prin algoritmii specifici de alocare a paginilor, paginile care au
fost modificate dup ce au fost ncrcate.
Interfaa memoriei virtuale
Memoria virtual este transparent proceselor i utilizatorlor, este un spaiu mare
de adrese vituale, pe un calculator cu puina memorie fizic.
n unele cazuri, utilizatorii au puin control asupra memoriei i pot modifica modul
de comportare al diveselor programe.
Cea mai utiliyata tehnic de management a memoriei este DSM Distributed
Shared Memory. Scopul este acela de a permite mai multor procese ntr-o reea s aib
acces la acelai set de pagini, printr-un singur spaiu de adrese. Cnd apare un fault,
procedura de tratare a fault-urilor detecteaz n reea ce calculator are pagina cerut i trimite
un mesaj prin care pagina este eliminat din tabela de pagini si din memoria surs, este
trimis prin reea celui care a cerut-o, care o va indexa intr-o tabela de pagini i o va aloca
programului care are nevoie.

Segmentarea .ntr-un spaiu de adresare unidimensional cu tabele de pagini n cretere exist
posibilitatea ca la un moment dat acestea s se suprapun.Din acest motiv au aprut segmentele
care permit fiecrei tabele de pagini s-i modifice dimensiunea n mod independent. Segmentele
sunt spaii de adresare independente.Segmentarea permite partajarea de date sau cod ntre mai
multe programe.

Diferente dintre paginare si segmentare.
Consideraie Paginare Segmentare
Programatorul trebuie s
tie ce tehnic se
Nu Da
utilizeaz?
Cte spaii contigue de
adresare exist?
1 Mai multe
Spaiul de adresare total
poate depi dimensiunea
memoriei?
Da Da
Datele i codul pot fi
identificate i protejate
separat?
Nu Da
Tabelele de pagini de
dimensiune variabil pot
fi gestionate uor?
Nu Da
Partajarea codului ntre
utilizatori este facil?
Nu Da
De ce a fost inventat
tehnica?
Pentru a simula un
spaiu de adresare
contiguu mai mare
fr a achiziiona
mai mult memorie
Pentru a permite ca zona
de date i zona de cod s
fie dou zone de
adresare logice
independente ajutnd
astfel la protecia i
partajarea acestora.

Translatarea unei perechi (selector,deplasament) n adres fizic n cazul segmentrii
pure


Fragmentarea externa.
Problema golurilor aflate intre diferitele procese aflate in memorie poarta numele de
fragmentare externa. Memoria care nu este alocata devine in timp din ce in ce mai
fragmentata.Fragmentarea externa poate fi eliminata prin tehnici costisitoare de compactare a
memoriei
Ce reprezinta un selector?
Selectori = Registre: cs, ds, ss, es, fs, gs Index: Indexeaz tabela de descriptori .TI: indic tabela: GDT
sau LDT .Tabelele sunt inute n memorie la adrese specificate n registre: gdtr i ldtr .RPL: dac
selectorul este ncrcat n CS, specific nivelul curent de privilegiu (CPL).
Un selector e un numar reprezentat pe 16 biti dintre care unul din bitii selectorului precizeaza daca
selectorul e local sau global
Ce reprezinta un descriptor?
descriptorii - plasai ntr-un tabel ;accesul la un segment - pe baza indicelui n tabelul de descriptori
(selector).adresa virtual - 2 componente: indicele n tabelul de descriptori si deplasamentul n
cadrul segmentului .adresa fizic = adresa de nceput a segmentului + deplasamentul
Fiecare program are un tabel de segmente, cu acte un descriptor pentru fiecare segment.Deoarece
exista mai bine de un sfert de milion de intrari in tabel, descriptorul este el insusi un segment si este
paginat.Descriptorul de segment contine o indicatie care atesta, sau nu, apartenenta segmentului la
memoria principala.Daca vreo parte din segment se afla in memorie, atunci se considera ca
segmentul si tabelul sau de pagini se afla in memorie.Daca segmentul este in memorie, descriptoul
sau contine un pointer de 18 biti catre tabelul sau de pagini.
Ce reprezinta algoritmul PFF?
PFF (Frecvena de eroare de pagin) Este un algoritm de spaiu variabil care folosete o abordare
mult mai ad-hoc. Monitorizeaz frecvena de eroare pentru fiecare proces.Dac aceasta este
peste un prag nalt ales, i se d procesului mai mult memorie, astfel nct s fie mai puine
defecte,dar nu funcionez ntotdeauna (Ex.: FIFO, anomalia lui Belady).Dac frecvena de eroare este
sub un alt prag ales, jos, se ia memorie de la proces.Ar fi normal ca el s produc mai multe defecte,
dar nu este regul. Este greu s se utilizeze PFF pentru a distinge ntre schimbrile de localitate i
schimbrile n dimensiunea WS-ului.
Cum se calculeaza rata de defecte de pagina?
Una din propietatile placate ale sirului distanta este ca paote fi folosit pentru predictia
numarului de defecte de pagina ce vor avea loc cu memorii de diferite marimi.
Scopul este realizarea unei treceri prin sirul distantelor si din informatia adunata, predictia
nr de defecte de pagina pe care procesul le va avea in memorii cu 1,2,3.,n cadre de pagina,
unde n este nr de pagini virtuale in spatiul de adrese al procesului.
Algoritmul incepe prin parcurgerea sirului distantelor, pagina cu pagina.Aceasta tine
evidenta nr de aparitii ale lui 1, numarul de aparitii ale lui 2 s.a.m.d.Fie C numarul de aparitii
ale lui i.Fie C

nr de aparitii ale lui in sirul distantelor.
Clacula acum vectorul F in functie de formula:




Valoarea lui F
m
reprezinta numarul de defecte de pagina care vor avea loc cu sirul
distantelor date si m cadre de pagina.
De exemplu:Daca F
1
este 20 ,insemnand ca , in conditiile in care o memorie sticheaza doar 1
cadru de pagina , din cele 24 de referinte din sir , toate vor genera defecte de pagina cu
exceptia celor 4 cadre care sunt la fel cu referinta paginii precedente.
Un defect de pagina este genrat de fiecare data cand un element al sirului distanta este egal
cu m+1 sau ami mult.Suma din formula de mai sus aduna numarul de aparitii ale unor astefl
de elemnte.

O pagina se poate regasi n doua seturi de lucru simultan? Nu.

Explicati diferentele dintre fragmentarea interna si fragmentarea externa.

Translatarea unei perechi selector , depalsament se realizeaza astefel:
1.se identifica pe baza selectorului, descriptorul de segment
2.se verifica daca depalasemtul depaseste limita segmentului
3.daca nu se depaseste adaug la campul de baza de 32 de biti din descriptorul de segment la
deplasament si formez adresa liniara.
Algoritmul FIFO poate lucra cu:
a) Algoritmi de alocare local
b) Algoritmi de alocare global
c) Algoritmi de alocare local i global
d) Nici una din variante
Algoritmul LRU poate lucra cu:
a) Algoritmi de alocare local
b) Algoritmi de alocare global
c) Algoritmi de alocare local i global
d) Nici una din variante
Algoritmul WSclock poate lucra cu:
a) Algoritmi de alocare local
b) Algoritmi de alocare global
c) Algoritmi de alocare local i global
d) Nici una din variante
Algoritmul setului de lucru poate lucra cu:
a) Algoritmi de alocare local
b) Algoritmi de alocare global
c) Algoritmi de alocare local i global
d) Nici una din variante


CURS 9.
Fisier:definitie, structura, tipuri, modalitati de acces, atribute, operatii cu fisiere

Sistemul de fiiere este o bucat dintr-un sistem de operare (adic o parte dintr-un program, de fapt);
aceast bucat este vizibil utilizatorului ca un set de proceduri (apeluri de sistem, pentru a fi mai
precii) care opereaz cu fiiere, manipulnd o structur de date pe un suport permanent de
memorie.
Sistemul de fiiere ofer structura modului de organizare a informaiilor n sistem: structura
arborescent (ierarhic) de directoare i fiiere. De fapt, aceast concepie a fost preluat de
celelalte sisteme de operare(DOS, Windows, Netware).
Ideea care st la baza sistemului de fiiere este ierarhia. Se ceeaz astfel imaginea
unui sistem de fiiere ierarhizat sub form de arbore, n vrful cruia se
afl directorul radacina (root), notat \, la care se pot conecta un numr de directoare i fiiere.
Fiecare director poate conine alte directoare i fiiere, directoare care la rndul lor pot conine
alte directoare i fiiere, pe un numr nelimitat de nivele. Aceast structur arborescent este
folosit de sistemul UNIX pentru gestionarea i localizarea fiierelor proprii i ale utilizatorilor.

Sistemul Unix utilizeaz patru tipuri de fiiere: ordinare, director, speciale, pipe.
Acces. Acces secvenial .Citirea octeilor/nregistrrilor de la nceputul fiierului ;Se pstreaz
ordinea de citire n fiier,fiierele se pot derula napoi sau salva ;Convenabil cnd mediul de
stocare era banda magnetic
Acces aleator .Citirea octeilor/nregistrrilor n orice ordine .Esenial pentru sistemele de
baze de date .Citirea se realizeaz prin dou metode:Mutarea marcatorului de fiier (seek),
apoi citete sau ; Citete i apoi muta marcatorul de fiier .
Atribute.
-protection. Cine si cum poate accessa fisierul
-password
-creator .idul persoanei care a creat fisierul
-owner.
-read-only flag. 0 pt citire sau scriere , 1 pt read only
-hidden flag. 0 pt normal 1 pt a nu fi afisat
-archive flag,ascii, random access flag, temporary flag,lock flags,record length, key position, key
length, creation time, time of acess, time of last change, current size, maximum size.
Operatii.Create Delete Open Close Read Write Append Seek Get attributes Set Attributes Rename.
Director:definitie, forme, cale, operatii
Definitie:
Directorul este un caz particular de fiier ce arat ca un cuprins de
carte. El conine dou coloane de informaie - numerele inode ale fiierelor
i numele fiierelor. Fiecare director conine o referin ctre el nsui
(identificat prin semnul .) i ctre directorul printe (identificat prin ..).
Chiar i directorul rdcin root conine o referin ctre directorul
printe, care n acest caz este o referin ctre el nsui. Directoarele pot
conine subdirectoare i fiiere. La rndul lor, subdirectoarele pot conine
alte subdirectoare i alte fiiere. Orice sistem de operare posed o anumit
modalitate de structur a directoarelor pentru organizarea informaiei pe
hard-disc; n UNIX un director se numete directory, iar n Windows i
MacOS un director se numete folder, avnd ns aceeai semnificaie.
Forme:
Aceste directoare au urmtorul coninut:
/bin Comenzi UNIX
/dev Director pentru dispozitive speciale
/etc Programe i fiiere de date suplimentare
/lib Directorul bibliotecii de programe C
/mnt Directorul mount; rezervat pentru montarea sistemelor de
fiiere
/opt Conine aa numitele software storage objects (SSO's)
/tmp Director temporar
/usr Conine rutine utilizator
/var Fiiere obiect nepartajate
/home Directorul utilizatorilor sistemului

Cale:

Operatii:
1. Create-creaza
2. Delete-sterge
3. Opendir-deschide
4. Closedir-inchide
5. Readdir-citeste
6. Rename-redenumire
7. Link-creaza o legatura-o legatura hard
8. Unlink-sterge o legatura


Implementarea fisierelor
Schema general a unui sistem de fiiere
(a) Alocarea contigu a spaiului de pe disc pentru 7 fiiere
(b) Starea discului dup tergerea fiierelor D i F
Stocarea unui fiier ca o list nlnuit de blocuri
O list nlnuit de blocuri ce utilizeaz FAT(file allocation table) n RAM


Implementarea directoarelor

(a) Un director simplu
Intrri de dimensiune fix
Adresele i atributele intrrilor se regsesc n director
(b) Director n care fiecare intrare refer un i-node
Dou metode de tratare a fiierelor cu denumiri lungi ntr-un director
(a) In-line
(b) In a heap


Sistem de fisiere: definitie, schema general, tipuri cunoscute.
Sistemul de fiiere reprezint o construcie logic ce ofer
posibilitatea stocrii i regsirii informaiei ce se afl pe un dispozitiv de
stocare cu acces aleator. Un sistem de fiiere este parte integrant a
sistemului de operare i este format din fiiere, directoare precum i
informaii necesare pentru localizarea i accesul acestora. Sistemul de fiiere
UNIX ordoneaz i grupeaz din punct de vedere logic fiierele ntr-o
manier eficient, prin cuprinderea acestora n directoare ce sunt
asemntoare dosarelor ce conin mai multe documente.
UNIX posed un sistem de fiiere ierarhic, cu o structur
arborescent multi-nivel ce pleac de la directorul rdcin (root),
simbolizat prin caracterul / (slash), putnd de fapt s fie suportate mai
multe sisteme de fiiere simultan pe acelai disc. Fiecare disc este divizat n
poriuni (partiii) ce pot gzdui un sistem de fiiere, un domeniu de swap sau
un domeniu de date speciale.

Ce reprezinta numrul magic?
un numr magic (o constant rezervat) pentru a indica tipul sistemului de fiiere (ex.:
sistem de fiiere SCO Unix);
Numarul magic precizeza daca fisierul este executabil sau nu.

Cum este implementat accesul aleator la fisier sub MS-DOS?

Precizati avantaje si dezavantaje ale legaturilor simbolice comparativ cu cele
hardware

Caracterizati FAT, FAT32, NTFS

Un sistem de fiiere clasic este File Allocation Table (FAT). Sistemele FAT sunt administrate pe
disc de ctre SO. Tabela FAT conine o hart de fiiere precum i modul n care acestea sunt stocate
pe disc. Sistemul FAT conine referine ctre clusterele de pe disc. Clusterul este unitatea de baz a
stocrii logice pe disc. Un fiier poate fi stocat pe mai muli clusteri, dar un cluster poate conine
date provenind de la un singur fiier. Clusterii pot fi aranjai (sau nu) unul lng cellalt. SO
utilizeaz sistemul FAT pentru a identifica toi clusterii de pe disc n care un fiiere este stocat.
Exist trei tipuri de sisteme FAT. Versiunea original este aceea ce a pstrat numele de FAT, iar
versiunile FAT16 i FAT32 reprezint versiuni mbuntite ale acesteia.
Sistemul FAT original a fost folosit prima oar pe primele versiuni de MS-DOS, nefind
capabil s fie utilizat pentru hard discuri mai mari sau pe sisteme de operare mai avansate precum
Windows 3.1, Windows 95/98. Sistemul original FAT avea limitri i n privina numelor de fiiere,
putnd recunoate nume de fiiere pn la 8 caractere n lungime. Alte limitri erau cele legate de
imposibilitatea utilizrii hard discurilor de capaciti mari i de nerecunoaterea de ctre SO
avansate. Sistemul FAT nu putea s utilizeze n mod eficient spaiul de pe discurile cu capaciti mai
mari. Aceast modalitate de utilizare ineficient a reprezentat aceeai problem cu care s-a
confruntat i FAT16 (i a determinat apariia lui FAT32). FAT16 a fost creat pentru a putea utiliza
partiii pn la 4 GB.
FAT32. Acest sistem de fiiere pe 32 de bii utilizeaz clusteri de dimensiuni mai mici i
ofer suport pentru partiii pn la 2 TB.

SO diferite utilizeaz sisteme de fiiere diferite iar unele SO pot utiliza mai multe sisteme de
fiiere. Spre exemplu, dei Windows 3.x poate utiliza doar sistemul FAT16, Windows 2000 poate
utiliza FAT16, FAT32 sau NTFS (New Technology File System).
Sistemul de fiiere determin conveniile pentru denumirea fiierelor i formatul pentru specificarea
cii (drumului) ctre locaia fiierului. Aceste reguli pentru stabilirea numelor fiierelor variaz n
funcie de sistemul de fiiere i cuprind urmtoarele probleme:
Numrul maxim de caractere permise n numele fiierului
Numrul maxim de extensii sau sufixe
Dac sunt admise sau nu spaii n numele fiierelor
Dac numele fiierelor sunt case sensitive
Ce caractere pot fi utilizate pentru numele fiierelor
Formatul de specificare a cii ctre fiier





Curs 10:
Sisteme de fisiere cu jurnalizare.

Ideea este :
Pstrarea unui jurnal a operaiilor planificate pe sistemul de fiiere astfel nct dac
sistemul se va bloca sau va fi repornit s se poat continua operaia ntrerupt.
Numai dup ce jurnalul este editat (se nregistreaz operaiile planificate) operaiile se
vor executa.
Sistemele de fiiere NTFS i ReiserFS utilizeaz jurnalizare.

Sisteme de fisiere virtuale.

SO Windows poate conine la un moment dat mai multe sisteme de fiiere eterogene pe
diferite partiii
SO Unix integreaz sisteme de fiiere multiple ntr-o singur structur utiliznd conceptul de
VFS(Virtual File System)
Sistemul de fiiere virtual se bazeaz pe existena :
O interfa cu procesele utilizator numit i interfaa POSIX
O interfa la sistemul de fiiere propriu-zis
Unui comutator ntre interfee
Un translator pentru fiecare sisteme de fiiere integrat


Descrieti un i-node.
Reprezentarea interna a unui fisier si informatiile referitoare la carcateristicile sale sunt
continute de o structura de date numita i-nod (information node), care contine date despre:
pozitia pe disc a datelor din fisier, proprietarul fisierului, drepturile de acces, momentul
ultimului acces la fisier sau ultima modificare a fisierului sau I-nodului. Un fisier poate avea
mai multe nume, dar exista un singur i-nod asociat. Relatia stabilita intre nume si i-nod se
numeste legatura . Fiecare i-nod are asociat un numar de ordine (inumber) ce desemneaza in
mod unic numele interne ale fisierelor, iar cataloagele contin numai tabela de traducere a
numelui extern al fisierului in numarul de ordine asociat. Cand un proces creeaza un nou
fisier, nucleul asociaza acestuia un i-nod liber al carui numar de ordine devine identificatorul
intern al fisierului si creeaza o noua intrare in catalogul corespunzator. I-nodurile sunt
memorate in sistemul de fisiere dar, pentru a micsora timpul de executie a operatiilor care
necesita informatii despre fisiere, o copie a tabelei de i-noduri este pastrata in memoria
interna.
Nucleul sistemului de operare contine urmatoarele structuri de date: o tabela de fisiere, cate o
tabela de descriptori de fisier pentru fiecare proces. Tabela descriptorilor de fisier identifica
toate fisierele create sau deschise de un anumit proces. Tabela de fisiere inregistreaza, pentru
fiecare fisier, pozitia in octeti de la care se va face urmatoarea operatie de citire sau scriere
asupra fisierului. In momentul in care procesul va lansa o comanda de deschidere sau creare
de fisier, nucleul sistemului de operare ii va intoarce indexul fisierului din tabela
descriptorilor de fisier alocata acelui proces. Daca procesul lanseaza o comanda de
scriere/citire asupra fisierului, comanda va contine ca argument si acest index, pe baza caruia
sistemul de operare va identifica descriptorul acelui fisier, apoi pozitia sa in sistemul de
fisiere si in cele din urma i-nodul asociat (din informatiile cuprinse in i-nod se identifica zona
de date a fisierului.


Ce reprezinta logical dump?
Logical dump-cel mai comun algoritm utilizat aun unix, salveaza toate directoarele chiar si
cele nemodificate , care se afla in calea fisierelor sau directoarelor , care s-au modificat de la
ultima salvare.Acest algoritm pastreaza o harta indexata dupa i-node-ul fiecarui item din
arbore.
Fazele acestui algoritm sunt:
1. Se marcheaza in harta de biti toate directoarele , nu doar cele care contin fisiere
modificate si fiecare director este inspectat recursive
2. 2. Se demarcheaza directoarele care nu contin fisiere modificate sau subdirectoare cu
fisiere modificate.
3. 3.se scaneza i-node-urile in ordine si se salveaza directoarele marcate
4. 4. Sunt salvate si directoarele demarcate la pasul 2.

Ce reprezinta physical dump?

Physical dump-se saveaza toate blocurile de date in ordine , pornind de la blocul 0.
Acantajele acestei metode sunt viteza si simplitudinea.
Dezavantajele sunt mai numeroase:
-se salveaza blocuri nefolosite sau blocuri defecte
-nu se poate sari directoarele selectate in acest sens
-nu se realizeaza salvari incrementale
-nu se poate restaura fisiere individuale la cerere.

Tehnici de reducere a accesului la disc.

Accesul la disc este mult mai dificil decat accesul la memorie, exista 3 tehnici de reducere a
accesului la disc:
1. Prin utilizarea unui buffer cache(zona de tampon)
Buffer-ul este o colectie de blocuri de date, care logic apartin de disc, dar sunt pastrate in
memorie pentru a mari performanta accesului la disc.Deoarece un buffer contine f multe
blocuri pentru a identifica rapid daca un anumit bloc se afla in buffer se utilizeaza o
tabela hash, care contine adresele de dispositive si de pe disc.Toate blocurile ce contin
aceiasi valoare hash sunt legate intre ele si formeaza o lista.Cand apare necesitatea
inlocuirii sau stergerii unui bloc se utilizeaza algoritmul LRU.
2. Bloc citit inainte este o tehnica ce poate fi aplicata doar fisierelor ce pot fi accesate
secvential, deoarece daca s-a citit blocul k, atunci se verifica automat daca si blocul k+1 se
afla in buffer, chiar daca acesta din urma nu a fost inca solicitat.
3. Se refera la reducerea numarului de rotatii de disc prin lansarea blocurilor
consecutive(care vor fi accesate secvential) preferabil in acelasi cilindru.


Un sistem de fisiere este n starea inconsistent. Descrieti.

Lista aceasta este bidirectionala sic a atare LRU este f efficient.Totusi daca se intampla ca
sistemul de fisiere sa devina inconsistent algoritmul LRU.Unix rezolva problema
inconsistentei prin apelul de sistem sync, care forteaza salvarea tuturor blocurilor modificate
pe disc.Cand sistemul este pornit, este pornit un prag numit update, care ruleaza din 30 s in
30secunde, care ruleaza in background si al fiecare rulare se acceseaza apelul sync.
Sistemul de operare unix are un asemenea apel de sistem care se numeste flushfile buffer.

Ce este cota de disc?
Care sunt principalele probleme de considerat n momentul realizrii unui backup?
Descrieti modalitatea de functionare a bufferului cache.

Buffer-ul este o colectie de blocuri de date, care logic apartin de disc, dar sunt pastrate in
memorie pentru a mari performanta accesului la disc.Deoarece un buffer contine f multe
blocuri pentru a identifica rapid daca un anumit bloc se afla in buffer se utilizeaza o
tabela hash, care contine adresele de dispositive si de pe disc.Toate blocurile ce contin
aceiasi valoare hash sunt legate intre ele si formeaza o lista.Cand apare necesitatea
inlocuirii sau stergerii unui bloc se utilizeaza algoritmul LRU.



Performanta sistemelor de fisiere.

Una dintre metodele care creste performanta este acea de a plasa i-node-urile in mijlocul
discului, reducand astfel timpul mediu de cautare dintre un i-node si primul bloc la jumatate.
O alta metoda ar fi de a divide discul in grupuri de cilindri, fiecare cu propiile i-node-uri,
blocuri de date si liste de blocuri goale.
SO windows detin programe de defragmentare care trebuie utilizat regulat de utilizator,
deoarece avem nevoie de cat mai multe spatii contigue pe disc.
Defragmentarea este consumatoare de timp, dar timpul poate fi redus semnificativ daca
sistemul de fisiere detine un spatiu contiguu liber mai mare la sfarsitul partitiei.
SO UNIX si LINUX nu necesita defragmentare la fel ca SO WINDOWS.

Curs 11:
1. Principii ale dispozitivelor hardware de I/O
Dispozitive de I/O pot fi mprite n dou categorii:
~dispozitive orientate pe blocuri stocheaz informaii n blocuri orientate de dimensiune
fix,
fiecare bloc avnd adres proprie. Principala proprietate a unui dispozitiv orientat pe
blocuri const n posibilitatea de a citi sau scrie fiecare bloc independent de celelalte.
Unitile de disc sunt cele mai uzuale dispozitive orientate pe blocuri.
~dispozitivele orientate pe caractere dispozitive care furnizeaz sau accept un flux de
caractere, nu sunt adresabile i nu dispun de o operaie de cutare (imprimante, interfa de
reea, mouse-ul, tastatura, etc).

2. Ce este un controler?
Controlerul de memorie este un circuit digital care gestioneaza fluxul de date din memoria
principala. Poate fi un cip separat sau integrat in alt cip.
3. Ce este o intrerupere?
Intreruperea este un semnal electric generat de controller si trimis unui circuit special numit
controller de intreruperi numite IRQ(Interact Request)
4. Mecanismul DMA.
Fara mecanismul DMA, un controller de disc citeste un bloc de pe disc bit cu bit si
asambleaza acest flux intr-un bloc intr un buffer intern.
Apoi, detecteaza si conecteaza posibile erori si genereaza intreruperi.Sist. De operare citeste
blocul de date din bufferul controllerului si il transforma in memorie. Tot acest process este
consummator de timp. Mecanismul DMA a fost creat pentru a scuti procesul de operatie de
transfer a datelor.
Ca atare, procesul furnizeaza controllerului pe langa adresa blocului de date care trebuie citit
si: - adresa din memoria unde va fi stocat blocul citit de pe disc
~ nr de octeti transferat
Dupa citirea blocului, controllerul transfera blocul in memorie si nu procesorul
Controllerul foloseste un contor pentru a tine evidenta tuturor octetilor transferati incheind
op de transfer cand controllerul=0. Apoi, se genereaza o intrerupere pt a informa sist. ca
blocul de date e disponibil in memorie. Astfel, sist de operare nu trebuie sa copie blocul pt ca
acesta este deja in memoria principala.
Daca nu utilize bufferul, ar trebui sa utilizam magistrala care poate fi ocupata cu rezolvarea
altor tranzactii si ca atare controllerul ar genera numeroase mesaje de eroare.
5. Principii ale software-ului de I/O
-denumirea lor e uniforma (UNIX trateaza dispoz ca niste fisiere)
-toate erorile se trateaza prin rutine de tratare a intreruperilor
6. Nivelurile software-ului de I/O
-soft I/E de nivel utilizator
-nivelul sistemului de operare independent de echipament
-drivere de echipament
-rutinele de tratare a intreruperii
-hard