Documente Academic
Documente Profesional
Documente Cultură
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);
*/ }