LINUX

Gestione Risorse e Prestazioni

Il concetto alla base di ogni sistema Unix come GNU/Linux e' quello di avere una rigida separazione fra il cosiddetto kernel (il nucleo del sistema) a cui si demanda la gestione delle risorse hardware come la CPU, la memoria e le periferiche, e tutto il resto del sistema. Per quanto riguarda la gestione del processore, si fa riferimento alla schedulazione (vedi Classificazione Sistema Operativo).

Organizzazione del Sistema Linux
Prima parte: Spazio utente;
Seconda parte: Spazio kernel;
Terza parte: Hardware.

Gestione della memoria
Linux usa quattro segmenti:
1) due per il kernel;
2) due per lo spazio utente.
Tutti i processi usano questi ultimi due; pero', non ci sono conflitti tra i processi perche' la traduzione da indirizzo lineare a indirizzo fisico dipende dalla paginazione che assegna pagine fisiche in modo univoco. In memoria fisica il kernel occupa la parte bassa di memoria, a partire dall'indirizzo 0; lo spazio lineare del kernel corrisponde allo spazio fisico. Ogni processo ha uno stack nel proprio spazio utente, ma ha anche uno stack nel kernel, usato quando il kernel opera nel contesto del processo. Le pagine di stack nel kernel devono essere contigue per definizione di stack; bisogna quindi imporre un limite massimo alla dimensione dello stack di ogni processo.