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?
- exec()
- create()
- spawn()
- fork() (correct)
Cosa succede dopo la chiamata a fork() riguardo alla tabella dei processi?
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?
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?
Cosa indica la Process Region Table riguardo agli indirizzi virtuali?
Quando si chiama fork(), quale informazione viene restituita al processo padre?
Quando si chiama fork(), quale informazione viene restituita al processo padre?
Quali sono le motivazioni per sospendere un processo?
Quali sono le motivazioni per sospendere un processo?
Che cosa rappresenta lo stato 'blocked/suspend'?
Che cosa rappresenta lo stato 'blocked/suspend'?
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?
Qual è la definizione corretta dello stato 'suspended'?
Qual è la definizione corretta dello stato 'suspended'?
Quale affermazione è vera riguardo il passaggio da stati diversi a 'exit'?
Quale affermazione è vera riguardo il passaggio da stati diversi a 'exit'?
Cosa sono i thread in un processo?
Cosa sono i thread in un processo?
Quale delle seguenti affermazioni è vera riguardo all'esecuzione di processi e thread?
Quale delle seguenti affermazioni è vera riguardo all'esecuzione di processi e thread?
Perché è vantaggioso utilizzare thread in un'applicazione grafica?
Perché è vantaggioso utilizzare thread in un'applicazione grafica?
Quale risorsa non è condivisa tra i thread?
Quale risorsa non è condivisa tra i thread?
Quale affermazione è falsa riguardo alla competizione tra processi?
Quale affermazione è falsa riguardo alla competizione tra processi?
Quale di questi elementi è assente nel Process Control Block?
Quale di questi elementi è assente nel Process Control Block?
Qual è la funzione principale del dispatcher nel sistema operativo?
Qual è la funzione principale del dispatcher nel sistema operativo?
In quale stato si trova un processo che sta attivamente eseguendo istruzioni?
In quale stato si trova un processo che sta attivamente eseguendo istruzioni?
Cosa avviene durante la terminazione normale di un processo?
Cosa avviene durante la terminazione normale di un processo?
Quale affermazione riguardo alla traccia di un processo è corretta?
Quale affermazione riguardo alla traccia di un processo è corretta?
Cosa rappresenta l'operazione di 'process spawning'?
Cosa rappresenta l'operazione di 'process spawning'?
Qual è il ruolo del modello dei processi a 2 stati?
Qual è il ruolo del modello dei processi a 2 stati?
Quali informazioni NON sono associate al contesto hardware di un processo?
Quali informazioni NON sono associate al contesto hardware di un processo?
Quando un processo viene spostato dalla CPU alla coda?
Quando un processo viene spostato dalla CPU alla coda?
Cosa accade quando un thread acquisisce un dispositivo di I/O?
Cosa accade quando un thread acquisisce un dispositivo di I/O?
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)?
Qual è un svantaggio degli User Level Threads (ULT)?
Qual è un svantaggio degli User Level Threads (ULT)?
Qual è l'unità base dei thread in Linux?
Qual è l'unità base dei thread in Linux?
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?
Quali sono i diversi identificatori utilizzati in Linux per distinguere i thread?
Quali sono i diversi identificatori utilizzati in Linux per distinguere i thread?
Qual è una caratteristica dei Kernel Level Threads (KLT)?
Qual è una caratteristica dei Kernel Level Threads (KLT)?
Quale affermazione è vera riguardo ai thread in un processo Linux?
Quale affermazione è vera riguardo ai thread in un processo Linux?
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?
Quale delle seguenti affermazioni è vera riguardo al processo 'Zombie'?
Quale delle seguenti affermazioni è vera riguardo al processo 'Zombie'?
Cosa rappresenta il 'Program counter' in un processo?
Cosa rappresenta il 'Program counter' in un processo?
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?
Quale sezione memorizza i dati delle variabili utilizzate dal processo?
Quale sezione memorizza i dati delle variabili utilizzate dal processo?
Quale tra le seguenti affermazioni è vera riguardo al kernel mode?
Quale tra le seguenti affermazioni è vera riguardo al kernel mode?
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?
Qual è la principale funzione della 'Process table entry'?
Qual è la principale funzione della 'Process table entry'?
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?
Quale delle seguenti definizioni è corretta per il termine 'Preempted'?
Quale delle seguenti definizioni è corretta per il termine 'Preempted'?
Quali classi di scheduling in Linux si occupano dei processi real-time?
Quali classi di scheduling in Linux si occupano dei processi real-time?
Qual è il livello di priorità dei processi nella classe SCHED OTHER?
Qual è il livello di priorità dei processi nella classe SCHED OTHER?
Quale affermazione descrive meglio la preemption dei processi in Linux?
Quale affermazione descrive meglio la preemption dei processi in Linux?
Qual è la priorità di un processo di livello 0 in Linux?
Qual è la priorità di un processo di livello 0 in Linux?
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?
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?
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?
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?
Cosa indica il termine 'fairness' nel contesto del round-robin virtuale?
Cosa indica il termine 'fairness' nel contesto del round-robin virtuale?
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?
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?
Qual è la caratteristica principale dei processi CPU-bound nel round-robin?
Qual è la caratteristica principale dei processi CPU-bound nel round-robin?
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?
Qual è la funzione principale delle wait queues in un sistema di scheduling?
Qual è la funzione principale delle wait queues in un sistema di scheduling?
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?
Quale affermazione è corretta riguardo ai tipi di processi in Linux?
Quale affermazione è corretta riguardo ai tipi di processi in Linux?
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?
Quale delle seguenti affermazioni descrive meglio il concetto di runqueues?
Quale delle seguenti affermazioni descrive meglio il concetto di runqueues?
Cosa accade ai processi real-time nel sistema di scheduling di Linux?
Cosa accade ai processi real-time nel sistema di scheduling di Linux?
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?
Perché i processi batch sono penalizzati dallo scheduler di Linux?
Perché i processi batch sono penalizzati dallo scheduler di Linux?
Qual è l'obiettivo principale dello scheduling nel sistema operativo?
Qual è l'obiettivo principale dello scheduling nel sistema operativo?
Quale tipo di scheduling decide quali programmi possono essere eseguiti nel sistema?
Quale tipo di scheduling decide quali programmi possono essere eseguiti nel sistema?
Quale strategia di long-term scheduling viene utilizzata per i processi interattivi?
Quale strategia di long-term scheduling viene utilizzata per i processi interattivi?
Cosa caratterizza lo short-term scheduling nella gestione dei processi?
Cosa caratterizza lo short-term scheduling nella gestione dei processi?
Quale di questi criteri è considerato non prestazionale per lo short-term scheduling?
Quale di questi criteri è considerato non prestazionale per lo short-term scheduling?
Che cosa rappresenta il turnaround time in un processo?
Che cosa rappresenta il turnaround time in un processo?
Quale di queste affermazioni è vera riguardo al response time?
Quale di queste affermazioni è vera riguardo al response time?
Qual è il principale obiettivo dello short-term scheduling in un sistema operativo?
Qual è il principale obiettivo dello short-term scheduling in un sistema operativo?
Qual è una caratteristica del medium-term scheduling?
Qual è una caratteristica del medium-term scheduling?
Cosa significa evitare la starvation nei processi?
Cosa significa evitare la starvation nei processi?
Cosa rappresenta un'elevata predicibilità in un sistema operativo?
Cosa rappresenta un'elevata predicibilità in un sistema operativo?
Qual è l'obiettivo principale del throughput in un sistema operativo?
Qual è l'obiettivo principale del throughput in un sistema operativo?
Quale affermazione descrive meglio l'utilizzo del processore?
Quale affermazione descrive meglio l'utilizzo del processore?
Qual è uno degli aspetti da ottimizzare tramite lo scheduling?
Qual è uno degli aspetti da ottimizzare tramite lo scheduling?
Qual è la funzione principale dello scheduler in un sistema operativo?
Qual è la funzione principale dello scheduler in un sistema operativo?
Qual è uno dei vantaggi di un throughput elevato nel sistema?
Qual è uno dei vantaggi di un throughput elevato nel sistema?
Quale affermazione descrive meglio il principio di fair scheduling?
Quale affermazione descrive meglio il principio di fair scheduling?
Qual è il rischio associato ai processi a bassa priorità ?
Qual è il rischio associato ai processi a bassa priorità ?
Qual è una caratteristica del policy di scheduling preemptive?
Qual è una caratteristica del policy di scheduling preemptive?
Nel metodo FCFS, quale affermazione è vera?
Nel metodo FCFS, quale affermazione è vera?
Cosa rappresenta l'interruzione di clock nel sistema Round-Robin?
Cosa rappresenta l'interruzione di clock nel sistema Round-Robin?
Qual è il criterio essenziale nella gestione delle priorità per evitare la starvation?
Qual è il criterio essenziale nella gestione delle priorità per evitare la starvation?
Qual è il vantaggio dell'algoritmo Round-Robin?
Qual è il vantaggio dell'algoritmo Round-Robin?
Quale formula rappresenta l'exponential averaging per stimare il tempo di esecuzione?
Quale formula rappresenta l'exponential averaging per stimare il tempo di esecuzione?
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?
In quale situazione un processo potrebbe diventare 'blocked'?
In quale situazione un processo potrebbe diventare 'blocked'?
Cosa caratterizza il metodo SRT (Shortest Remaining Time)?
Cosa caratterizza il metodo SRT (Shortest Remaining Time)?
Che cosa significa il termine 'time slicing' in un sistema Round-Robin?
Che cosa significa il termine 'time slicing' in un sistema Round-Robin?
In che modo HRRN (Highest Response Ratio Next) determina quale processo eseguire?
In che modo HRRN (Highest Response Ratio Next) determina quale processo eseguire?
Quale parametro è importante per la funzione di selezione di uno scheduler?
Quale parametro è importante per la funzione di selezione di uno scheduler?
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?
Che effetto ha un tempo di preemption troppo breve in un processo?
Che effetto ha un tempo di preemption troppo breve in un processo?
Qual è il vantaggio principale dell'assegnamento dinamico di processi?
Qual è il vantaggio principale dell'assegnamento dinamico di processi?
Come funzionano le priorità nel sistema UNIX secondo la descrizione fornita?
Come funzionano le priorità nel sistema UNIX secondo la descrizione fornita?
Qual è una caratteristica dell'exponential averaging?
Qual è una caratteristica dell'exponential averaging?
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'?
Qual è il ruolo dell'esponential averaging nel contesto dello scheduling?
Qual è il ruolo dell'esponential averaging nel contesto dello scheduling?
Quale approccio è utilizzato nello scheduling tradizionale di UNIX?
Quale approccio è utilizzato nello scheduling tradizionale di UNIX?
Cosa indica il termine 'nice' nel contesto dello scheduling di UNIX?
Cosa indica il termine 'nice' nel contesto dello scheduling di UNIX?
Qual è una caratteristica degli scheduler in architetture multiprocessore?
Qual è una caratteristica degli scheduler in architetture multiprocessore?
Qual è uno svantaggio dell'assegnamento dinamico rispetto a quello statico?
Qual è uno svantaggio dell'assegnamento dinamico rispetto a quello statico?
Flashcards
Elementi di un Processo
Elementi di un Processo
Un insieme di informazioni associate a un processo in esecuzione, tra cui identificatore, stato, priorità , contesto hardware, puntatori alla memoria, informazioni I/O e informazioni di accounting.
Process Control Block (PCB)
Process Control Block (PCB)
Una struttura di dati che contiene gli elementi di un processo. Viene creata e gestita dal sistema operativo per permettere la gestione simultanea di più processi.
Traccia di un Processo
Traccia di un Processo
La sequenza di istruzioni eseguite da un processo. Rappresenta il comportamento del processo, come le istruzioni seguite in ordine.
Dispatcher
Dispatcher
Signup and view all the flashcards
Modello dei Processi a 2 Stati
Modello dei Processi a 2 Stati
Signup and view all the flashcards
Diagramma a Coda
Diagramma a Coda
Signup and view all the flashcards
Process Spawning
Process Spawning
Signup and view all the flashcards
Terminazione di un Processo
Terminazione di un Processo
Signup and view all the flashcards
Completamento Normale
Completamento Normale
Signup and view all the flashcards
Terminazione Anomala
Terminazione Anomala
Signup and view all the flashcards
Uccisione di un processo dal SO
Uccisione di un processo dal SO
Signup and view all the flashcards
Uccisione di un processo dall'utente
Uccisione di un processo dall'utente
Signup and view all the flashcards
Uccisione di un processo da un altro processo
Uccisione di un processo da un altro processo
Signup and view all the flashcards
Processi sospesi
Processi sospesi
Signup and view all the flashcards
Stato blocked/suspend
Stato blocked/suspend
Signup and view all the flashcards
Tabella delle regioni del processo
Tabella delle regioni del processo
Signup and view all the flashcards
Area U
Area U
Signup and view all the flashcards
Stack del Kernel
Stack del Kernel
Signup and view all the flashcards
Chiamata di sistema fork()
Chiamata di sistema fork()
Signup and view all the flashcards
Stato Ready to Run
Stato Ready to Run
Signup and view all the flashcards
User Running
User Running
Signup and view all the flashcards
Kernel Running
Kernel Running
Signup and view all the flashcards
Ready to Run, in Memory
Ready to Run, in Memory
Signup and view all the flashcards
Asleep in Memory
Asleep in Memory
Signup and view all the flashcards
Ready to Run, Swapped
Ready to Run, Swapped
Signup and view all the flashcards
Sleeping, Swapped
Sleeping, Swapped
Signup and view all the flashcards
Preempted
Preempted
Signup and view all the flashcards
Created
Created
Signup and view all the flashcards
Zombie
Zombie
Signup and view all the flashcards
Processo Unix
Processo Unix
Signup and view all the flashcards
Cosa sono i thread?
Cosa sono i thread?
Signup and view all the flashcards
Cosa condividono i thread di uno stesso processo?
Cosa condividono i thread di uno stesso processo?
Signup and view all the flashcards
Cosa si intende per 'parallelizzare' un processo?
Cosa si intende per 'parallelizzare' un processo?
Signup and view all the flashcards
Qual è un esempio di applicazione che beneficia dell'uso dei thread?
Qual è un esempio di applicazione che beneficia dell'uso dei thread?
Signup and view all the flashcards
A cosa serve l'utilizzo dei thread in un programma?
A cosa serve l'utilizzo dei thread in un programma?
Signup and view all the flashcards
Efficienza dei Thread
Efficienza dei Thread
Signup and view all the flashcards
Condivisione delle Risorse nei Thread
Condivisione delle Risorse nei Thread
Signup and view all the flashcards
User Level Thread (ULT)
User Level Thread (ULT)
Signup and view all the flashcards
Kernel Level Thread (KLT)
Kernel Level Thread (KLT)
Signup and view all the flashcards
Thread in Linux
Thread in Linux
Signup and view all the flashcards
Identificazione dei Thread in Linux
Identificazione dei Thread in Linux
Signup and view all the flashcards
Scheduling
Scheduling
Signup and view all the flashcards
Scopo dello Scheduling
Scopo dello Scheduling
Signup and view all the flashcards
Tipi di Scheduling
Tipi di Scheduling
Signup and view all the flashcards
Long-Term Scheduling
Long-Term Scheduling
Signup and view all the flashcards
Medium-Term Scheduling
Medium-Term Scheduling
Signup and view all the flashcards
Short-Term Scheduling
Short-Term Scheduling
Signup and view all the flashcards
Criteri Utente per Scheduling
Criteri Utente per Scheduling
Signup and view all the flashcards
Criteri di Sistema per Scheduling
Criteri di Sistema per Scheduling
Signup and view all the flashcards
Turnaround Time
Turnaround Time
Signup and view all the flashcards
Response Time
Response Time
Signup and view all the flashcards
Throughput
Throughput
Signup and view all the flashcards
Processor Utilization
Processor Utilization
Signup and view all the flashcards
Fairness
Fairness
Signup and view all the flashcards
Enforcing Priorities
Enforcing Priorities
Signup and view all the flashcards
Utilizzo del processore
Utilizzo del processore
Signup and view all the flashcards
Bilanciamento delle risorse
Bilanciamento delle risorse
Signup and view all the flashcards
PrioritÃ
PrioritÃ
Signup and view all the flashcards
Starvation
Starvation
Signup and view all the flashcards
Funzione di selezione
Funzione di selezione
Signup and view all the flashcards
Modalità di decisione
Modalità di decisione
Signup and view all the flashcards
Preemptive
Preemptive
Signup and view all the flashcards
Non-Preemptive
Non-Preemptive
Signup and view all the flashcards
FCFS (First Come First Served)
FCFS (First Come First Served)
Signup and view all the flashcards
Round-Robin
Round-Robin
Signup and view all the flashcards
Quanto di tempo
Quanto di tempo
Signup and view all the flashcards
Processo CPU-bound
Processo CPU-bound
Signup and view all the flashcards
Processo I/O-bound
Processo I/O-bound
Signup and view all the flashcards
Round-robin virtuale
Round-robin virtuale
Signup and view all the flashcards
SPN (Shortest Process Next)
SPN (Shortest Process Next)
Signup and view all the flashcards
Processo bloccato
Processo bloccato
Signup and view all the flashcards
Interruzione
Interruzione
Signup and view all the flashcards
Scheduling preemptive a priorità dinamica
Scheduling preemptive a priorità dinamica
Signup and view all the flashcards
Timer interrupt
Timer interrupt
Signup and view all the flashcards
Wait queue
Wait queue
Signup and view all the flashcards
Runqueue
Runqueue
Signup and view all the flashcards
Runqueue per processore
Runqueue per processore
Signup and view all the flashcards
Processi interattivi
Processi interattivi
Signup and view all the flashcards
Processi batch
Processi batch
Signup and view all the flashcards
Dispatcher (short-term scheduler)
Dispatcher (short-term scheduler)
Signup and view all the flashcards
Classi di Scheduling in Linux
Classi di Scheduling in Linux
Signup and view all the flashcards
Priorità di Scheduling
Priorità di Scheduling
Signup and view all the flashcards
Processi Real-Time in Linux
Processi Real-Time in Linux
Signup and view all the flashcards
Processori CPU-bound e I/O-bound
Processori CPU-bound e I/O-bound
Signup and view all the flashcards
Predizione con i Tempi Passati
Predizione con i Tempi Passati
Signup and view all the flashcards
Media Esponenziale
Media Esponenziale
Signup and view all the flashcards
Coefficienti Exponential Averaging
Coefficienti Exponential Averaging
Signup and view all the flashcards
Algoritmo SRT
Algoritmo SRT
Signup and view all the flashcards
Algoritmo HRRN
Algoritmo HRRN
Signup and view all the flashcards
Scheduling Tradizionale di UNIX
Scheduling Tradizionale di UNIX
Signup and view all the flashcards
Formula di Scheduling UNIX
Formula di Scheduling UNIX
Signup and view all the flashcards
Esempio di Scheduling su UNIX
Esempio di Scheduling su UNIX
Signup and view all the flashcards
Architetture Multiprocessore
Architetture Multiprocessore
Signup and view all the flashcards
Assegnamento Statico
Assegnamento Statico
Signup and view all the flashcards
Assegnamento Dinamico
Assegnamento Dinamico
Signup and view all the flashcards
Scheduling in Linux
Scheduling in Linux
Signup and view all the flashcards
PCB (Process Control Bloc)
PCB (Process Control Bloc)
Signup and view all the flashcards
Contesto di un Processo
Contesto di un Processo
Signup and view all the flashcards
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.