Sistemi Operativi: Concetti Base e Architettura
Sistemi Operativi: Concetti Base e Architettura
• Multiprogrammazione
• Allocazione e deallocazione della memoria ai processi
• Caricamento e scaricamento di processi e di loro porzioni in
memoria centrale
• Protezione della memoria centrale
Funzioni (3)
• Gestione delle periferiche
• Configurazione e inizializzazione
• Interfaccia generale e omogenea
• Gestione ottimizzata dei dispositivi di I/O, memorizzazione di
massa e rete informatica
• Protezione delle periferiche
• Bufferizzazione
• Caching
Funzioni (4)
• Gestione del file system
• Esempi:
• Divisione per 0
• Fine della carta
• Guasto di una connessione di rete
• Per ogni errore è necessario eseguire una appropriata azione
di recovery
SERVIZI OFFERTI DA
UN SO
Servizi del sistema operativo (1)
Il SO fornisce servizi ai programmi e agli utenti dei programmi
• Elaborazione
• il sistema deve potere caricare un programma in memoria e eseguirlo
• Parametri
• CPU
• Memoria (indirizzo legale finale, i.e. dimensione)
• Formattazione del disco di avvio (partizioni, dimensioni, contenuto)
• Dispositivi disponibili
• Opzioni (e.g. algoritmo di schedulazione, max. num. processi_)
• Vale anche per le macchine virtuali
AVVIO DI UN SO
Avvio (boot) del SO (1)
I passi sono:
• Accensione
• Esecuzione del BIOS (in ROM o EEPROM) – Basic I/O System
• Inizializza tutti i registri della CPU, i controllori delle
periferiche e la memoria centrale
• Esecuzione del bootstrap program o bootstrap loader
• caricamento del kernel del SO da una unità di memoria ed
esecuzione
• Controllo del sistema da parte del SO
Avvio (boot) del SO (2)
Dove risiede il SO?
• Nelle tradizionali console giochi e PDA, il SO risiede in memorie ROM-
like (firmware)
• costoso
• non facilmente modificabile (anche se protetto da virus)
• più lento eseguire da ROM che da RAM
• In generale, il SO è nel disco (in una partizione detta attiva) ed il
bootstrap program è in memoria ROM o EEPROM
• Il BIOS cerca periferiche avviabili e dà il controllo al bootstrap program
• Il bootstrap program si avvale di un frammento di codice (che sà in quale parte
del disco si trova il SO) che risiede in un blocco del disco ad una posizione fissa
(tipicamente 0) – boot block o master boot record (MBR)
• La partizione del disco che contiene il boot block è detta di avvio – boot
partition
MS-DOS avvio ed esecuzione
• L’interprete carica il
programma in memoria.
• Esso sovrascrive parte
della memoria occupata
da se stesso.
• Il GRUB
• Cerca SO disponibili
• Avvia schermata di selezione
• Avvia SO desiderato
DUAL MODE E
INTERRUZIONI
Funzionamento Dual-Mode (1)
• Una volta avviato il sistema operativo, la CPU può operare in
due modalità
1. User mode – la CPU sta eseguendo codice di un utente
2. Kernel mode (anche supervisor mode, system mode, monitor mode) – la
CPU sta eseguendo codice del sistema operativo
Return value
Progettare chiamate di sistema (1)
Esempio: programma per copiare un file in un altro file
Richiede diverse chiamate di sistema per:
• Ricavare i nomi dei due file
• Tramite richiesta del nome
• Tramite browser dei file (molte più chiamate)
• Aprire il file di lettura e creare il file di scrittura
• Possibili errore: non esiste file input o accesso negato (come risolvo? Avviso
l’utente e termino?)
• Possibili errore: esiste già file output (come risolvo? sovrascrivo?)
• Lettura e scrittura
• Possibili errori: end of file, memoria insufficiente per scivere
• Chiusura dei file, avviso utente, terminazione programma
Progettare chiamate di sistema (2)
• Esempio: chiamata di sistema per copiare un file in un altro file
API per le chiamate di sistema
• Il programmatore ha davvero bisogno di sapere quali sono le
chiamate di sistema per progettare un programma?
• L’MS-DOS ne è un esempio
• Funzionava su un hardware limitato (l’8088 dell’Intel)
• SO molto vulnerabile perché lascia libertà ai programmi applicativi di
accedere direttamente all’hardware (non ha modalità utente)