Vai al contenuto
Home » Notes » Appunti di Sistemi Operativi: Architettura e Struttura del SO

Appunti di Sistemi Operativi: Architettura e Struttura del SO

copertina appunti sistemi operativi domande e risposte

Raccolta di Riassunti e Appunti di Sistemi Operativi, sotto forma di domande e risposte sugli argomenti struttura e architettura di un sistema operativo.
Fonti: il mio libro di Sistemi Operativi Operating System Concepts with Java, di Silberschatz, Galvin e Gagne.

Appunti Riassunto Sistemi Operativi

Capitolo Struttura e architettura del Sistema operativo

Cos’è una system call?

Una system call costituisce un’interfaccia per i servizi resi disponibili dal sistema operativo. In Java non esistono system call perché le system call sono implementate a livello di sistema operativo, quindi se Java le implementasse si perderebbe la portabilità tra diversi sistemi operativi.

Tutte le risorse hardware sono quindi controllate dal sistema operativo che fornisce delle system call ai programmi di livello superiore che, in questo modo, possono interfacciarsi con le risorse stesse.

Cos’è una memoria cache, dove si trova e perché si usa? Quando si parla di tecnica di caching a cosa si fa riferimento? Date degli esempi di strutture del SO per gestire le quali si fa ricorso ad una qualche forma di memoria cache.

La memoria cache è una memoria veloce, rispetto alla memoria centrale, gestita dall’hardware che permette di memorizzare i dati che vengono utilizzati più spesso, cioè che sono stati usati più recentemente.

Con tecniche di caching si intende, quindi, un insieme di tecniche che consistono nello spostare in un livello di memoria più veloce i dati che si usano più spesso.

Una memoria cache è una memoria che è implementata nella CPU, estremamente veloce rispetto alla RAM e alla memoria secondaria. Un esempio di struttura del Sistema operativo gestita da una memoria cache è il TLB, cioè il Translation Lookaside Buffer utilizzato nella gestione della memoria centrale.

Per una periferica di I/O, cosa è il controller? E il device driver? Fanno entrambi parte del sistema operativo?

Il controller è un hardware che si trova nella periferica e che ha il compito di comunicare lo stato della periferica e gli eventuali interrupt (segnali di termine processo) al sistema operativo.

Il device driver è un software che funge da interfaccia tra il dispositivo fisico e l’utente. È un piccolo modulo del sistema operativo che fa parte del sottosistema di gestione Input/Output.

Il device driver fa quindi parte del sistema operativo, il controller no.

Cosa indicano i termini pipelining, super scalarità e multicore?

Pipelining: Sistema di esecuzione delle istruzioni che prevede di suddividere ogni istruzione in 3 sottofasi e assegnare ogni sottofase alla componente della CPU dedicata (Fetch, Decode e Execute Unit) in modo da ridurre drasticamente il tempo di esecuzione

Superscalarità: tecnica utile a risolvere situazioni in cui, nel pipelining, una delle componenti richieda più tempo per portare a termine l’esecuzione. L’unità che ha necessità di un tempo maggiore, tipicamente la Execute Unit, potrebbe infatti fare bottleneck perché la Fetch Unit e la Decode Unit dovrebbero attendere il termine delle operazioni svolte dalla Execute Unit. La superscalarità introduce un buffer di contenimento dopo una componente, tipicamente la Decode Unit, in modo da aumentare il numero di Execute Unit, ridurre la possibilità di bottleneck e di conseguenza ridurre il tempo di esecuzione. In breve, la superscalarità è la ridondanza di una o più componenti della CPU per distribuire il carico di lavoro e migliorare le performance del sistema.

Multicore: architetture con più CPU core in grado di lavorare in maniera simultanea. La maggior parte dei computer odierni sono multicore.

Cos’è una interrupt? Come viene gestita dal Sistema Operativo?

Una interrupt è un segnale inviato da una periferica di input/output al processore per segnalare che un determinato processo di input/output è appena terminato.

La gestione di un’interruzione deve essere molto rapida, perché avvengono frequentemente. È possibile usare una tabella di puntatori alle specifiche procedure, in modo che l’attivazione delle procedure di servizio delle interruzioni avvenga in modo indiretto attraverso questa tabella, senza procedure intermedie. In genere questa tabella è memorizzata agli indirizzi più bassi nella memoria. L’accesso alla sequenza di indirizzi (vettore di interruzioni) avviene per mezzo di un indice, codificato nello stesso segnale di interruzione, allo scopo di fornire l’indirizzo della procedura di servizio relativa all’evento segnalato dall’interruzione. Terminato il servizio dell’interruzione, l’indirizzo di ritorno precedentemente salvato viene caricato nel program counter consentendo la ripresa della computazione interrotta come se nulla fosse accaduto.

Nei microprocessori moderni, quali forme di parallelismo sono utilizzate per migliorare le prestazioni?

Nei microprocessori moderni, per migliorare le prestazioni si utilizzano l’architettura multicore (cioè avere più CPU che lavorano in parallelo) e la super scalarità (che consiste nell’avere più Execute Unit che lavorano contemporaneamente).

Cosa sono le istruzioni “privilegiate”? Fornire esempi di queste istruzioni, e spiegare perché lo sono

Le istruzioni privilegiate sono istruzioni impartite dal sistema operativo che sono chiaramente più importanti di qualsiasi istruzione utente e quindi hanno la priorità nell’esecuzione. Un esempio sono le istruzioni per manipolare i registri della memoria assegnati ad ogni processo.

Cos’è una istruzione atomica?

Per istruzione atomica si intende una istruzione indivisibile, ovvero una istruzione che non permette context switch mentre essa viene eseguita

Cos’è un microkernel?

Il microkernel è il kernel di un sistema operativo che contiene solo le meccaniche e le logiche software essenziali al sistema operativo per funzionare. Tutte le altre funzionalità sono estese tramite moduli. Il suo contrario è il kernel monolitico.

Prossimi capitoli:

Processi e Threads
CPU Scheduling (scheduling del processore)
Semafori
Memoria Virtuale
FileSystem

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *