Thread Flashcards

1
Q

Cosa è un thread?

A

Un thread è un flusso di esecuzione indipendente (traccia) all’interno di un processo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quali sono i vantaggi del multithreading?

A

Ottenere parallelismo nei flussi di esecuzione.
Gestire chiamate bloccanti o situazioni di risposta asincrona.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Cos’è il multithreading?

A

È la capacità di un sistema operativo di supportare più thread per ogni processo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quali risorse possiede un thread?

A

Un thread non possiede risorse proprie, utilizza quelle del processo. Per questo è detto Light Weight Process (LWP).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quali informazioni sono contenute nel Thread Control Block (TCB)?

A

Stato del thread, priorità e altre informazioni necessarie per la schedulazione.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Quali vantaggi offrono i thread rispetto ai processi?

A

Tempo di creazione e terminazione inferiore.
Switch tra thread più rapido rispetto ai processi.
Condivisione diretta di memoria e file senza intervento del kernel.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quali sono gli stati di un thread?

A

Ready, Running, Blocked.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Cosa succede quando un thread viene bloccato?

A

Il sistema salva il contesto del thread (Program Counter, Stack Pointer, registri CPU).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Cosa accade quando un thread viene sbloccato?

A

Il suo stato nel TCB passa da “Blocked” a “Ready” e viene schedulato per l’esecuzione.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Come viene gestita la terminazione di un thread?

A

Il sistema dealloca le risorse utilizzate dal thread, liberando memoria e registri.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Cosa è un Remote Procedure Call (RPC)?

A

È la chiamata da parte di un processo a una procedura attiva su un elaboratore diverso.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Cos’è un User Level Thread?

A

È un thread gestito interamente a livello di libreria utente, trasparente al kernel.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Quali vantaggi offrono gli User Level Threads?

A

Il cambio di thread avviene all’interno dello spazio di indirizzamento utente, senza richiedere l’intervento del kernel.
Ogni applicazione può ottimizzare la schedulazione in base alle proprie esigenze specifiche.
Le librerie a livello utente possono essere eseguite su tutti i sistemi operativi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quali svantaggi hanno gli User Level Threads?

A

Una chiamata bloccante può bloccare tutti i thread dello stesso processo.
Un singolo processo viene assegnato a un singolo processore, impedendo il multiprocessing a livello di thread

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Cos’è un Kernel Level Thread (KLT)?

A

Un thread gestito interamente dal kernel, secondo un modello uno a uno.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Quali vantaggi offrono i Kernel Level Threads?

A

Se un thread è bloccato, un altro dello stesso processo può essere eseguito.
I thread dello stesso processo possono essere schedulati su processori diversi.

17
Q

Quali svantaggi hanno i Kernel Level Threads?

A

Overhead, dovuto all’intervento del kernel durante il cambio di thread, introducendo un maggior carico sul sistema.

18
Q

Cosa caratterizza il modello misto ‘Molti a Molti’?

A

Più thread utente corrispondono a più thread kernel.
I thread vengono creati all’interno della librearia utente e i thread di uno stesso processo possono essere eseguiti contemporaneamente su più processori.
Una chiamata bloccante non blocca l’intero processo.

19
Q

Cos’è un Light Weight Process (LWP)?

A

È una struttura intermedia vista dai thread utente come un processore virtuale per la schedulazione.

20
Q

Quali sono i vantaggi del modello Molti a Molti?

A

Esecuzione simultanea di più thread dello stesso processo.
Maggiore efficienza grazie alla comunicazione tra kernel e libreria di thread.

21
Q

Quali svantaggi presenta il modello Molti a Molti?

A

Overhead dovuto alla necessità di comunicazione costante tra kernel e libreria di thread.

22
Q

Cos’è il Symmetric Multiprocessing (SMP)?

A

Un sistema multiprocessore in cui i processori condividono le stesse risorse e possono eseguire funzioni identiche.

23
Q

Quali difficoltà presenta l’SMP?

A

Evitare la schedulazione dello stesso processo contemporaneamente.
Mantenere la coerenza della cache.
Garantire la sincronizzazione tra processori.

24
Q

Quali sono i punti critici nella progettazione di un OS per SMP?

A

È essenziale che l’esecuzione simultanea su diversi processori non comprometta le strutture di gestione del sistema operativo.
È necessario evitare conflitti nella schedulazione dei processi e dei thread
Bisogna garantire la mutua esclusione e l’ordinamento corretto degli eventi.
La memoria condivisa deve essere gestita in modo tale da assicurare l’integrità e la coerenza dei dati.
In caso di guasto di un processore, le strutture di controllo del sistema operativo devono essere aggiornate per continuare a funzionare correttamente.

25
Q

Cos’è un microkernel?

A

Un kernel minimale che contiene solo le funzioni essenziali del sistema operativo.

26
Q

Quali sono i vantaggi del microkernel?

A

Interfaccia uniforme per i moduli.
Estensibilità e flessibilità.
Portabilità e affidabilità.
Supporto ai sistemi distribuiti.

27
Q

Quali funzioni minime deve contenere un microkernel?

A

Gestione primitiva della memoria.
Comunicazione tra processi (IPC).
Gestione degli interrupt e dell’I/O.

28
Q

Quali problemi di prestazioni presenta un microkernel?

A

Costi elevati nella gestione dei messaggi rispetto a una chiamata diretta.

29
Q

Quali soluzioni possono migliorare le prestazioni di un microkernel?

A

Aggiungere funzionalità al microkernel.
Ridurre ulteriormente le dimensioni del microkernel.

30
Q

Cos’è la gestione primitiva della memoria in un microkernel?

A

Un modulo esterno mappa le pagine virtuali in pagine fisiche. Quando un’applicazione tenta di accedere a una pagina non presente in memoria, si verifica un page fault, che attiva il microkernel per caricare la pagina richiesta.

31
Q

Cosa accade quando si verifica un page fault in un microkernel?

A

Quando si verifica un page fault, l’esecuzione passa al microkernel, che invia un messaggio al paginatore per caricare la pagina richiesta in memoria.

32
Q

Come interagiscono il microkernel e il paginatore nella gestione della memoria?

A

Il microkernel invia un messaggio al paginatore per caricare la pagina nella memoria fisica. Una volta che la pagina è caricata, il paginatore invia un messaggio all’applicazione per notificarla.

33
Q

Come funziona la comunicazione tra processi in un microkernel?

A

La comunicazione avviene tramite messaggi, che consistono in un’intestazione (mittente, ricevente), un corpo (dati) e un puntatore di controllo del processo. Ogni processo ha una “porta” per inviare e ricevere messaggi.

34
Q

Cosa sono le porte nel contesto di un microkernel?

A

Le porte sono usate per inviare e ricevere messaggi tra processi. Ogni porta è un “permesso” che definisce chi può comunicare con un processo, e la gestione delle porte è compito del kernel.

35
Q

Come gestisce un microkernel gli interrupt?

A

Il microkernel non gestisce direttamente gli interrupt, ma li converte in messaggi a livello utente. Il processo responsabile dell’handling dell’interrupt riceve il messaggio e si occupa della gestione dell’I/O.

36
Q

Come si gestisce un interrupt in un thread driver?

A

Il thread driver attende un messaggio, quindi verifica se il mittente è l’hardware che ha generato l’interrupt. Se sì, gestisce l’I/O e resetta l’interrupt hardware.

37
Q

Qual è l’azione eseguita nel codice esempio quando l’interrupt è gestito correttamente?

A

Se l’interrupt è generato dall’hardware, il driver legge o scrive sulle porte di I/O e poi resetta l’interrupt hardware.

38
Q

Cosa contiene un messaggio inviato tra processi in un microkernel?

A

Un messaggio contiene un’intestazione (informazioni su mittente e ricevente), un corpo (dati del messaggio) e un puntatore con informazioni di controllo del processo e dati di blocco.