Date post: | 03-Jun-2018 |
Category: |
Documents |
Upload: | ala-mushkei |
View: | 217 times |
Download: | 0 times |
of 200
8/12/2019 Sisteme de Operare1
1/200
SISTEME DE
OPERARE
autor: Cebotaru Eugenia
8/12/2019 Sisteme de Operare1
2/200
ntrebri???
Ce este un sistem de operare?Care este menirea sistemului de operare?
Care sunt componentele sistemului de calcul?
Ce este Hardware?
8/12/2019 Sisteme de Operare1
3/200
Ce este un sistem de operare?
Sistemul de operareeste un program
care acioneaz ca o interfantre:
utilizatorulunui sistem de calculi
hardware-ul acestuia.
8/12/2019 Sisteme de Operare1
4/200
Menirea SO:
Este de a crea un mediu n care
utilizatorul
s poatexecuta programe cu mai mult uurin.
p.d.a.p.
de a asigura utilizarea eficient a hardware-ului.
8/12/2019 Sisteme de Operare1
5/200
Componente ale sistemului de calcul
Cele mai importante componente ale aproapeoricrui sistem de calcul sunt:
hardware,
sistem de operare,
programe de aplicaii,
utilizatori.
8/12/2019 Sisteme de Operare1
6/200
Hardware
Hardware-ulfurnizeazresursele de baz pentru
efectuarea calculelor.
8/12/2019 Sisteme de Operare1
7/200
Programele de aplicaii
definesc modul n carevor fi folosite aceste resurse
pentru a rezolva
problemele de calculale utilizatorilor.
8/12/2019 Sisteme de Operare1
8/200
Sistemul de operare (SO)
controleazi coordoneazutilizarea hardware-ului
ntre diferite
programe de aplicaiiale utilizatorilor.
8/12/2019 Sisteme de Operare1
9/200
DefiniieSO furnizeaz
instrumentelecu ajutorul crora s fie folosite
n mod corespunztorresursele de baz
ale sistemului de calcul(hardware, software).
8/12/2019 Sisteme de Operare1
10/200
DefiniieSistemul de operare
poate fi privit ca
administrator al resurselor
pe care le alocn funcie de necesitile
programelori utilizatorilor
astfel nct exploatarea sistemului de calcul
s fie corecti eficient.
8/12/2019 Sisteme de Operare1
11/200
DefiniieUn SO poate fi privit ca un program de controlcare urmrete:
efectuarea programelor utilizatorilor pentru a putea prevenieventualele erori,
folosirea necorespunztoare a sistemului de calcul,
are ca principal sarcin operareai controlulcu/i asupradispozitivelor de I/O.
Def. pune accentul pe necesitatea controlului
asupra dispozitivelor de I/Oi a
programelor utilizatorilor.
8/12/2019 Sisteme de Operare1
12/200
Un SO (Operating system)
reprezint un produs de tipSoftware
care este parte component a unui sistem,
echipament sau aparat computerizat,
i care se ocup de
gestionareai coordonarea
activitilor acestuia.
http://ro.wikipedia.org/wiki/Softwarehttp://ro.wikipedia.org/wiki/Software8/12/2019 Sisteme de Operare1
13/200
Sistemul computerizat poate fi: un computer,
o staie de lucru(workstation),
un server,
un PC,
un notebook,
un netbook,
un smartphone,
un aparat de navigaie rutier,
un e-bookreader sau i
un alt sistem cu "inteligen" proprie.
http://ro.wikipedia.org/wiki/Computerhttp://ro.wikipedia.org/wiki/Sta%C8%9Bie_de_lucruhttp://ro.wikipedia.org/wiki/Serverhttp://ro.wikipedia.org/wiki/PChttp://ro.wikipedia.org/wiki/Calculator_portabilhttp://ro.wikipedia.org/wiki/Netbookhttp://ro.wikipedia.org/wiki/Smartphonehttp://ro.wikipedia.org/wiki/E-bookhttp://ro.wikipedia.org/wiki/E-bookhttp://ro.wikipedia.org/wiki/E-bookhttp://ro.wikipedia.org/wiki/E-bookhttp://ro.wikipedia.org/wiki/Smartphonehttp://ro.wikipedia.org/wiki/Netbookhttp://ro.wikipedia.org/wiki/Calculator_portabilhttp://ro.wikipedia.org/wiki/PChttp://ro.wikipedia.org/wiki/Serverhttp://ro.wikipedia.org/wiki/Sta%C8%9Bie_de_lucruhttp://ro.wikipedia.org/wiki/Computer8/12/2019 Sisteme de Operare1
14/200
Sistemul de operare
joac i rolul de gazdpentru aplicaiile
care ruleazpe echipamentul
(hardwareul) respectiv.
http://ro.wikipedia.org/wiki/Hardwarehttp://ro.wikipedia.org/wiki/Hardware8/12/2019 Sisteme de Operare1
15/200
Exemple de sisteme de operare:BSD
BS2000, BS3000
BeOS
DOS, PC-DOS, MS-DOS
iOS (Apple)
Linux, AIX, HP-UX
Mac OS
Mac OS X
OSEK-VDX
Solaris
Ubuntu
UNIX
webOS
Windows
z/OS
Android (SO)
http://ro.wikipedia.org/wiki/BSDhttp://ro.wikipedia.org/w/index.php?title=BS2000&action=edit&redlink=1http://ro.wikipedia.org/w/index.php?title=BS3000&action=edit&redlink=1http://ro.wikipedia.org/wiki/BeOShttp://ro.wikipedia.org/wiki/DOShttp://ro.wikipedia.org/w/index.php?title=PC-DOS&action=edit&redlink=1http://ro.wikipedia.org/wiki/MS-DOShttp://ro.wikipedia.org/wiki/IOS_(Apple)http://ro.wikipedia.org/wiki/Linuxhttp://ro.wikipedia.org/wiki/IBM_AIXhttp://ro.wikipedia.org/w/index.php?title=HP-UX&action=edit&redlink=1http://ro.wikipedia.org/wiki/Mac_OShttp://ro.wikipedia.org/wiki/Mac_OS_Xhttp://ro.wikipedia.org/wiki/OSEK-VDXhttp://ro.wikipedia.org/wiki/Solarishttp://ro.wikipedia.org/wiki/Ubuntuhttp://ro.wikipedia.org/wiki/UNIXhttp://ro.wikipedia.org/wiki/WebOShttp://ro.wikipedia.org/wiki/Windowshttp://ro.wikipedia.org/w/index.php?title=Z/OS&action=edit&redlink=1http://ro.wikipedia.org/wiki/Android_(sistem_de_operare)http://ro.wikipedia.org/wiki/Android_(sistem_de_operare)http://ro.wikipedia.org/wiki/Android_(sistem_de_operare)http://ro.wikipedia.org/wiki/Android_(sistem_de_operare)http://ro.wikipedia.org/wiki/Android_(sistem_de_operare)http://ro.wikipedia.org/w/index.php?title=Z/OS&action=edit&redlink=1http://ro.wikipedia.org/wiki/Windowshttp://ro.wikipedia.org/wiki/WebOShttp://ro.wikipedia.org/wiki/UNIXhttp://ro.wikipedia.org/wiki/Ubuntuhttp://ro.wikipedia.org/wiki/Solarishttp://ro.wikipedia.org/wiki/OSEK-VDXhttp://ro.wikipedia.org/wiki/OSEK-VDXhttp://ro.wikipedia.org/wiki/OSEK-VDXhttp://ro.wikipedia.org/wiki/Mac_OS_Xhttp://ro.wikipedia.org/wiki/Mac_OShttp://ro.wikipedia.org/w/index.php?title=HP-UX&action=edit&redlink=1http://ro.wikipedia.org/w/index.php?title=HP-UX&action=edit&redlink=1http://ro.wikipedia.org/w/index.php?title=HP-UX&action=edit&redlink=1http://ro.wikipedia.org/wiki/IBM_AIXhttp://ro.wikipedia.org/wiki/Linuxhttp://ro.wikipedia.org/wiki/IOS_(Apple)http://ro.wikipedia.org/wiki/MS-DOShttp://ro.wikipedia.org/wiki/MS-DOShttp://ro.wikipedia.org/wiki/MS-DOShttp://ro.wikipedia.org/w/index.php?title=PC-DOS&action=edit&redlink=1http://ro.wikipedia.org/w/index.php?title=PC-DOS&action=edit&redlink=1http://ro.wikipedia.org/w/index.php?title=PC-DOS&action=edit&redlink=1http://ro.wikipedia.org/wiki/DOShttp://ro.wikipedia.org/wiki/BeOShttp://ro.wikipedia.org/w/index.php?title=BS3000&action=edit&redlink=1http://ro.wikipedia.org/w/index.php?title=BS2000&action=edit&redlink=1http://ro.wikipedia.org/wiki/BSD8/12/2019 Sisteme de Operare1
16/200
Funciile comune
de controli alocarea resurselor ce sunt necesare
programelor de aplicaiisunt cumulate
ntr-o singur component
software: Sistemul de Operare.
8/12/2019 Sisteme de Operare1
17/200
Deci: Cele mai vechi sisteme de calcul
erau formate uneori din hardwarei puteau fi utilizate
prin intermediul unei console:programatorulscria liniile de program i
apoi opera programuldirect de la aceast consol.
8/12/2019 Sisteme de Operare1
18/200
n concluzie,
ncrcarea programului n memorie,precizarea adresei de nceput,
lansarea n execuie se realizau manual,cu ajutorul
comutatoarelor panoului frontal .
8/12/2019 Sisteme de Operare1
19/200
Evoluia programului
putea fi urmrit de ctre operatorprin intermediul semnalelor luminoase
ale consolei.
Datele de ieire se tipreau sau erauperforate pe band de hrtiesau cartele
pentru a fi tiprite ulterior.Programatorul ndeplinea i funcia de operator.
8/12/2019 Sisteme de Operare1
20/200
Alocarea timpului de lucru n sistemse planific de cele mai multe ori
cu ajutorul unei scheme de rezervare
n care fiecare utilizator i scria
numelei zona de timp
pe care dorea s o foloseasc
pentru propriile programe.
8/12/2019 Sisteme de Operare1
21/200
n cazul n care un utilizator
nu reuea s executei s depaneze programul
n perioada de timp pe care i-o rezervase,era nevoit s abandoneze lucrul,
deoarece zona de timp urmtoareera alocat altui utilizator.
8/12/2019 Sisteme de Operare1
22/200
Cu trecerea timpului,
o atenie deosebit a fostacordat rutinelor
care realizau operaii de I/O,deoarece fiecare dispozitiv de I/O
avea caracteristici aparte,necesitnd o programare adecvat.
8/12/2019 Sisteme de Operare1
23/200
Pentru fiecare astfel de dispozitiv
a fost scris cte o subrutin special,
numit driver, care s tie
cum trebuie s fie folosite:
buffer-ele,
flag-urile,
registrii,
biii de control,
biii de stare proprii dispozitivului.
8/12/2019 Sisteme de Operare1
24/200
Buffer
Este o memorienecesar pentru
stocarea temporar
a unorinformaii.
8/12/2019 Sisteme de Operare1
25/200
Buffer
Dac tipreti foarte repede i
procesorul de cuvinte
nu poate s afieze att de repede
caracterele tiprite,
caracterele culesesunt stocate ntr-un buffer.
ff
8/12/2019 Sisteme de Operare1
26/200
Buffer
n mod similar,
dac tipreti un document
nainte s deschizi imprimanta,
datele de tiprit
sunt stocate ntr-un buffer
pn cnd imprimanta este gata de tiprit.
8/12/2019 Sisteme de Operare1
27/200
Pentru realizarea operaiilor de I/O
utilizatorul nu mai era nevoits includ n program
codul necesar,
ci putea s apeleze doar
driver-ul
corespunztor din bibliotec.
8/12/2019 Sisteme de Operare1
28/200
Apariia compilatoarelor
destinate l imbajelor de nivel nalta determinat o nou cretere
a complexitii operriin sistemele de calcul,
uurnd n acelai timpmunca programatorilor.
8/12/2019 Sisteme de Operare1
29/200
Pregtirea execuiei unui program scris
n limbaj de nivel nalt presupune:ncrcarea compilatorului n memoriede pe banda
magnetic,
citirea programului sursde pe un cititor decartele,
depanarea programului executabildirect prinintermediul consolei.
8/12/2019 Sisteme de Operare1
30/200
Compilator
este un program(sau set de programe)
care traduce textul unui program
scris ntr-un limbaj de programare(surs)
ntr-un alt limbaj de calculator, (int).
Sursa original se numete de obiceicod surs
iar rezul tatul cod obiect.
http://ro.wikipedia.org/wiki/Programhttp://ro.wikipedia.org/wiki/Limbaj_de_programarehttp://ro.wikipedia.org/wiki/Cod_surs%C4%83http://ro.wikipedia.org/w/index.php?title=Cod_obiect&action=edit&redlink=1http://ro.wikipedia.org/w/index.php?title=Cod_obiect&action=edit&redlink=1http://ro.wikipedia.org/wiki/Cod_surs%C4%83http://ro.wikipedia.org/wiki/Limbaj_de_programarehttp://ro.wikipedia.org/wiki/Program8/12/2019 Sisteme de Operare1
31/200
Numele de compilator
este folosit pentru un programcare traduce dintr-un limbaj
high-levelntr-unul low-level.Un program care face operaia invers se
numete decompilator,
iar unul care traduce ntre dou limbajehigh-levelse numete translator.
http://ro.wikipedia.org/w/index.php?title=Decompilator&action=edit&redlink=1http://ro.wikipedia.org/w/index.php?title=Decompilator&action=edit&redlink=18/12/2019 Sisteme de Operare1
32/200
I .2. Monitor izare
simpl
8/12/2019 Sisteme de Operare1
33/200
Timpii de pregtire a operaiilor n cadrul unuisistem de calcul
constituiau o adevrat problem.
Ca remediu, s-a adugat o dubl soluie: s-a creat postul de operator cal i f icat, astfel nct
programatorul nu mai avea acces direct la sistemul decalcul,
s-a hotrt gruparea job-ur i lorn funcie de resurselenecesare, astfel nct acestea s fie executate n grup(prelucrarea de tip batch adic pe lotur i).
8/12/2019 Sisteme de Operare1
34/200
Astfel,programatoriifurnizeaz
cartelele perforate
sau benzilece conineau programele,
precum i o scurt descriere ajob-ur i lor,
operatorulgrupa acestejob-ur ii
le lansa n execuie,
colecta rezultatelei
le transmitea napoi fiecrui utilizator.
8/12/2019 Sisteme de Operare1
35/200
Operatorul
nu putea depana un programpe care nu l cunotea,
de aceea era necesar
furnizarea unor informaii de control
programatorului.
8/12/2019 Sisteme de Operare1
36/200
Pentru eliminarea
timpilor moria fost introdussecvenierea automat a job-urilor,
lund astfel natereprimul SO rudimentar.
(Careabiancepesseformeze,
careestelanceputuldezvoltriisale)
______________________
http://www.archeus.ro/lingvistica/Gramatica?query=Carehttp://www.archeus.ro/lingvistica/CautareDex?query=ABIAhttp://www.archeus.ro/lingvistica/CautareDex?query=%C3%8ENCEPEhttp://www.archeus.ro/lingvistica/CautareDex?query=S%C4%82http://www.archeus.ro/lingvistica/CautareDex?query=SEhttp://www.archeus.ro/lingvistica/CautareDex?query=FORMAhttp://www.archeus.ro/lingvistica/Gramatica?query=carehttp://www.archeus.ro/lingvistica/CautareDex?query=FIhttp://www.archeus.ro/lingvistica/CautareDex?query=LAhttp://www.archeus.ro/lingvistica/CautareDex?query=%C3%8ENCEPUThttp://www.archeus.ro/lingvistica/CautareDex?query=DEZVOLTAREhttp://www.archeus.ro/lingvistica/CautareDex?query=SALEhttp://www.archeus.ro/lingvistica/CautareDex?query=SALEhttp://www.archeus.ro/lingvistica/CautareDex?query=DEZVOLTAREhttp://www.archeus.ro/lingvistica/CautareDex?query=%C3%8ENCEPUThttp://www.archeus.ro/lingvistica/CautareDex?query=LAhttp://www.archeus.ro/lingvistica/CautareDex?query=FIhttp://www.archeus.ro/lingvistica/Gramatica?query=carehttp://www.archeus.ro/lingvistica/CautareDex?query=FORMAhttp://www.archeus.ro/lingvistica/CautareDex?query=SEhttp://www.archeus.ro/lingvistica/CautareDex?query=S%C4%82http://www.archeus.ro/lingvistica/CautareDex?query=%C3%8ENCEPEhttp://www.archeus.ro/lingvistica/CautareDex?query=ABIAhttp://www.archeus.ro/lingvistica/Gramatica?query=Care8/12/2019 Sisteme de Operare1
37/200
Cu ajutorul unui mic programnumit
moni tor rezident,care se afl permanent n memorie,
s-a putut realizatransferarea automat a controlului
de la un job laalt job care l urmai
de la un programlaalt program
n cadrul aceluiai job.
8/12/2019 Sisteme de Operare1
38/200
Succesiunea etapelor de transfer era:
moni tor - program1 - moni tor - program2 - moni tor
Pentru ca monitoruls tie
ce program trebuia lansat n execuie,
operatoruli furniza
o scurt descriere a programelor,
precum i a datelor cu care se execut rularea.
8/12/2019 Sisteme de Operare1
39/200
Pentru a deosebi
cartelele de comandde cartelele ce conineau programul
sau datele,se foloseau caractere speciale
n diferite coloane($sau //).
8/12/2019 Sisteme de Operare1
40/200
Cele mai importante componente ale unui
moni tor rezident erau:
interpretorul cartelelor de comand
(n momentul execuiei traduce fiecare comand nlimbaj main);
modulul ce realizeaz ncrcarea n memoriea
programelor de sistemia programelor de aplicaie(leader);
diverse dispozitive.
8/12/2019 Sisteme de Operare1
41/200
I.3. Operare off-l ine
i operare on-l ine
simultan
cu mai multe periferice
(spooling) *ghem, bobin
8/12/2019 Sisteme de Operare1
42/200
Diferena considerabil de vitez
a operrii existent ntreUnitatea Centrali
dispozitivele mecanicede I /O
contribuia substanial
la scderea eficienei
sistemului de calcul.
8/12/2019 Sisteme de Operare1
43/200
A nceput s fie folosit
aa-numita
operare off-l inea cititoarelor de cartele
i a imprimantelor.
8/12/2019 Sisteme de Operare1
44/200
Carteleleerau copiate
pe band magneticpn n momentul n care
band magnetic se completa,
dup care informaiile puteau fi citite
n memoria calculatoruluicu ajutorulunitilor de band magnetic.
8/12/2019 Sisteme de Operare1
45/200
n mod asemntor
se realiza
iscrierearezultatelor
pe o band magnetic.
Principalul avantaj
8/12/2019 Sisteme de Operare1
46/200
Principalul avantaj
al acestui mod de operare
era posibilitatea ca o aceeaiUC(Unitate Central)
s foloseasc mai multe sisteme de cititor
de cartele-bandi band-imprimant
care s lucreze simultan
i s furnizeze suficient band magnetic
pentru ca timpul de lucru al UC
s fie utilizat aproape complet.
Od t ff li
8/12/2019 Sisteme de Operare1
47/200
Odat cu operarea off-line,
a aprut i noiunea de
independen fa de dispozitiva programelor(necesitatea ca o aceeai operaie de I/O s poat fi realizat pe diferite dispozitive de I/O);
programele au fost scrise astfel nct s utilizeze:
dispozitive logicede I /O,
corespondena dintreacestea,
dispozitivele f izice
fiind indicat de ctre cartelele de comand.
8/12/2019 Sisteme de Operare1
48/200
Odat cu apariia
discur i lor magnetice,
pregtirea
off-l ine a job-ur i lor
a fost abandonat.
8/12/2019 Sisteme de Operare1
49/200
Discur i le magnetice
au permis operarea on-line,
simultan,
cu mai multe periferice
(spooling:
Simul taneous Peripheral Operation On-L ine).
8/12/2019 Sisteme de Operare1
50/200
Discul magnetic,
privit ca un bufferde dimensiuni mari,
poate fi folosit n scopul
citirii a ct mai multor informaii
de la dispozitivele de intrareial stocrii fiierelor de ieire,
pn n momentul n caredispozitivele de ieire
devin disponibile i le pot prelua.
8/12/2019 Sisteme de Operare1
51/200
Disculare capacitatea
de a nmagazina informaiireferitoare la mai multejob-ur i,
a cror eviden este inut
cu ajutorul unui
tabel gestionat de ctre SO.
8/12/2019 Sisteme de Operare1
52/200
Deoarece pe disc pot exista i
job-ur i gata de a fi executate,aceast structur de date purtnd denumirea
derezerva de job-ur i (job pool),
SO poate s decid ordinea n care vor filansate n execuie,
astfel nct s fie mbuntit
timpul de ocupare a UC.
8/12/2019 Sisteme de Operare1
53/200
Devine deci posibil
plani f icarea job-ur i lor (job schedul ing)
i este abandonat metoda de lucru
ce se baza pe regula
primul sosit - pr imul servit.
8/12/2019 Sisteme de Operare1
54/200
Metoda de operare a on-line,
simultan, cu mai multe periferice,asigur utilizarea
la vitez foarte mare:
att a UC,
ct i a dispozitivelor de I/O.
8/12/2019 Sisteme de Operare1
55/200
I.4. Lucrulcu zone tampon
(buffering)
*tampon
8/12/2019 Sisteme de Operare1
56/200
Lucrul cu zone tampon
este strict legat delucrul cu ntreruper i
i reprezint
o funcie a SO.
8/12/2019 Sisteme de Operare1
57/200
Pentru fiecare dispozitiv de I/O,
monitorul rezidentsaudriver-ele dispozitiv
includ buffere
sistem pentru intrri/ieiri.
n cazul lucrului cu ntreruper i
8/12/2019 Sisteme de Operare1
58/200
n cazul lucrului cu ntreruper i
fiecare controllereste dedicat
unui anumit tip de dispozitiv i
gestioneaz ozon buffer local,
precum i un set de registr i speciali,
avnd ca sarcin
transferarea datelor ntre
dispozitiv i zona sa de buffer.
t l i ii ii
8/12/2019 Sisteme de Operare1
59/200
n momentul iniierii
unei operaii de I/O,UCnscrie
registr i i control ler-uluii apoi i reia
secvena normal de lucru.
Controller ul examineaz:
8/12/2019 Sisteme de Operare1
60/200
Controller-ulexamineaz:
coninutul registrilor,
afl ce operaie trebuie efectuat (citire sauscriere),
d comanda nceperii transferului de date,pentru ca n momentul terminrii
s informeze UCprin emiterea uneintreruper i.
8/12/2019 Sisteme de Operare1
61/200
n momentul primir i i ntreruper i i,
UC i oprete activitatea curent itransfer controlul
la o locaie fix de memorie
n care, de obicei,
este nscris adresa de nceput
a rutinei de tratare a ntreruper i i .
8/12/2019 Sisteme de Operare1
62/200
Rutinatransfer
datele din
buffer-ullocalal dispozitivului
n memoria principal.
8/12/2019 Sisteme de Operare1
63/200
La terminarea acestei operaii,
UC i reia activitateantrerupt anterior,
n acest mod putndu-se realiza
operarea concurent cu UCi cu dispozitivele de I/O.
1 Principalele funcii ale sistemului de
8/12/2019 Sisteme de Operare1
64/200
1. Principalele funcii ale sistemului dentreruper isunt:
transferarea controlului rutinei detratare a ntreruperii;
aceast funcie se realizeaz prinrezervarea unui set de locaii n zonaadreselor mici de memorie
(pr imele 100, de exemplu)n care s seafle adresele tuturor rutinelor detratare a ntreruperilor;
2 P i i l l f ii l i t l i d
8/12/2019 Sisteme de Operare1
65/200
2. Principalele funcii ale sistemului dentreruper isunt:
salvarea adresei instruciunii pe care oexecut UC n momentul n care a primitntreruperea,
precum i salvarea contextului
(de exemplu, starea unor registr i).
Aceasta se poate face ntr-o locaie fix,ntr-o locaie indexat prin numruldispozitivului sau n stiv.
S l t d i d l t
8/12/2019 Sisteme de Operare1
66/200
Scopul metodei de lucru cu zone tampon
este creterea eficieneisistemului de calcul
prin folosirea ct mai complet:
a timpului de lucru al UC,
al dispozitivelor per i fer ice.
D i f i f t itit i
8/12/2019 Sisteme de Operare1
67/200
Dup ce informaia a fost citit i
UC este gata s nceap s o prelucreze:
se d comanda dispozitivului de intrare s
iniieze imediat urmtoarea citire,realizndu-se astfel ocuparea simultan a
UC i a dispozitivului de intrare.
8/12/2019 Sisteme de Operare1
68/200
n mod asemntor se realizeaz
scr ierea datelor UCcreeaz datele care sunt stocate
ntr-un buffer
pn n momentul n care
vor putea fi preluate
de ctredispozitivul de ieire
.
8/12/2019 Sisteme de Operare1
69/200
Dac viteza medie a UC
(n nregistrri / sec)i a dispozitivelor de I /Oeste aceeai,
UC trece puin nainteasau puin n urma dispozitivelor de I/O,
toate fiind folositeaproape de capacitatea maxim.
D UC di
8/12/2019 Sisteme de Operare1
70/200
Dac UC este, n medie,
mai rapid dectun dispozitiv de intrare,
metoda de lucru
cu zone tamponnu este de mare ajutor.
8/12/2019 Sisteme de Operare1
71/200
Dac UC este
totdeauna mai rapid,
ea va gsi mereu
un buffergol
i va trebui s atepteaciunea dispozitivului de intrare.
P t i
8/12/2019 Sisteme de Operare1
72/200
Pentru scr iere,
UC va putea funcionala puterea maxim,
dar va trebui s atepte
intervenia dispozitivului de ieire
n cazul n care
toate buffer-ele sunt pline.
Aceast situaie apare la job ur i le l imitate I /O
8/12/2019 Sisteme de Operare1
73/200
Aceast situaie apare lajob-ur i le l imitate I /O,
pentru care numrul total de operaii de I/O
este foarte mare n comparaie
cu numrul calculelor efectuatei, deoarece
UC este mai rapid dect dispozitivele de I/O,
viteza de execuie este limitat
de viteza dispozitivelor i nu de cea a UC.
L l lt t
8/12/2019 Sisteme de Operare1
74/200
La cealalt extrem,
n cazuljob-ur i lor l imitate
din punctul de vedere al UC,
volumul calculelor este att de mare nct
buffer-elede intraresunt totdeauna pline,
iar
buffer-ele de ieiresunt totdeauna goale.
UC i l
8/12/2019 Sisteme de Operare1
75/200
UC nu poate ine pasul
cu dispozitivele de I/O.Prin urmare,
lucrul cu zone tampon
este folositor,
dar nu este suficient.
8/12/2019 Sisteme de Operare1
76/200
I.5. Multiprogramare
n general
8/12/2019 Sisteme de Operare1
77/200
n general,
un singur program utilizatornu poate s asigure
ocuparea permanent:att a UC,
ct i a dispozitivelor de I/O.
Posibilitatea de a stoca
8/12/2019 Sisteme de Operare1
78/200
Posibilitatea de a stoca
pedisc magnetic
o rezerv dejob-ur i
i
planificarea corespunztoare a acestora
n vederea execuieipermit folosirea multiprogramrii,
o tehnic ce are drept scopmbuntirea timpului de ocupare a UC.
ntr un sistem multiprogramat
8/12/2019 Sisteme de Operare1
79/200
ntr-un sistem multiprogramat,
dacjob-ul
aflat n execuie
trebuie s atepte la un moment dat
realizarea unei operaii de I/O,UC nu va sta nefolosit,
ci va fi alocat altui jobn acest scop de ctre SO.
Atta vreme
8/12/2019 Sisteme de Operare1
80/200
Atta vreme
ct rezerva de job-ur inu este vid,
UC lucreaz din plin.
8/12/2019 Sisteme de Operare1
81/200
I.6. Sisteme de tip
time-sharing*Partajarea
*mprirea
n cazul sistemelor cu prelucrare pe loturi
8/12/2019 Sisteme de Operare1
82/200
n cazul sistemelor cu prelucrare pe loturi
(de tip batch),accesul la programe i date
se fcea n mod secvenial,astfel nct,
la un moment dat se putea executa
un singur program de aplicaie.
O caracteristic
8/12/2019 Sisteme de Operare1
83/200
O caracteristic
a sistemelorde tip batcheste
lipsa de interaciune
ntreuti l izator ijobn timpul execuiei.
Job ul este pregtit i
8/12/2019 Sisteme de Operare1
84/200
Job-uleste pregtit i
prezentat pentru a fi executat iar,dup un anumit timp,
numit turnaround time,se vizualizeaz rezultatul.
*timp de rspuns
Utilizarea sistemelor
8/12/2019 Sisteme de Operare1
85/200
Utilizarea sistemelor
de tip batch
este indicat n cazul
job-urilorcu durat de execuie mare i
care nu necesit prea mult comunicareutilizator-sistem.
Sistemele de calcul
8/12/2019 Sisteme de Operare1
86/200
Sistemele de calcul
convenionale, interactive, permit
comunicarea ntre utilizator i sistem:
utilizatorul transmite comenzi SO sau,
direct, unui program
(de obicei prin intermediul tastaturii)
i primete rspunsul imediat.
Sistemele interactive
8/12/2019 Sisteme de Operare1
87/200
Sistemele interactive
sunt folosite de obicei
atunci cnd se dorete
executarea unorjob-ur i compuse
din mai multe secvene
de scurt durat i
al cror rezultat nu poate fi prevzut.
SO de tip time-sharing
8/12/2019 Sisteme de Operare1
88/200
SO de tip time sharing
au aprut din dorina
de a realiza utilizarea interactiv
a sistemelor de calcul
la un pre de cost rezonabil.
SO de tip time-sharing
8/12/2019 Sisteme de Operare1
89/200
SO de tip time sharing
Datorit planificrii UC i multiprogramrii,
un acelai sistem de calcul:
poate fi folosit simultan de ctre mai muli
utilizatori,
deservii n ferestre de timp diferite, darsuf icient de mici pentru a da impresia unei
execuii nentrerupte a programelor.
Ideea de baz este destul de simpl:
8/12/2019 Sisteme de Operare1
90/200
n memoria sistemului,
f iecare uti l izatorare un program separata crui execuie necesit
o perioad de timp scurtpn n momentul ncheierii sau
pn n momentul n care este necesar
realizarea unei operaii de I/O,
ce poate fi de tip interactiv.
Deoarece aceste operaii
8/12/2019 Sisteme de Operare1
91/200
Deoarece aceste operaii
se realizeaz la nivelulvitezei umane de operare,
ele necesit
o perioad de timpdestul de lung.
8/12/2019 Sisteme de Operare1
92/200
Exemplu:operaia de intrare
este condiionat
de viteza cu caresunt apsate tastele.
Pe durata unor astfel de operaii
8/12/2019 Sisteme de Operare1
93/200
Pe durata unor astfel de operaii,
pentru a eliminatimpii de nefolosire a UC,
SO va comuta rapid controlul UC
asupra programului
unui alt utilizator.
Deoarece pentru fiecare utilizator este necesar numai
8/12/2019 Sisteme de Operare1
94/200
o micperioad din timpul de lucru al UC i
controlul este comutat rapidde la un utilizator la altul,
fiecare dintre acetia are impresia
c lucreaz singur n sistem,n timp ce, de fapt,
sistemul de calcul
este folosit n comun de ctre mai muli utilizatori.
8/12/2019 Sisteme de Operare1
95/200
I .7. Mecanisme
de protecie
Un SO este bine proiectat
8/12/2019 Sisteme de Operare1
96/200
Un SO este bine proiectat
numai atunci cnd poate asigura
execuia corect a programelor,
chiar n cazul existenei
unui program scris incorect.
Multe dintre erorile de programare
8/12/2019 Sisteme de Operare1
97/200
Multe dintre erorile de programare
pot fi detectate
de ctre hardware
i sunt controlate
n mod normalde ctre monitorul rezident.
Dac ntr un program
8/12/2019 Sisteme de Operare1
98/200
Dac ntr-un program
apare o instruciune nepermissau o greeal de eroare a memoriei,
hardware-ul va genera o ntrerupere
ctre monitorul rezident, numit
capcan (trap).
Termenul de capcan
8/12/2019 Sisteme de Operare1
99/200
Termenul de capcan
este folosit pentru a desemnao ntrerupere intern,
generat de obiceica urmare a apariiei
unei erori n program.
Acionnd ca o ntrerupere,
8/12/2019 Sisteme de Operare1
100/200
p ,
aceasta va determina
memorarea contorului program
asociat ultimei instruciuni
i va da controlul
unei rutine a moni torului rezident.
8/12/2019 Sisteme de Operare1
101/200
Pentru a realiza protejarea tuturor programelor,
8/12/2019 Sisteme de Operare1
102/200
datelor i resurselor fa de toate erorile
ce pot s apar n funcionare,sunt necesare 3 tipuri de protecie:
protejarea operaiilor de I/O,protejarea memoriei iprotejarea UC.
Protejarea operaiilor de I/O
8/12/2019 Sisteme de Operare1
103/200
Pentru ca sistemul de calcul
s se comporte diferit fa de SO,pe de-o parte, i fa de programele utilizator,
pe de alt parte,
au fost adugate dou moduri de operare distincte:
modul uti l izator i
modul moni tor (numit i mod supervizor sau modsistem).
Protejarea operaiilor de I/O
8/12/2019 Sisteme de Operare1
104/200
Pentru indicarea modului curent de operare
a fost adugat hardware-ului
un bit cu urmtoarea semnificaie:
0=monitor; 1=utilizator.Atunci cnd monitorul rezident cedeaz
controlul unui program utilizator,se trece n mod utilizator,
bitul de mod primind valoarea 1.
8/12/2019 Sisteme de Operare1
105/200
Protejarea memoriei
8/12/2019 Sisteme de Operare1
106/200
j
n general, se dorete protejarea moni torului rezident
fa de eventualele aciuni ale programelor utilizator,precum i protejarea programelor utilizator unulfa de altul.
Toate aceste sarcini revin hardware-ului.Protejarea coninutului memoriei situate nainte i
dup zona ocupat de un program executabil sepoate realiza folosind doi registrii limit, care sstocheze valorile limitelor superioar i inferioar aleadreselor fizice ce pot fi generate de un anumitprogram utilizator.
Registrii limit pot fi nscrii numai de ctre SO cu ajutorul uneiinstruciuni privilegiate speciale deci nu pot fi accesate n nici
8/12/2019 Sisteme de Operare1
107/200
instruciuni privilegiate speciale, deci nu pot fi accesate n niciun fel de ctre programele utilizator, execuia instruciunilorprivilegiate fcndu-se numai n mod monitor.
n timpul execuiei, fiecare adres generat n mod utilizatoreste comparat cu valorile coninute n registrii limit, astfel
nct dac un program care se execut n mod utilizatorncearc s acceseze memoria rezervat monitorului sau altuiutilizator, se genereaz o capcan spre monitor ce va fitratat ca eroare fatal.
Acest mecanism mpiedic programul utilizator s modifice
(accidental sau intenionat) codul sau structurile de datedestinate monitorului sau altor programe utilizator.
Protejarea UC
8/12/2019 Sisteme de Operare1
108/200
jPentru ca UC s nu fie monopolizat de ctre un singur
utilizator, n arhitectura sistemelor de calcul a fost inclus untemporizator(timer)ce poate fi programat pentru a ntrerupefuncionarea calculatorului dup o anumit perioad de timpcu durat fix sau variabil.
Implementarea unui temporizatorcu durat variabil se
realizeaz, de obicei, cu ajutorul unui ceas i a unuinumrtor:
SO seteaz numrtorul i apoi, la fiecare tact de ceas,numrtorul este decrementat, pn cnd, ajungnd la
valoarea 0, se genereaz o ntrerupere.
Instruciunile cu ajutorul crora poate fi modificat modul deoperare al timer-ului sunt privilegiate.
8/12/2019 Sisteme de Operare1
109/200
I I . Structura sistemelorde operare
II.1. Componentele sistemelor de operare
8/12/2019 Sisteme de Operare1
110/200
n general, crearea unui software complex,
aa cum este un SO,este posibil numai prin modularizare,
fiecare component fiind bine definit iavnd intrri, ieiri i
funcionalitate bine precizate.
Gestionarea proceselor
8/12/2019 Sisteme de Operare1
111/200
Menirea UC este att de a asigura execuia programelorutilizator, ct i de a realiza alte activiti, toate acesteapurtnd numele generic de
procese.
Un proces poate fi definit ca un program aflat n execuie i poatecrea, la rndul su, subprocese cu execuie de tip concurent.
Un program constituie o entitate pasiv, n timp ce procesul esteo entitate activ.
Procesul se execut n mod secvenial i are nevoie de anumiteresurse care i se aloc n momentul crerii sale (UC, memorie,fiiere, dispozitive de I/O etc.), i de nite informaii deiniializare pentru a ti ce i cum s prelucreze.
Procesele pot fi att de tip utilizator, ct i de tip sistem.
SO are urmtoarele funcii:
8/12/2019 Sisteme de Operare1
112/200
Din punctul de vedere al gestionrii programelor aflate n execuie, SO areurmtoarele funcii:
crearea i desfiinarea proceselor;
suspendarea i reluarea proceselor;
asigurarea mecanismelor necesaresincronizrii proceselor;
asigurarea mecanismelor necesare
comunicaiei ntre procese;asigurarea mecanismelor pentru asigurarea
interblocrilor.
Gestionarea memoriei
8/12/2019 Sisteme de Operare1
113/200
Memoria reprezint o colecie de cuvinte sau de octeicare pot fi accesate prin precizarea adresei ce le esteasociat.
Interaciunea dintre UC i memorie se realizeaz prinscrieri/citiri la/de la adresele de memorie specificate.
Execuia unui program presupune ncrcarea sa nmemorie, dup ce au fost stabilite adresele absolute;
n timpul execuiei, programul acceseazinstruciunile i datele din memorie prin intermediul
adreselor, iar n momentul ncheierii, spaiul ocupateste eventual declarat disponibil, n el putnd fi
ncrcat i executat un alt program.
SO are urmtoarele funcii:
8/12/2019 Sisteme de Operare1
114/200
Din punctul de vedere al gestionrii memoriei,
SO are urmtoarele funcii:pstrarea evidenei partiiilor de memorie
folosite la un moment dat, precum i a
utilizatorilor acestora;selectarea procesului ce va fi ncrcat n
memorie atunci cnd spaiul devine
disponibil;alocarea spaiului de memorie, precum i
operaia invers.
Gestionarea memoriei auxiliare
8/12/2019 Sisteme de Operare1
115/200
n timpul execuiei, att programele ct i datele aferentetrebuie s se afle n memoria principal.
Deoarece aceasta are o dimensiune prea mic pentru a puteagzdui toate programele mpreun cu datelecorespunztoare, apare necesitatea ca sistemul de calcul srealizeze o memorare secundar cu ajutorul creia s
descarcememoria principal.Marea majoritate a sistemelor de calcul moderne utilizeaz
pentru aceast operaie discurile magnetice.
Programele utilitare sunt pstrate pe disc pn n momentul ncare este necesar ncrcarea lor n memoria principal iapoi folosesc discul att ca surs, ct i ca destinaie aprocesului.
SO are urmtoarele funcii:
8/12/2019 Sisteme de Operare1
116/200
Din punctul de vedere
al gestionrii discului magnetic,
SO are urmtoarele funcii:
gestionarea spaiului liber pe disc;
alocarea memoriei pe disc;
planificarea lucrului cu discul.
Sistemul de intrri/ieiri (I/O)
8/12/2019 Sisteme de Operare1
117/200
Unul dintre scopurile SO
este s uureze munca utilizatorului uman
i prin preluarea sarcinii de dialogare
cu dispozitivele de I/O.n general, sistemul de I/O are n componen:
un sistem de buffere;
un cod general driverde dispozitiv;
direver-epentru dispozitivele hardwarespecifice.
8/12/2019 Sisteme de Operare1
118/200
Sistemul de protecie
8/12/2019 Sisteme de Operare1
119/200
Proteciareprezint
mecanismul definit de ctre SO
cu ajutorul cruia poate fi controlat
accesul programelor,
proceselor
sau uti l izator i lor la resurse.
Sistemul de protecie
8/12/2019 Sisteme de Operare1
120/200
Un SO prevzut
cu mecanisme de protecie
poate asigura mijloacele necesare
pentru a face distincia
ntre o utilizare permisi
o utilizare neautorizat.
Legarea n reea
8/12/2019 Sisteme de Operare1
121/200
Un sistem distr ibui t reprezint un ansamblu de procesoare
care nu folosesc n comun aceeai memorie sau unacelai ceas.
Fiecare procesor are o memorie local, iar comunicaiantre procesoare se realizeaz prin intermediul
magistralelor de mare vitez sau prin linii telefonice.Legtura ntre procesoarele ce compun sistemul se
realizeaz cu ajutorul unei reele de comunicaie cepoate avea diverse configuraii i care poate fi conectatcomplet sau parial.
Sistemele distribuite asigur o vitez de calcul sporit, obun disponibilitate a datelor, precum i o fiabilitate
ridicat necesitnd SO cu caracteristici speciale
Sistemul de interpretare a comenzilor
8/12/2019 Sisteme de Operare1
122/200
Una dintre cele mai importante componente
ale SO este interpretorul de comenzi,
care se execut iniial
la nceperea rulrii unui jobsau atunci cnd unul dintre utilizatorii
unui sistem de tip time-sharing
cere pentru prima dat
permisiunea de intrare n sistem.
Sistemul de interpretare a comenzilor
8/12/2019 Sisteme de Operare1
123/200
O alt funcie important a acestui modul
software este citireai interpretareainstruciunilor de comand
prin intermediul crora utilizatorul:furnizeaz comenzi sistemului icare se refer la gestionarea proceselor,a operaiilor de I/O,a memoriei auxiliare,a memoriei principale,accesarea sistemului de fiiere,
protecia i conectarea prin intermediul reelei
8/12/2019 Sisteme de Operare1
124/200
I I .2. Sarcini le
sistemelor de operare
O prim categorie de funcii existente n cadrul oricrui SO aredrept scop crearea mediului n care s se execute n mod
8/12/2019 Sisteme de Operare1
125/200
drept scop crearea mediului n care s se execute n modcorespunztor programele, urmrind n acelai timp
uurarea sarcinii programatorului uman.Dintre acestea pot fi menionate:
executarea programelor;
realizarea operaiilor de I/O;manevrarea sistemelor de fiiere;
detectarea erorilor.
O alt categorie de funcii este cea destinat realizrii uneioperaii eficiente n cadrul sistemului de calcul.
Apeluri de sistem
8/12/2019 Sisteme de Operare1
126/200
reprezint interfaa dintre un program aflat n
execuie i SO.Ele sunt disponibile att sub form de instruciuni
scrise n limbaje de asamblare, ct i ca funcii sausubrutine apelabile n cadrul programelor scrise n
limbaj de nivel nalt.Apelul de sistem poate fi generat prin intermediul unei
rutine specializate, sau direct.
Realizarea unui apel de sistem presupune existena mai multorinformaii al cror numr i tip depinde de tipul sistemului de
l l l SO i l l l i i i
8/12/2019 Sisteme de Operare1
127/200
calcul, al SO i al apelului propriu-zis.
n general, transmiterea parametrilor ctre SO se realizeaz ndou moduri.
Cea mai simpl metod este folosirea registrilor.
Totui, de multe ori, se ntmpl ca numrul parametrilor s fie
mai mare dect numrul registrilor, caz n care se prefer ceade-a doua metod care presupune stocarea parametrilor nmemorie, ntr-un bloc sau tabel, adresa blocului fiind nscrisca parametru ntr-un registru.
Proiectanii SO prefer aceast ultim metod, uneori chiar ncazul n care numrul parametrilor nu depete numrulregistrilor.
Apelurile de sistem pot fi clasificate n trei mari categorii:
8/12/2019 Sisteme de Operare1
128/200
Apeluri de sistem destinate:
controlului proceselor sau al job-urilor;
gestionrii dispozitivelor i a fiierelor;
gestionrii informaiilor.
Apelur i de sistem destinate contr olului proceselor sau al job-ur i lor
Execuia unui program se poate ncheia normal (end) sau forat
8/12/2019 Sisteme de Operare1
129/200
Execuia unui program se poate ncheia normal (end)sau forat(abort).
n cazul terminrii normale, prin intermediul apelului de sistem,SO transfer controlul interpretorului de comenzi care citeteurmtoarea comand.
Dac ns programul detecteaz o eroare n timpul execuiei sau
n datele utilizate i decide s se ncheie forat, poate finecesar mai nti efectuarea unui vidaj de memoriei afiareaunui mesaj de eroare, dup care se apeleaz interpretorul decomenzi.
ntr-un sistem de tip interactiv, utilizatorul va furniza o noucomand, corespunztoare erorii depistate.
ntr-un sistem de tip batch, n mod obinuit, interpretorul decomenzi ncheie ntregul job i trece la tratarea urmtorului.
8/12/2019 Sisteme de Operare1
130/200
Crearea unui nou job sau a unui nou proces presupune iexistena controlului asupra execuiei sale, adic posibilitatea
8/12/2019 Sisteme de Operare1
131/200
determinrii i resetrii atributelor (caracteristicilor) job-uluisau ale altui proces: prioritatea, timpul maxim de execuie
permis etc. (get process attr ibutes i set process attr ibutes).n cazul n care se dorete forarea ncheierii unui job sau a unui
proces creat anterior, se folosete un apel de sistem numitterminate process.
Dac ns nu se dorete terminarea forat a unui job sau a unuiproces nou creat, se ateapt ncheierea normal a execuiei.
Aceast ateptare dureaz un anumit interval de timp (wait time), sau, de cele mai multe ori, dureaz pn n momentul
apariiei unui anumit eveniment (wait event), care va fisemnalat de ctre job-ul sau procesul respectiv (ignalevent).
Apeluri de sistem destinate gestionrii dispozitivelor i a fiierelor
8/12/2019 Sisteme de Operare1
132/200
n cadrul categoriei de apeluri de sistem care au ca
obiect fiierele pot fi menionate: crearea (create) i tergerea fiierelor (delete), pentru care
este necesar s se cunoasc numele i unele dintre atributelefiierelor;
deschiderea fiierelor (open);
citirea (read), scrierea (write) i repoziionarea (repoition)nfiier;
nchiderea fiierului (close) care indic nchiderea sesiunii delucru cu fiierul respectiv.
Atunci cnd sistemul de fiiere este structurat n directoare, estenecesar ca acelai set de operaii s se poat aplica i asupradirectoarelor
8/12/2019 Sisteme de Operare1
133/200
directoarelor.
n plus, att pentru fiiere, ct i pentru directoare, este bine s
se poat determina valoarea diferitelor atribute (get f i leattribute) i, eventual, acestea s poat fi resetate (set f i leattribute).
Atributele fiierului includ numele su, tipul, codurile deprotecie etc.
Fiierele pot fi considerate dispozitive aleatoare sau virtuale i,de aceea, multe dintre apelurile de sistem folosite n cazulfiierelor sunt folosite i n cazul dispozitivelor.
Totui, n cazul sistemelor multi-utilizator, trebuie fcut mai
nti o cerere ctre dispozitiv (request ), pentru a asigurafolosirea sa exclusiv, iar la ncheierea sesiunii de lucru estenecesar ca acesta s fie disponibilizat (release).
Funciile descrise sunt similare cu open/close folosite n cazulfiierelor.
Apeluri de sistem destinate gestionrii informaiilor
8/12/2019 Sisteme de Operare1
134/200
O mare parte dintre apelurile de sistem
au fost create cu scopul
de a asigura transferarea informaiilor
ntre programul utilizator
i sistemul de operare
(Ex., cele care furnizeazora i data curent ).
Apeluri de sistem destinate gestionrii informaiilor
8/12/2019 Sisteme de Operare1
135/200
Alte apeluri furnizeaz informaii despre sistem:
numrul curent de utilizatori,
numrul de versiune al SO,
spaiul total al memoriei neocupate sauspaiul total disponibil pe discul magnetic etc.
Programe de sistem
8/12/2019 Sisteme de Operare1
136/200
n funcie de operaiilepe care le realizeaz,
programele de sistem
pot fi grupaten cteva mari categorii:
Programe de sistem
8/12/2019 Sisteme de Operare1
137/200
Gestionarea fiierelor:
crearea,
tergerea,
copierea,
schimbarea numelui,
tiprirea,
listarea i, n general,toate operaiile care au ca obiect fiiere i
directoare;
Programe de sistem
8/12/2019 Sisteme de Operare1
138/200
Informaii de stare:
programele respective cer sistemului data,
ora,
totalul spaiului de memorie sau
totalul spaiului de pe disc,numrul de utilizatori sau
alte informaii de stare de acest tip care apoi suntformatate i
tiprite la terminal, pe un alt dispozitiv de ieire sau sunt memorate ntr-un fiier;
Programe de sistem
8/12/2019 Sisteme de Operare1
139/200
Modificarea fiierelor:
operaie ce poate fi efectuat de ctreeditoarele de texte,
care pot crea sau modifica fiiere memorate pedisc magnetic;
Programe de sistem
8/12/2019 Sisteme de Operare1
140/200
Accesori i ale limbajelor de programare:
de multe ori,
odat cu SO sunt furnizate i compilatoare,
asambloare i interpretoare pentrulimbajele de programare uzuale;
Programe de sistem
8/12/2019 Sisteme de Operare1
141/200
ncrcarea i executarea programelor:
Pentru a fi executat, un program care a fost asamblat saucompilat, trebuie ncrcat n memorie.
n acest scop, au fost create programe ce realizeazncrcarea
la adresa absolut (absolute loaders), la adresa relocatabil (relocatable loaders),
editoare de legturi (l inkage editors) i
programe pentru ncrcare cu suprapunere (overlayloaders).
Depanarea unui program se poate realiza cu ajutorul unorprograme specializate;
Programe de sistem
8/12/2019 Sisteme de Operare1
142/200
Programe de aplicaii:
Odat cu SO sunt furnizate uneori programe ce au ca scop:
rezolvarea unor probleme uzuale, cum ar fi formatareatextelor,
realizarea reprezentrilor grafice, gestionarea bazelor de date,
analiz statistic etc.
Interpretorul de comenzi
8/12/2019 Sisteme de Operare1
143/200
Unul dintre cele mai importante programe de sistem esteinterpretorul de comenzi, a crui principal funcie este de aafla urmtoarea comand furnizat de utilizator i de a oexecuta.
Exist dou modaliti de implementare a comenzilor.
Primamodalitatepresupune ca interpretorul de comenzi sconin codul pentru execuia comenzii.
n acest caz mrimea interpretorului depinde direct de numrulde comenzi, deoarece pentru fiecare comand este necesar uncod propriu de implementare.
Cea de-a doua modali tatepresupune existena unor programe desistem speciale, astfel nct nu mai este nevoie ca interpretorulde comenzi s neleag comanda, ci o folosete pentru aidentifica un fiier care s fie ncrcat n memorie i executat.
8/12/2019 Sisteme de Operare1
144/200
I I .3. Structurasistemelor de operare
Cea mai rspndit tehnic
d i SO d
8/12/2019 Sisteme de Operare1
145/200
de creare a unui SO modern
este modularizarea,
adic elaborarea unor subansamble software
de dimensiune redus,
bine definite din punctul de vedere:
al intrrilor;
al ieirilor;al funciilor pe care le ndeplinesc.
Organizarea sistemului pe niveluri C i tili t t d d d l i i SO t
8/12/2019 Sisteme de Operare1
146/200
Cea mai utilizat metod de modularizare a unui SO esteorganizarea sistemului pe nivelur i, fiecare nivel fiind construit
deasupra celor de rang inferior. Hardware-ul reprezint nivelul de baza (nivelul 0 ), n timp
ce interfaa utilizator reprezint nivelul de ordin maxim(nivelul N ).
Un nivel reprezint implementarea unui obiect abstract caregrupeaz att datele, ct i operaiile ce pot utiliza acestedate.
Fiecare nivel folosete numai operaiile furnizate de ctrenivelurile inferioare, necunoscnd modul n care sunt
implementate aceste operaii, ci numai ceea ce fac ele. Existena structurilor de date i a operaiilor aparinnd
nivelurilor inferioare este "ascuns" nivelurilor superioare.
Organizarea sistemului pe niveluri P i t i l il f tf l t i l t
8/12/2019 Sisteme de Operare1
147/200
Proiectarea nivelurilor se face astfel nct un nivel poatefolosi numai operaii i servicii ale nivelurilor inferioare, ceeace uureaz mult munca de depanare i verificare asistemului.
Primul nivel poate fi depanat independent de restulsistemului deoarece, conform definiiei, folosete pentru
implementarea funciilor sale numai hardware-ului de baz,care se presupune c e proiectat i implementat corect.
Depanarea celui de-al doilea nivel se face pe baza buneifuncionari a primului nivel.
Localizarea unei erori se face uor, la nivelul curent, deoarecetoate celelalte niveluri (de ordin inferior) au fost depanateanterior.
Nucleul sistemului
8/12/2019 Sisteme de Operare1
148/200
Partea central
a unui SO
este nucleul (kernel).
Principale funcii ale nucleul sunt:
i i i t i
8/12/2019 Sisteme de Operare1
149/200
asigurarea unui mecanism pentru crearea i
distrugerea proceselor;furnizarea unor instrumente care s permit
proceselor s-i sincronizeze aciunile;
realizarea planificrii UC, gestionriimemoriei i a dispozitivelor pentru proceselecreate;
furnizarea unor instrumente de comunicaiecare s permit proceselor s i transmitinformaii.
8/12/2019 Sisteme de Operare1
150/200
II.4. Proiectarea i
implementarea
sistemelor de operare
Obiectivele proiectrii
8/12/2019 Sisteme de Operare1
151/200
Prima problem care apare n proiectarea unui SO
este definirea obiectivelor i a specificaiilorsistemului.
La nivelul superior, proiectarea este determinat de
alegerea hardware-ului i de tipul sistemului:cu prelucrare pe loturi,
time-sharing, mono-utilizator,
multi-utilizator, distribuit,n timp real sau de interes general.
Obiectivele proiectrii
8/12/2019 Sisteme de Operare1
152/200
Utilizatorul dorete ca sistemul s poat fi folosit i
nvat cu uurin, sa fie fiabil, sigur i rapid.n mod asemntor, cei care proiecteaz, creeaz,
ntrein sistemul i opereaz asupra lui doresc ca
sistemul s fie: uor de proiectat,
de implementat i ntreinut,
flexibil, fiabil,
lipsit de erori i eficient.
Mecanisme i strategiiU i i i t d i t t i t SO
8/12/2019 Sisteme de Operare1
153/200
Un principiu extrem de important n proiectarea SO
este separarea strategiei (policy), care decide ceanume trebuie de fcut, de mecanism (mechanism)care arat cum trebuie fcut.
Deciziile de tip strategic au un rol deosebit n toateproblemele de alocare a resurselor, precum i n celereferitoare la planificare.
Separarea strategiilor de mecanisme asigur i o bun
flexibilitate a sistemelor, deoarece, n cazul trecerii peun alt sistem, pot fi modificate doar strategiile, fr amai fi nevoie s se modifice i mecanismul de baz.
Implementarea SOn mod tradiional etapa de implementare se realizeaz prin scrierea
8/12/2019 Sisteme de Operare1
154/200
n mod tradiional, etapa de implementare se realizeaz prin scriereasistemului cu ajutorul limbajului de asamblare.
n prezent, se pot folosi n acelai scop i limbajele de nivel nalt.
Avantajele utilizrii limbajelor de nivel nalt pentru implementarea SO suntaceleai ca i n cazul scrierii programelor utilizator:
codul poate fi scris mai repede,
este mai compact, mai uor de neles i de depanat.Principalul dezavantaj se refer la vitez i la necesarul de memorie.
Un compilator, orict de performant, nu poate produce cod mai bun dect unlimbaj de asamblare expert, dar este foarte probabil ca un compilator sproduc un cod cel puin tot att de bun ca i cel scris ntr-un limbaj deasamblare obinuit.
Cu toate c dimensiunea unui SO e foarte mare, numai o mic parte acodului poate fi considerat ca fiind critic din punctul de vedere alperformanelor.
Generarea sistemuluiDe cele mai multe ori,
8/12/2019 Sisteme de Operare1
155/200
,
SO sunt proiectate n aa fel ncts poat lucra pe orice tip de calculator,
ntr-o mare varietate de configuraii periferice.
Din acest motiv, pentru fiecare tip de calculator
este necesar ca SO s fie configurat
sau generat, operaie cunoscut sub numele de
generarea sistemului.
Deoarece SO este furnizat de obicei pe suportmagnetic, pentru generare se folosete un program
8/12/2019 Sisteme de Operare1
156/200
special, care citete dintr-un fiier sau cere
operatorului informaii referitoare la configuraiahardware specific a sistemului:
tipul de UC i opiunile instalate;
cantitatea de memorie disponibil;dispozitivele existente n sistem;
opiunile alese pentru SO sau
valorile parametrilor ce vor fi folosii pentru configurare.
Odat definite, informaiile pot fi utilizate n moduri diferite.
8/12/2019 Sisteme de Operare1
157/200
Noiunea de proces. Definiii n cadrul SO moderne se consider ca unitate de
8/12/2019 Sisteme de Operare1
158/200
n cadrul SO moderne, se consider ca unitate delucruprocesul secvenial,definit ca entitate activ:un program aflat n execuie ale crui instruciunisunt parcurse una cte una, la momente de timpdiferite.
Pentru a-i ndeplini sarcinile, procesele au nevoie deanumite resurse
(timpul de lucru al UC, memorie, fiiere, dispozitivede I/O etc.)
care le sunt alocate n momentul crerii.
Noiunea de proces. Definiii Dar deoarece n sistem numrul resurselor
8/12/2019 Sisteme de Operare1
159/200
Dar, deoarece n sistem numrul resurselor
hardwarei al celor logice este limitat, apareca evident necesitatea ca resursele s fieutilizate n comun, n context multi-utilizator.
De asemenea, dac ntr-un sistem de calcul
dotat cu mai multe procesoare se doretemrirea vitezei de lucru al unui program, sepoate fragmenta acest program n subtask-uricare s se execute n paralel.
Noiunea de proces. Definiiin plus SO poate fi construit modular funciile sale realizndu-
8/12/2019 Sisteme de Operare1
160/200
n plus, SO poate fi construit modular, funciile sale realizndu-se prin intermediul unor procese distincte, a cror execuie se
desfoar la concuren cu cea a proceselor de tip utilizator.Exist deci argumente care justific existena proceselor
concurente i, implicit, necesitatea includerii n cadrulsistemelor de operare a unor mecanisme destinate asigurrii
sincronizrii i comunicrii ntre acestea.n timpul execuiei, procesul i schimbstarea (definit ca
activitate curent a procesului) care poate fi: nou (new), activ(active), n ateptarea unui eveniment (waiting) sau oprit
(halted).n sistemele cu multiprogramare procesele active pot atepta
alocarea UC (adic pot figata de execuie (ready)) sau pot sfie deja n posesia acesteia (n execuie (running)).
n cadrul SO, procesul este reprezentat prin blocul decontrol al procesului (BCP),un bloc de date careconine informaii specifice procesului la care se
8/12/2019 Sisteme de Operare1
161/200
conine informaii specifice procesului la care se
refer: starea procesului, valoare contorului program i a
registrilor UC (utilizai n cazul apariiei unei ntreruperi),
informaii despre gestionarea memoriei (valorile registrilorbaz i a registrilor limit sau a tabelei de paginare),
informaii referitoare la sistemul de conturi utilizator,
informaii de stare referitoare la operaiile de I/O (cererilede I/O, dispozitivele de I/O alocate procesului, listafiierelor deschise etc.),
informaii de planificare a UC (prioritatea procesului,indicatori ctre cozilede planificare etc.).
SO poate crea sau poate terge (desfiina) procese.
n timpul execuiei prin intermediul apelurilor
8/12/2019 Sisteme de Operare1
162/200
n timpul execuiei, prin intermediul apelurilor
de sistem specializate, un proces (numitprinte) poate crea unul sau mai multeprocese noi (numite copii), fiecare dintreacestea putnd crea, la rndul lor, alte noiprocese.
Pentru a-i ndeplini rolul, subprocesul noucreat are nevoie, n general, de anumiteresurse (timp de lucru al UC, memorie,
fiiere, dispozitive de I/O) pe care le poateobine fie direct de la sistemul de operare, fieca subset al resurselor procesului printe.
8/12/2019 Sisteme de Operare1
163/200
Terminarea normal a unui proces are loc
8/12/2019 Sisteme de Operare1
164/200
Terminarea normala unui proces are loc
dup executarea ultimei sale instruciuni,moment n care se transmit i anumite date(de informare, de exemplu) ctre procesulprinte.
Terminarea forata unui proces (ncheiereaexecuiei sale nainte de parcurgerea tuturorinstruciunilor componente) poate fi impusprin intermediul unui apel de sistem (abort)
generat de ctre procesul printecaretrebuie s cunoasc identitatea copiilorsi,pentru ai putea referi.
8/12/2019 Sisteme de Operare1
165/200
Dac execuia unui proces nu poate afecta sau nu poate fi
8/12/2019 Sisteme de Operare1
166/200
p p pafectat de ctre execuia altor procese din sistem, se spune ca
procesul este independent. El poate fi oprit i repornit fr a genera efecte nedorite, este
determinist (rezultatele depind numai de starea de intrare),nu se afl niciodat n aceeai stare ca i alte procese dinsistem i, evident, nu folosete n comun date (temporare sau
permanente) cu acestea. Dac ns execuia procesului poate afecta sau poate fi
afectat de ctre execuia altor procese din sistem, se spune caprocesul este cooperant.
n acest caz, procesul nu este determinist (rezultatele depindde secvena relativ de execuie, nu pot fi prevzute cuanticipaie), nu este reproductibil (rezultatele nu sunt
ntotdeauna aceleai pentru aceleai condiii de intrare), sepoate afla n aceeai stare ca i alte procese din sistem i, decele mai multe ori, folosete n comun date cu acestea.
8/12/2019 Sisteme de Operare1
167/200
I V. Plani f icareaunitii centrale (UC)
IV.1. DefiniiiMultiprogramareareprezint cel mai important concept folosit
n cadrul sistemelor de operare moderne
8/12/2019 Sisteme de Operare1
168/200
n cadrul sistemelor de operare moderne.
Existena simultan n memorie a mai multor procese face ca,prin intermediul unui mecanism de planificare a UC, s sembunteasc eficiena global a sistemului de calcul,realizndu-se o cantitate mai mare de lucru n timp maipuin (n general, un proces folosete UC pn n momentul
n care trebuie s atepte, de exemplu, realizarea uneioperaii de I/O.
Fr multiprogramare, pe durata realizrii acestei operaii UCrmne inactiv.
Altfel ns, sistemul de operare permite imediat unui alt process foloseasc UC, eliminnd timpul de ateptare din primulcaz).
Deoarece n cadrul sistemului de calcul unitii centrale i revinesarcina complex de a executa un mare numr de procese (saujob-uri) att de tip utilizator ct i de tip sistem, planificarea
8/12/2019 Sisteme de Operare1
169/200
j ) p p , pUCreprezint o funcie fundamental a SO.
Acest mecanism se bazeaz n principal pe proprietateaproceselor de a se executa n forma unei succesiunii de ciclurirafalalternative de folosire a UC (ciclu rafalUC)i deateptare a realizrii unor I/O (ciclu rafalI /O).
Prin msurarea duratei ciclurilor rafalUC s-a constatat c,dei variaz destul de mult n funcie de proces i de sistemulde calcul folosit, reprezentarea grafic a frsa-ti trimit?
Secvenei lor de apariie este de tip exponenial sau hiper-exponenial (Figura 6 ).
Atunci cnd un program conine n mod predominant ciclurirafalUC de scurt durat, se spune c el este limitat I/O;nmod analog, dac programul include mai ales cicluri rafalUC foarte lungi, se spune c este limitat UC.
8/12/2019 Sisteme de Operare1
170/200
g , p
Clasificarea programelor n funcie de proprietatea menionatinflueneaz deseori n mod hotrtor alegerea algoritmului deplanificare a UC.
Procesele ncrcate n memorie i gata de a fi lansate n execuiesunt grupate ntr-un ir de ateptare (ir ready) n vederea
alocrii UC.Implementarea acestui ir (numit de multe ori coadde
ateptare) se realizeaz de obicei sub forma unei listenlanuite ale crei elemente sunt blocurile de control asociateproceselor (BCP), fiecare BCP incluznd un indicator (un
pointer) ctre procesul care i urmeaz n irul ready.Antetul listei conine indicatorii primului, respectiv, ultimului
BCP.
Deoarece, pe lng UC, procesele folosesc i alteresurse ale sistemului de calcul, pentru fiecare dinaceste resurse pot exista iruri de ateptare (cozi),
8/12/2019 Sisteme de Operare1
171/200
p p ( ),numite de exemplu iruri dispozitivsau iruri I/Odac este vorba de procesele ce ateapt eliberareaunui dispozitiv de I/O.
n mod schematic, comportarea proceselor n raport
cu resursele ce le sunt necesare poate fi reprezentateca n F igura 7, n care se folosesc dreptunghiuripentru iruri de ateptare i cercuri pentru resurselece deservesc irurile, iar sgeile arat evoluia
proceselor n cadrul sistemului.
Ori de cte ori UC devine inactiv,
SO, prin intermediul
8/12/2019 Sisteme de Operare1
172/200
, p
unei componente numite planificator,
selecteaz pentru execuie
unul dintre procesele aflate n irul ready.Planificatorul UC poate fi:
planificator pe termen lung (de perspectiv) sau
planificator pe termen scurt (imediat)
Planif icatorul pe termen scurt(numit iplanificator UC) selecteaz unul dintre
l t d i fl t d j
8/12/2019 Sisteme de Operare1
173/200
procesele gata de execuie aflate deja nmemoria intern i i aloc UC.
Deoarece multe procese conin cicluri
rafalUC foarte scurte (ctevamilisecunde ), planificatorul pe termenscurt are o frecven de execuie foartemare i, prin urmare, trebuie sa fiefoarte rapid pentru a nu irosi timpul delucru al UC.
Plani f icatorul pe termen lung(numit i planificator de job-uri)stabilete care sunt procesele ce vor fi ncrcate n memoriaintern a sistemului pentru a fi executate atunci cnd existmai multe cereri dect posibiliti imediate de execuie.
8/12/2019 Sisteme de Operare1
174/200
p
De obicei, n astfel de situaii, procesele se afl memorate pe discmagnetic, de unde planificatorul pe termen lung controleazgradul multiprogramarii (numrul proceselor din memorie).
n mod evident, frecvena de execuie a acestui tip de planificatoreste mult mai mic i el poate fi folosit mai mult timp dect
planificatorul pe termen scurt pentru a selecta procesele.Deoarece n sistem pot exista att procese limitate I/O, ct i
procese limitate UC, este important ca planificatorul petermen lung s aleag o proporie optim de proceseaparinnd ambelor categorii, altfel irul readyva fi aproape
ntotdeauna gol i UC va fi folosit ineficient (numai proceselimitate I/O) sau irurile I/O i respectiv dispozitivele asociatevor fi n aceeai situaie (numai procese limitate UC).
Exist i sisteme care folosesc un nivelsuplimentar de planificare prin intermediulunui planif icator pe termen mediu
8/12/2019 Sisteme de Operare1
175/200
unui planif icator pe termen mediu.
Rolul acestuia este de a modifica gradul demultiprogramare atunci cnd este necesar,evacund din memorie anumite procese (care
altfel ar concura pentru dobndirea UC) ireintroducndu-le n momentul n carencrcarea sistemului permite reluareaexecuiei din punctul n care fusesentrerupta.
Pentru aceasta metod se folosete nlimbajul de specialitate denumirea de
8/12/2019 Sisteme de Operare1
176/200
swapping, ceea ce ntr-o traducere
aproximativ ar nsemna interschimbaresau, mai sugestiv, evacuare i introducere
din/n memorie a procesului.Plani f icatoarele pe termen mediusunt
incluse mai ales n cadrul sistemelor de
tip time-sharingi a celor cu memorievirtual.
O alt component deosebit de important a SO estedispecerul, care realizeaz efectiv transferareacontrolului UC asupra procesului selectat de ctre
8/12/2019 Sisteme de Operare1
177/200
controlului UC asupra procesului selectat de ctre
planificatorul pe termen scurt, i la fel ca i acesta,trebuie sa fie foarte rapid pentru a putea executa nmod eficient operaiile necesare:
ncrcarea registrilor procesului, comutarea n mod utilizator,
efectuarea saltului la locaia corespunztoare din programulutilizator pentru nceperea/reluarea execuiei acestuia.
8/12/2019 Sisteme de Operare1
178/200
I V.2. Criter i i
de performan
Atunci cnd se dorete alegerea unui algoritm deplanificare se pot lua n considerare mai multecriterii:
8/12/2019 Sisteme de Operare1
179/200
criterii:
gradul de utilizare al UC: teoretic, poate lua valorintre 0% i 100%, n practic ns, valorile variazntre 40% (pentru un sistem cu ncrcare redus) i90% (pentru un sistem cu ncrcare mare);
numrul de procese executate ntr-un interval de timpprecizat (throughput): dac procesele au durata marede execuie, se poate vorbi despre un proces pe or, ntimp ce dac se lucreaz cu procese scurte, valorilepot fi, de exemplu, de 15 procese pe secund;
durata total de execuie unui proces (turnaround time ):reprezint timpul scurs ntre momentul introduceriiprocesului n memorie i momentul ncheierii
8/12/2019 Sisteme de Operare1
180/200
procesului n memorie i momentul ncheierii
execuiei sale; se exprim ca suma perioadelor detimp de ateptare pentru a intra n memorie, deateptare n irul ready, de execuie (avnd alocatUC) i de realizare a operaiilor de I/O;
durata de ateptare: algoritmul de planificare a UCinflueneaz numai mrimea duratei de timp pe careprocesul o petrece n ateptare n cadrul iruluiready; el nu afecteaz n nici un fel durata de
execuie a procesului sau volumul de timp destinatoperaiilor de I/O.
Acesta este motivul pentru care criteriul enunat estefolosit deseori n locul celui anterior;
8/12/2019 Sisteme de Operare1
181/200
durata de rspuns: reprezint timpul scurs ntreformularea unei cereri i iniierea comunicriirspunsului corespunztor, fr a include duratacomunicrii propriu-zise (se obine astfel o aprecierea performanelor independent de performanele
dispozitivelor de I/O ).Criteriul este sugestiv, de exemplu, n sistemele
interactive n care, la un moment dat, un procespoate produce date de ieire, continund s calculezenoi rezultate n timp ce rezultatele anterioare suntprezentate utilizatorului.
Prin alegerea unui anumit algoritm de planificare aUC se dorete n general optimizarea criteriului luat
n considerare (maximizarea n cazul primelor dou
8/12/2019 Sisteme de Operare1
182/200
( p
i, respectiv, minimizarea n cazul ultimelor trei).Deseori se recurge ns la optimizarea valorii medii sau
se urmrete minimizarea variaiei duratei derspuns aa cum se ntmpl n cazul sistemelor detip time-sharing (se consider c un sistem cu duratade rspuns moderat i aproximativ constant estemai performant dect unul a crui durat de
rspuns este mult mai scurt, dar variaz foartemult).
8/12/2019 Sisteme de Operare1
183/200
I V.3. Algor itmi
de planif icare a UC
Prezentarea ct mai fidel a funcionarii algoritmilorde planificare a UC ar presupune utilizarea unorexemple care s includ un numr mare de procese,
8/12/2019 Sisteme de Operare1
184/200
exemple care s includ un numr mare de procese,
fiecare dintre ele fiind o secven de sute de ciclurirafalUC i I/O.
Pentru ca toate acestea s nu afecteze nelegerea
elementelor eseniale, s-a preferat folosirea unei
variante simplificate n care fiecare proces conineun singur ciclu rafalUC, iar performanele suntapreciate cu ajutorul Duratei Medii de Ateptare
(notat DMA ).
Algoritmul FCFS (F irs Come F irst Served)
(adic primul sosit-primul servit)
8/12/2019 Sisteme de Operare1
185/200
este cel mai simplu algoritm de planificare a UC:primul proces care cere alocarea UC
este cel care o obine.
irul ready este de tip F IFO (F irst n F irst Out),
(adic pr imul intrat-primul ieit):
atunci cnd un nou proces devine gata de execuie,blocul su de control se adaug la sfaritul iruluiready; ori de cate ori devine disponibil, UC estealocat procesului aflat pe prima poziie a irului.
Algoritmul SJFAlgoritmul SJF (Shortest Job First, adic se execut mai nti
cel mai scurt job) ia n considerare pentru fiecare proces
8/12/2019 Sisteme de Operare1
186/200
cel mai scurt job ) ia n considerare pentru fiecare proces
urmtorul ciclu rafalUC pe care l conine i aloc UC(atunci cnd ea devine disponibil) procesului cu cel mai scurtciclu rafalUC urmtor existent n irul ready.
n cazul n care exist dou procese cu aceeai durat a cicluluirafalUC urmtor, ntre ele se aplic regula FCFS.
Se poate demonstra c planificnd un proces scurt naintea unuilung, durata de ateptare a procesului lung i, prin urmare,
durata medie de ateptare se reduce n mod substanial.
Din acest motiv, algoritmul SJF este optimal, asigurnd o durat
medie de ateptare minim, oricare ar fi setul de procese luatn considerare.
Singura problema care apare este legat de cunoaterea durateiciclului rafalUC urmtor asociat fiecrui proces analizat.
Dac se dorete planificarea pe termen lung ntr-unsistem de tip batch, se folosete ca valoare durata
limit a job-ului precizat de ctre fiecare utilizatorn parte (n cazul n care utilizatorul estimeaz i
8/12/2019 Sisteme de Operare1
187/200
n parte (n cazul n care utilizatorul estimeaz i
precizeaz o valoare prea mic, poate s apareroare de depire a limitei de timp, fiind necesarreplanificarea job-ului).
Dac ns se dorete folosirea algoritmului pentru
planificarea pe termen scurt, deoarece nu secunoate cu exactitate durata ciclurilor "rafal"urmtoare ale proceselor implicate, se poate realizadoar o aproximare a funcionrii reale (de exemplu,
se poate predicta valoare unui ciclu "rafal" UC
urmtor pe baza valorilor ciclurilor anterioare).
Algoritmi bazai pe prioritin cadrul acestui tip de algoritm, fiecrui proces i se
8/12/2019 Sisteme de Operare1
188/200
asociaz oprioritate (reprezentat, n general, ca unnumr cuprins ntr-o gama fixat de valori), UCfiind alocat (n momentul n care devinedisponibil) procesului cu cea mai mare prioritate
din irul ready.SJF este un caz particular de algoritm bazat pe
prioriti n care prioritatea fiecrui proces este un
numr invers proporional cu mrimea ciclului"rafal" UC urmtor.
Prioritatea se poate defini intern sau extern.
Atunci cnd definirea este de tip intern, prioritateaprocesului se calculeaz pe baza unei entiti
8/12/2019 Sisteme de Operare1
189/200
procesului se calculeaz pe baza unei entiti
msurabile cum ar fi, de exemplu, limita de timp,necesarul de memorie, numrul fiierelor deschise
sau raportul dintre numrul mediu de cicluri"rafal" I/O i numrul mediu de cicluri "rafal"
UC.Dac definirea este de tip extern, criteriile folosite sunt
din afara sistemului de operare: tipul i mrimeafondurilor rambursate pentru utilizarea
calculatorului, departamentul care sponsorizeazalucrarea, factorii politici etc.
Principala problem a algoritmilor bazai peprioriti este posibilitatea apariiei blocrii lainfinit ("nfometrii") a proceselor care sunt
t d i d d i it t
8/12/2019 Sisteme de Operare1
190/200
gata de execuie, dar, deoarece au prioritateredus nu reuesc sa obin accesul la UC.
O astfel de situaie poate s apar ntr-un sistemcu ncracare mare n care se execut un
numr considerabil de procese cu prioritateridicat; acestea vor obine mereu accesul laUC n detrimentul proceselor cu prioritateredus care este posibil s nu se mai execute
niciodat.
O metod de rezolvare a acestei probleme este"mbtrnirea" proceselor, o tehnic prin care semrete treptat prioritatea proceselor care se
8/12/2019 Sisteme de Operare1
191/200
mrete treptat prioritatea proceselor care se
constat c rmn n sistem un timp mai ndelungat.De exemplu, dac prioritile sunt cuprinse n
domeniul 0 pn la 64, se poate stabili ca la fiecare
10 minute s fie incrementat cu cte o unitateprioritatea proceselor rmase n ateptare.
n acest fel, chiar i un proces cu prioritate iniiala 0 vareui ca ntr-un timp destul de scurt s ajung celmai prioritar i, prin urmare, s obin accesul laUC (s se execute).
Algoritmi preemptiviToti algoritmii de planificare a UC descrii
t i (FCFS SJF i l it ii b i
8/12/2019 Sisteme de Operare1
192/200
anterior (FCFS, SJF i algoritmii bazai peprioriti) sunt algoritmi ne-preemptivi: odatalocat, UC este folosit de ctre proces pnn momentul n care acesta dorete s oelibereze (i ncheie execuia sau urmeaz sefectueze o operaie de I/O ).
Un algoritm preemptiv permite ns ntrerupereaexecuiei unui proces n momentul n care n
irul ready apare un alt proces cu dreptprioritar de execuie, sistemul de operarealocndu-i imediat acestuia UC.
Algoritmi preemptiviAlgoritmul FCFS este prin definiie ne-preemtiv; ceilali doi
algoritmi prezentai pot fi modificai, astfel nct sa devin
8/12/2019 Sisteme de Operare1
193/200
algoritmi prezentai pot fi modificai, astfel nct sa devin
preemptivi. SJF preemptiv se formuleaza astfel: dac n irulready sosete un proces al crui ciclu "rafal" UC urmtoreste mai scurt dect ceea ce a mai rmas de executat din ciclul"rafal" UC al procesului curent, se ntrerupe execuia celuidin urma i se aloc UC noului proces.
Un algoritm preemptiv bazat pe prioriti funcioneaz ntr-unmod similar: ori de cte ori sosete n irul ready un nouproces, prioritatea sa este comparat cu a procesului curent;dac se constat c este mai mare, se ntrerupe execuiaprocesului curent i se aloc UC procesului nou (dacalgoritmul bazat pe prioriti este de tip ne-preemptiv,execuia nu se ntrerupe, noul proces fiind pus la nceputulirului ready, comform prioritiipe care o are i ateptndeliberarea UC).
Algoritmul Round-RobinRound-Robin este un algoritm de planificare a UC
proiectat special pentru sistemele de tip time
8/12/2019 Sisteme de Operare1
194/200
proiectat special pentru sistemele de tip time-
sharing. Principalele sale caracteristici suntdefinirea i folosirea unei cuante temporale (cuvalori cuprinse ntre 10 ms pn la 100 ms) itratarea irului ready ca ir FIFO circular.
Planificatorul aloc pe rnd UC fiecrui proces din irpe o durat egal cu cel puin o cuant (se foloseteun timer setat n mod corespunztor). Durataciclului "rafal" UC al procesului curent este maimic dect durata cuantei, nsui procesulelibereaz UC prin emiterea unei cereri de I/O sauprin comunicarea ncheierii execuiei.
Algoritmul Round-RobinDac ns durata ciclului rafalUC depete
durata cuantei timer ul va genera o ntrerupere i
8/12/2019 Sisteme de Operare1
195/200
durata cuantei, timer-ul va genera o ntrerupere i
procesul va fi inclus la sfritul irului ready, dupce n prealabil contextul su a fost salvat n bloculde control asociat.
Se poate spune deci ca algoritmul Round-Robin este
un algoritm preemptiv, care asigur un timpaproape egal de ateptare pentru toate procesele dinsistem.
ntr-adevr, dac n irul ready exist N procese i se
lucreaz cu o cuant de valoare C, fiecare proces vafolosi n total 1/N din timpul UC, fiecare alocaredurnd cel mult C uniti de timp. ntre douaalocri succesive ctre acelai proces durata deateptare va fi de cel mult (N-1)*C uniti de timp.
iruri de procese multinivelAtunci cnd procesele existente n sistem pot fi clasate
n grupe diferite n funcie de anumite caracteristici
8/12/2019 Sisteme de Operare1
196/200
n grupe diferite, n funcie de anumite caracteristici
(de exemplu, valori ale timpului de rspuns,prioritate definit extern, necesar de memorie etc.),se utilizeaz un algoritm de planificare pentru irurimultinivel.
irul ready este format din mai multe subiruri,fiecare dintre acestea coninnd cte o categorie deprocese i avnd propriul algoritm de planificare.
De exemplu, se pot crea dou subiruri: unul pentru
procese interactive (foreground) i altul pentruprocese de tip batch (background); pentru primul sepoate folosi un algoritm de tip Round-Robin, iarpentru cel de-al doilea un algoritm FCFS.
iruri de procese multinivelEste important de reinut faptul c i ntre subiruri trebuie s
existe un algoritm de planificare (de cele mai multe ori un
8/12/2019 Sisteme de Operare1
197/200
e s e u go de p c e (de ce e u e o u
algoritm preemptiv bazat pe prioriti nemodificabile).De exemplu, se poate stabili ca subirul proceselor interactive
sa aib prioritate mai mare dect cel al proceselor de tipbatch, ceea ce va face ca procesele din al doilea subir s sepoat executa numai atunci cnd primul ir este vid; dac
ntre timp apare un proces n primul ir, se ntrerupeexecuia procesului curent i UC este alocat noului sosit.
O alt variant de planificare ntre subiruri este stabilirea cteunei perioade de timp n care fiecare dintre acestea s deinaUC n mod exclusiv.
De exemplu, pentru subirul proceselor interactive se poateacorda 80% din timpul total al UC, iar pentru subirulproceselor de tip batch restul de 20%.
iruri de procese multinivel cu feedbackSpre deosebire de algoritmul prezentat anterior, n care
procesele odat introduse ntr-un subir rmneau n cadrul
8/12/2019 Sisteme de Operare1
198/200
procesele, odat introduse ntr-un subir, rmneau n cadrul
acestuia pn la ncheierea execuiei, n cazul unui algoritmde planificare pentru iruri multinivel cu feedback, sepermite mutarea unui proces dintr-un subir n altul, nfuncie de anumite caracteristici dinamice.
Metoda favorizeaz procesele interactive i procesele limitateI/O care sunt plasate n subiruri cu prioritate ridicat,"retrogradnd" procesele care folosesc UC un timp prea
ndelungat n subiruri cu prioritate redus. De asemenea,previne apariia fenomenului de "nfometare" (blocare la
infinit) printr-o form de "mbtrnire": permite proceselorcare asteapt de prea mult timp n irurile de prioritateredus s "promoveze" n cadrul irurilor de prioritateridicat.
Pentru a putea defini complet un algoritm de planificare pentruiruri multinivel cu feedback este necesar precizarea maimultor parametri:
8/12/2019 Sisteme de Operare1
199/200
numrul de subiruri;
algoritmul de planificare asociat fiecrui subir;
metoda de stabilire a subirului n care intra
procesul atunci cnd dorete s se execute; criteriul i metoda de "promovare" a unui proces
ntr-un subir cu prioritate ridicat;
criteriul i metoda de "retrogradare" a unui procesntr-un subir cu prioritate redus.
Avnd un nalt grad de generalitate,
algoritmul de planificare
8/12/2019 Sisteme de Operare1
200/200
pentru iruri multinivel cu feedbackeste i cel mai complex,
oferind avantajul unor performane ridicate,
dar necesitnd n acelai timp
un numr mare de informaii
pentru stabilirea valorilor optime