Documente Academic
Documente Profesional
Documente Cultură
Facultatea de INFORMATIC
MARINELA NIDELEA
ANUL 1
- semestrul I Curs pentru nvmntul la distan
BUCURETI 2013
Planificarea proceselor
n sistemele de operare care permit executarea concurent a mai multor lucrri, o
lucrare nou introdus n sistem, pentru execuie, este tratat de o component a SO
numit planificatorul de lucrri (job scheduler). Sarcinile planificatorului de
lucrri sunt:
10
11
lucrarea cea mai veche n sistem va fi executat prima; acest algoritm duce
la scderea timpului maxim de ateptare n sistem a unei lucrri;
n sistemul de operare UNIX, la un interval fix, de 1 secund, se
recalculeaz prioritile, pentru fiecare proces n execuie, ca raport dintre
timpul afectat de procesor procesului (timpul de RUN) i timpul total
petrecut de proces n memorie (timpul de proces n execuie); n continuare,
se activeaz procesele n ordinea cresctoare a acestui raport; aplicarea
acestui algoritm duce la scderea timpului mediu de rspuns al sistemului.
irul READY este de tip FIFO (First Inpout First Output= Primul Intrat
Primul Ieit).
Dezavantaje : Durata medie de ateptare-DMA nu este minimal i poate varia n
limite foarte largi n funcie de caracteristicile procesului. n plus DMA depinde de
ordinea proceselor.
12
Se execut mai nti cel mai scurt job. La egalitate, se aplic regula FCFS (First
Come First Served).
Dac se cunosc cu precizie ciclurile UC (ca timp), SJF este optimal. Problema
principal este cunoaterea duratei ciclului UC.
2.2.3. Algoritmi bazai pe prioritate
13
Exist unii algoritmi cu iruri de procese multinivel. irul READY este format din
mai multe subiruri. Fiecare susbir are propriul algoritm de planificare. n schema
de planificare apar iruri READY multiple :
P1 P2..Pn
UC
P1 P2..Pn
P1(n) P2 (n)Pn(n)
(
..P
14
15
Sistemul de reguli dup care este luat decizia de alocare a resurselor la un proces
se numete algoritm de alocare; acesta trebuie s aib n vedere att utilizarea
16
exist un lan de procese n care fiecare dintre ele ateapt eliberarea unei
resurse utilizate de alt proces din lan (condiia de cerere de alocare
circular)
procesele solicit controlul exclusiv al resurselor pe care le utilizeaz
(condiia de excludere mutual a proceselor)
procesele pstreaz resursele alocate deja, atunci cnd ateapt alocarea altor
resurse (condiia de ateptare a alocrii resurselor)
resursele nu sunt eliberate de procesele la care au fost alocate pn nu au
fost utilizate complet (condiia de nepreempie).
Detectarea apariiei unui impas este prima problem la care trebuie s rspund un
sistem de operare care nu are implementat un mecanism de prevenire a impasului.
Este de dorit ca, odat cu detectarea unui impas, s se identifice i procesul care a
produs impasul.
Ieirea din impas se face, de regul, destructiv, prin una din metodele urmtoare:
18
prin convenie, bitul indicator este setat pe 0, dac resursa este disponibil,
respectiv pe 1, dac resursa este alocat altui proces;
nainte de a aloca o resurs unui proces, se verific starea lock-bit -ului:
dac valoarea este 0, procesul are acces la resurs i se seteaz bitul pe 1,
pn la ncheierea utilizrii resursei de ctre proces, cnd bitul se reseteaz
pe 0 i resursa devine disponibil;
n cazul n care bitul este 1, procesul rmne n ateptare, sistemul executnd
verificarea periodic a lock-bit -ului, pn cnd acesta devine 0 i procesului
i se poate aloca resursa.
pentru fiecare resurs partajat din sistem exist un bit semafor s i o list a
proceselor n ateptare, pentru alocarea resursei
bitul semafor s este setat iniial la valoarea 1
funcia de alocare asociat resursei este executat cnd un proces solicit
alocarea resursei; funcia decrementeaz bitul s i aloc resursa procesului
numai dac valoarea bitului s este 0; n caz contrar, procesul este trecut n
coada de ateptare
funcia de dezalocare asociat resursei este executat cnd un proces
elibereaz resursa; funcia incrementeaz bitul s i scoate din coad primul
proces cruia i aloc resursa numai dac valoarea bitului s este negativ sau
0; n caz contrar, bitul s are valoarea 1, deci coada de ateptare este goal.
n cadrul acestui algoritm se observ faptul c variabila semafor este resurs critic
pentru funciile de alocare i de dezalocare iar cele dou funcii sunt seciuni critice
pentru procese; n consecin, execuia celor dou funcii nu trebuie blocat i
asupra variabilei semafor nu trebuie s acioneze, la un moment dat, dect una
dintre aceste funcii.
Mecanismele de sincronizare direct, prin comunicarea ntre procese, utilizate
pentru procese concurente, pentru care execuia unui proces este condiionat de
rezultatul execuiei altor procese, sau pentru procese care fac schimb de informaii:
1. Cu ajutorul unor funcii primitive ale sistemului de operare, care permit
deblocarea unui proces care a intrat n starea de ateptare, cu funcii de tipul
WAIT() pentru un eveniment, de ctre un alt proces, care execut o funcie
de setare a indicatorului de eveniment respectiv. Concomitent, se poate
realiza i schimbul de date ntre cele dou procese, utiliznd directive ale
sistemului de operare de tipul SEND(proces destinatar,adresa mesaj) i
RECEIVE(adresa mesaj); comunicarea are loc n momentul n care procesul
expeditor lanseaz comanda SEND(), urmat de execuia comenzii
RECEIVE() de ctre procesul destinatar; pentru unele sisteme de operare,
20
21
Teste de autocontrol
1. Planificarea Round-Robin:
1. determina atribuirea unei cuante de timp in care procesului ii este permis sa
ruleze,
2. determina suspendarea unui proces intr-un moment arbitrar,
3. determina atribuirea unei prioritati fixe pentru executia unui proces,
4. determina lansarea in executie a unui proces daca nu exista altul mai
prioritar in executie.
2. Tranzitia unui proces din starea in executie in starea blocat are loc atunci
cand:
1. planicatorul decide suspendarea procesului pentru a lansa un altul mai
prioritar,
2. planicatorul decide blocarea procesului din cauza unei erori,
3. procesul asteapta aparitia unor date de care depinde continuarea executiei,
4. procesul nu mai poate continua executia din cauza unei erori.
3. Cu ce comanda aflm direct procesul folosit de un utilizator conectat prin
ssh la serverul nostru?
1. ps -aux | grep pts;
2. ps -aux | who;
3.ps -aux | grep last.
4. Planifcarea preemptiva este strategia de planifcare conform careia:
1. un proces nu poate fi suspendat temporar daca este in starea GATA,
2. un proces care din punct de vedere logic poate fi executat este temporar
suspendat,
22
3. un proces odata lansat in executie nu mai este suspendat atunci cand poate fi
n executie,
4. un proces nu poate fi suspendat temporar daca este in starea BLOCAT.
5. Sectiunile critice sunt:
1. secvente de program care trebuie tratate cu mare atentie,
2. secvente de tratare a intreruperilor importante,
3. secvente din activitatea sistemului calculator cand resursele sunt insufciente,
4. secvente de program unde se acceseaza date partajate.
23
24
Teste de autocontrol
1. Subunitatile de intrerupere sunt:
1. un mijloc de intrerupere al sistemului calculator,
2. un mecanism de transmitere a informatilor intre dispozitivele de intrareiesire,
3. un mijloc de terminare a unei operatii de intrare-iesire,
4. un mijloc de comunicatie intre sistemul calculator hardware si sistemul de
operare.
2. La declansarea unei intreruperi prima actiune desfasurata in sistemul
calculator este:
1. salvarea registrelor procesului intrerupt in tabela de procese,
2. incarcarcarea registrului program counter cu continutul vectorului de
intrerupere,
3. salvarea starii programului intrerupt in stiva,
4. modifcarea starii procesului interupt.
3. Explicitati sursele care pot duce la intreruperea unui proces aflat in executie.
29
30
31
32
33
Adresele fizice sunt adresele efective ale memoriei fizice. Se tie c pentru a
adresa o memorie fizic cu o capacitate de n octei este necesar un numr de
adrese egal cu log2n .
Adresele logice, sau virtuale, sunt adresele din cadrul programului ncrcat.
De obicei, n marea majoritate a alocatoarelor, n momentul ncrcrii unui
program sau chiar al compilrii lui, adresele fizice coincid cu cele logice. n
momentul execuiei acestea nu mai coincid.
Translatarea adreselor logice n adrese fizice este executat de ctre
hardware-ul de mapare al memoriei.
35
de acces care deschideau orice cheie de protecie (de exemplu cheia de acces zero),
precum i chei de protecie deschise de orice cheie de acces.
Alocare cu partiii variabile
n aceast alocare numrul, locaia i dimensiunea partiiilor variaz
dinamic. Ne mai fiind fixat dimensiunea partiiilor, care pot fi ori prea mari ori
prea mici fa de program, crete mult gradul de utilizare al memoriei. n schimb se
complic alocarea i dealocarea memoriei i urmrirea acestor operaii.
Cnd se ncarc un proces n memorie, i se aloc exact spaiul de memorie
necesar, din memoria liber crendu-se dinamic o partiie. Cnd se termin un
proces, partiia n care a fost procesul devine memorie liber, ea unificndu-se cu
spaiul de memorie liber existent pn atunci.
Pentru gestionarea unei astfel de alocri, sistemul de operare trebuie s
aib dou tabele:
- tabela partiiilor ocupate;
- tabela partiiilor libere.
Principala problem este alegerea unui spaiu liber; aceast alegere trebuie
fcut cu minimizarea fragmentrii interne i externe. Exist anumii algoritmi de
alegere a spaiului liber.
-FFA (First Fit Algoritm), prima potrivire. Se parcurge lista spaiilor libere,
care este ordonat cresctor dup adresa de nceput i se alege primul spaiu de
dimensiune suficient.
Acest algoritm este folosit n sistemul SO MINIX, creat de Tannenbaum.
-BFA (Best Fit Algoritm) , cea mai bun potrivire. Se parcurge lista spaiilor
libere i se alege spaiul cu dimensiunea cea mai mic n care ncape programul. n
acest fel se minimizeaz fragmentarea intern. n cazul n care lista spaiului liber
este ordonat cresctor dup dimensiunea spaiilor libere, se alege evident primul
spaiu liber. n acest caz FFA i BFA coincid. BFA este utilizat n SO MS-DOS.
-WFA (Worst Fit Algoritm) , cea mai proast potrivire. Se parcurge lista
spaiilor libere ordonat cresctor dup dimensiune i se alege ultimul spaiu din
list.
Din punct de vedere al vitezei i al gradului de utilizare al memoriei, FFA i
BFA sunt superioare strategiei WFA.
36
Memorie
Segment 1
Segment 2
Segment 3
Segment 4
Segment 5
Segment 6
Segment 7
39
40
Teste de autocontrol
1. Ce este alocatorul de memorie? In ce consta alocarea segmentat a
memoriei?
2. In ce consta alocarea paginata a memoriei?
3. Explicate rolul urmatoarelor comenzi dand un exemplu de utilizare a
acestora: cat fiier(e), echo ir , quota, wc fiier, tail fiier, ps aux,
sleep, write, jobs, kill.
4. Explicate rolul urmatoarelor comenzi dand un exemplu de utilizare a
acestora: cd director, echo $VARIABILA, rm fiier, head fiier, pwd,
jobs, nice, top, wall, netstat.
41
42
Evidena fiierelor
Funcia SGF de eviden a fiierelor pe suporii de memorie extern trebuie s
rezolve urmtoarele probleme:
Dintre toate dispozitivele de memorie extern, discurile magnetice necesit cea mai
complex eviden a fiierelor pe care le memoreaz, pentru c sunt dispozitive
care permit stocarea simultan a mai multor fiiere (dispozitive multifiier) i sunt
direct adresabile, deci modul de organizare a evidenei fiierelor pe suport trebuie
s permit accesul direct la fiiere.
Fiecare volum de disc conine cte o tabel cu informaii despre fiierele memorate
n volumul respectiv, tabel numit catalog de fiiere sau director. Accesul la
fiiere se face pe baza datelor din aceast tabel; fiecare intrare n tabela director
conine cte un descriptor de fiier, ce cuprinde date despre fiier, i anume:
43
cu ajutorul tabelei de ocupare a volumului (TOV), care are attea poziii cte
blocuri are volumul; n fiecare poziie se memoreaz cte un indicator, care
este setat pe 0 dac blocul nu este ocupat i pe o valoare diferit de 0 la
ocuparea blocului;
cu ajutorul unei liste nlnuite a blocurilor libere; n directorul volumului se
memoreaz un pointer la primul bloc liber de pe volum; fiecare bloc liber
conine un pointer la urmtorul bloc liber; ultimul bloc liber conine un
indicator de sfrit de list; alocarea unui bloc se face cu scoaterea lui din
list (de obicei de la unul din capetele listei); eliberarea unui bloc se face cu
inserarea blocului n list; dezavantajul este c pentru consultarea listei, de
exemplu pentru a determina numrul blocurilor libere din disc, trebuie
ncrcate n memoria intern attea blocuri cte se consult;
o metod mai eficient este evidena printr-o list nlnuit i indexat a
ocuprii volumului; n primul bloc liber din volum se memoreaz cte adrese
de blocuri libere ncap; acest bloc se numete bloc de index; dac numrul
blocurilor libere depete capacitatea blocului de index, pe ultima poziie
din blocul de index se memoreaz adresa unui nou bloc de index, amd; n
directorul volumului se memoreaz un pointer ctre primul bloc de index;
alocarea de blocuri libere ca i inserarea unor blocuri eliberate n blocurile
de index se realizeaz la nivelul ultimului bloc de index.
45
46
Teste de autocontrol
1. Cum ajungem n directorul home al utilizatorului logat?
1. cd /
2. cd ~
3. cd home
2. Ce comand folosim pentru a afia toate directoarele i fiierele din
directorul curent?
1. ls -a;
2. ls -l;
3. ls -t.
3. Cu ce comand adugm un utilizator?
1. user;
2. userlist;
3. adduser.
4. Ce comand folosim n linux pentru a afla adresa ip a placii de reea?
1. ifconfig;
2. ipconfig;
3. route.
47
APLICATII DE LABORATOR
Instalare linux
Cerinta:
1. Instaleaza Linux-ul pe calculatoarul tau.
Indicatii:
Lucruri pe care trebuie s le tii nainte de a ncepe o instalare a Linux-ului:
Va rula aceast distribuie pe calculatorul tau?
Verificai la http://www.tldp.org/HOWTO/Hardware-HOWTO/index.html atunci cnd avei
dubii despre compatibilitatea cu echipamentul dumneavoastr.
Ce tip de tastatur am? Ce fel de maus (serial, paralel, numrul de butoane)?
Ce memori de tip RAM este disponibil n sistem?
Voi alege o instalare pentru o staie de lucru sau pentru un server, sau va trebui s
selectezpachetele necesare eu nsumi?
Voi instala de pe discul fix (hard disk), de pe un suport extern sau voi utiliza reeaua? Va
trebui s adaptez BIOS-ul pentru oricare dintre acestea? Metoda de instalare necesit un
dispozitiv extern de pornire?
Linux-ul va fi singurul sistem instalat pe calculator, sau va fi o instalare dual-boot? Ar trebui
s fac o partiie mai mare pentru a instala pe ea sisteme virtuale mai trziu, sau este o instalare
virtual de la nceput?
Calculatorul este legat la reea? Care este numele gazdei, adresele de IP? Exist servere tip
gateway sau alte dispozitive importante de reea cu care sistemul meu ar trebui s comunice?
Calculatorul este un gateway/router/firewall?
Calculatorul va porni n modul text sau n cel grafic?
Gndii-v la o parol bun pentru administratorul acestui sistem (root). Facei un cont de
utilizator obinuit (care nu are acces privilegiat la calculator nu este necesar pentru Ubuntu,
deoarece aceast distribuie utilizeaz un sistem care cere autentificare pentru sarcinile realizate
ca administrator).
Am nevoie de un disc pentru recuperare?
Ce limb doresc pentru sistemul meu?
Partitii
Afiai traseul dumneavoastr de cutare.
Exportai o cale inexistent, de exemplu export PATH=blah i ncercai s listai
coninutul directorului.
Care este traseul directorului dumneavoastr personal? Cum poate un alt utilizator s
ajung la directorul dumneavoastr personal, folosind un traseu relativ?
Mergei n directorul tmp din var.
Mergei n directorul share din usr folosind o singur comand. Schimbai directorul cu
doc. Care
48
49
50
Subiecte LABORATOR
I.
51
II.
c) In ce director ma aflu?
d) Ce user este conectat la terminal si care sunt drepturile acestuia?
e) Care sunt utilizatorii conectati in sistem?
f) Cum se poate adauga un nou utilizator si cum isi poate schimba parola
acesta?
g) Unde se gaseste baza de date cu utilizatorii?
h) Unde se afla baza de date cu grupurile?
i) Cum se face conectarea ca root?
j) Ce contin urmatoarele fisiere: /dev; /bin; /var; /proc
III.
52
IV.
53
f) Schimbati in runlevel 2.
g) Listati comenzile care ruleaza in background.
54
55
BIBLIOGRAFIE:
1.D. Cramer, Interworking with TCP-IP, vol.1, Prentice Hall, New -Jersey,1991.
2.Andrew S. Tanenbaum, Modern Operating Systems, Prentice Hall,1992.
3.Iosif Ignat, Emil Muntean, Kalman Pustzai, Microinformatica, 1992.
4. Andrew Tanenbaum, Sisteme de Operare Moderne, Editura Byblos, Bucureti, 2004.
5. Sorin Adrian Ciureanu, Sisteme de operare, suport de curs,
6. Grigore Albeanu, Sisteme de operare, suport de curs.
7. Machtelt Garrels, Introducere n Linux,
8. Introducere n sisteme de operare, Rughini R., Deaconescu R., Milescu G., Bardac M.
56
CUPRINS:
1.1. Clasificarea sistemelor de operare. ...................................................................................... 2
1.2. Sarcinile sistemului de operare ............................................................................................ 4
1.3. Componentele sistemelor de operare .................................................................................. 5
1.4. Structura sistemelor de operare ............................................................................................ 6
Capitol 2. Gestiunea proceselor si a procesoarelor ......................................................................... 7
2.1. Gestiunea proceselor. ........................................................................................................... 7
2.2. Algoritmi de planificare ..................................................................................................... 12
2.2.1. Algoritmul FCFS (First Come First Served) .............................................................. 12
2.2.2. Algoritmul SJF (Shortest Job First) ........................................................................... 13
2.2.3. Algoritmi bazai pe prioritate ...................................................................................... 13
2.2.4. Algoritmi preemptivi .................................................................................................. 13
2.2.5. Algoritmul Round-Robin ............................................................................................ 14
2.2.6. Ali algoritmi de planificare ....................................................................................... 14
2.3. Controlul execuiei proceselor concurente......................................................................... 15
2.4. Controlul alocrii resurselor la procese concurente ........................................................... 16
2.5. Sincronizarea execuiei proceselor .................................................................................... 19
2.6. Criterii de performan a planificrii UC .......................................................................... 21
Capitolul 3. Gestionarea ntreruperilor ......................................................................................... 24
3.1. Surse de ntrerupere ........................................................................................................... 25
3.2. Mecanismul de funcionare a ntreruperilor ....................................................................... 26
3.3. Controlul ntreruperilor ...................................................................................................... 27
3.4. Ierarhizarea ntreruperilor .................................................................................................. 28
3.5. Funciile sistemului de ntreruperi ..................................................................................... 28
Capitolul 4. Gestionarea memoriei ............................................................................................... 30
4.1. Ierarhii de memorie ............................................................................................................ 30
4.2. Optimizri n ncrcarea i execuia unui program n memorie ......................................... 31
4.3. Overlay-uri ......................................................................................................................... 31
4.4. Legarea dinamic ............................................................................................................... 31
4.5. Alocarea memoriei ............................................................................................................. 32
4.5.1. Alocarea de memorie n limbaje de programare ......................................................... 32
4.5.2. Caracteristici ale alocatoarelor .................................................................................... 33
4.5.3. Tipuri de alocare ......................................................................................................... 33
4.5.4. Scheme de alocare a memoriei ................................................................................... 34
4.6. Paginarea memoriei ........................................................................................................... 38
4.7. Segmentarea memoriei....................................................................................................... 39
4.8. Gestiunea memoriei n unele sisteme de operare ............................................................... 40
4.8.1. Gestiunea memoriei n Linux..................................................................................... 40
4.8.2. Gestiunea memoriei n Windows NT ......................................................................... 40
Capitolul 5. Gestionarea datelor i a memoriei externe ................................................................ 41
5.1. Evidena ocuprii volumului de disc.................................................................................. 45
5.1.2. Alocarea spaiului pe disc ........................................................................................... 46
BIBLIOGRAFIE: .......................................................................................................................... 56
57
58
59