Architettura SO Flashcards
Quali sono le funzionalità di un SO?
Virtualizzazione di risorse hardware e gestione e coordinamento delle risorse
Come si suddivide il SO
Hardware->Kernel->Gestione Memoria->Periferiche->Fyle System->Programmi->Interprete COmandi
Cos’è il kernel e quali sono le sue funzioni
Il kernel è il nucleo del SO, risiede in memoria principale e contiene le funzioni fondamentali
Cosa succede a livello di gestione della memoria
Il SO consente di far riferimento a spazi di indirizzamento virtuali
Cosa succede a livello fyle system
Il SO gestisce blocchi di informazioni su memoria di massa e ne gestisce gli accessi e l’organizzazione
Cosa sono le interruzioni e come vengono gestite
I sistemi operativi sono guidati dalle interruzioni (sincrone ed asincrone). Gli interrupt (sia hardware che software) guidano l’avvicendamento dei processi
Cos’è una System Call e di quanti tipi esistono
La system call è una richiesta di servizio di sistema che quindi è adibita alla soddisfazione di un determinato servizio di sistema. Si dividono in:
-controllo di processo
-manipolazione dei file
-gestione dispositivi
-gestione informazioni
-comunicazione
Qual è la differenza tra kernel e user mode
Quando il kernel viene eseguito a favore di un processo, si dice che tale processo viene eseguito in kernel mode.
Una volta che il kernel ha espletato il servizio, il processo-utente ritorna nello stato user mode.
La transizione dallo stato user mode a quello di kernel mode viene effettuata mediante la chiamata di una delle system call.
Cos’è un idle loop?
Dopo che i processi di base sono stati creati, il SO esegue un “idle loop”:
-Il SO esegue un ciclo infinito (UNIX)
-Il SO esegue alcune operazioni di background per la gestione del sistema stesso (profiling, log rotating etc…)
Il SO si “sveglia” a seguito di :
-Interruzioni;
-Eccezioni ;
-“System calls”.
Come viene gestita una interrupt
I dispositivi hardware invocano il SO;
Il SO salva lo stato del programma utente;
Il SO identifica il dispositivo che ha causato l’interrupt;
Il SO esegue la routine associata all’interrupt;
Il SO recupera lo stato del programma utente
Il SO esegue l’istruzione RTI per restituire il controllo al programma utente
Il programma utente continua la sua esecuzione esattamente dallo stesso punto in cui era stato sospeso. Punto chiave: Nessuna di queste operazioni è “visibile” al programma utente
Come viene gestita un’eccezione
la risorsa che ha provocato un’eccezione invoca il SO;
Il SO identifica la causa dell’eccezione;
Se il programma utente ha specificato un “exception handler”, allora il SO configura il programma utente in modo che possa chiamare il suo handler;
IL SO esegue l’istruzione RTI per restituire il controllo al programma utente;
Se il programma utente non ha specificato un handler, allora il SO “uccide” il processo e affida il controllo della CPU ad un altro programma utente, se disponibile.
Punto chiave: Gli Effetti delle eccezioni sono visibili al programma utente e causano un’alterazione del flusso di controllo
Cosa avviene al momento di una System call
Il programma utente esegue un istruzione di trap (system call);
L’effetto di questa istruzione è quello di invocare il SO (trap handler);
Il SO identifica il servizio richiesto e i parametri
Il SO esegue il servizio richiesto;
Il SO configura un registro atto a contenere i risultati del servizio;
Il SO esegue un RTI per restituire il controllo al programma utente;
Il programma utente riceve i risultati e continua la sua elaborazione.
Punto Chiave: Al programma utente, la system call appare come un normale funzione di libreria che può essere eseguito sotto il suo controllo.
Elenca e descrivi i vari tipi di architettura dei SO (Monolitica e Modulare e a livelli)
-Architettura monolitica: costituito da un insieme di procedure di servizio, solitamente scritte in assembler, a ciascuna delle quali corrispondeva una system call
Approccio inadeguato al crescere della complessità dei sistemi multiprogrammati
-Architettura modulare: organizzato in moduli, ognuno destinato ad offrire una delle funzionalità del sistema
-Architettura a livelli: SO modulari strutturati in maniera gerarchica, le interazioni hanno luogo solo tra livelli adiacenti
Descrivi l’architettura a microkernel
Il microkernel implementa solo i meccanismi essenziali
Le strategie sono implementate all’esterno del kernel, da processi di sistema (in user mode)
I gestori delle risorse sono particolari processi di sistema, spesso indicati come server
Quando un processo applicativo (client) deve usare una risorsa, deve interagire con un server attraverso i meccanismi di comunicazione forniti dal microkernel
Vantaggi: maggiore modularità, portabilità, estensibilità
Svantaggi: perdita di efficienza legata alle frequenti comunicazioni inter-processo
Linux e Windows che tipo di architetture hanno
Linux è modulare
Windows ha una struttura modulare basata su una architettura a microkernel ibrido