Processi e Thread in UNIX
104 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 funzione chiama il sistema operativo per creare un nuovo processo in UNIX?

  • exec()
  • create()
  • spawn()
  • fork() (correct)
  • Cosa succede dopo la chiamata a fork() riguardo alla tabella dei processi?

  • Non viene modificata la tabella dei processi.
  • Viene allineato il PID padre al figlio.
  • Il processo padre è terminato.
  • Viene allocata una entry per il processo figlio. (correct)
  • Che ruolo ha il kernel stack durante l'esecuzione di un processo?

  • Esegue funzioni in modalità utente.
  • Gestisce la memoria condivisa.
  • Gestisce le chiamate di sistema.
  • Usato per le funzioni in modalità sistema. (correct)
  • Cosa indica la Process Region Table riguardo agli indirizzi virtuali?

    <p>Il mapping tra indirizzi virtuali e fisici.</p> Signup and view all the answers

    Quando si chiama fork(), quale informazione viene restituita al processo padre?

    <p>Il PID del processo figlio.</p> Signup and view all the answers

    Quali sono le motivazioni per sospendere un processo?

    <p>Per liberare memoria necessaria per un processo in stato ready</p> Signup and view all the answers

    Che cosa rappresenta lo stato 'blocked/suspend'?

    <p>Un processo che è in attesa di I/O mentre è memorizzato su disco</p> Signup and view all the answers

    Cosa succede quando un processo riceve un segnale di terminazione da un altro processo?

    <p>Il processo viene eliminato e non può essere ripristinato</p> Signup and view all the answers

    Qual è la definizione corretta dello stato 'suspended'?

    <p>Un processo che è stato spostato su disco, ma non è terminato</p> Signup and view all the answers

    Quale affermazione è vera riguardo il passaggio da stati diversi a 'exit'?

    <p>Si può passare a 'exit' da stati diversi da 'new' mediante l'uccisione di un altro processo</p> Signup and view all the answers

    Cosa sono i thread in un processo?

    <p>Diverse esecuzioni di uno stesso processo che condividono tutte le risorse tranne lo stack.</p> Signup and view all the answers

    Quale delle seguenti affermazioni è vera riguardo all'esecuzione di processi e thread?

    <p>I thread condividono tutte le risorse tranne il processore.</p> Signup and view all the answers

    Perché è vantaggioso utilizzare thread in un'applicazione grafica?

    <p>Per gestire diverse operazioni contemporaneamente, come il monitoraggio del mouse e il ridisegno della finestra.</p> Signup and view all the answers

    Quale risorsa non è condivisa tra i thread?

    <p>Stack delle chiamate.</p> Signup and view all the answers

    Quale affermazione è falsa riguardo alla competizione tra processi?

    <p>L'utente percepisce sempre l'esecuzione in parallelo dei processi.</p> Signup and view all the answers

    Quale di questi elementi è assente nel Process Control Block?

    <p>Immagine del terminale</p> Signup and view all the answers

    Qual è la funzione principale del dispatcher nel sistema operativo?

    <p>Sospendere processi per farne andare in esecuzione altri</p> Signup and view all the answers

    In quale stato si trova un processo che sta attivamente eseguendo istruzioni?

    <p>In esecuzione</p> Signup and view all the answers

    Cosa avviene durante la terminazione normale di un processo?

    <p>Invocazione di una system call come exit</p> Signup and view all the answers

    Quale affermazione riguardo alla traccia di un processo è corretta?

    <p>Caratterizza la sequenza di istruzioni eseguite</p> Signup and view all the answers

    Cosa rappresenta l'operazione di 'process spawning'?

    <p>Creazione di un nuovo processo da uno esistente</p> Signup and view all the answers

    Qual è il ruolo del modello dei processi a 2 stati?

    <p>Distingue solo tra processo in esecuzione e sospeso</p> Signup and view all the answers

    Quali informazioni NON sono associate al contesto hardware di un processo?

    <p>Stato di disposizione dei file</p> Signup and view all the answers

    Quando un processo viene spostato dalla CPU alla coda?

    <p>Quando deve passare a un altro processo</p> Signup and view all the answers

    Cosa accade quando un thread acquisisce un dispositivo di I/O?

    <p>Tutti i thread del processo possono accedere al dispositivo.</p> Signup and view all the answers

    Qual è una caratteristica vantaggiosa degli User Level Threads (ULT) rispetto ai Kernel Level Threads (KLT)?

    <p>Gli ULT possono essere schedulati più facilmente senza switch di modalità.</p> Signup and view all the answers

    Qual è un svantaggio degli User Level Threads (ULT)?

    <p>Se un thread si blocca, tutti gli altri thread del processo si bloccano.</p> Signup and view all the answers

    Qual è l'unità base dei thread in Linux?

    <p>Lightweight process</p> Signup and view all the answers

    Cosa accade se un thread di un ULT viene bloccato durante l'esecuzione?

    <p>Tutti gli altri thread del processo si bloccano.</p> Signup and view all the answers

    Quali sono i diversi identificatori utilizzati in Linux per distinguere i thread?

    <p>PID e TID</p> Signup and view all the answers

    Qual è una caratteristica dei Kernel Level Threads (KLT)?

    <p>Richiedono un passaggio al kernel per lo scheduling.</p> Signup and view all the answers

    Quale affermazione è vera riguardo ai thread in un processo Linux?

    <p>Il PID è condiviso da tutti i thread dello stesso processo.</p> Signup and view all the answers

    Quale stato di processo indica che il processo non può essere eseguito finché non si verifica un evento esterno?

    <p>Asleep in Memory</p> Signup and view all the answers

    Quale delle seguenti affermazioni è vera riguardo al processo 'Zombie'?

    <p>È terminato, ma rimane per consentire alla sua creazione di raccogliere il valore di ritorno.</p> Signup and view all the answers

    Cosa rappresenta il 'Program counter' in un processo?

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

    Quale stato di processo è caratterizzato dalla necessità di essere portato in memoria prima di poter essere eseguito?

    <p>Ready to Run, Swapped</p> Signup and view all the answers

    Quale sezione memorizza i dati delle variabili utilizzate dal processo?

    <p>Process data</p> Signup and view all the answers

    Quale tra le seguenti affermazioni è vera riguardo al kernel mode?

    <p>Non è appropriato per processi real-time.</p> Signup and view all the answers

    Quale registro contiene lo stato del processore relativo a quando il processo è stato swappato l'ultima volta?

    <p>Processor status register</p> Signup and view all the answers

    Qual è la principale funzione della 'Process table entry'?

    <p>Individuare il processo corrente e le relative informazioni.</p> Signup and view all the answers

    Quale stato di processo indica che un processo è stato creato ma non è ancora pronto all'esecuzione?

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

    Quale delle seguenti definizioni è corretta per il termine 'Preempted'?

    <p>Un processo che è stato interrotto per un cambio di contesto.</p> Signup and view all the answers

    Quali classi di scheduling in Linux si occupano dei processi real-time?

    <p>SCHED FIFO e SCHED RR</p> Signup and view all the answers

    Qual è il livello di priorità dei processi nella classe SCHED OTHER?

    <p>Da 100 a 139</p> Signup and view all the answers

    Quale affermazione descrive meglio la preemption dei processi in Linux?

    <p>La preemption può avvenire quando un processo diventa eseguibile dopo essere stato bloccato.</p> Signup and view all the answers

    Qual è la priorità di un processo di livello 0 in Linux?

    <p>È usata solo per casi particolari.</p> Signup and view all the answers

    Come viene gestita la sequenza di esecuzione tra le classi di scheduling in Linux?

    <p>I processi SCHED FIFO e SCHED RR vengono eseguiti prima, seguiti da SCHED OTHER.</p> Signup and view all the answers

    Qual è uno svantaggio del round-robin quando si tratta di processi I/O bound?

    <p>Non è equo per i processi I/O</p> Signup and view all the answers

    Qual è la caratteristica principale del round-robin virtuale rispetto al round-robin semplice?

    <p>Migliora la fairness per i processi I/O bound</p> Signup and view all the answers

    In che modo il metodo Shortest Process Next (SPN) gestisce i processi lunghi?

    <p>Potrebbero soffrire di starvation</p> Signup and view all the answers

    Cosa indica il termine 'fairness' nel contesto del round-robin virtuale?

    <p>Distribuzione equa dei tempi di CPU tra tutti i processi</p> Signup and view all the answers

    Qual è il risultato di un uso inefficace del tempo in un sistema round-robin?

    <p>Degenerazione del round robin in FCFS</p> Signup and view all the answers

    Qual è la principale sfida nella stima del tempo di esecuzione nel metodo SPN?

    <p>L'accuratezza della predizione del tempo</p> Signup and view all the answers

    Qual è la caratteristica principale dei processi CPU-bound nel round-robin?

    <p>Sono favoriti nel round-robin</p> Signup and view all the answers

    Quale metodo può migliorare l'inefficienza della gestione di processi I/O bound nel round-robin tradizionale?

    <p>Utilizzo del round-robin virtuale</p> Signup and view all the answers

    Qual è la funzione principale delle wait queues in un sistema di scheduling?

    <p>Mantenere i processi in attesa per richieste di I/O</p> Signup and view all the answers

    Come varia la priorità di un processo nel sistema di scheduling di Linux?

    <p>Decrescente se il processo viene eseguito</p> Signup and view all the answers

    Quale affermazione è corretta riguardo ai tipi di processi in Linux?

    <p>I processi interattivi necessitano di una risposta rapida dall'utente.</p> Signup and view all the answers

    Qual è la conseguenza se il timer interrupt in Linux è impostato su un intervallo maggiore di 1 ms?

    <p>Le applicazioni real-time potrebbero subire problemi di latenza.</p> Signup and view all the answers

    Quale delle seguenti affermazioni descrive meglio il concetto di runqueues?

    <p>Ogni processore ha la propria runqueue per i processi pronti.</p> Signup and view all the answers

    Cosa accade ai processi real-time nel sistema di scheduling di Linux?

    <p>Ottengono sempre la priorità più alta possibile.</p> Signup and view all the answers

    Qual è il rischio di impostare il timer interrupt su un valore troppo corto?

    <p>Aumenta il carico sul processore e riduce il tempo in user mode.</p> Signup and view all the answers

    Perché i processi batch sono penalizzati dallo scheduler di Linux?

    <p>Gli utenti accettano tempi di attesa più lunghi.</p> Signup and view all the answers

    Qual è l'obiettivo principale dello scheduling nel sistema operativo?

    <p>Assegnare le risorse in modo equo tra i vari processi</p> Signup and view all the answers

    Quale tipo di scheduling decide quali programmi possono essere eseguiti nel sistema?

    <p>Long-term scheduling</p> Signup and view all the answers

    Quale strategia di long-term scheduling viene utilizzata per i processi interattivi?

    <p>Accettazione fino alla saturazione del sistema</p> Signup and view all the answers

    Cosa caratterizza lo short-term scheduling nella gestione dei processi?

    <p>È invocato in base a eventi come le interruzioni di clock</p> Signup and view all the answers

    Quale di questi criteri è considerato non prestazionale per lo short-term scheduling?

    <p>Equità</p> Signup and view all the answers

    Che cosa rappresenta il turnaround time in un processo?

    <p>Il tempo tra la creazione di un processo e il suo completamento</p> Signup and view all the answers

    Quale di queste affermazioni è vera riguardo al response time?

    <p>Rappresenta il tempo che intercorre tra la richiesta e l'inizio della risposta</p> Signup and view all the answers

    Qual è il principale obiettivo dello short-term scheduling in un sistema operativo?

    <p>Ottimizzare l'uso delle risorse del processore</p> Signup and view all the answers

    Qual è una caratteristica del medium-term scheduling?

    <p>Può intervenire quando non ci sono nuovi processi</p> Signup and view all the answers

    Cosa significa evitare la starvation nei processi?

    <p>Garantire che ogni processo ottenga CPU ad un certo intervallo</p> Signup and view all the answers

    Cosa rappresenta un'elevata predicibilità in un sistema operativo?

    <p>Tempi di risposta costanti e conosciuti</p> Signup and view all the answers

    Qual è l'obiettivo principale del throughput in un sistema operativo?

    <p>Massimizzare il numero di processi completati per unità di tempo.</p> Signup and view all the answers

    Quale affermazione descrive meglio l'utilizzo del processore?

    <p>Deve essere il più elevato possibile per un sistema efficiente.</p> Signup and view all the answers

    Qual è uno degli aspetti da ottimizzare tramite lo scheduling?

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

    Qual è la funzione principale dello scheduler in un sistema operativo?

    <p>Assicurarsi che le risorse del sistema siano utilizzate il più possibile.</p> Signup and view all the answers

    Qual è uno dei vantaggi di un throughput elevato nel sistema?

    <p>Riduce il numero di processi in attesa</p> Signup and view all the answers

    Quale affermazione descrive meglio il principio di fair scheduling?

    <p>Distribuire le risorse senza favoritismi</p> Signup and view all the answers

    Qual è il rischio associato ai processi a bassa priorità?

    <p>Potrebbero soffrire di starvation a causa di processi a priorità più alta.</p> Signup and view all the answers

    Qual è una caratteristica del policy di scheduling preemptive?

    <p>Il sistema operativo può interrompere un processo in esecuzione in qualsiasi momento.</p> Signup and view all the answers

    Nel metodo FCFS, quale affermazione è vera?

    <p>Il primo processo che arriva viene eseguito fino al termine o fino a una richiesta di I/O.</p> Signup and view all the answers

    Cosa rappresenta l'interruzione di clock nel sistema Round-Robin?

    <p>Consente di passare il controllo a un processo successivo nella coda.</p> Signup and view all the answers

    Qual è il criterio essenziale nella gestione delle priorità per evitare la starvation?

    <p>Incrementare la priorità dei processi in esecuzione per troppo tempo.</p> Signup and view all the answers

    Qual è il vantaggio dell'algoritmo Round-Robin?

    <p>Garantisce un'equa distribuzione del tempo di esecuzione tra processi.</p> Signup and view all the answers

    Quale formula rappresenta l'exponential averaging per stimare il tempo di esecuzione?

    <p>Sn+1 = αTn + (1 - α)Sn</p> Signup and view all the answers

    Quale delle seguenti modalità di decisione consente a un processo di continuare fino alla sua conclusione?

    <p>Non-preemptive.</p> Signup and view all the answers

    In quale situazione un processo potrebbe diventare 'blocked'?

    <p>Quando richiede risorse da input/output.</p> Signup and view all the answers

    Cosa caratterizza il metodo SRT (Shortest Remaining Time)?

    <p>I processi possono essere interrotti se ne arriva uno nuovo.</p> Signup and view all the answers

    Che cosa significa il termine 'time slicing' in un sistema Round-Robin?

    <p>La tecnica di assegnare un breve periodo di tempo a ciascun processo.</p> Signup and view all the answers

    In che modo HRRN (Highest Response Ratio Next) determina quale processo eseguire?

    <p>Massimizza il rapporto tra tempo di attesa e tempo di esecuzione.</p> Signup and view all the answers

    Quale parametro è importante per la funzione di selezione di uno scheduler?

    <p>Tempo totale richiesto da un processo.</p> Signup and view all the answers

    Quale affermazione è vera riguardo all'assegnamento statico di processi in un'architettura multiprocessore?

    <p>Un processo mantiene lo stesso processore per tutta la durata della sua esecuzione.</p> Signup and view all the answers

    Che effetto ha un tempo di preemption troppo breve in un processo?

    <p>Non è efficace poiché causa eccessive interruzioni.</p> Signup and view all the answers

    Qual è il vantaggio principale dell'assegnamento dinamico di processi?

    <p>Flessibilità nel gestire il carico di lavoro sui processori.</p> Signup and view all the answers

    Come funzionano le priorità nel sistema UNIX secondo la descrizione fornita?

    <p>Le priorità iniziali sono basate su tipi di processo e vengono ricalcolate ogni secondo.</p> Signup and view all the answers

    Qual è una caratteristica dell'exponential averaging?

    <p>Favorisce i valori più recenti rispetto a quelli passati.</p> Signup and view all the answers

    Quale delle seguenti opzioni descrive correttamente un processo in uno stato 'blocked/suspend'?

    <p>Il processo non può essere eseguito finché non si libera una risorsa.</p> Signup and view all the answers

    Qual è il ruolo dell'esponential averaging nel contesto dello scheduling?

    <p>Fornire una valutazione statistica dei tempi di esecuzione.</p> Signup and view all the answers

    Quale approccio è utilizzato nello scheduling tradizionale di UNIX?

    <p>Combinazione di priorità e round robin.</p> Signup and view all the answers

    Cosa indica il termine 'nice' nel contesto dello scheduling di UNIX?

    <p>Un fattore che diminuisce la priorità di un processo.</p> Signup and view all the answers

    Qual è una caratteristica degli scheduler in architetture multiprocessore?

    <p>Possono utilizzare scheduler differenti per processori diversi.</p> Signup and view all the answers

    Qual è uno svantaggio dell'assegnamento dinamico rispetto a quello statico?

    <p>Maggiore overhead nella gestione dei processi.</p> Signup and view all the answers

    Study Notes

    Sistemi Operativi - Modulo I - Processi

    • Il compito fondamentale del Sistema Operativo (SO) è la gestione dei processi, ovvero le diverse elaborazioni eseguite su un sistema computerizzato.
    • Il SO deve:
      • consentire l'esecuzione alternata di più processi (interleaving).
      • assegnare risorse ai processi e proteggerle dagli altri.
      • consentire lo scambio di informazioni tra processi.
      • permettere la sincronizzazione tra processi.
      • gestire l'esecuzione contemporanea di più processi (multiprogrammazione).

    Cos'è un processo?

    • Un programma in esecuzione su un computer.
    • Un'istanza di un programma.
    • L'entità assegnata ad un processore per l'esecuzione.
    • Un'unità di attività con una sequenza di istruzioni, uno stato corrente e un insieme di risorse associate.
    • Un processo è composto da: codice (anche condiviso), istruzioni da eseguire; un insieme di dati; un numero di attributi che descrivono lo stato del processo.

    Processi, Esecuzioni e Programmi

    • "Process in esecuzione" indica che un utente ha richiesto l'esecuzione di un programma che non è ancora terminato.
    • Non è detto che il processo sia in esecuzione su un processore in ogni istante tra la richiesta e la terminazione.
    • I processi in sistemi moderni sono memorizzati su supporti di massa (ad esempio, un disco rigido).
    • L'esecuzione di un programma crea un processo.

    Processi, Esecuzioni, Macrofasi

    • Un processo ha tre macrofasi: creazione, esecuzione e terminazione.
    • La terminazione può essere prevista (es. in un programma che deve leggere, ordinare e scrivere numeri, la terminazione avviene dopo l'ultimo passo).
    • Oppure non prevista (es. in un word processor, se l'utente non chiude il programma, può rimanere in esecuzione indefinitamente).
    • Può essere terminato in seguito ad un'operazione errata del programma oppure per intervento del SO.

    Elementi di un Processo

    • Finché il processo è in esecuzione, sono associati determinati elementi:
    • identificatore (PID)
    • stato (running, ma anche altri)
    • priorità
    • hardware context: valori attuali dei registri della CPU
    • program counter
    • puntatori alla memoria (immagine del processo)
    • informazioni sull'input/output
    • informazioni di accounting (utente che lo esegue)

    Process Control Block (PCB)

    • Contiene gli elementi del processo.
    • Creato e gestito dal SO.
    • Consente al SO di gestire più processi contemporaneamente.
    • Contiene le informazioni sufficienti per bloccare il programma in esecuzione e farlo riprendere dal punto in cui si trovava.
    • Contiene differenti informazioni, come l'identificatore, lo stato, la priorità, i puntatori alla memoria, lo stato dell'I/O e l'informazione di accounting.

    Traccia di un Processo

    • Il comportamento di un processo è caratterizzato dalla sequenza delle istruzioni che vengono eseguite.
    • La sequenza è detta traccia.
    • Il dispatcher è un piccolo programma del SO che sospende un processo per farne andare in esecuzione un altro.

    Esecuzione di un Processo

    • Considerando 3 processi in esecuzione.
    • Supponendo, per semplificazione, che tutti siano presenti in memoria principale e si ignori per ora la memoria virtuale.

    La Traccia dal Punto di Vista del Processore

    • Ogni processo viene eseguito senza interruzioni fino al termine.
    • Le istruzioni vengono eseguite sequenzialmente in base ai valori dei timestamp.
    • Sono presenti i dati relativi alla presenza di operazioni di I/O.

    Modello dei Processi a 2 Stati

    • Un processo può essere in uno di due stati: in esecuzione o non in esecuzione.

    Diagramma a Coda

    • I processi sono rappresentati come elementi in una coda (Queue).
    • Il dispatcher sceglie i processi dalla coda per l'esecuzione.

    Creazione di Processi

    • In un sistema operativo, in un determinato istante, ci sono almeno un processo.
    • Quando un utente effettua un comando, viene creato un nuovo processo.
    • Il processo che crea un nuovo processo si chiama processo padre. Il nuovo processo si chiama processo figlio.

    Terminazione di un Processo

    • Il processo può terminare in modo normale (esecuzione del comando HALT) o in caso di errori (memoria non disponibile, errori di protezione o operazione di I/O fallita).
    • Un altro processo può terminare altri processi (es. con un segnale).

    Modello dei Processi a 5 Stati

    • Aggiunge lo stato "Blocked" (o waiting) per descrivere un processo in attesa di un evento esterno.

    Processi Sospesi

    • Lo stato "Blocked" diventa anche "Suspended" se il processo viene spostato sul disco.
    • Si hanno due nuovi stati (blocked/suspended e ready/suspended) per rappresentare le situazioni in cui un processo è spostato sul disco perché bloccato o di tipo ready, ma non può essere eseguito subito.

    Motivi per Sospendere un Processo

    • Swapping: il SO ha bisogno di liberare abbastanza memoria.
    • Interno al SO: il SO sospetta che un processo stia creando problemi.
    • Richiesta utente in-terattiva: debug, uso di una risorsa.
    • Periodicità: monitoraggio di sistema, accountings.
    • Richiesta del padre: il processo padre richiede la sospensione del processo figlio.

    Processi e Risorse

    • I processi hanno bisogno di risorse (processore, memoria principale, periferiche).
    • Le risorse possono essere fisiche o virtuali.

    Strutture di Controllo del SO

    • Il SO gestisce l'uso delle risorse di sistema.
    • Conosce lo stato di ogni processo e di ogni risorsa, mediante opportune tabelle.

    Tabelle di Controllo del SO

    • Diverse tabelle (memoria, I/O, file e processi) vengono usate per gestire rispettivamente memoria, dispositivi/canali, file aperti e processi in esecuzione. Queste tabelle contengono informazioni specifiche e permettono al sistema operativo di avere un'immagine completa dello stato dei processi.

    Tabelle di Memoria

    • Il software usa tabelle per gestire sia la memoria principale che la memoria secondaria, con informazioni importanti come le allocazioni, gli attributi di protezione e le informazioni per la memoria virtuale.

    Tabelle per l'I/O

    • Il SO deve sapere se un dispositivo è disponibile, lo stato dell'operazione di I/O e dove sono localizzati i dati di I/O nella memoria principale.

    Tabelle dei File

    • Le tabelle dei file forniscono informazioni sull'esistenza dei file, la loro posizione in memoria secondaria, lo stato corrente e altri attributi.

    Tabelle dei Processi

    • Il SO deve conoscere lo stato corrente, l'identificatore, la locazione in memoria del processo per gestirlo, tramite informazioni conservate nei PCB (block di controllo del processo).
    • L'immagine di un processo include programma sorgente, dati, stack delle chiamate e PCB.

    Attributi dei Processi

    • Le informazioni nei blocchi di controllo dei processi possono essere raggruppate in tre categorie: identificazione, stato e controllo.

    Come si Identifica un Processo

    • Ad ogni processo viene assegnato un numero identificativo (PID).
    • Questo numero viene utilizzato per collegare le diverse tabelle del SO.

    Lo Stato del Processore

    • Lo stato del processore è dato dai contenuti dei registri del processore stesso.

    EFLAGS nel Pentium 2

    • Il registro EFLAGS dei processori Pentium 2 contiene flag relativi a diverse condizioni, utili alla gestione di istruzioni e interruzioni.

    Control Block del Processo

    • Contiene le informazioni di cui il SO ha bisogno per controllare e coordinare i processi attivi.
    • Include i seguenti elementi: identificatore del processo (PID), del processo padre (Parent PID or PPID), dell'utente proprietario, registri utente (accessibili in linguaggio macchina), program counter, stack pointer, e registri di stato.

    Informazioni per il controllo del processo

    • Stato del processo (ready, suspended, blocked,...);
    • Priorità;
    • Informazioni sullo scheduling (ad esempio, tempo di esecuzione);
    • Supporto per strutture dati (ad es., puntatori ad altri processi);
    • Comunicazioni tra processi.

    Control Block del Processo (Permessi, Gestione, Uso)

    • Permessi speciali;
    • Gestione della memoria;
    • Uso delle risorse.

    Immagini dei Processi in Memoria Virtuale

    • Struttura a cui sono associate le informazioni dei differenti processi.

    Control Block del Processo (Struttura Dati)

    • Struttura dati (importantissima) che definisce lo stato del SO.
    • Richiede protezioni, perché una funzione scritta male danneggerebbe il blocco, rendendo il SO incapace di gestire i processi.

    Modalità di Esecuzione

    • I processori supportano diverse modalità di esecuzione (ad esempio, modalità sistema e modalità utente) a seconda del tipo di programma in esecuzione.

    Kernel Mode (Operazioni)

    • Il kernel ha una serie di funzioni, come la gestione dei processi, scheduling, sincronizzazione, allocazione di memoria, gestione dell'I/O, interrupt/eccezioni, accounting e monitoraggio.

    Da User Mode a Kernel Mode e Ritorno

    • Il processo si sposta in modalità kernel attraverso un interrupt.
    • L'interrupt handler esegue operazioni in modalità kernel, quindi modifica le informazioni del SO e del processo.
    • Quando l'interrupt handler termina, il controllo ritorna al processo nella sua modalità utente.

    System call sui Pentium

    • Le system call sono pezzi di codice che permettono ad un programma utente di richiedere servizi al sistema operativo.

    Creazione di un Processo in UNIX

    • La creazione di un processo in UNIX viene eseguita attraverso la chiamata di sistema "fork".
    • Questo sistema alloca una nuova entry nella tabella dei processi, assegna un PID unico al processo figlio, copia l'immagine del processo padre, incrementa i contatori e fa in modo che il processo figlio abbia lo stato "Ready to Run," e ritorna il PID del figlio al padre (e 0 al figlio).

    Switching tra Processi

    • I processi effettuano uno switch tra modalità (user-mode o kernel-mode) ed uno switch tra processi per cedere il controllo del processore ad un altro processo.

    Quando Effettuare uno Switch

    • Uno switch avviene, a seconda del meccanismo, per motivi esterni all'esecuzione corrente dell'istruzione (interrupt esterno, eccezione), o a seguito di una richiesta esplicita del processo al sistema operativo.

    Process Switch: Passaggi

    • Il SO salva il contesto del programma in esecuzione, aggiorna il PCB.
    • Sceglie un altro processo da eseguire e aggiorna il suo PCB.
    • Ripristina il contesto del processo scelto e continua l'esecuzione.

    II SO è un Processo?

    • Il SO è un insieme di programmi ma non un singolo processo.
    • In alcuni casi lasciano che altri programmi si esegue in esecuzione.

    Esecuzione del SO

    • Il SO può essere eseguito separatamente dai processi utente o in alcuni casi eseguito come parte dei processi utente.

    II Kernel non è un Processo

    • Il kernel è un'entità separata con privilegi più elevati.
    • Ha una zona di memoria dedicata e non appartiene agli altri processi.

    Esecuzione all'interno dei Processi Utente

    • Il SO viene eseguito nel contesto di un processo utente semplicemente cambiando la modalità di esecuzione.
    • I processi sono anche caratterizzati da stack delle chiamate divisi che consentono al sistema di capire di quale thread stiamo parlando.

    SO è Basato sui Processi

    • Il SO è implementato come un insieme di processi di sistema con privilegi più elevati, che partecipano alla competizione per il processore accanto ai processi utente.

    Caso Concreto: Linux

    • Il kernel Linux utilizza una via di mezzo tra le diverse opzioni per effettuare le chiamate del sistema.

    UNIX: Transizioni tra Stati dei Processi

    • Transizioni tra i differenti stati dei processi.

    UNIX: Stati dei Processi

    • Descrizione dei diversi stati dei processi in UNIX, come User Running, Kernel Running, Ready to Run, Asleep in Memory, Ready to Run, Swapped, Sleeping,Swapped, Preempted, Created e Zombie.

    UNIX: Transizioni tra Stati dei Processi (Chiamate)

    • In alcuni particolari casi si verifica la mancanza di "Exit" e le transizioni che ci finiscono dentro.
    • Questo si verifica quando un processo continua ad operare senza aver effettuato la chiamata per i/o o per il sistema stesso.
    • In kernel-mode, non ci sono le interruzioni per i processi real-time.

    UNIX: Stati dei Processi (Continuazione)

    • Lo stato Sleeping, Swapped indica che il processo non può essere eseguito finché non si verifica un evento specifico, oppure che il processo non è presente in memoria primaria.
    • Lo stato Preempted indica che il Processo è stato interrotto dal kernel, mentre lo stato Created indica un processo appena creato.
    • Il processo Zombie indica un processo che è terminato ma che rimane nelle tabelle dei processi per consentire a qualcos'altro di prendere le informazioni di ritorno.

    II Processo Unix

    • Un insieme di strutture dati consentono al SO di gestire i processi in differenti contesti, come utente, livello registro e livello sistema.

    II Processo Unix: Livello Utente

    • Code generico di un processo.

    II Processo Unix: Livello Registro

    • Program counter, register di stato, puntatore allo stack e registri per uso generale.

    II Processo Unix: Livello Sistema

    • Tabelle di processo, U-area, e Kernel stack.

    Process Table Entry

    • Descrizione di informazioni importanti presenti nella tabella dei processi.

    U-Area

    • Descrizione generica dell'U-area.

    Creazione di un Processo in UNIX

    • La creazione avviene attraverso la chiamata di sistema fork.

    I Thread (lett. Fili)

    • I thread sono diverse esecuzioni possibili per lo stesso processo che condividono tutte le risorse (tranne lo stack delle chiamate) migliorando l'efficienza e semplificando lo switching.

    I Thread (Continuazione)

    • I thread migliorano l'efficienza e la semplicità, soprattutto nella gestione delle risorse.

    I Thread (Modelli)

    • Differenza tra modelli single-threaded e multi-threaded.

    I Thread (Operazioni)

    • Ogni processo viene creato con un solo thread, ma è possibile ottenere più thread.

    ULT vs. KLT

    • Discussioni su vantaggi e svantaggi tra Thread a livello utente e Thread a livello kernel.

    Processi e Thread in Linux

    • LWP (Lightweight process) rappresenta l'unità base dei thread in Linux, ma KLT e ULT sono possibili.

    Thread in Linux: Visione di Sistema

    • Il PID (Process ID) è unico per ogni thread, mentre il tgid è il medesimo per tutti i thread di un processo (esiste un thread leader).
    • La chiamata getpid() restituisce il tgid.

    II PCB in Linux

    • La struttura thread_info contiene il kernel stack.
    • Il thread group punta ai thread dello stesso processo, identificato dal pid e il parent e real_parent punta al padre del processo, che eventualmente a sua volta ha altri collegamenti.

    Gli Stati dei Processi in Linux

    • Gli stati dei processi in Linux sono sostanzialmente simili a quelli a 5 stati, ma internamente il kernel usa stati "atipici".

    Processi Parenti

    • Ogni processo ha una struttura dati per i suoi figli e fratelli.

    Segnali ed Interrupt (in Linux)

    • I segnali possono essere inviati da un processo a un altro.
    • Possono essere generati da eventi esterni, chiamate di sistema e exception handler.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Sistemi Operativi Modulo I PDF
    Sistemi Operativi Modulo I PDF

    Description

    Metti alla prova le tue conoscenze sui processi e thread in UNIX attraverso questo quiz. Scopri cosa accade durante la chiamata a fork(), il ruolo del kernel stack e le dinamiche degli stati di un processo. Questo quiz copre vari aspetti della gestione dei processi in un sistema operativo UNIX.

    More Like This

    Use Quizgecko on...
    Browser
    Browser