Logo NEXUS

NEXUS didattica

← Torna indietro
Informatica / Lezione Teorica

Process Control Block (PCB)

La struttura dati fondamentale del kernel per la gestione, il salvataggio del contesto e lo scheduling dei processi.

1. Cos'è il Process Control Block (PCB)?

Il PCB (Process Control Block), noto in alcuni sistemi (come Linux) come task_struct, è una struttura dati mantenuta dal kernel del sistema operativo per ciascun processo attivo. Funziona come una sorta di "carta d'identità" e registro di controllo: senza di esso, il sistema operativo non sarebbe in grado di interrompere un'applicazione, memorizzarne i progressi e riprenderla in seguito.

Quando si verifica un cambio di contesto (Context Switch), il kernel salva lo stato della CPU associato al processo in esecuzione all'interno del suo PCB, caricando contestualmente i registri salvati nel PCB del processo successivo che deve prendere il controllo del processore.

2. Campi Principali di un PCB

I dati contenuti in un blocco di controllo di processo tipico includono:

Fondamento del Multitasking: Il cambio di contesto pulito e sicuro tra processi è reso possibile esclusivamente dall'aggiornamento atomico dei campi critici presenti nel PCB.

3. Simulatore Interattivo: Ispettore PCB del Kernel

Seleziona un processo dalla tabella di controllo sottostante per ispezionarne in tempo reale i campi interni del PCB.

kernel-debugger@nexus-core:~# pcb-inspector Active Task Structs
PID 1: systemd
PID 312: bash shell
PID 528: nexus-compiler
PID 894: sshd daemon
Process Name: systemd
PID: 1
Stato (State): RUNNING
Program Counter (PC): 0x7ffd4f1a20b0
Priorità (Priority): -20 (High / Nice)
Spazio di Memoria: 0x00007fff0000 - 0x7fffffffffff
File Aperti (FDs): stdin, stdout, stderr, /dev/null