Professional Documents
Culture Documents
executie (Threads)
Cursul 4: Recapitulare
Planificator Selecteaza dintre programele din
memorie gata de executie ( cozile PCB) si aloca CPU
pentru unul dintre ele
Modulul dispatcher ofera controlul asupra CPU
proceselor selectate de planificator; acest lucru implica:
Schimbare de context
Comutare in user mode
Saltul la locatia de memorie adecvata din programul
utilizatorului pentru a reporni programul
Criterii planificare:
Utilizarea CPU
Rata de transfer
Timpul de ciclare
Timp de asteptare
Timp de raspuns
Cursul 4: Recapitulare
Algoritmi de planificare:
FCFS batch
SJF TS
Round Robin
Multinivel (eventual multinivel cu feedback)
Bazata pe prioritati
Definirea firelor de executie (threads)
Definitie
Proces: Abstractizare a SO pentru a
reprezenta ceea ce este necesar pentru a rula
un singur program singlethread sau multithread
Doua parti ale unui proces:
[Multiple] fire de executie
Fiecare fir de executie este un flux secvential de executie
Resurse protejate:
Starea memoriei principale (continutul Spatiului de Adrese)
Starea dispozitivelor de I/E (descriptorii de fisiere)
De ce sa separam conceptul de thread de cel
de proces?
Gestionarea partii thread a proceselor
(concurenta)
Separarea de spatiul de adrese (Protectie)
Proces Heavyweight Proces cu un singur thread
Proces abstractizeaza executia, resursele,
spatiul de adrese
Thread abstractizeaza executia
Procese Single/Multithread
int main(int argc, char *argv[]) /* wait for the thread to exit */
{ pthread_join (tid, NULL) ;
pthread_t tid; /* the thread identifier */
pthread_attr_t attr; /* set of thread attributes printf("sum = %d\n",sum);
*/ }