Podcast
Questions and Answers
Qual è la funzione principale dei registri nella CPU?
Qual è la funzione principale dei registri nella CPU?
- Memorizzare i dati a lungo termine
- Determinare il tipo di bus utilizzato
- Conservare temporaneamente valori di stato della CPU (correct)
- Eseguire operazioni matematiche complesse
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?
- Bus indirizzi
- Bus di rete
- Bus dati (correct)
- Bus controllo
Cosa rappresenta un interrupt nel contesto della CPU?
Cosa rappresenta un interrupt nel contesto della CPU?
- Un segnale che indica la fine di un programma
- Un tipo di memoria volatile
- Un'istruzione di macchina
- Un segnale asincrono da un dispositivo esterno (correct)
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?
Cosa contiene l'Interrupt Vector Table (IVT)?
Cosa contiene l'Interrupt Vector Table (IVT)?
Quale di queste affermazioni è vera riguardo le ISR?
Quale di queste affermazioni è vera riguardo le ISR?
Cosa succede alla CPU quando un interrupt è attivo?
Cosa succede alla CPU quando un interrupt è attivo?
Qual è il ruolo del bus di controllo nella macchina di Von Neumann?
Qual è il ruolo del bus di controllo nella macchina di Von Neumann?
Qual è la funzione principale delle variabili mutex?
Qual è la funzione principale delle variabili mutex?
Qual è una differenza chiave tra mutex e semafori?
Qual è una differenza chiave tra mutex e semafori?
Quale operazione atomica è associata ai semafori?
Quale operazione atomica è associata ai semafori?
Quando è opportuno utilizzare un meccanismo di busy waiting?
Quando è opportuno utilizzare un meccanismo di busy waiting?
Qual è la funzione di sem_post() nelle primitive POSIX?
Qual è la funzione di sem_post() nelle primitive POSIX?
Quale delle seguenti affermazioni sui semafori named è vera?
Quale delle seguenti affermazioni sui semafori named è vera?
Qual è la funzione sem_init() utilizzata per?
Qual è la funzione sem_init() utilizzata per?
Qual è la principale funzione del sem_wait()?
Qual è la principale funzione del sem_wait()?
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?
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?
Cosa accade quando un processo invia un segnale ad un altro processo?
Cosa accade quando un processo invia un segnale ad un altro processo?
Quale funzione viene utilizzata per bloccare i segnali in un processo?
Quale funzione viene utilizzata per bloccare i segnali in un processo?
Cosa assegna il comando 'kill -NUM_SEGNALE pid_processo_dest'?
Cosa assegna il comando 'kill -NUM_SEGNALE pid_processo_dest'?
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?
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?
Qual è l'effetto di ignorare esplicitamente un segnale inviatogli?
Qual è l'effetto di ignorare esplicitamente un segnale inviatogli?
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?
In un sistema senza prelazione, quando può un processo essere deschedulato?
In un sistema senza prelazione, quando può un processo essere deschedulato?
In che modo un processo che utilizza 'fork' gestisce i segnali?
In che modo un processo che utilizza 'fork' gestisce i segnali?
Qual è una delle caratteristiche principali dell'algoritmo FCFS?
Qual è una delle caratteristiche principali dell'algoritmo FCFS?
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?
Cosa determina il waiting time in un algoritmo FCFS?
Cosa determina il waiting time in un algoritmo FCFS?
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?
Nel contesto dello scheduling, cosa rappresenta il 'CPU burst'?
Nel contesto dello scheduling, cosa rappresenta il 'CPU burst'?
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?
Qual è uno svantaggio dell'allocazione tramite worst-fit?
Qual è uno svantaggio dell'allocazione tramite worst-fit?
Cosa comporta la frammentazione interna?
Cosa comporta la frammentazione interna?
Qual è il compito principale della MMU nei sistemi operativi moderni?
Qual è il compito principale della MMU nei sistemi operativi moderni?
Qual è il vantaggio principale del meccanismo del paging?
Qual è il vantaggio principale del meccanismo del paging?
Qual è una caratteristica dell'allocazione contigua della memoria?
Qual è una caratteristica dell'allocazione contigua della memoria?
Cosa si intende per deframmentazione della memoria?
Cosa si intende per deframmentazione della memoria?
Quale delle seguenti affermazioni riguarda la tecnica best-fit?
Quale delle seguenti affermazioni riguarda la tecnica best-fit?
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.