La CPU e la Memoria: Interrupt
40 Questions
0 Views

La CPU e la Memoria: Interrupt

Created by
@BuoyantSloth3846

Podcast Beta

Play an AI-generated podcast conversation about this lesson

Questions and Answers

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?

  • Bus indirizzi
  • Bus di rete
  • Bus dati (correct)
  • Bus controllo
  • 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?

    <p>Controllare se la IRQ è attiva</p> Signup and view all the answers

    Cosa contiene l'Interrupt Vector Table (IVT)?

    <p>Gli indirizzi del codice per la gestione degli interrupt</p> Signup and view all the answers

    Quale di queste affermazioni è vera riguardo le ISR?

    <p>Sono specifiche per ogni tipo di interrupt</p> Signup and view all the answers

    Cosa succede alla CPU quando un interrupt è attivo?

    <p>Salva l'esecuzione corrente prima di gestire l'interrupt</p> Signup and view all the answers

    Qual è il ruolo del bus di controllo nella macchina di Von Neumann?

    <p>Gestire le comunicazioni di controllo tra le componenti</p> Signup and view all the answers

    Qual è la funzione principale delle variabili mutex?

    <p>Garantire l'accesso esclusivo alla sezione critica.</p> Signup and view all the answers

    Qual è una differenza chiave tra mutex e semafori?

    <p>I semafori possono essere usati per sincronizzazione di più thread.</p> Signup and view all the answers

    Quale operazione atomica è associata ai semafori?

    <p>wait()</p> Signup and view all the answers

    Quando è opportuno utilizzare un meccanismo di busy waiting?

    <p>Quando l'attesa stimata per ottenere il lock è breve.</p> Signup and view all the answers

    Qual è la funzione di sem_post() nelle primitive POSIX?

    <p>Esegue l'operazione atomica di signal.</p> Signup and view all the answers

    Quale delle seguenti affermazioni sui semafori named è vera?

    <p>Hanno bisogno di un nome univoco per essere condivisi.</p> Signup and view all the answers

    Qual è la funzione sem_init() utilizzata per?

    <p>Creare un semaforo senza nome in memoria.</p> Signup and view all the answers

    Qual è la principale funzione del sem_wait()?

    <p>Implementa l'operazione atomica di wait.</p> Signup and view all the answers

    Quale funzione viene utilizzata per ottenere un codice identificativo per la coda di messaggi in Linux?

    <p>ftok()</p> Signup and view all the answers

    Quale segnale viene inviato quando un programma cerca di accedere a porzioni di RAM non autorizzate?

    <p>SIGSEGV</p> Signup and view all the answers

    Cosa accade quando un processo invia un segnale ad un altro processo?

    <p>Il segnale può essere gestito, ignorato o bloccato.</p> Signup and view all the answers

    Quale funzione viene utilizzata per bloccare i segnali in un processo?

    <p>sigprocmask()</p> Signup and view all the answers

    Cosa assegna il comando 'kill -NUM_SEGNALE pid_processo_dest'?

    <p>Invia un segnale allo specifico processo indicato.</p> Signup and view all the answers

    Quale metrica cerca di massimizzare l'utilizzo della CPU durante l'esecuzione dei processi?

    <p>Utilizzo della CPU</p> Signup and view all the answers

    Cosa succede ai segnali già bloccati quando un processo ne riceve un nuovo segnale bloccato?

    <p>Viene aggiunto alla coda, ma solo una copia del segnale viene gestita successivamente.</p> Signup and view all the answers

    Qual è l'effetto di ignorare esplicitamente un segnale inviatogli?

    <p>Nessuna azione verrà eseguita per quel segnale.</p> 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?

    <p>Turn-around time</p> Signup and view all the answers

    In un sistema senza prelazione, quando può un processo essere deschedulato?

    <p>Al termine del suo CPU burst</p> Signup and view all the answers

    In che modo un processo che utilizza 'fork' gestisce i segnali?

    <p>Eredita i comportamenti di gestione dei segnali del processo padre.</p> Signup and view all the answers

    Qual è una delle caratteristiche principali dell'algoritmo FCFS?

    <p>I processi sono eseguiti nell'ordine di arrivo</p> Signup and view all the answers

    Quale tipo di burst si verifica quando un processo è in attesa di richieste I/O?

    <p>I/O burst</p> Signup and view all the answers

    Cosa determina il waiting time in un algoritmo FCFS?

    <p>Il tempo di arrivo dei processi</p> Signup and view all the answers

    Quale di queste metriche è in competizione con l'utilizzo della CPU e il throughput?

    <p>Both A and B</p> Signup and view all the answers

    Nel contesto dello scheduling, cosa rappresenta il 'CPU burst'?

    <p>Il tempo in cui un processo esegue operazioni sulla CPU</p> Signup and view all the answers

    Quale metodo di allocazione della memoria utilizza il primo frammento di RAM disponibile?

    <p>First-fit</p> Signup and view all the answers

    Qual è uno svantaggio dell'allocazione tramite worst-fit?

    <p>Genera frammenti di memoria inutilizzabili</p> Signup and view all the answers

    Cosa comporta la frammentazione interna?

    <p>Spazio di memoria sprecato in slot sottoutilizzati</p> Signup and view all the answers

    Qual è il compito principale della MMU nei sistemi operativi moderni?

    <p>Gestire il meccanismo di paging</p> Signup and view all the answers

    Qual è il vantaggio principale del meccanismo del paging?

    <p>Permette indipendenza tra le pagine di memoria</p> Signup and view all the answers

    Qual è una caratteristica dell'allocazione contigua della memoria?

    <p>Assegna slot di memoria definiti per ciascun processo</p> Signup and view all the answers

    Cosa si intende per deframmentazione della memoria?

    <p>Compattazione dei processi in RAM</p> Signup and view all the answers

    Quale delle seguenti affermazioni riguarda la tecnica best-fit?

    <p>Utilizza il frammento più piccolo che possa contenere il processo</p> 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.

    Quiz Team

    Related Documents

    riassuntoSOReti.pdf

    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.

    More Like This

    Use Quizgecko on...
    Browser
    Browser