Fondamenti e Funzionamento dei Sistemi Operativi Moderni

Classificato in Informatica

Scritto il in italiano con una dimensione di 4,67 KB

Definizione di Software e Tipologie

Software: l'insieme di istruzioni (o programmi) che indicano al computer come utilizzare le risorse (hardware).

  • Software di sistema: è responsabile del controllo delle operazioni all'interno di un computer (Sistema Operativo).
  • Software applicativo: serve a risolvere problemi specifici (ad esempio, i fogli elettronici).

Il Sistema Operativo (SO)

Il Sistema Operativo è un insieme di programmi correlati che contribuiscono al corretto svolgimento del lavoro assegnato al computer. Funge da interfaccia tra la macchina e l'utente.

Obiettivi principali:

  • Comfort: un sistema operativo, attraverso l'interfaccia utente, rende più semplice l'utilizzo del computer.
  • Efficienza: gestisce le risorse per sfruttarle nel modo più efficiente possibile.
  • Evoluzione: deve essere in grado di evolversi per aggiungere nuove funzionalità al sistema.

Evoluzione Storica

  • Transistor: in questa fase, un lavoro in corso aveva il controllo totale della macchina; non era possibile iniziarne un altro fino al completamento o all'errore del precedente. L'utente non aveva accesso alla macchina; era l'operatore a raggruppare i lavori (schede e nastri) in sequenza.
  • Circuiti Integrati (IC): il sistema operativo offre agli utenti la possibilità di comunicare con il computer. Gli sviluppi principali includono: multiprogrammazione, multiprocessing, time-sharing e lo sviluppo di file system per una maggiore protezione dei dati.

Sistemi Specializzati

  • Sistemi in tempo reale: il sistema deve essere in grado di rispondere immediatamente a qualsiasi input. In questi sistemi, la velocità di risposta è l'elemento cruciale.
  • Sistemi distribuiti e reti di computer: questi sistemi devono supportare la comunicazione e la sincronizzazione veloce tra migliaia di processori. Ogni processore è indipendente, ma il sistema permette di collegare computer con processori diversi e condividere risorse.

Compiti di un Sistema Operativo

  • Gestione dei processi.
  • Gestione della memoria.
  • Gestione del file system.
  • Gestione dell'input/output (I/O).
  • Protezione e sicurezza delle informazioni.

Obiettivi della Gestione della Memoria

  • Trasferimento: quando un processo necessita di memoria, il sistema operativo la assegna se disponibile. Al termine del processo, la memoria viene rilasciata.
  • Protezione: il gestore della memoria deve impedire collisioni tra due processi nella stessa area di memoria.
  • Condivisione: ogni meccanismo di protezione deve essere flessibile per consentire ai processi di accedere alla stessa area di memoria principale quando necessario.

Si distinguono solitamente due livelli di memoria: primaria e secondaria. La memoria secondaria può essere considerata come un sottolivello di quella principale.

Memoria Virtuale e Paging

Il paging consiste nella suddivisione della memoria fisica in aree chiamate frame (cornici) e nella suddivisione dei processi in blocchi della stessa dimensione chiamati pagine.

Il sistema operativo mantiene una tabella delle pagine per ogni processo, consentendo l'occupazione di più frame non contigui. Inoltre, il sistema operativo mantiene costantemente una lista dei frame liberi.

La tabella delle pagine risiede nella memoria reale. Questa tabella contiene una voce per ogni pagina del processo, indicando se si trova nella memoria reale o virtuale tramite un bit di residenza.

L'hardware di paging è responsabile della traduzione degli indirizzi logici in fisici utilizzando il meccanismo DAT (Dynamic Address Translator), composto da un numero di pagina logica e un offset.

Passaggi nella Traduzione dell'Indirizzo

  1. Il DAT scompone l'indirizzo logico nei suoi componenti: numero di pagina e offset all'interno della pagina.
  2. Tramite un registro (ROTB), il DAT individua l'indirizzo di inizio della tabella delle pagine e accede alla voce corrispondente per quel numero di pagina.
  3. Il DAT controlla il valore del bit di residenza per verificare se la pagina è caricata in memoria reale o se risiede in memoria virtuale.

Voci correlate: