Podcast
Questions and Answers
Quale funzione chiama il sistema operativo per creare un nuovo processo in UNIX?
Quale funzione chiama il sistema operativo per creare un nuovo processo in UNIX?
Cosa succede dopo la chiamata a fork() riguardo alla tabella dei processi?
Cosa succede dopo la chiamata a fork() riguardo alla tabella dei processi?
Che ruolo ha il kernel stack durante l'esecuzione di un processo?
Che ruolo ha il kernel stack durante l'esecuzione di un processo?
Cosa indica la Process Region Table riguardo agli indirizzi virtuali?
Cosa indica la Process Region Table riguardo agli indirizzi virtuali?
Signup and view all the answers
Quando si chiama fork(), quale informazione viene restituita al processo padre?
Quando si chiama fork(), quale informazione viene restituita al processo padre?
Signup and view all the answers
Quali sono le motivazioni per sospendere un processo?
Quali sono le motivazioni per sospendere un processo?
Signup and view all the answers
Che cosa rappresenta lo stato 'blocked/suspend'?
Che cosa rappresenta lo stato 'blocked/suspend'?
Signup and view all the answers
Cosa succede quando un processo riceve un segnale di terminazione da un altro processo?
Cosa succede quando un processo riceve un segnale di terminazione da un altro processo?
Signup and view all the answers
Qual è la definizione corretta dello stato 'suspended'?
Qual è la definizione corretta dello stato 'suspended'?
Signup and view all the answers
Quale affermazione è vera riguardo il passaggio da stati diversi a 'exit'?
Quale affermazione è vera riguardo il passaggio da stati diversi a 'exit'?
Signup and view all the answers
Cosa sono i thread in un processo?
Cosa sono i thread in un processo?
Signup and view all the answers
Quale delle seguenti affermazioni è vera riguardo all'esecuzione di processi e thread?
Quale delle seguenti affermazioni è vera riguardo all'esecuzione di processi e thread?
Signup and view all the answers
Perché è vantaggioso utilizzare thread in un'applicazione grafica?
Perché è vantaggioso utilizzare thread in un'applicazione grafica?
Signup and view all the answers
Quale risorsa non è condivisa tra i thread?
Quale risorsa non è condivisa tra i thread?
Signup and view all the answers
Quale affermazione è falsa riguardo alla competizione tra processi?
Quale affermazione è falsa riguardo alla competizione tra processi?
Signup and view all the answers
Quale di questi elementi è assente nel Process Control Block?
Quale di questi elementi è assente nel Process Control Block?
Signup and view all the answers
Qual è la funzione principale del dispatcher nel sistema operativo?
Qual è la funzione principale del dispatcher nel sistema operativo?
Signup and view all the answers
In quale stato si trova un processo che sta attivamente eseguendo istruzioni?
In quale stato si trova un processo che sta attivamente eseguendo istruzioni?
Signup and view all the answers
Cosa avviene durante la terminazione normale di un processo?
Cosa avviene durante la terminazione normale di un processo?
Signup and view all the answers
Quale affermazione riguardo alla traccia di un processo è corretta?
Quale affermazione riguardo alla traccia di un processo è corretta?
Signup and view all the answers
Cosa rappresenta l'operazione di 'process spawning'?
Cosa rappresenta l'operazione di 'process spawning'?
Signup and view all the answers
Qual è il ruolo del modello dei processi a 2 stati?
Qual è il ruolo del modello dei processi a 2 stati?
Signup and view all the answers
Quali informazioni NON sono associate al contesto hardware di un processo?
Quali informazioni NON sono associate al contesto hardware di un processo?
Signup and view all the answers
Quando un processo viene spostato dalla CPU alla coda?
Quando un processo viene spostato dalla CPU alla coda?
Signup and view all the answers
Cosa accade quando un thread acquisisce un dispositivo di I/O?
Cosa accade quando un thread acquisisce un dispositivo di I/O?
Signup and view all the answers
Qual è una caratteristica vantaggiosa degli User Level Threads (ULT) rispetto ai Kernel Level Threads (KLT)?
Qual è una caratteristica vantaggiosa degli User Level Threads (ULT) rispetto ai Kernel Level Threads (KLT)?
Signup and view all the answers
Qual è un svantaggio degli User Level Threads (ULT)?
Qual è un svantaggio degli User Level Threads (ULT)?
Signup and view all the answers
Qual è l'unità base dei thread in Linux?
Qual è l'unità base dei thread in Linux?
Signup and view all the answers
Cosa accade se un thread di un ULT viene bloccato durante l'esecuzione?
Cosa accade se un thread di un ULT viene bloccato durante l'esecuzione?
Signup and view all the answers
Quali sono i diversi identificatori utilizzati in Linux per distinguere i thread?
Quali sono i diversi identificatori utilizzati in Linux per distinguere i thread?
Signup and view all the answers
Qual è una caratteristica dei Kernel Level Threads (KLT)?
Qual è una caratteristica dei Kernel Level Threads (KLT)?
Signup and view all the answers
Quale affermazione è vera riguardo ai thread in un processo Linux?
Quale affermazione è vera riguardo ai thread in un processo Linux?
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?
Quale stato di processo indica che il processo non può essere eseguito finché non si verifica un evento esterno?
Signup and view all the answers
Quale delle seguenti affermazioni è vera riguardo al processo 'Zombie'?
Quale delle seguenti affermazioni è vera riguardo al processo 'Zombie'?
Signup and view all the answers
Cosa rappresenta il 'Program counter' in un processo?
Cosa rappresenta il 'Program counter' in un processo?
Signup and view all the answers
Quale stato di processo è caratterizzato dalla necessità di essere portato in memoria prima di poter essere eseguito?
Quale stato di processo è caratterizzato dalla necessità di essere portato in memoria prima di poter essere eseguito?
Signup and view all the answers
Quale sezione memorizza i dati delle variabili utilizzate dal processo?
Quale sezione memorizza i dati delle variabili utilizzate dal processo?
Signup and view all the answers
Quale tra le seguenti affermazioni è vera riguardo al kernel mode?
Quale tra le seguenti affermazioni è vera riguardo al kernel mode?
Signup and view all the answers
Quale registro contiene lo stato del processore relativo a quando il processo è stato swappato l'ultima volta?
Quale registro contiene lo stato del processore relativo a quando il processo è stato swappato l'ultima volta?
Signup and view all the answers
Qual è la principale funzione della 'Process table entry'?
Qual è la principale funzione della 'Process table entry'?
Signup and view all the answers
Quale stato di processo indica che un processo è stato creato ma non è ancora pronto all'esecuzione?
Quale stato di processo indica che un processo è stato creato ma non è ancora pronto all'esecuzione?
Signup and view all the answers
Quale delle seguenti definizioni è corretta per il termine 'Preempted'?
Quale delle seguenti definizioni è corretta per il termine 'Preempted'?
Signup and view all the answers
Quali classi di scheduling in Linux si occupano dei processi real-time?
Quali classi di scheduling in Linux si occupano dei processi real-time?
Signup and view all the answers
Qual è il livello di priorità dei processi nella classe SCHED OTHER?
Qual è il livello di priorità dei processi nella classe SCHED OTHER?
Signup and view all the answers
Quale affermazione descrive meglio la preemption dei processi in Linux?
Quale affermazione descrive meglio la preemption dei processi in Linux?
Signup and view all the answers
Qual è la priorità di un processo di livello 0 in Linux?
Qual è la priorità di un processo di livello 0 in Linux?
Signup and view all the answers
Come viene gestita la sequenza di esecuzione tra le classi di scheduling in Linux?
Come viene gestita la sequenza di esecuzione tra le classi di scheduling in Linux?
Signup and view all the answers
Qual è uno svantaggio del round-robin quando si tratta di processi I/O bound?
Qual è uno svantaggio del round-robin quando si tratta di processi I/O bound?
Signup and view all the answers
Qual è la caratteristica principale del round-robin virtuale rispetto al round-robin semplice?
Qual è la caratteristica principale del round-robin virtuale rispetto al round-robin semplice?
Signup and view all the answers
In che modo il metodo Shortest Process Next (SPN) gestisce i processi lunghi?
In che modo il metodo Shortest Process Next (SPN) gestisce i processi lunghi?
Signup and view all the answers
Cosa indica il termine 'fairness' nel contesto del round-robin virtuale?
Cosa indica il termine 'fairness' nel contesto del round-robin virtuale?
Signup and view all the answers
Qual è il risultato di un uso inefficace del tempo in un sistema round-robin?
Qual è il risultato di un uso inefficace del tempo in un sistema round-robin?
Signup and view all the answers
Qual è la principale sfida nella stima del tempo di esecuzione nel metodo SPN?
Qual è la principale sfida nella stima del tempo di esecuzione nel metodo SPN?
Signup and view all the answers
Qual è la caratteristica principale dei processi CPU-bound nel round-robin?
Qual è la caratteristica principale dei processi CPU-bound nel round-robin?
Signup and view all the answers
Quale metodo può migliorare l'inefficienza della gestione di processi I/O bound nel round-robin tradizionale?
Quale metodo può migliorare l'inefficienza della gestione di processi I/O bound nel round-robin tradizionale?
Signup and view all the answers
Qual è la funzione principale delle wait queues in un sistema di scheduling?
Qual è la funzione principale delle wait queues in un sistema di scheduling?
Signup and view all the answers
Come varia la priorità di un processo nel sistema di scheduling di Linux?
Come varia la priorità di un processo nel sistema di scheduling di Linux?
Signup and view all the answers
Quale affermazione è corretta riguardo ai tipi di processi in Linux?
Quale affermazione è corretta riguardo ai tipi di processi in Linux?
Signup and view all the answers
Qual è la conseguenza se il timer interrupt in Linux è impostato su un intervallo maggiore di 1 ms?
Qual è la conseguenza se il timer interrupt in Linux è impostato su un intervallo maggiore di 1 ms?
Signup and view all the answers
Quale delle seguenti affermazioni descrive meglio il concetto di runqueues?
Quale delle seguenti affermazioni descrive meglio il concetto di runqueues?
Signup and view all the answers
Cosa accade ai processi real-time nel sistema di scheduling di Linux?
Cosa accade ai processi real-time nel sistema di scheduling di Linux?
Signup and view all the answers
Qual è il rischio di impostare il timer interrupt su un valore troppo corto?
Qual è il rischio di impostare il timer interrupt su un valore troppo corto?
Signup and view all the answers
Perché i processi batch sono penalizzati dallo scheduler di Linux?
Perché i processi batch sono penalizzati dallo scheduler di Linux?
Signup and view all the answers
Qual è l'obiettivo principale dello scheduling nel sistema operativo?
Qual è l'obiettivo principale dello scheduling nel sistema operativo?
Signup and view all the answers
Quale tipo di scheduling decide quali programmi possono essere eseguiti nel sistema?
Quale tipo di scheduling decide quali programmi possono essere eseguiti nel sistema?
Signup and view all the answers
Quale strategia di long-term scheduling viene utilizzata per i processi interattivi?
Quale strategia di long-term scheduling viene utilizzata per i processi interattivi?
Signup and view all the answers
Cosa caratterizza lo short-term scheduling nella gestione dei processi?
Cosa caratterizza lo short-term scheduling nella gestione dei processi?
Signup and view all the answers
Quale di questi criteri è considerato non prestazionale per lo short-term scheduling?
Quale di questi criteri è considerato non prestazionale per lo short-term scheduling?
Signup and view all the answers
Che cosa rappresenta il turnaround time in un processo?
Che cosa rappresenta il turnaround time in un processo?
Signup and view all the answers
Quale di queste affermazioni è vera riguardo al response time?
Quale di queste affermazioni è vera riguardo al response time?
Signup and view all the answers
Qual è il principale obiettivo dello short-term scheduling in un sistema operativo?
Qual è il principale obiettivo dello short-term scheduling in un sistema operativo?
Signup and view all the answers
Qual è una caratteristica del medium-term scheduling?
Qual è una caratteristica del medium-term scheduling?
Signup and view all the answers
Cosa significa evitare la starvation nei processi?
Cosa significa evitare la starvation nei processi?
Signup and view all the answers
Cosa rappresenta un'elevata predicibilità in un sistema operativo?
Cosa rappresenta un'elevata predicibilità in un sistema operativo?
Signup and view all the answers
Qual è l'obiettivo principale del throughput in un sistema operativo?
Qual è l'obiettivo principale del throughput in un sistema operativo?
Signup and view all the answers
Quale affermazione descrive meglio l'utilizzo del processore?
Quale affermazione descrive meglio l'utilizzo del processore?
Signup and view all the answers
Qual è uno degli aspetti da ottimizzare tramite lo scheduling?
Qual è uno degli aspetti da ottimizzare tramite lo scheduling?
Signup and view all the answers
Qual è la funzione principale dello scheduler in un sistema operativo?
Qual è la funzione principale dello scheduler in un sistema operativo?
Signup and view all the answers
Qual è uno dei vantaggi di un throughput elevato nel sistema?
Qual è uno dei vantaggi di un throughput elevato nel sistema?
Signup and view all the answers
Quale affermazione descrive meglio il principio di fair scheduling?
Quale affermazione descrive meglio il principio di fair scheduling?
Signup and view all the answers
Qual è il rischio associato ai processi a bassa priorità?
Qual è il rischio associato ai processi a bassa priorità?
Signup and view all the answers
Qual è una caratteristica del policy di scheduling preemptive?
Qual è una caratteristica del policy di scheduling preemptive?
Signup and view all the answers
Nel metodo FCFS, quale affermazione è vera?
Nel metodo FCFS, quale affermazione è vera?
Signup and view all the answers
Cosa rappresenta l'interruzione di clock nel sistema Round-Robin?
Cosa rappresenta l'interruzione di clock nel sistema Round-Robin?
Signup and view all the answers
Qual è il criterio essenziale nella gestione delle priorità per evitare la starvation?
Qual è il criterio essenziale nella gestione delle priorità per evitare la starvation?
Signup and view all the answers
Qual è il vantaggio dell'algoritmo Round-Robin?
Qual è il vantaggio dell'algoritmo Round-Robin?
Signup and view all the answers
Quale formula rappresenta l'exponential averaging per stimare il tempo di esecuzione?
Quale formula rappresenta l'exponential averaging per stimare il tempo di esecuzione?
Signup and view all the answers
Quale delle seguenti modalità di decisione consente a un processo di continuare fino alla sua conclusione?
Quale delle seguenti modalità di decisione consente a un processo di continuare fino alla sua conclusione?
Signup and view all the answers
In quale situazione un processo potrebbe diventare 'blocked'?
In quale situazione un processo potrebbe diventare 'blocked'?
Signup and view all the answers
Cosa caratterizza il metodo SRT (Shortest Remaining Time)?
Cosa caratterizza il metodo SRT (Shortest Remaining Time)?
Signup and view all the answers
Che cosa significa il termine 'time slicing' in un sistema Round-Robin?
Che cosa significa il termine 'time slicing' in un sistema Round-Robin?
Signup and view all the answers
In che modo HRRN (Highest Response Ratio Next) determina quale processo eseguire?
In che modo HRRN (Highest Response Ratio Next) determina quale processo eseguire?
Signup and view all the answers
Quale parametro è importante per la funzione di selezione di uno scheduler?
Quale parametro è importante per la funzione di selezione di uno scheduler?
Signup and view all the answers
Quale affermazione è vera riguardo all'assegnamento statico di processi in un'architettura multiprocessore?
Quale affermazione è vera riguardo all'assegnamento statico di processi in un'architettura multiprocessore?
Signup and view all the answers
Che effetto ha un tempo di preemption troppo breve in un processo?
Che effetto ha un tempo di preemption troppo breve in un processo?
Signup and view all the answers
Qual è il vantaggio principale dell'assegnamento dinamico di processi?
Qual è il vantaggio principale dell'assegnamento dinamico di processi?
Signup and view all the answers
Come funzionano le priorità nel sistema UNIX secondo la descrizione fornita?
Come funzionano le priorità nel sistema UNIX secondo la descrizione fornita?
Signup and view all the answers
Qual è una caratteristica dell'exponential averaging?
Qual è una caratteristica dell'exponential averaging?
Signup and view all the answers
Quale delle seguenti opzioni descrive correttamente un processo in uno stato 'blocked/suspend'?
Quale delle seguenti opzioni descrive correttamente un processo in uno stato 'blocked/suspend'?
Signup and view all the answers
Qual è il ruolo dell'esponential averaging nel contesto dello scheduling?
Qual è il ruolo dell'esponential averaging nel contesto dello scheduling?
Signup and view all the answers
Quale approccio è utilizzato nello scheduling tradizionale di UNIX?
Quale approccio è utilizzato nello scheduling tradizionale di UNIX?
Signup and view all the answers
Cosa indica il termine 'nice' nel contesto dello scheduling di UNIX?
Cosa indica il termine 'nice' nel contesto dello scheduling di UNIX?
Signup and view all the answers
Qual è una caratteristica degli scheduler in architetture multiprocessore?
Qual è una caratteristica degli scheduler in architetture multiprocessore?
Signup and view all the answers
Qual è uno svantaggio dell'assegnamento dinamico rispetto a quello statico?
Qual è uno svantaggio dell'assegnamento dinamico rispetto a quello statico?
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.
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.