CAPITOLO 1
Si spieghi brevemente qual è la caratteristica fondamentale di un sistema
multiprocessore conforme al paradigma simmetrico.
Un sistema multiprocessore presenta più processori all’interno della stessa macchina che condividono la
stessa memoria. Questo permette maggiore efficienza nello svolgimento dei processi permettendo una
esecuzione parallela dei task e una maggiore affidabilità ( foult tollerance e graceful degradation). Nel
paradigma simmetrico ogni processore è sullo stesso piano degli altri ( non c’è un processore master che
gestisce gli altri) ed ognuno di essi esegue una copia del s.o.
Il sistema simmetrico determina problemi nella schedulazione della CPU poiché possono capitare situazioni
di sovraccarico di alcuni processori rispetto ad altri
Si descriva la tassonomia dei sistemi multiprocessore. Si chiarisca in particolare la
differenza tra multicalcolatori strettamente e debolmente accoppiati.
I sistemi multiprocessore sono dei sistemi in cui le operazioni di calcolo ed elaborazione dei dati vengono
suddivise su più processori per migliorare la vdlocità di elaborazione.
Nei sistemi debolmente accoppiati come quelli distribuiti, ogni calcolatore ha un proprio processore e
memoria ma si connette con gli altri calcolatori distribuiti in punti differenti, generando una rete di
calcolatori che condividono l’elaborazione dei dati.
Nei sistemi strettamente accoppiati invece il calcolatore è dotato di più processori che condividono la
stessa memoria.
Si descrivano le caratteristiche principali di un HRT OS. Si chiarisca in dettaglio
cosa differenzia tali sistemi operativi da quelli general purpose.
Un hard real time o.s. è un sistema operativo utilizzato in contesti critici in cui è necessario che delle
operazioni vengano svolte rispettando una certa tempistica. Negli HRTOS sono presenti delle deadline in cui
il s.o. deve rispondere a determinate richieste. Non supportano il time-sharing della CPU e solitamente non
necessitano della memorizzazione di dati. I s.o. general purpose invece sono orientati maggiormente ad un
utilizzo da parte di utenti.
CAPITOLO 2
Si chiariscano brevemente i vantaggi derivanti da una gestione interrupt-driven
dell’I/O.
Nei sistemi I/O interrupt-driven la gestione dell’ I/O è attuata mediante delle interruzioni del flusso di
esecuzione che portano alla gestione delle operazioni mediante delle routine contenute nell’interrupt
vector. Il vantaggio sta nel non dover asseganre parti della RAM per la gestione dell’ I/O mappato in
memoria e mediante gli interrupt la CPU continua ad eseguire processi durante la gestione dell’interrupt
Un interrupt può, per definizione, determinarsi solo a seguito di un evento
hardware
Nell’ ambito delle interruzioni si possono definire:
interrupt : sono delle interruzioni asincrone dette anche interruzioni hardware; avvengono in maniera
casuale e non prevedibile da parte del sistema ( esempio: input/output )
trup : sono delle interruzioni sincrone dette anche interruzioni software determinate da errori nei codici dei
programmi o utilizzate dal sistema per compiere determinate operazioni
La Device Status Table non memorizza molteplici richieste di I/O relative ad un
dispositivo
Si schematizzi la struttura e si descriva il funzionamento della Device Status Table.
La DST è una tabella che memorizza un identificativo per la periferica di input/output , lo stato della
periferica e evetuali richieste. Ad una periferica possono essere associate più operazioni che vengono
messe in coda ordinandole in base all’arrivo
Il DMA è usato solo per dispositivi di I/O ad alta velocità
Il Direct Memory Access è un processore molto piccolo che permette il trasferimento di dati input/output
dalla memoria alle periferiche. Il suo utilizzo è associato agli I/O asincroni e permette, soprattutto nelle
periferiche ad alta velocità, di evitare che per ogni byte inserito, la CPU riceva un interrupt bloccante.
Il DMA raccoglie una quantità di dati provenienti in input o output e li invia in blocco determinando un
interrupt solo all’avvio e al termine dell’operazione.
Spiegare la struttura e descrivere le funzionalità dell’interrupt vector.
Nell’ambito della gestione degli interrupt , l’interrupt vector è un vettore contenente delle routine di
gestione degli interrupt associati ad eventi di sistema o eventi esterni come I/O.
L’accesso a questo vettore avviene mediante un indice prodotto tramite funzione di hash che permette di
associare a un singolo “errore” una routine di gestine univoca. Il vettore degli interrupt viene implementato
dai programmatori, con tutte le routine di gestione di errori base ma può essere aggiornato con numove
routine ad esempio quando vengino installate nuove periferiche con i relativi driver.
Spiegare quali sono e a cosa servono i meccanismi di protezione hardware
comunemente adottati nei
calcolatori moderni.
I principali meccanismi di protezione hardware sono:
Protezione dell’ I/O : l’I/O deve essere protetto mediante modalità differenziata poiché tali operazioni
permettono l’accesso a zone critiche della memoria come l’interrupt vector
Protezione della memoria: La memoria centrale deve essere protetta poiché contiene il kernel e l’interrupt
vector. La protezione viene assicurata mediante modalità differenziata e proteggendo gli indirizzi critici con
i registri base e limite. Ogni processo può accedere alla memoria solo a partire dall’registro base fino a un
set di indirizzi definiti dal registro limite. L’accesso ad altri indirizzi non è consentito.
Protezione della CPU : la CPU viene protetta mediante un timer che permette ad un processo di occuparla
soltanto per un quanto di tempo prestabilito, facendo tornare il sistema in modalità supervisore ogni tot di
tempo.
CAPITOLO 3
--nessuna domanda---
CAPITOLO 4
Si tracci lo schema del contenuto di un Process Control Block evidenziando per
ciascuna componente in
quale circostanza della vita del processo viene creata/aggiornata.
Il PCB è una struttura dati del kernel creata nella fase di inizializzazione di un processo. Esso contiene
informazioni sul processo come:
-Stato
-Program Counter
-Stack
-Register set
-Info per la schedulazione
-Info per la memoria centrale
-Info per l’I/O
Il PCB viene creato durante la fase di “hold” dove aggiorna il suo stato passando da new--->ready e riceve
l’assegnzione delle risorse e la priorità.
Il PCB viene modificato ogni qual volta il processo subisce un context switching ovvero ogni volta che passa
in una coda differente e viene aggiornato in modo da permettere alla CPU di riprendere la sua esecuzione
da dove aveva terminato
Si spieghi brevemente qual è la differenza (funzionale ed architetturale) tra lo
short-term scheduler ed il long-term scheduler.
Entrambi gli schedulatori sono utilizzati nella gestione dei processi. Il long-term scheduler effettua una
macroschedulazione dei processi controllando le code di submit e hold , assicurandosi che il numero di
processi di tipo I/O Bound e CPU Bound siano equivalenti per evitare scompensi nelle code successive (
coda di wait vuota o CPU inutilizzata). Lo schedulatore a lungo termine viene attivato con tempistiche più
lunghe.
Lo short-term scheduler si occupa invece di gestire la microschedulazione sui processi della coda di ready,
stabilendo la priorità e la logica per cui questi verranno spostati nella CPU. Viene eseguito in tempi molto
più brevi rispetto al long-term scheduler.
Si spieghi brevemente a cosa serve una Remote Procedure Call e qual è la funzione
del client-stub
all’interno di essa.
La Remote Procedure Call è una chiamata a procedura remota che simula l’IPC ma tra sistemi collegati in
rete. Viene utilizzata in un sistema client-server per la comunicazione e per la richiesta di esecuzione di un
metodo da parte del client. Lo stub-client permette di mantenere attivo il collegamento tra la porta del
client e quella del server effettuando il marshalling dei parametri passati alla procedura in modo che siano
comprensibili per il server
Si descriva brevemente il funzionamento di un upcall manager nell’ambito del
meccanismo di attivazione dello schedulatore.
Si spieghi brevemente le caratteristiche e la funzione del meccanismo di
attivazione dello schedulatore in uno schema di esecuzione multithread.
Nell’ambito dell’esecuzione dei thread un upcall manager è un meccanismo adottato dalla libreria dei
thread per la loro gestione. In particolare viene spesso utilizzata nel caso di thread che compiono
operazioni bloccanti per permettere di assegnare al kernel thread che sta per essere bloccato, un altro user
thread mediante l’intermediazione della LWP (lightweight Processor).
Quando il thread sta per compiere l’operazione bloccante, viene creata una numova LWP che permette
l’attivazione dello schedulatore. Lo schedulatore assegna quindi al thread lato kenrel che sta per andare in
blocco un nuovo thread lato utente in modo da preservare il numero di kernel thread
La LWP viene utilizzata nei modelli molti a molti e a due livelli per mantenere il numero di kern
-
Sistemi operativi (teoria completa + domande)
-
Domande di teoria Android,Ios,PX4,NuttX, Sistemi operativi
-
Domande Sistemi operativi
-
Sistemi operativi - domande esame