Protezione della Memoria, Accesso e Avvio del Sistema
Accesso e Protezione della Memoria
Pur non esistendo un “dono” di memoria, il tentativo di modificare un’area non
autorizzata può alterare dati critici e compromettere la stabilità del sistema.
L’hardware consente l’accesso diretto alla memoria, ma ciò può risultare pericoloso:
Le operazioni di memoria (lettura/scrittura) sono eseguite con istruzioni semplici.
Senza un’adeguata protezione, errori o bug potrebbero corrompere dati
fondamentali.
Il sistema operativo gestisce l’allocazione e la protezione della memoria, costringendo
l’utente a richiedere l’accesso tramite apposite funzioni (es. malloc).
Dal BIOS al Bootloader: Il Processo di Avvio
All’accensione, il primo software eseguito è il BIOS (Basic Input/Output System),
che:
Inizializza l’hardware e ne controlla la funzionalità (processore, memoria,
dispositivi).
Stabilisce la “tabella degli interrupt” per la gestione degli eventi hardware.
BIOS
Il legge i primi settori del disco (es. i primi 256 byte) contenenti il bootloader,
che si occupa di caricare:
Un bootloader più sofisticato.
Oppure direttamente il sistema operativo, trasferendolo in memoria centrale per
l’esecuzione.
Esecuzione del Sistema Operativo e Interazione con
l’Hardware
Una volta caricato, il sistema operativo si occupa di:
Gestire le risorse fisiche (come la memoria e il processore).
Creare ambienti di esecuzione isolati per le applicazioni, garantendone la stabilità
e la sicurezza.
L’utente, mediante operazioni semplici (doppio clic, comandi da shell), attiva i
programmi senza dover intervenire direttamente sull’allocazione della memoria o la
configurazione hardware.
Il Kernel, le Applicazioni e le Interfacce Utente
Distinzione tra Sistema Operativo e Applicazioni
Il kernel integra tutte le funzionalità essenziali, mentre le applicazioni (come browser,
shell, Office Automation) sono strumenti che sfruttano tali funzionalità.
È frequente la percezione errata che le applicazioni di sistema facciano parte del
sistema operativo, mentre esse operano sopra il kernel e non costituiscono il nucleo
protetto del sistema.
L’interfaccia grafica, per esempio, pur rendendo l’interazione più immediata, è
un’applicazione a livello utente e non parte del sistema operativo.
Funzioni e Servizi Offerti dal Kernel
Il kernel offre servizi fondamentali che includono:
Gestione della memoria (allocazione, protezione e accesso sicuro).
Gestione dei file system e dei dispositivi di I/O (tramite driver e moduli).
Implementazione di meccanismi di multiprogrammazione e gestione della
concorrenza.
Le "chiamate di sistema" permettono alle applicazioni di richiedere tali servizi senza
dover conoscere i dettagli dell’hardware sottostante.
Interazione con l’Hardware Driver, Moduli e Interrupt
–
L’Hardware e le Astrazioni del Sistema
L’hardware rappresenta il punto di partenza:
Componenti fisici come processore, memoria e dispositivi sono interconnessi tramite
bus (dati, indirizzi e controllo).
Molte entità, come il "file", sono astrazioni implementate dal sistema operativo e
non esistono in forma reale nel mondo hardware.
Le operazioni hardware (lettura, scrittura, comandi di controllo) sono eseguite tramite
segnali elettrici e protocolli ben definiti.
Driver e Moduli La Gestione dei Dispositivi
–
I driver sono programmi integrati nel kernel che interagiscono direttamente con
l’hardware, ad esempio per impartire comandi specifici ai controller dei dischi o delle
schede grafiche.
In ambienti Linux, i driver vengono spesso caricati come moduli on-demand:
Questo approccio modulare riduce l’occupazione di memoria e permette di
aggiornare o sostituire componenti senza ricompilare l’intero kernel.
Errori nel driver possono causare blocchi critici (ad es. schermate blu) o
compromettere la stabilità del sistema.
Il Meccanismo delle Interruzioni (Interrupt)
Il microprocessore dispone di linee dedicate agli interrupt, che segnalano eventi
asincroni provenienti da dispositivi hardware.
Dopo l’esecuzione di ogni istruzione, la CPU controlla le linee di interrupt:
Se viene rilevato un segnale (un livello logico alto), il flusso di esecuzione viene
interrotto per eseguire una routine specifica.
Questo meccanismo permette di gestire operazioni in parallelo (es. completamento
di una scrittura su disco o scadenza di un timer).
In presenza di molteplici interrupt, il sistema utilizza un meccanismo di priorità e
codifica dei segnali per determinare l’ordine di gestione degli eventi.
Es: premere un tasto genera un interup ( eventi asincroni)
-
Appunti Fondamenti di informatica
-
Fondamenti di Informatica
-
Fondamenti di Informatica - Sistemi Operativi
-
Fondamenti anatomofisiologici dell'attività psichica