Repàs · Tema 4. Gestió de processos
omple, corregeix i mira què et falla
La nota surt de les 421 preguntes de resposta curta. Les preguntes obertes no puntuen, perquè no es poden corregir soles.
La solució només surt on hagis contestat. El que deixis en blanc es queda en blanc: així no et pots donar les respostes sense pensar-hi.
Posa-hi el nom abans de descarregar el PDF: si no, no se sabrà de qui és.
Practica 4.1
a) Tens obertes tres finestres del Chrome. Quants programes hi ha? Quants processos?
b) Explica amb les teves paraules la diferència entre programa i procés.
Practica 4.2
Digues en quina zona va cada cosa.
| Element | Zona |
|---|---|
| Les instruccions del programa | |
| Una variable que es crea dins d'una funció | |
| Una variable global | |
| Memòria que el programa reserva mentre corre |
Guiat 4.3
Completa quin estat correspon a cada situació.
| Situació | Estat |
|---|---|
| El procés està esperant que l'usuari premi una tecla | |
| El procés està fent servir la CPU en aquest moment | En execució |
| Ha esgotat el seu quantum i torna a la cua | |
| Acaba de crear-se i encara no és a la cua | |
| Ha acabat la seva última instrucció |
Guiat 4.5 — FIFO
Amb aquests processos, completa la graella, la cua i la taula. El P1 ja et ve fet.
| Procés | Arribada | CPU | Inici | Fi | Resposta | Servei | Espera |
|---|---|---|---|---|---|---|---|
| P1 | 1 | 4 | 1 | 4 | 0 | 4 | 0 |
| P2 | 2 | 3 | |||||
| P3 | 3 | 2 | |||||
| P4 | 6 | 5 | |||||
| Mitjana |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| P1 | X | X | X | F | ||||||||||
| P2 | ||||||||||||||
| P3 | ||||||||||||||
| P4 | ||||||||||||||
| Cua | ||||||||||||||
Practica 4.6 — Round Robin
Repeteix l'exemple anterior però amb q = 3. Completa la graella, la cua i la taula.
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | ||||||||||||||
| B | ||||||||||||||
| C | ||||||||||||||
| D | ||||||||||||||
| E | ||||||||||||||
| Cua | ||||||||||||||
| Procés | Arribada | CPU | Inici | Fi | Resposta | Servei | Espera |
|---|---|---|---|---|---|---|---|
| A | 1 | 3 | |||||
| B | 4 | 2 | |||||
| C | 5 | 3 | |||||
| D | 7 | 4 | |||||
| E | 8 | 2 | |||||
| Mitjana |
Surt millor o pitjor que amb q = 2? Per què t'ho esperaves?
### 10.1. Quan un procés demana entrada/sortida
Fins ara els processos només feien servir la CPU. A la realitat, gairebé tots s'aturen a mig camí
per llegir el disc, esperar una tecla o rebre dades de la xarxa. Mentre esperen no volen CPU:
estan bloquejats.
Als exercicis t'ho donaran per ràfegues, així:
A: CPU 2 · E/S 2 · CPU 2
Vol dir que A fa servir la CPU 2 cicles, després s'està 2 cicles esperant l'entrada/sortida, i
després torna a necessitar la CPU 2 cicles més. A classe ho veuràs escrit només amb números:
2 2 2.
A la graella, els cicles d'E/S es marquen amb una W (de wait, esperar).
Tres regles noves:
1. Quan un procés demana E/S, deixa anar la CPU a l'acte, encara que no hagi esgotat el
quantum. Entra el següent de la cua.
2. Mentre fa E/S, no és a la cua. L'E/S no ocupa la CPU: passa alhora que un altre procés
s'executa.
3. Quan acaba l'E/S, torna al final de la cua de preparats. Mai directament a la CPU. És la
fletxa de Bloquejat a Preparat del diagrama d'estats.
I els empats a la cua es resolen igual: passa primer el que fa més temps que no s'executa.
- Si un arriba nou, passa davant: no s'ha executat mai.
- Si un torna d'E/S i l'altre ha esgotat el quantum, primer el que torna d'E/S.
- Si tornen dos d'E/S, primer el que fa més temps que hi és.
Si a la cua no hi ha ningú, la CPU queda aturada: en aquella columna de la graella no hi ha
cap X.
I la fórmula de l'espera canvia una mica. Els cicles que un procés passa fent E/S no els ha passat
a la cua, així que també s'han de restar:
Espera = Servei − CPU − E/S
on CPU és la suma de totes les ràfegues de CPU i E/S la suma de totes les d'entrada/sortida.
### Exemple resolt 3 — Round Robin amb E/S, q = 2
| Procés | Arribada | Ràfegues |
|---|---|---|
| A | 1 | CPU 3 · E/S 2 · CPU 1 |
| B | 2 | CPU 2 · E/S 2 · CPU 2 |
| C | 3 | CPU 2 · E/S 2 · CPU 2 |
Pas 1. Seguim la cua cicle a cicle. Aquest és el pas que no et pots saltar.
- Cicle 1. Només hi ha A. Entra a la CPU.
- Cicle 2. Arriba B. Va a la cua.
- Cicle 3. Arriba C i A ha esgotat el quantum, amb 1 cicle encara per fer: han d'entrar alhora
a la cua. Primer C, que és nou, després A. Entra B. A la cua queden C i A.
- Cicle 5. B ha acabat la primera ràfega i se'n va a fer E/S els cicles 5 i 6. Entra C. A
la cua, A.
- Cicle 7. C se'n va a fer E/S els cicles 7 i 8. B torna de l'E/S i va a la cua, darrere A.
Entra A.
- Cicle 8. A ha acabat la primera ràfega i se'n va a fer E/S els cicles 8 i 9. Entra B.
- Cicle 9. C torna de l'E/S i va a la cua.
- Cicle 10. B ha acabat. A torna de l'E/S i va a la cua, darrere C. Entra C.
- Cicle 12. C ha acabat. Entra A, amb la segona ràfega, i acaba en aquest mateix cicle.
Pas 2. La graella.
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | X | X | X | W | W | F | ||||||
| B | X | X | W | W | X | F | ||||||
| C | X | X | W | W | X | F | ||||||
| Cua | B | C | C | A | A | B | C | A | A | |||
| A | A |
Fixa't a la columna 8: A i C fan E/S alhora mentre B fa servir la CPU.
Pas 3. La taula, ara amb les ràfegues d'E/S:
| Procés | Arribada | CPU i E/S | Inici | Fi | Resposta | Servei | Espera |
|---|---|---|---|---|---|---|---|
| A | 1 | 3 · 2 · 1 | 1 | 12 | 0 | 12 | 6 |
| B | 2 | 2 · 2 · 2 | 3 | 9 | 1 | 8 | 2 |
| C | 3 | 2 · 2 · 2 | 5 | 11 | 2 | 9 | 3 |
| Mitjana | 1 | 9,66 | 3,66 |
Fixa't en la A: fa servir la CPU 4 cicles, les dues ràfegues sumades (3 + 1), i fa 2
cicles d'E/S. Servei 12 − 1 + 1 = 12. Espera 12 − 4 − 2 = 6.
Comprova sempre. A la fila de la A, compta les caselles buides des que arriba fins que acaba:
la 3, 4, 5, 6, 10 i 11. En són 6, com l'espera. Si no coincideix, és que no has restat l'E/S.
Practica 4.7 — Round Robin amb E/S
Amb q = 2, completa la graella, la cua i la taula.
| Procés | Arribada | Ràfegues |
|---|---|---|
| P1 | 1 | CPU 2 · E/S 2 · CPU 1 |
| P2 | 3 | CPU 3 · E/S 2 · CPU 1 |
| P3 | 4 | CPU 3 · E/S 2 · CPU 1 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| P1 | ||||||||||||
| P2 | ||||||||||||
| P3 | ||||||||||||
| Cua | ||||||||||||
| Procés | Arribada | CPU i E/S | Inici | Fi | Resposta | Servei | Espera |
|---|---|---|---|---|---|---|---|
| P1 | 1 | 2 · 2 · 1 | |||||
| P2 | 3 | 3 · 2 · 1 | |||||
| P3 | 4 | 3 · 2 · 1 | |||||
| Mitjana |
a) Al cicle 5 dos processos han d'entrar alhora a la cua. Quins són, i en quin ordre hi entren?
b) A la columna 10 no hi ha cap X. Per què?
Practica 4.8 — Els quatre amb les mateixes dades
| Procés | Arribada | CPU |
|---|---|---|
| P1 | 1 | 5 |
| P2 | 2 | 2 |
| P3 | 3 | 4 |
| P4 | 5 | 1 |
Resol els quatre algorismes (Round Robin amb q = 2) i compara les mitjanes.
FIFO
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| P1 | ||||||||||||
| P2 | ||||||||||||
| P3 | ||||||||||||
| P4 | ||||||||||||
| Cua | ||||||||||||
Round Robin, q = 2
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| P1 | ||||||||||||
| P2 | ||||||||||||
| P3 | ||||||||||||
| P4 | ||||||||||||
| Cua | ||||||||||||
SJF
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| P1 | ||||||||||||
| P2 | ||||||||||||
| P3 | ||||||||||||
| P4 | ||||||||||||
| Cua | ||||||||||||
SRT
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| P1 | ||||||||||||
| P2 | ||||||||||||
| P3 | ||||||||||||
| P4 | ||||||||||||
| Cua | ||||||||||||
| FIFO | RR (q=2) | SJF | SRT | |
|---|---|---|---|---|
| Resposta mitjana | ||||
| Servei mitjà | ||||
| Espera mitjana |
Quin dona la millor mitjana d'espera? Quin triaries per a un ordinador de sobretaula i per què?
Practica 4.9 — A l'ordinador
a) Obre un terminal i executa ps -aux | grep firefox. Apunta el PID que et surti.
b) Executa top. Quants processos hi ha en total? Quants estan realment en execució?
c) Si a top hi ha 120 processos i només 1 en execució, en quin estat estan els altres 119?
d) Obre l'Administrador de tasques de Windows i busca un procés que estigui al 0 % de CPU.
Quin estat del diagrama li correspon?
A. Vertader o fals
| Frase | V o F | Per què |
|---|---|---|
| Un programa i un procés són el mateix | ||
| Un procés bloquejat passa directament a execució | ||
| Round Robin és expulsiu | ||
| SJF pot provocar inanició | ||
| Els fils d'un procés comparteixen la pila | ||
| El canvi de context no costa temps |
B. Preguntes curtes
1. Què guarda el sistema al PCB abans d'un canvi de context?
2. Per què un quantum molt petit és mala idea?
3. Quina diferència hi ha entre SJF i SRT?
4. Explica l'efecte comboi amb un exemple teu.
C. Problemes
Problema 1. Amb aquests processos, resol FIFO: la graella, la cua i les tres mitjanes.
| Procés | Arribada | CPU | Inici | Fi | Resposta | Servei | Espera |
|---|---|---|---|---|---|---|---|
| A | 1 | 6 | |||||
| B | 2 | 3 | |||||
| C | 4 | 1 | |||||
| D | 6 | 4 | |||||
| Mitjana |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | ||||||||||||||
| B | ||||||||||||||
| C | ||||||||||||||
| D | ||||||||||||||
| Cua | ||||||||||||||
Problema 2. Els mateixos processos amb Round Robin i q = 2.
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | ||||||||||||||
| B | ||||||||||||||
| C | ||||||||||||||
| D | ||||||||||||||
| Cua | ||||||||||||||
| Procés | Arribada | CPU | Inici | Fi | Resposta | Servei | Espera |
|---|---|---|---|---|---|---|---|
| A | 1 | 6 | |||||
| B | 2 | 3 | |||||
| C | 4 | 1 | |||||
| D | 6 | 4 | |||||
| Mitjana |
Problema 3. Els mateixos amb SJF. Quin dels tres dona la menor espera mitjana?
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | ||||||||||||||
| B | ||||||||||||||
| C | ||||||||||||||
| D | ||||||||||||||
| Cua | ||||||||||||||
| Procés | Arribada | CPU | Inici | Fi | Resposta | Servei | Espera |
|---|---|---|---|---|---|---|---|
| A | 1 | 6 | |||||
| B | 2 | 3 | |||||
| C | 4 | 1 | |||||
| D | 6 | 4 | |||||
| Mitjana |
Problema 4. Un procés està esperant que el disc li torni un fitxer. Mentre espera, un altre
procés fa servir la CPU. Explica en quin estat està cadascun i què passarà quan el disc contesti.