Podcast
Questions and Answers
Qual è la funzione principale dei registri nella CPU?
Qual è la funzione principale dei registri nella CPU?
Quale dei seguenti bus è responsabile della comunicazione dei dati tra la CPU e le periferiche?
Quale dei seguenti bus è responsabile della comunicazione dei dati tra la CPU e le periferiche?
Cosa rappresenta un interrupt nel contesto della CPU?
Cosa rappresenta un interrupt nel contesto della CPU?
Qual è il primo passo nella gestione di un interrupt da parte della CPU?
Qual è il primo passo nella gestione di un interrupt da parte della CPU?
Signup and view all the answers
Cosa contiene l'Interrupt Vector Table (IVT)?
Cosa contiene l'Interrupt Vector Table (IVT)?
Signup and view all the answers
Quale di queste affermazioni è vera riguardo le ISR?
Quale di queste affermazioni è vera riguardo le ISR?
Signup and view all the answers
Cosa succede alla CPU quando un interrupt è attivo?
Cosa succede alla CPU quando un interrupt è attivo?
Signup and view all the answers
Qual è il ruolo del bus di controllo nella macchina di Von Neumann?
Qual è il ruolo del bus di controllo nella macchina di Von Neumann?
Signup and view all the answers
Qual è la funzione principale delle variabili mutex?
Qual è la funzione principale delle variabili mutex?
Signup and view all the answers
Qual è una differenza chiave tra mutex e semafori?
Qual è una differenza chiave tra mutex e semafori?
Signup and view all the answers
Quale operazione atomica è associata ai semafori?
Quale operazione atomica è associata ai semafori?
Signup and view all the answers
Quando è opportuno utilizzare un meccanismo di busy waiting?
Quando è opportuno utilizzare un meccanismo di busy waiting?
Signup and view all the answers
Qual è la funzione di sem_post() nelle primitive POSIX?
Qual è la funzione di sem_post() nelle primitive POSIX?
Signup and view all the answers
Quale delle seguenti affermazioni sui semafori named è vera?
Quale delle seguenti affermazioni sui semafori named è vera?
Signup and view all the answers
Qual è la funzione sem_init() utilizzata per?
Qual è la funzione sem_init() utilizzata per?
Signup and view all the answers
Qual è la principale funzione del sem_wait()?
Qual è la principale funzione del sem_wait()?
Signup and view all the answers
Quale funzione viene utilizzata per ottenere un codice identificativo per la coda di messaggi in Linux?
Quale funzione viene utilizzata per ottenere un codice identificativo per la coda di messaggi in Linux?
Signup and view all the answers
Quale segnale viene inviato quando un programma cerca di accedere a porzioni di RAM non autorizzate?
Quale segnale viene inviato quando un programma cerca di accedere a porzioni di RAM non autorizzate?
Signup and view all the answers
Cosa accade quando un processo invia un segnale ad un altro processo?
Cosa accade quando un processo invia un segnale ad un altro processo?
Signup and view all the answers
Quale funzione viene utilizzata per bloccare i segnali in un processo?
Quale funzione viene utilizzata per bloccare i segnali in un processo?
Signup and view all the answers
Cosa assegna il comando 'kill -NUM_SEGNALE pid_processo_dest'?
Cosa assegna il comando 'kill -NUM_SEGNALE pid_processo_dest'?
Signup and view all the answers
Quale metrica cerca di massimizzare l'utilizzo della CPU durante l'esecuzione dei processi?
Quale metrica cerca di massimizzare l'utilizzo della CPU durante l'esecuzione dei processi?
Signup and view all the answers
Cosa succede ai segnali già bloccati quando un processo ne riceve un nuovo segnale bloccato?
Cosa succede ai segnali già bloccati quando un processo ne riceve un nuovo segnale bloccato?
Signup and view all the answers
Qual è l'effetto di ignorare esplicitamente un segnale inviatogli?
Qual è l'effetto di ignorare esplicitamente un segnale inviatogli?
Signup and view all the answers
Quale metrica deve essere minimizzata per ottimizzare l'intervallo di tempo tra l'avvio e la terminazione di un processo?
Quale metrica deve essere minimizzata per ottimizzare l'intervallo di tempo tra l'avvio e la terminazione di un processo?
Signup and view all the answers
In un sistema senza prelazione, quando può un processo essere deschedulato?
In un sistema senza prelazione, quando può un processo essere deschedulato?
Signup and view all the answers
In che modo un processo che utilizza 'fork' gestisce i segnali?
In che modo un processo che utilizza 'fork' gestisce i segnali?
Signup and view all the answers
Qual è una delle caratteristiche principali dell'algoritmo FCFS?
Qual è una delle caratteristiche principali dell'algoritmo FCFS?
Signup and view all the answers
Quale tipo di burst si verifica quando un processo è in attesa di richieste I/O?
Quale tipo di burst si verifica quando un processo è in attesa di richieste I/O?
Signup and view all the answers
Cosa determina il waiting time in un algoritmo FCFS?
Cosa determina il waiting time in un algoritmo FCFS?
Signup and view all the answers
Quale di queste metriche è in competizione con l'utilizzo della CPU e il throughput?
Quale di queste metriche è in competizione con l'utilizzo della CPU e il throughput?
Signup and view all the answers
Nel contesto dello scheduling, cosa rappresenta il 'CPU burst'?
Nel contesto dello scheduling, cosa rappresenta il 'CPU burst'?
Signup and view all the answers
Quale metodo di allocazione della memoria utilizza il primo frammento di RAM disponibile?
Quale metodo di allocazione della memoria utilizza il primo frammento di RAM disponibile?
Signup and view all the answers
Qual è uno svantaggio dell'allocazione tramite worst-fit?
Qual è uno svantaggio dell'allocazione tramite worst-fit?
Signup and view all the answers
Cosa comporta la frammentazione interna?
Cosa comporta la frammentazione interna?
Signup and view all the answers
Qual è il compito principale della MMU nei sistemi operativi moderni?
Qual è il compito principale della MMU nei sistemi operativi moderni?
Signup and view all the answers
Qual è il vantaggio principale del meccanismo del paging?
Qual è il vantaggio principale del meccanismo del paging?
Signup and view all the answers
Qual è una caratteristica dell'allocazione contigua della memoria?
Qual è una caratteristica dell'allocazione contigua della memoria?
Signup and view all the answers
Cosa si intende per deframmentazione della memoria?
Cosa si intende per deframmentazione della memoria?
Signup and view all the answers
Quale delle seguenti affermazioni riguarda la tecnica best-fit?
Quale delle seguenti affermazioni riguarda la tecnica best-fit?
Signup and view all the answers
Study Notes
La CPU e la Memoria
- La CPU (Central Processing Unit) possiede uno stato definito dal valore di tutti i suoi registri in un dato momento.
- La comunicazione tra la CPU, la memoria e le periferiche input/output avviene tramite tre tipi di bus: bus dati, bus indirizzi e bus controllo.
Interrupt
- Le interrupt sono segnali asincroni che segnalano alla CPU eventi esterni, come la pressione di un tasto sulla tastiera.
- Ogni interrupt è associata a una linea di richiesta di interrupt (IRQ) numerata.
- Quando un'interrupt viene rilevata, la CPU interrompe l'esecuzione del programma corrente per gestire l'evento.
- La gestione di un'interrupt prevede le seguenti fasi:
- Rilevamento dell'interrupt attiva.
- Lettura dell'Interrupt Vector Table (IVT) per ottenere l'indirizzo del codice di gestione dell'interrupt.
- Memorizzazione dello stato corrente del programma in esecuzione.
- Modifica del registro PC per puntare al codice di gestione dell'interrupt.
- Esecuzione della routine di gestione dell'interrupt (ISR).
IPC (Inter-Process Communication)
- Le message queue in Linux sono utilizzate per la comunicazione tra processi.
- Le funzioni ftok(), msget(), msgsnd() e msgrcv() sono utilizzate per creare, ottenere l'accesso a, inviare e ricevere messaggi attraverso la coda.
Segnali
- I segnali sono un tipo di IPC utilizzato dal sistema operativo per comunicare con i processi.
- Ogni segnale è associato a un nome e a un numero, ad esempio SIGKILL ha il numero 9.
- I segnali possono essere sincroni o asincroni.
- I segnali sincroni sono generati dal flusso di esecuzione del programma, ad esempio SIGSEGV per accessi illegali alla memoria.
- I segnali asincroni sono generati da eventi esterni al processo, ad esempio SIGINT per l'interruzione con CTRL+C.
- Un processo può ignorare, gestire o bloccare i segnali.
Scheduling
- Lo scheduler è il componente del sistema operativo che decide quale processo deve essere eseguito sulla CPU in un dato istante.
- Gli algoritmi di scheduling puntano a massimizzare l'utilizzo della CPU, il throughput e il tempo di risposta, e a minimizzare il tempo di attesa.
- Gli algoritmi di scheduling possono essere con o senza prelazione.
- La prelazione permette al sistema operativo di interrompere l'esecuzione di un processo.
- Gli algoritmi senza prelazione interrompono l'esecuzione di un processo solo quando termina o quando è in attesa di un evento.
Concetti di CPU Burst e I/O Burst
- Un CPU burst si verifica quando un processo esegue operazioni sulla CPU.
- Un I/O burst si verifica quando un processo è in attesa per richieste I/O.
- I burst più frequenti sono quelli di media durata.
FCFS (First Come First Served)
- L'algoritmo FCFS è il più semplice per lo scheduling dei processi.
- I processi sono inseriti in una coda (ready queue) secondo l'ordine di arrivo e vengono elaborati uno alla volta senza prelazione.
- I processi vengono riinseriti in coda dopo l'esecuzione di un I/O burst.
Semafori
- I semafori sono strutture dati utilizzate per sincronizzare l'accesso a risorse condivise tra processi o thread.
- I semafori possono essere utilizzati per implementare la mutua esclusione o per sincronizzare le attività.
- Le primitive atomiche wait() e signal() sono utilizzate per gestire i semafori.
Semafori POSIX
- Il kernel di Linux fornisce system call per implementare i semafori nei programmi C/C++.
- Esistono due tipi di semafori POSIX: semafori con nome (named) e semafori senza nome (unamed).
- Le primitive POSIX sono:
- sem_open(), per creare un semaforo named.
- sem_init(), per creare un semaforo unamed.
- sem_wait() e sem_trywait(), per implementare l'operazione atomica di wait().
- sem_post(), per implementare l'operazione atomica di signal().
Allocazione della Memoria
- I processi sono generalmente allocati in modo contiguo in memoria.
- Esistono diversi metodi di allocazione contigua: first-fit, best-fit e worst-fit.
- La frammentazione esterna si verifica quando l'allocazione e la deallocazione di processi creano frammenti inutilizzabili in memoria.
- La frammentazione interna si verifica quando uno slot di memoria allocato per un processo non viene utilizzato completamente.
Paging
- I sistemi operativi moderni utilizzano il paging per gestire l'allocazione della memoria.
- La memoria è suddivisa in pagine di dimensione fissa.
- Il paging elimina l'ipotesi di allocazione contigua e permette una gestione più efficiente della memoria.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Questo quiz esplora il funzionamento della CPU e della memoria, focalizzandosi sulle interruzioni e sulla loro gestione. Scoprirai come la CPU comunica con la memoria e le periferiche attraverso i bus e l'importanza delle interruzioni nel processo di esecuzione del programma. Metti alla prova le tue conoscenze su questi argomenti cruciali dell'informatica.