Sistemi Operativi - 04: Thread
39 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

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.

    True

    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 __________.

    <p>multi-threaded</p> Signup and view all the answers

    Abbina le seguenti caratteristiche ai loro significati corretti:

    <p>Multiple issue = Esecuzione parallela di più istruzioni Superscalare = Architettura dei core con unità funzionali multiple Context switch = Cambio di controllo tra processi ALU = Unità logico-aritmetica</p> Signup and view all the answers

    Quale delle seguenti affermazioni è vera riguardo ai processi e i thread?

    <p>I thread condividono lo spazio di indirizzamento.</p> Signup and view all the answers

    I processi possono accedere ai dati in una memoria condivisa senza utilizzare file.

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

    Qual è uno dei vantaggi della condivisione di dati tra thread rispetto ai processi?

    <p>I context switch sono meno onerosi.</p> Signup and view all the answers

    Due processi possono comunicare scambiandosi dati usando __________.

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

    Abbina i seguenti concetti con le loro descrizioni:

    <p>Processo = Un'unità di lavoro con spazi di indirizzamento separati Thread = Un'unità di lavoro che condivide spazi di indirizzamento Context Switch = Passaggio da un processo o thread a un altro Memoria Condivisa = Area di memoria accessibile da più processi o thread</p> Signup and view all the answers

    Qual è una delle situazioni in cui i thread sono vantaggiosi?

    <p>Collaborare su dati comuni senza utilizzare meccanismi espliciti di comunicazione.</p> Signup and view all the answers

    Il passaggio da un thread a un altro comporta sempre un alto costo di risorse.

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

    Che cosa richiede il context switch tra peer thread?

    <p>Il Program Counter, i registri della CPU e lo stack</p> Signup and view all the answers

    Il codice e i dati sono diversi per ogni peer thread di un processo.

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

    Qual è la principale differenza tra context switch tra processi e context switch tra peer thread?

    <p>Il context switch tra processi è più oneroso e coinvolge più informazioni.</p> Signup and view all the answers

    I processi normali sono chiamati __________.

    <p>heavy-weight process</p> Signup and view all the answers

    Qual è il termine usato per i peer-thread?

    <p>Processo leggero</p> Signup and view all the answers

    Il context switch tra processi genera meno cache miss rispetto al context switch tra peer thread.

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

    Quali componenti devono essere salvati durante un context switch tra peer thread?

    <p>Program Counter, registri della CPU e stack.</p> Signup and view all the answers

    Il context switch tra peer thread non richiede di cambiare la __________ del processo.

    <p>tabella delle pagine</p> Signup and view all the answers

    Abbina i seguenti termini alle loro descrizioni:

    <p>HWP = Processo normale LWP = Peer-thread Context switch = Cambio di esecuzione tra thread o processi Cache miss = Accesso alla memoria non trovato nel cache</p> Signup and view all the answers

    Quale affermazione descrive correttamente un processo P?

    <p>Ha un unico thread di computazione.</p> Signup and view all the answers

    Un processo multi-threaded non può avere accesso al codice di altri processi.

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

    Che cosa rappresenta un peer thread in un processo multi-threaded?

    <p>Un thread di computazione che esegue un codice diverso dagli altri thread.</p> Signup and view all the answers

    Un processo multi-threaded è composto da più ________ di computazione.

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

    Abbina i seguenti termini ai loro significati:

    <p>Thread = Un'unità di esecuzione all'interno di un processo Processo P = Unica sequenza di istruzioni eseguite Spazio di indirizzamento logico = Area di memoria utilizzata da un processo Peer thread = Thread che condivide codice e dati nel processo multi-threaded</p> Signup and view all the answers

    Quale delle seguenti affermazioni è falsa riguardo ai processi?

    <p>Un processo ha accesso all'area dati di un altro processo.</p> Signup and view all the answers

    I peer thread condividono le aree dati ma non il codice in esecuzione.

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

    Qual è la funzione del Program Counter in un thread?

    <p>Indica l'indirizzo della prossima istruzione da eseguire.</p> Signup and view all the answers

    Ogni thread ha un suo stato di computazione composto da Program Counter, ________ e stack.

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

    Quale sistema di chiamata viene utilizzato per creare un nuovo thread in Linux?

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

    I peer-thread non possono condividere dati e risorse fra di loro.

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

    Qual è il vantaggio principale dell'uso dei thread sulle architetture multi-core?

    <p>I thread possono girare simultaneamente su più core.</p> Signup and view all the answers

    Il passaggio di contesto tra peer thread richiede circa ___ volte meno tempo rispetto al passaggio di contesto tra processi.

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

    Quale delle seguenti affermazioni è vera riguardo allo scheduling dei thread?

    <p>Il SO assegna la CPU anche a processi normali.</p> Signup and view all the answers

    Creare un nuovo HWP richiede meno tempo rispetto a creare un nuovo LWP.

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

    Qual è una chiamata di sistema usata per creare un thread in Windows?

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

    Il _____ threading implica l'esecuzione simultanea di più thread all'interno dello stesso processo.

    <p>multi-threading</p> Signup and view all the answers

    Quale vantaggio fornisce l'uso dei thread nella condivisione dei dati?

    <p>Lavoro efficiente su dati condivisi.</p> Signup and view all the answers

    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.

    Quiz Team

    Related Documents

    Thread e Concorrenza PDF

    Description

    Scopri le motivazioni per l'utilizzo dei thread in questo capitolo. Analizza due processi che operano sugli stessi dati e le soluzioni per gestire le aree di dati separate. È fondamentale per applicazioni come editor di testo, dove la condivisione di dati è essenziale.

    More Like This

    Thread Functionality Quiz
    5 questions
    Thread Management and States Quiz
    37 questions
    Java Thread Management Quiz
    5 questions
    Use Quizgecko on...
    Browser
    Browser