SO e Hardware
Il SO interagisce direttamente con l'hardware
Semplificando, l'hardware si può rappresentare come segue:
CPU
La CPU preleva le istruzioni dalla memoria (fetch), le decodifica (decode) e le esegue (execute). Una CPU "tradizionale" esegue queste tre operazioni in modo ciclico:
- fetch
- decode
- execute
La CPU è dotata di registri.
- **generali (**general purpose registrers), che costituiscono il primo livello della gerarchia di memoria: essi contengono i dati e i risultati temporanei su cui la CPU lavora;
- di controllo (control registers), che controllano lo stato, e quindi il funzionamento della CPU stessa:
- Program Counter (PC): l'indirizzo dell'istruzione da prelevare
- Stack Pointer (SP): l'indirizzo della cima (top) dello stack in cui sono contenuti i frame (o record di attivazione) delle procedure
- Program Status Word (PSW): un insieme di uno o più registri che è suddiviso in gruppi di bit con significati particolari:
- Privileged Mode (PM): bit di modalità user/kernel
- Condition Code (CC): codici di condizione impostati dall'ALU a seguito di particolari operazioni (confronti, aritmetica, ecc)
- Interrupt Mask (IM) e Interrupt Code (IC): usati per gestire gli interrupt
- Memory Protection Information (MPI): informazioni sulla porzione di memoria accessibile (come ad esempio i registri LBR e UBR)
Nota: alcuni autori considerano i registri PC e SP parte della SPW
Interrupt
Definizione: gli interrupt (interruzioni) costituiscono un meccanismo per segnalare alla CPU un evento o una condizione avvenuti nel sistema che devono essere trattati dal SO.
Gli obiettivi degli interrupt sono due:
- interrompere il normale ciclo di esecuzione della CPU, che di norma continuerebbe a eseguire le istruzioni del programma corrent
- richiedere l'intervento del SO, cioè avviare l'esecuzione di codice appartenente al SO.