Sunteți pe pagina 1din 61

Capitolul 3

Descrierea si
controlul proceselor
Ninth Edition, Global Edition
By William Stallings

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Rezumat - Concepte
anterioare
 Un calculator reprezintă  SO au fost dezvoltate pentru
o colecție de resurse a oferi o interfață de cu
hardware funcții bogate, sigure,
precum și o interfața
 Aplicațiile calculator sunt convenabilă utilizată de
dezvoltate pentru a aplicații
realiza un set de sarcini
 Ne putem gândi la SO ca
 Este ineficient pentru oferind o reprezentare
aplicații să fie scrise uniformă şi abstractă a
direct pentru o anumită
platformă hardware resurselor care pot fi
solicitate și accesate de
aplicații
Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Managementul SO privind
execuția aplicațiilor
 Resursele sunt puse la dispoziția mai multor
aplicații
 Procesorul este comutat între mai multe
aplicații astfel încât toate par că progreseaza
 Procesorul și dispozitivele I/O pot fi folosite
eficient

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Elementele Procesului
 Două elemente esențiale ale unui proces sunt:

Codul program
• poate fi partajat cu alte procese care execută același program

Un set de date asociate cu acest cod



în cazul în care procesorul începe să execute codul program, ne referim
la această entitate de execuţie ca proces

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Elementele procesului
 În timp ce programul se execută, acest proces poate fi caracterizat în mod
unic printr-un număr de elemente, incluzand:

Identificator

Program
Stare Prioritate
counter

Informații de
Pointeri de Informații de
Context data stare pentru
memorie contabilizare
I/O
Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Process Control
Block
Conține elementele procesului

Este posibil întreruperea execuţiei


unui proces și reluarea execuție mai
târziu, ca și în cazul în care întreruperea
nu ar fi avut loc

Creat și gestionat de sistemul de


operare

Instrument-cheie care oferă suport


pentru mai multe procese

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Starea proceselor
Trace
Dispatcher
(urmă)
Comportamentul
unui proces
individual prin
listarea secvenţei de Un program mic
instrucțiuni care sunt care comută
executate pentru procesorul de la
acest proces un proces la altul

Comportamentul procesorului
poate fi caracterizat prin
evidențierea modului cum sunt
intercalate urmele diferitelor
procese

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Execuția
proceselor

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Modelul proceselor cu
două stări

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Table 3.1 Reasons for Process Creation
New batch job The OS is provided with a batch job control stream,
usually on tape or disk. When the OS is prepared to take on new
work, it will read the next sequence of job control commands.

Interactive logon A user at a terminal logs on to the system.

Created by OS to provide a service The OS can create a process to


perform a function on behalf of a user program, without the
user having to wait (e.g., a process to control printing).

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Crearea Proceselor
Crearea
proceselor Proces părinte Proces fiu

• Atunci când • Este procesul • Este noul


SO creează original care proces
un proces, la crează noul
cererea proces
explicită a
unui alt
proces

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Terminarea proceselor
 Trebuie să existe o modalitate pentru un proces sa indice
finalizarea acestuia
 Un process ar trebui să includă o instrucțiune HALT sau un
apel la un serviciu SO explicit de terminare
 Pentru o aplicație interactivă, acțiunea utilizatorul va
indica atunci când procesul este finalizat (de exemplu, log
off, închizi o aplicație)

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Tabelul 3.2
Motive
pentru
terminarea
unui proces

(Table is located on page 111


in the textbook)

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Modelul proceselor cu
cinci stări

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Suspendarea proceselor
 Swapping
 Implica mutarea tutur părţilor dintr-un proces din memoria principală pe
disc
 Atunci când nici unul din procesele din memoria principală nu este în starea
Ready, SO “swap” unul dintre procesele blocate pe disc într-o coadă de
suspendare
 Aceasta este o coadă de procese existente care au fost temporar
lansate din memoria principală sau suspendate
 Sistemul de operare aduce apoi un alt proces din coada de suspendare
sau onorează o cerere de proces nou
 Execuția continuă apoi cu procesul nou-venit

 Swapping, este totuși o operațiune I/O și, prin urmare, există potențialul de a
face problema mai rea, nu și mai bună. Deoarece discul I/O este, în general,
celPearson
Copyright © 2018 maiEducation,
rapid I/O peRights
Ltd. All un Reserved.
sistem, schimbarea va crește de obicei performanța
Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Caracteristicile unui
proces suspendat
 Procesul nu este  Procesul poate sau nu
disponibil imediat pentru poate fi în asteptarea unui
execuţie eveniment

 Procesul a fost plasat în  Procesul nu poate fi


starea suspendat de către eliminat din această stare
un agent: fie el însuși, un până când agentul
proces părinte, sau OS, în dispune în mod explicit
scopul de a preveni eliminarea
executarea acestuia

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Tabelul 3.3 Motive pentru suspendarea proceselor

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Tabelele de memorie
 Utilizate pentru a urmări
atât memoria principală Trebuie să includă:
(reală) şi memoria
secundară (virtuală) alocare de memorie principală pentru
procese
 Procesele sunt menținute în
memoria secundară folosind alocare de memorie secundară pentru
procese
un fel de memorie virtuală
sau mecanism simplu atributele de protecție pentru blocurile de
memorie principală sau virtuală
swapping
informațiile necesare pentru a gestiona
memoria virtuală

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Tabelele I/O
 Folosite de OS pentru a
gestiona dispozitivele de
I/O și canalele sistemului Dacă o operație I/O este în
computerizat curs de desfășurare, SO
trebuie să știe:
 La un moment dat, un • starea operației I/O
dispozitiv I/O poate fi • locația în memoria principală
disponibil sau atribuit unui folosită ca sursă sau destinație a
anumit proces transferului

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Tabele de fişiere
 Informațiile pot fi întreținute și utilizate de către un sistem de
management de fișiere
 caz în care SO are puține sau deloc cunoștințe despre fișiere

 În alte SO, o mare parte din detaliile de gestionare a fișierelor este


gestionat de SO

Aceste tabele furnizează


informații despre:
• existența fișierelor
• locație din memoriea secundara
• statusul curent
• alte atribute
Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Tabele de procese
 Trebuie să fie menținute pentru a gestiona
procesele
 Trebuie să existe o referire la memorie, I/O, și
fișiere, direct sau indirect
 Tabelele trebuie să fie accesibile SO și, prin
urmare sunt supuse de procesului de
management al memoriei

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Structurile de control a
proceselor

Pentru a • Unde este localizat


gestiona și procesul
• atributele
a controla procesului care sunt
un proces necesare pentru
gestionarea lui
SO trebuie
să știe:

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Structurile de control a
proceselor
Localizarea procesului Atributele procesului
 Un proces trebuie să includă un
program sau set de programe care  Fiecare proces are asociat cu un
urmează să fie executate număr de atribute, care sunt
 Un proces va fi format din cel utilizate de către SO pentru
puțin suficientă memorie pentru a controlul procesului
organiza programele și datelele  Colectia programului, date, stivă,
procesului și atribute este denumită imaginea
 Executarea unui program implică procesului
de obicei, o stivă care este folosita  Locația imaginii procesului va
pentru a urmări apelurile de depinde de sistemul de
proceduri și transmiterea management al memoriei folosit
parametrilor între proceduri

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Tabelul 3.4
Elementele tipice a unei imagini a
unui proces

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Tabelul 3.5
Elementele
tipice a unui
bloc de
control a
unui proces
(page 1 of 2)

(Table is located
on page 125 in the
textbook)

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Tabelul 3.5
Elementele
tipice a unui
bloc de control
a unui proces
(page 2 of 2)

(Table is located
on page 125 in the textbook)

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Identificarea proceselor
 Tabele de memorie pot fi
 Fiecare proces este atribuit un
organizate pentru a oferi o hartă a
identificator numeric unic memorie principală, cu indicarea
 în caz contrar trebuie să existe procesului caruia îi este atribuită
o mapare care permite SO sa fiecăre regiune
localizeze tabelele  referințe similare vor apărea în
corespunzătoare bazate pe tabelele I/O de fișiere
identificatorii de proces
 Când procesele comunica unul cu
 Multe din tabelele controlate de altul, identificatorul de proces
SO pot folosi identificatori de informează sistemul de operare al
proces la tabele de cros-referință a destinației a unui anumit sistem de
proceselor comunicare
 Când proceselor le este permis să
creeze alte procese, identificatori
Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
indica părintele și descendenții
Informatii de stare a
procesorului
• registre
vizibile • conține codurile de
utilizatorului condiție, plus alte
Constă în • registrele de Program informații de stare
conținutul status • Registru EFLAGS este
registrelor
procesorului
control și de word un exemplu de PSW
stare (PSW) folosit de orice sistem
de operare care rulează
• Pointeri de pe un procesor x86
stivă

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Tabelul 3.6

Pentium

EFLAGS

Register

Bits

(Table is located on page 127 in the textbook)

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Informații de control a
proceselor
 Informațiile suplimentare necesare de către
sistemul de operare pentru a controla și coordona
diversele procese active

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Rolul
Process Control Block
 Cea mai importantă structură din cadrul unui SO
 conține toate informațiile referitoare la un proces care sunt necesare SO
 blocurile sunt citite și / sau modificate de către aproape fiecare modul din
sistemul de operare
 definește starea sistemului de operare

 Dificultate nu este accesul, ci protecția


 o eroare într-o singură rutina poate duce la deteriorarea blocurilor pentru
controlul proceselor, care ar putea distruge capacitatea sistemului de a
gestiona procesele afectate
 o schimbare de design în structura sau semantica blocului de control a
proceselor ar putea afecta un număr mare de module din SO

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Moduri de execuţie
Modul utilizator Modul sistem

 Modul cel mai puțin  Modul cel mai


privilegiat privilegiat
 Programele utilizator  mentionat ca modul
sunt execute de obicei control sau modul
în acest mod kernel
 nucleul sistemului de
operare

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Tabelul 3.7

Funcţiile
tipice a unui
nucleu a
unui SO

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Crearea proceselor
 Odată ce SO decide să creeze un nou proces, el:
atribuie un identificator unic de
proces pentru noul proces

alocă spatiu pentru proces

initializează blocul de control a


procesului

stabilește legăturile
corespunzătoare

creează sau extinde alte structuri de


date
Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Tabelul 3.8
Mecanisme pentru întreruperea execuției
unui proces

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Sistemul de întreruperi
Intrerupere Capcană (Trap)
 Datorită unor evenimente,  O condiție de eroare sau
care sunt externe și excepție generată in cadrul
independente de procesul procesului execut în prezent
executat  SO determină dacă condiția
 Întrerupere de ceas este fatală
 Întrerupere I/O  mutat in starea de ieșire și
 Defect de memorie se produce o comutatore
procese
 Cuanta de timp
 acțiunea va depinde de
 Timpul maxim în care un
natura erorii
proces poate executa
înainte de a fi întrerupt
Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Metoda de comutare

Dacă nu sunt în curs Dacă sunt în curs


întreruperi, procesorul: întreruperi, procesorul:

Trece la etapa de extragere a următoarei Setează contorul de program la adresa de


instrucțiuni a programului actual în început a unui program de de tratare a
procesul actual întreruperii

Comuta de la modul utilizator în modul


nucleu, astfel încât codul de procesare a
întreruperiie poate include instrucțiuni
privilegiate

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Schimbări în starea
procesului
 Pașii pentru o Actualizează
Muta blocul de
comutare Salvează contextul blocul de control al
control al a acestui
completă sunt: procesorului procesului aflat în
proces în coada
prezent în starea
corespunzătoare
Running

Dacă procesul executat în prezent trebuie trecut in


altă stare (Ready, Blocked, etc.), atunci SO trebuie să Selectează alt
facă modificări substanțiale în mediul său proces pentru
execuţie

Restabileşte
contextul
procesorului la ceea
ce a existat la Actualizează
momentul in care structurile de date Actualizează blocul
procesul selectat a de gestionare a de control a
fost ultima in memoriei procesului selectat
executie
Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Execuţia
Sistemului de
Operare

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Executie cadrul
proceselor
utilizator

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Unix SVR4
 Folosește modelul în care cea mai mare parte a SO se execută în mediul
unui proces utilizator
 Procesele sistemului sunt executate în modul kernel
 se execută cod SO pentru a efectua funcții administrative și de întreținere

 Procesele utilizator
 funcționează în modul utilizator pentru a executa programe utilizator și
utilitare
 Funcționează în modul kernel pentru a executa instrucțiuni care fac parte din
nucleu
 Intra în modul kernel prin emiterea unui apel de sistem, atunci când este
generată o excepție, sau atunci când se produce o întrerupere

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Tabelul 3.9 Starea proceselor UNIX

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.
Tabelul

3.10

Imaginea

unui

proces

UNIX

(Table is located on
page 140 in the
textbook)

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Tabelul
3.11 UNIX
Process
Table
Entry

(Table is located on page 141 in the


textbook)

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Table 3.12
UNIX U Area

(Table is located on page 142 in the


textbook)

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Crearea proceselor
 Crearea • Alocarea unui slot in tabelul de procese pentru noul proces
1
proceselor este
realizată prin • Atribuie un ID unic procesului copil
intermediul 2
apelului sistem • Face o copie a imaginii procesului părintelui, cu excepția oricărei memorie
kernel, fork( ) 3 partajată

• Incrementeaza contori pentru orice fișiere deținute de parintele, pentru a reflecta


 Atunci când un faptul că un proces suplimentar detine acum aceste fișiere
4
proces emite o
cerere de fork, • Setează procesul copil să treaca din starea Ready în starea Run
OS execută 5
următoarele • Returnează numărul de identificare a copilului la procesul părinte, și o valoare 0
funcții: 6 la procesul copil

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


După creare
 După crearea procesul nucleul poate face una dintre
următoarele, ca parte a rutinei dispecer:
 Rămâne în procesul părinte. Controlul se întoarce la modul
utilizator în punctul apelului fork din părinte.
 Transfera controlul la procesul copil. Procesul copil începe să fie
executat în același punct din cod ca și părintele, și anume la
întoarcerea de la apelul fork.
 Transfera controlul către un alt proces. Atât părintele, cât și copilul
sunt lăsați în starea Ready to Run.

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.


Rezumat
 Ce este un proces?  Controlul procesului
 Context  Moduri de executie
 Procese și blocuri pentru controlul  Crearea proceselor
proceselor  Comutarea proceselor

 Starea proceselor  Executia SO


 Modelul proceselor cu două stări  Nucleu nonproces
 Crearea şi terminarea  Executie in cadrul proceselor
utilizator
 Modelul cu cinci stări
 Sistem de operare bazat pe proces
 Procese suspendate
 Managementul proceselor în UNIX SVR4
 Descrierea proceselor  Stările procesului
 Structurile de control a SO  descrierea procesului
 Structuri de control a procesului  control procesului

Copyright © 2018 Pearson Education, Ltd. All Rights Reserved.

S-ar putea să vă placă și