Documente Academic
Documente Profesional
Documente Cultură
Concepte de Bază
Prin multiprogramare se obţine o utilizare maximă a CPU
Criteriul de Planificare
Ciclurile CPU–I/O – Execuţia proceselor constă dintr-un ciclu de
Algoritmi de Planificare execuţie CPU şi aşteptare I/E
Planificarea Multi-Procesor Distribuţia procesării CPU
Planificarea Timp-Real
Planificarea Firelor
Exemple de Sisteme de Operare
Planificarea Firelor Java
Evaluarea Algoritmilor
Operating System Concepts with Java 6.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.2 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 6.3 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.4 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 6.5 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.6 Silberschatz, Galvin and Gagne ©2003
1
Criteriul de Planificare Criteriul de Optimizare
Maximizarea utilizării CPU
Utilizarea CPU – păstrarea CPU cât mai ocupat posibil Maximizarea debitului
Operating System Concepts with Java 6.7 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.8 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 6.9 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.10 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 6.11 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.12 Silberschatz, Galvin and Gagne ©2003
2
Determinarea Duratei Perioadei
Exemplu SJF Preemptiv Următoare CPU
Proces Timp Sosire Timp Servire Durata poate fi doar estimată
P1 0.0 7 Poate fi făcută folosind durata timpului de servire CPU
P2 2.0 4 precedent, folosind medierea exponenţială
P3 4.0 1
1. t n durata curenta a timpului n de servire CPU
P4 5.0 4 2. n 1 valoarea prezisa pentru urmatorul timp de servire CPU
SJF (preemptiv)
3. , 0 1
P1 P2 P3 P2 P4 P1 4. Defineste :
n 1 t n 1 n .
0 2 4 5 7 11 16
Operating System Concepts with Java 6.13 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.14 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 6.15 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.16 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 6.17 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.18 Silberschatz, Galvin and Gagne ©2003
3
Cuanta de Timp şi Timpul de Comutare a
Exemplu de RR cu Cuanta de Timp = 20
Contextului
Proces Timp Servire
P1 53
P2 17
P3 68
P4 24
Harta Gantt este:
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
Operating System Concepts with Java 6.19 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.20 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 6.21 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.22 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 6.23 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.24 Silberschatz, Galvin and Gagne ©2003
4
Exemplu de Coadă Multinivel cu Reacţie Cozi Multinivel cu Reacţie
Trei cozi:
Q0 – cuanta de timp 8 milisecunde
Q1 – cuanta de timp 16 milisecunde
Q2 – FCFS
Planificarea
Un nou proces intră în coada Q0 care este servit FCFS. Când
câştigă CPU, procesul primeşte 8 milisecunde. Dacă nu termină în
8 milisecunde, procesul este mutat în coada Q1.
În Q1 procesul este din nou servit FCFS şi primeşte 16 milisecunde
adiţionale. Dacă nici atunci nu s-a terminat, este întrerupt şi mutat
în coada Q2.
Operating System Concepts with Java 6.25 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.26 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 6.27 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.28 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 6.29 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.30 Silberschatz, Galvin and Gagne ©2003
5
Evaluarea Planificatorilor CPU prin Simulare
Planificarea Solaris 2
Operating System Concepts with Java 6.31 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.32 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 6.33 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.34 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 6.35 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.36 Silberschatz, Galvin and Gagne ©2003
6
API-ul de Planificare Pthread Planificarea Firelor Java
/* acum fa jonctiunea cu fiecare fir */ JVM foloseşte un algoritm preemptiv, bazat pe prioritate
for (i = 0; i < NUM THREADS; i++)
pthread join(tid[i], NULL);
} Coada FIFO este folosită dacă există mai multe fire cu aceeaşi
/* Fiecare fir va incepe controlul in aceasta functie */ prioritate
void *runner(void *param)
{
printf(“Eu sunt un fir\n");
pthread exit(0);
}
Operating System Concepts with Java 6.37 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.38 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 6.39 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 6.40 Silberschatz, Galvin and Gagne ©2003
Priorităţile Firelor
Priority Comment
Thread.MIN_PRIORITY Prioritatea minimă a unui fir
Thread.MAX_PRIORITY Prioritatea maximă a unui fir
Thread.NORM_PRIORITY Prioritatea implicită a unui fir
Operating System Concepts with Java 6.41 Silberschatz, Galvin and Gagne ©2003