Podcast
Questions and Answers
Quale tecnica permette ai core di un processore multi-core di eseguire in parallelo fino a 4 o 5 istruzioni?
Quale tecnica permette ai core di un processore multi-core di eseguire in parallelo fino a 4 o 5 istruzioni?
- Single-core
- Parallel processing
- Superscalare (correct)
- Multi-threading
Un processore dual-core può gestire più task multi-threaded di quanti sono i core disponibili.
Un processore dual-core può gestire più task multi-threaded di quanti sono i core disponibili.
True (A)
Cosa si intende per 'context switch' e quali sono le sue implicazioni nelle prestazioni?
Cosa si intende per 'context switch' e quali sono le sue implicazioni nelle prestazioni?
Il 'context switch' è il passaggio di controllo da un processo a un altro, che comporta un sovraccarico e può degradare le prestazioni a causa dei miss cache.
Le architetture multi-core sono particolarmente adatte a gestire task __________.
Le architetture multi-core sono particolarmente adatte a gestire task __________.
Abbina le seguenti caratteristiche ai loro significati corretti:
Abbina le seguenti caratteristiche ai loro significati corretti:
Quale delle seguenti affermazioni è vera riguardo ai processi e i thread?
Quale delle seguenti affermazioni è vera riguardo ai processi e i thread?
I processi possono accedere ai dati in una memoria condivisa senza utilizzare file.
I processi possono accedere ai dati in una memoria condivisa senza utilizzare file.
Qual è uno dei vantaggi della condivisione di dati tra thread rispetto ai processi?
Qual è uno dei vantaggi della condivisione di dati tra thread rispetto ai processi?
Due processi possono comunicare scambiandosi dati usando __________.
Due processi possono comunicare scambiandosi dati usando __________.
Abbina i seguenti concetti con le loro descrizioni:
Abbina i seguenti concetti con le loro descrizioni:
Qual è una delle situazioni in cui i thread sono vantaggiosi?
Qual è una delle situazioni in cui i thread sono vantaggiosi?
Il passaggio da un thread a un altro comporta sempre un alto costo di risorse.
Il passaggio da un thread a un altro comporta sempre un alto costo di risorse.
Che cosa richiede il context switch tra peer thread?
Che cosa richiede il context switch tra peer thread?
Il codice e i dati sono diversi per ogni peer thread di un processo.
Il codice e i dati sono diversi per ogni peer thread di un processo.
Qual è la principale differenza tra context switch tra processi e context switch tra peer thread?
Qual è la principale differenza tra context switch tra processi e context switch tra peer thread?
I processi normali sono chiamati __________.
I processi normali sono chiamati __________.
Qual è il termine usato per i peer-thread?
Qual è il termine usato per i peer-thread?
Il context switch tra processi genera meno cache miss rispetto al context switch tra peer thread.
Il context switch tra processi genera meno cache miss rispetto al context switch tra peer thread.
Quali componenti devono essere salvati durante un context switch tra peer thread?
Quali componenti devono essere salvati durante un context switch tra peer thread?
Il context switch tra peer thread non richiede di cambiare la __________ del processo.
Il context switch tra peer thread non richiede di cambiare la __________ del processo.
Abbina i seguenti termini alle loro descrizioni:
Abbina i seguenti termini alle loro descrizioni:
Quale affermazione descrive correttamente un processo P?
Quale affermazione descrive correttamente un processo P?
Un processo multi-threaded non può avere accesso al codice di altri processi.
Un processo multi-threaded non può avere accesso al codice di altri processi.
Che cosa rappresenta un peer thread in un processo multi-threaded?
Che cosa rappresenta un peer thread in un processo multi-threaded?
Un processo multi-threaded è composto da più ________ di computazione.
Un processo multi-threaded è composto da più ________ di computazione.
Abbina i seguenti termini ai loro significati:
Abbina i seguenti termini ai loro significati:
Quale delle seguenti affermazioni è falsa riguardo ai processi?
Quale delle seguenti affermazioni è falsa riguardo ai processi?
I peer thread condividono le aree dati ma non il codice in esecuzione.
I peer thread condividono le aree dati ma non il codice in esecuzione.
Qual è la funzione del Program Counter in un thread?
Qual è la funzione del Program Counter in un thread?
Ogni thread ha un suo stato di computazione composto da Program Counter, ________ e stack.
Ogni thread ha un suo stato di computazione composto da Program Counter, ________ e stack.
Quale sistema di chiamata viene utilizzato per creare un nuovo thread in Linux?
Quale sistema di chiamata viene utilizzato per creare un nuovo thread in Linux?
I peer-thread non possono condividere dati e risorse fra di loro.
I peer-thread non possono condividere dati e risorse fra di loro.
Qual è il vantaggio principale dell'uso dei thread sulle architetture multi-core?
Qual è il vantaggio principale dell'uso dei thread sulle architetture multi-core?
Il passaggio di contesto tra peer thread richiede circa ___ volte meno tempo rispetto al passaggio di contesto tra processi.
Il passaggio di contesto tra peer thread richiede circa ___ volte meno tempo rispetto al passaggio di contesto tra processi.
Quale delle seguenti affermazioni è vera riguardo allo scheduling dei thread?
Quale delle seguenti affermazioni è vera riguardo allo scheduling dei thread?
Creare un nuovo HWP richiede meno tempo rispetto a creare un nuovo LWP.
Creare un nuovo HWP richiede meno tempo rispetto a creare un nuovo LWP.
Qual è una chiamata di sistema usata per creare un thread in Windows?
Qual è una chiamata di sistema usata per creare un thread in Windows?
Il _____ threading implica l'esecuzione simultanea di più thread all'interno dello stesso processo.
Il _____ threading implica l'esecuzione simultanea di più thread all'interno dello stesso processo.
Quale vantaggio fornisce l'uso dei thread nella condivisione dei dati?
Quale vantaggio fornisce l'uso dei thread nella condivisione dei dati?
Flashcards
Processo
Processo
Un processo è una sequenza di istruzioni eseguite da un singolo thread.
Thread: Condivisione di codice e dati
Thread: Condivisione di codice e dati
I thread sono una soluzione per dare più efficienza allo scambio di dati tra processi. Consentono a due o più processi di condividere lo stesso spazio di indirizzamento, ovvero codice e dati, senza dover ricorrere a meccanismi espliciti di condivisione o file.
Thread
Thread
Un thread è un filo di computazione che contiene le istruzioni eseguite da un processo.
Thread: Context Switch più veloce
Thread: Context Switch più veloce
Signup and view all the flashcards
Processo Monofilamento
Processo Monofilamento
Signup and view all the flashcards
Thread: Minori miss cache
Thread: Minori miss cache
Signup and view all the flashcards
Thread: Esecuzione parallela
Thread: Esecuzione parallela
Signup and view all the flashcards
Spazio di Indirizzamento Logico
Spazio di Indirizzamento Logico
Signup and view all the flashcards
Thread: Attività reattive
Thread: Attività reattive
Signup and view all the flashcards
Codice condiviso, dati separati
Codice condiviso, dati separati
Signup and view all the flashcards
Processo Multi-Thread
Processo Multi-Thread
Signup and view all the flashcards
Thread: Miglioramento delle prestazioni
Thread: Miglioramento delle prestazioni
Signup and view all the flashcards
Thread: Multitasking efficiente
Thread: Multitasking efficiente
Signup and view all the flashcards
Stato di Computazione
Stato di Computazione
Signup and view all the flashcards
Codice e Dati Condivisi
Codice e Dati Condivisi
Signup and view all the flashcards
Specificare l'Esecuzione
Specificare l'Esecuzione
Signup and view all the flashcards
Contesto switch tra thread
Contesto switch tra thread
Signup and view all the flashcards
Context switch
Context switch
Signup and view all the flashcards
Cos'è il contesto di un thread?
Cos'è il contesto di un thread?
Signup and view all the flashcards
Threads all'interno dello stesso processo vs diversi processi
Threads all'interno dello stesso processo vs diversi processi
Signup and view all the flashcards
Differenza tra context switch tra processi e tra thread
Differenza tra context switch tra processi e tra thread
Signup and view all the flashcards
Cosa sono gli HWP?
Cosa sono gli HWP?
Signup and view all the flashcards
Cosa sono gli LWP?
Cosa sono gli LWP?
Signup and view all the flashcards
Perché i context switch tra processi generano più cache misses?
Perché i context switch tra processi generano più cache misses?
Signup and view all the flashcards
Cos'è il costo computazionale del context switch tra thread?
Cos'è il costo computazionale del context switch tra thread?
Signup and view all the flashcards
Multithreading (in contesto single-core)
Multithreading (in contesto single-core)
Signup and view all the flashcards
Context Switch tra processi
Context Switch tra processi
Signup and view all the flashcards
Architettura Multi-core
Architettura Multi-core
Signup and view all the flashcards
Task Multi-threaded
Task Multi-threaded
Signup and view all the flashcards
Core superscalare
Core superscalare
Signup and view all the flashcards
Dipendenze tra istruzioni
Dipendenze tra istruzioni
Signup and view all the flashcards
Cos'è un task multithreaded?
Cos'è un task multithreaded?
Signup and view all the flashcards
Come si creano i thread?
Come si creano i thread?
Signup and view all the flashcards
Cosa condividono i thread?
Cosa condividono i thread?
Signup and view all the flashcards
Perché è importante la sincronizzazione dei thread?
Perché è importante la sincronizzazione dei thread?
Signup and view all the flashcards
Come funziona lo scheduling dei thread?
Come funziona lo scheduling dei thread?
Signup and view all the flashcards
A cosa può assegnare la CPU lo scheduler?
A cosa può assegnare la CPU lo scheduler?
Signup and view all the flashcards
Quali sono i vantaggi dei thread?
Quali sono i vantaggi dei thread?
Signup and view all the flashcards
Perché i thread sono adatti per le architetture multi-core?
Perché i thread sono adatti per le architetture multi-core?
Signup and view all the flashcards
Come vengono eseguiti i thread su un singolo nucleo?
Come vengono eseguiti i thread su un singolo nucleo?
Signup and view all the flashcards
Perché il context switch tra thread è più veloce?
Perché il context switch tra thread è più veloce?
Signup and view all the flashcards
Study Notes
4.I Thread: Motivazioni
- Questo capitolo va studiato dopo il capitolo 9 sulla memoria centrale.
- Il suo contenuto è semplificato rispetto al capitolo 4 del libro di testo.
- Si considerano due processi che lavorano sugli stessi dati.
- I problemi sorgono quando ogni processo ha la propria area dati.
- Le soluzioni sono:
- Richiedere al sistema operativo una memoria condivisa.
- Utilizzare messaggi per scambiare dati.
- Utilizzare un file a cui i processi accedono a turno.
4. I Thread: Motivazioni (continua)
- È utile poter avere processi che lavorano sugli stessi dati, senza meccanismi espliciti di condivisione e senza utilizzare file (perché lenti).
- Esempio: un editor di testo.
- Un processo gestisce l'input e i comandi di formattazione dell'utente.
- Un altro processo esegue il controllo automatico di errore.
- I due processi dovrebbero lavorare sullo stesso testo, ma ogni processo ha un diverso spazio di indirizzamento.
4. I Thread: Motivazioni (continua 2)
- Nel context switch tra processi, è necessario disattivare le aree dati del processo uscente e attivare quelle del processo entrante.
- Le cache della CPU contengono i dati del processo uscente, e il processo entrante genera inizialmente molti miss cache.
- Condividendo codice e dati, il context switch è meno oneroso.
Definizione di Thread
- Un thread è un gruppo di peer thread, che condividono spazio di indirizzamento (codice e dati).
- Un processo è contraddistinto da un unico thread di computazione (sequenza di istruzioni).
- La sequenza può cambiare da un'esecuzione all'altra.
- Nessun altro processo ha accesso allo spazio di indirizzamento del processo.
4.1 Thread (continua)
- Un processo multi-thread è composto da più thread di computazione (peer thread).
- Ad ogni peer thread è assegnata l'esecuzione di codice.
- Ogni thread ha il proprio stato di computazione (Program Counter, registri CPU e stack).
- I peer thread condividono il codice in esecuzione e le aree dati.
4. Scheduling dei Thread
- I sistemi operativi moderni implementano lo scheduling dei thread a livello kernel.
- Il SO gestisce sia i processi normali che i thread.
- Quando un thread si blocca o termina il suo tempo, il SO assegna la CPU ad un altro thread dello stesso task o ad un altro task o ad un processo normale.
Vantaggi nell'uso dei thread
- Efficienza: creare un thread (Lightweight Process, LWP) è più veloce che creare un processo (Heavyweight Process, HWP).
- Condivisione di dati e risorse: più thread possono lavorare su dati condivisi.
- Architetture multi-core: i thread sono adatti ai processori multi-core.
Thread e Architetture Multi-Core
- In un processore single-core, i thread si alternano nell'esecuzione.
- Il context switch tra peer thread è meno pesante del context switch tra processi.
- Il context switch con un altro processo è comunque oneroso, a causa dei miss cache.
- Le architetture multi-core sono particolarmente adatte a sistemi multi-thread.
CPU/CORE multithreaded
- SMT (Simultaneous Multi-Threading): ogni core può eseguire, simultaneamente, istruzioni di thread diversi.
- Aumenta la produttività di ciascun core.
- Nei processori moderni ogni core supporta SMT e può eseguire istruzioni da due o più peer thread.
- "Dual-threaded" indica un core che può eseguire contemporaneamente istruzioni di due thread distinti.
- "Dual-core" indica due core separati, ognuno dei quali può eseguire istruzioni di un diverso processo.
Ma l'SMT conviene?
- Sì, se lo speedup è maggiore il tempo di esecuzione, a fronte dei consumi, è minore.
CPU/CORE multithreaded (continua)
- Processori come quelli Intel i3 – i9 sono multi-core e dual-threaded.
- Altri processori, come il SUN SPARC T3, supportano un maggior numero di peer thread per core.
Per chi vuole approfondire
- Capitolo 4: Thread e Concorrenza.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.