NUCLI 1 · Sessió 1 · Programa, procés, fil i servei
La taula de processos
Sistema a restaurar: Taula de processos i planificador
- Alerta
- Manual
- Reptes
- Mòdul
Aquest nucli ja està en marxa. Pots tornar-lo a jugar per repassar, però la puntuació desada no canviarà.
Manual del nucli
0 / 3Desbloqueja les 3 pàgines del manual per obrir els reptes. Llegeix-les bé: els reptes en pregunten els detalls.
Programa, procés, fil i servei
- Programa: el fitxer executable desat al disc. Està quiet: no consumeix CPU.
- Procés: el programa en execució. Té el seu espai de memòria, els seus recursos i un identificador, el PID.
- Fil (thread): una línia d'execució dins d'un procés. Tots els fils d'un procés comparteixen la memòria. Tot procés té, com a mínim, un fil.
- Servei (daemon): un procés que corre en segon pla, sense interacció directa amb l'usuari, i que sol arrencar amb el sistema.
Un mateix programa pot donar molts processos: si obres dues vegades el bloc de notes, hi ha un sol fitxer al disc i dos processos, cadascun amb el seu PID.
Els estats d'un procés i el planificador
Un procés passa per cinc estats:
- Nou: s'està creant (el sistema li reserva memòria i li dona PID).
- Preparat: té tot el que necessita i espera torn de CPU.
- En execució: les seves instruccions s'executen en un nucli.
- Bloquejat: espera alguna cosa que no és la CPU (que acabi una lectura, que l'usuari escrigui, que passi un temps…).
- Acabat: ha finalitzat i ha deixat un codi de retorn.
El planificador del sistema operatiu decideix quin procés preparat entra a la CPU i durant quant de temps. Quan el treu i n'hi posa un altre fa un canvi de context: guardar l'estat d'un i restaurar el de l'altre. Això té un cost, i per això milers de processos són cars i milers de fils, molt menys.
Veure els processos de la màquina
A l'AA1 vam mirar què passa de debò al sistema:
- Windows: l'Administrador de tasques (pestanya Detalls, amb la columna PID) o
tasklista la consola. - Linux:
psitop. - Eines del JDK:
jpsllista els processos Java (la JVM) amb el seu PID, ijcmdhi envia ordres de diagnòstic, per exemple per veure'n els fils.
jps -l
jcmd 8124 Thread.print| Fragment | Què fa |
|---|---|
jps -l | Llista les JVM que s'estan executant: PID i classe principal o fitxer .jar (-l en mostra el nom complet). |
jcmd 8124 Thread.print | Demana a la JVM amb PID 8124 que imprimeixi tots els seus fils i què està fent cadascun. |
Nucli restaurat · Taula de processos i planificador
Taula de processos reconstruïda. El planificador torna a saber qui és qui.
- XP
- 0
- Bonus ratxa
- 0
- Errors
- 0
- Pistes
- 0
- Estrelles
- ☆☆☆
Anota la lletra i la seva posició: al kernel hauràs de compondre l'ordre de reinici.