Processi e Thread in UNIX

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

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. (D)</p> Signup and view all the answers

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

<p>Il PID del processo figlio. (A)</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 (B), Esclusivamente per problemi di sicurezza (C)</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 (B)</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 (C)</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 (A)</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 (A)</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. (D)</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. (C)</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. (B)</p> Signup and view all the answers

Quale risorsa non è condivisa tra i thread?

<p>Stack delle chiamate. (A)</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. (B)</p> Signup and view all the answers

Quale di questi elementi è assente nel Process Control Block?

<p>Immagine del terminale (C)</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 (A)</p> Signup and view all the answers

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

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

Cosa avviene durante la terminazione normale di un processo?

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

Quale affermazione riguardo alla traccia di un processo è corretta?

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

Cosa rappresenta l'operazione di 'process spawning'?

<p>Creazione di un nuovo processo da uno esistente (B)</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 (A)</p> Signup and view all the answers

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

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

Quando un processo viene spostato dalla CPU alla coda?

<p>Quando deve passare a un altro processo (B)</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. (B)</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à. (C)</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. (D)</p> Signup and view all the answers

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

<p>Lightweight process (C)</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. (C)</p> Signup and view all the answers

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

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

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

<p>Richiedono un passaggio al kernel per lo scheduling. (B), Possono essere bloccati senza influenzare altri thread. (C)</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. (C), Il TID corrisponde sempre al PID. (D)</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 (A)</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. (A)</p> Signup and view all the answers

Cosa rappresenta il 'Program counter' in un processo?

<p>L'indirizzo della prossima istruzione da eseguire. (A)</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 (C)</p> Signup and view all the answers

Quale sezione memorizza i dati delle variabili utilizzate dal processo?

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

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

<p>Non è appropriato per processi real-time. (C)</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 (B)</p> Signup and view all the answers

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

<p>Individuare il processo corrente e le relative informazioni. (D)</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 (B)</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. (B)</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 (B)</p> Signup and view all the answers

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

<p>Da 100 a 139 (A)</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. (A)</p> Signup and view all the answers

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

<p>È usata solo per casi particolari. (A)</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. (C)</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 (D)</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 (B)</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 (B)</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 (C)</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 (A)</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 (C)</p> Signup and view all the answers

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

<p>Sono favoriti nel round-robin (D)</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 (A)</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 (B)</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 (B)</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. (D)</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. (D)</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. (D)</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. (D)</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. (C)</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. (B)</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 (D)</p> Signup and view all the answers

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

<p>Long-term scheduling (B)</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 (C)</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 (C)</p> Signup and view all the answers

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

<p>Equità (B)</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 (C)</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 (A)</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 (B)</p> Signup and view all the answers

Qual è una caratteristica del medium-term scheduling?

<p>Può intervenire quando non ci sono nuovi processi (A)</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 (B)</p> Signup and view all the answers

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

<p>Tempi di risposta costanti e conosciuti (D)</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. (A)</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. (D)</p> Signup and view all the answers

Qual è uno degli aspetti da ottimizzare tramite lo scheduling?

<p>Il tempo di attesa dei processi (C)</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. (D)</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 (C)</p> Signup and view all the answers

Quale affermazione descrive meglio il principio di fair scheduling?

<p>Distribuire le risorse senza favoritismi (D)</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. (B)</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. (A)</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. (A)</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. (B)</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. (D)</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. (C)</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 (B)</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. (C)</p> Signup and view all the answers

In quale situazione un processo potrebbe diventare 'blocked'?

<p>Quando richiede risorse da input/output. (A)</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. (A)</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. (D)</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. (B)</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. (B)</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. (D)</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. (B)</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. (D)</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. (D)</p> Signup and view all the answers

Qual è una caratteristica dell'exponential averaging?

<p>Favorisce i valori più recenti rispetto a quelli passati. (C)</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. (C)</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. (B)</p> Signup and view all the answers

Quale approccio è utilizzato nello scheduling tradizionale di UNIX?

<p>Combinazione di priorità e round robin. (B)</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. (A)</p> Signup and view all the answers

Qual è una caratteristica degli scheduler in architetture multiprocessore?

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

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

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

Flashcards

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)

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

La sequenza di istruzioni eseguite da un processo. Rappresenta il comportamento del processo, come le istruzioni seguite in ordine.

Dispatcher

Un piccolo programma che fa parte del sistema operativo e che gestisce l'esecuzione dei processi, sospendendo un processo per farne partire un altro.

Signup and view all the flashcards

Modello dei Processi a 2 Stati

Un modello semplificato che rappresenta uno stato di un processo, in

Signup and view all the flashcards

Diagramma a Coda

Un diagramma che rappresenta il flusso dei processi tra la CPU e la coda dei processi, gestito dal dispatcher del sistema operativo. I processi vengono spostati tra la CPU e la coda fino a che un processo non viene completato.

Signup and view all the flashcards

Process Spawning

Un processo che crea un nuovo processo. Il processo originale è il processo padre e il nuovo processo è il processo figlio.

Signup and view all the flashcards

Terminazione di un Processo

Il processo di terminazione di un processo. Può avvenire per completamento normale o per cause anomale

Signup and view all the flashcards

Completamento Normale

Il processo di terminazione di un processo in modo ordinato, spesso tramite una system call.

Signup and view all the flashcards

Terminazione Anomala

Il processo di terminazione di un processo in modo anomalo, dovuto a errori o situazioni impreviste.

Signup and view all the flashcards

Uccisione di un processo dal SO

Un processo viene terminato a causa di un errore del sistema operativo, come ad esempio una mancanza di memoria, un errore di protezione, un'istruzione errata o un problema di input/output.

Signup and view all the flashcards

Uccisione di un processo dall'utente

Un processo viene terminato dall'utente, ad esempio chiudendo la finestra con la croce rossa.

Signup and view all the flashcards

Uccisione di un processo da un altro processo

Un processo viene terminato da un altro processo tramite l'invio di un segnale, ad esempio da un terminale.

Signup and view all the flashcards

Processi sospesi

Un processo viene spostato su disco per liberare memoria quando il processore è più veloce dell'input/output.

Signup and view all the flashcards

Stato blocked/suspend

Il processo viene spostato su disco quando è bloccato in attesa di I/O, creando uno nuovo stato: blocked/suspend.

Signup and view all the flashcards

Tabella delle regioni del processo

La tabella delle regioni del processo definisce il mapping tra indirizzi virtuali e indirizzi fisici (tabella di pagine). Indica anche i permessi di accesso per ogni indirizzo (lettura, scrittura, esecuzione).

Signup and view all the flashcards

Area U

L'area U contiene informazioni aggiuntive per il controllo del processo, come i registri del processo, l'ID del processo e lo stato del processo.

Signup and view all the flashcards

Stack del Kernel

Lo stack del Kernel è uno stack dedicato alle chiamate al sistema operativo. È separato dallo stack utente e viene usato per le funzioni che vengono eseguite in modalità sistema.

Signup and view all the flashcards

Chiamata di sistema fork()

La chiamata di sistema fork() crea un nuovo processo figlio con un PID univoco, copiando l'immagine del processo padre.

Signup and view all the flashcards

Stato Ready to Run

Il processo figlio, dopo essere stato creato, viene messo nello stato Ready to Run, pronto per essere eseguito dal sistema operativo.

Signup and view all the flashcards

User Running

Lo stato in cui un processo è in esecuzione in modalità utente.

Signup and view all the flashcards

Kernel Running

Lo stato in cui un processo è in esecuzione in modalità kernel o sistema.

Signup and view all the flashcards

Ready to Run, in Memory

Lo stato in cui un processo è pronto per l'esecuzione, ma non è ancora in esecuzione. È presente in memoria.

Signup and view all the flashcards

Asleep in Memory

Lo stato in cui un processo è in memoria, ma non è eseguibile finché un evento non lo attiva.

Signup and view all the flashcards

Ready to Run, Swapped

Lo stato in cui un processo è pronto per essere eseguito, ma non è in memoria. Deve prima essere portato in memoria per essere eseguito.

Signup and view all the flashcards

Sleeping, Swapped

Lo stato in cui un processo è in attesa di un evento per essere eseguito e non è in memoria.

Signup and view all the flashcards

Preempted

Lo stato in cui il kernel ha appena interrotto l'esecuzione del processo per dare spazio a un altro.

Signup and view all the flashcards

Created

Lo stato in cui un processo è stato appena creato, ma non è ancora pronto per essere eseguito.

Signup and view all the flashcards

Zombie

Lo stato di un processo che è terminato, ma rimane nelle tabelle dei processi finché il processo che l'ha creato non lo elimina.

Signup and view all the flashcards

Processo Unix

Un insieme di strutture dati che il sistema operativo usa per gestire i processi.

Signup and view all the flashcards

Cosa sono i thread?

Un'esecuzione in parallelo di una stessa applicazione, che suddivide il processo in diversi flussi di esecuzione indipendenti. Ogni thread condivide tutte le risorse del processo principale, ad eccezione dello stack di chiamate.

Signup and view all the flashcards

Cosa condividono i thread di uno stesso processo?

I thread di uno stesso processo condividono la memoria, i file e i dispositivi di I/O, ma ogni thread ha il suo proprio stack di chiamate, che contiene le variabili locali delle funzioni. Questo garantisce che i thread siano indipendenti in termini di esecuzione.

Signup and view all the flashcards

Cosa si intende per 'parallelizzare' un processo?

Un processo che si divide in diverse esecuzioni indipendenti che lavorano in parallelo per svolgere compiti specifici.

Signup and view all the flashcards

Qual è un esempio di applicazione che beneficia dell'uso dei thread?

Un processo multitasking, come un'applicazione grafica, che ha bisogno di diversi thread per svolgere attività come l'interazione con l'utente (gestire i click del mouse), il ridisegno della finestra e l'esecuzione di calcoli. Ogni thread si occupa di un compito specifico.

Signup and view all the flashcards

A cosa serve l'utilizzo dei thread in un programma?

L'utilizzo dei thread permette a un programma di migliorare le prestazioni dividendo il lavoro in parti più piccole che possono essere eseguite in parallelo. Questo consente un'elaborazione più veloce e un'esperienza utente più fluida.

Signup and view all the flashcards

Efficienza dei Thread

I thread sono più efficienti e facili da gestire rispetto ai processi. Sono più leggeri, richiedono meno risorse per crearli e distruggerli e permettono un passaggio di controllo più veloce tra di loro.

Signup and view all the flashcards

Condivisione delle Risorse nei Thread

I thread di uno stesso processo condividono lo stesso spazio di memoria. Se un thread acquisisce un dispositivo I/O, come un file, l'intero processo avrà accesso a quel file.

Signup and view all the flashcards

User Level Thread (ULT)

Le User Level Thread (ULT) sono thread gestiti a livello utente. Sono più veloci da gestire, ma se un thread si blocca, tutti i thread del processo si bloccano.

Signup and view all the flashcards

Kernel Level Thread (KLT)

Le Kernel Level Thread (KLT) sono thread gestiti a livello del kernel. Sono più lente da gestire, ma se un thread si blocca, solo quel thread si blocca.

Signup and view all the flashcards

Thread in Linux

Linux utilizza i Lightweight Process (LWP) come unità base per i thread. Il sistema può implementare sia ULT che KLT, con i KLT utilizzati principalmente dal sistema operativo e gli ULT utilizzati dai programmi utente.

Signup and view all the flashcards

Identificazione dei Thread in Linux

Un processo ha sempre un thread principale con il PID (Process ID) e altri thread che hanno ognuno un TID (Task ID) univoco. Il TID non è semplicemente un numero progressivo, ma è legato al PID.

Signup and view all the flashcards

Scheduling

Il processo di assegnazione di risorse del processore ai processi in esecuzione, gestendo il tempo dedicato ad ogni processo.

Signup and view all the flashcards

Scopo dello Scheduling

L'obiettivo è assegnare tempo di esecuzione ai processi in modo da ottimizzare le prestazioni del sistema e garantire un'equa distribuzione delle risorse.

Signup and view all the flashcards

Tipi di Scheduling

Si riferisce ai diversi tipi di scheduling, che si differenziano per il tipo di processo che gestiscono e il livello di dettaglio della pianificazione.

Signup and view all the flashcards

Long-Term Scheduling

Un processo che verifica quali programmi sono ammessi nel sistema per essere eseguiti. In genere si basa sul principio FIFO (First In First Out).

Signup and view all the flashcards

Medium-Term Scheduling

Il processo che gestisce lo spostamento dei processi tra la memoria secondaria e la memoria principale. È legato alla gestione della memoria virtuale.

Signup and view all the flashcards

Short-Term Scheduling

Il processo che decide quale dei processi pronti viene eseguito dal processore. Viene eseguito frequentemente e in seguito a eventi come interruzioni o segnali.

Signup and view all the flashcards

Criteri Utente per Scheduling

Criteri che riguardano la soddisfazione dell'utente, come il tempo di attesa per ricevere una risposta o la velocità di risposta del sistema.

Signup and view all the flashcards

Criteri di Sistema per Scheduling

Criteri che si focalizzano sulla performance del sistema in generale, come il throughput, l'utilizzo del processore e la gestione delle priorità.

Signup and view all the flashcards

Turnaround Time

Il tempo totale che un processo impiega dalla sua creazione fino al suo completamento. Include il tempo di attesa e i tempi di esecuzione.

Signup and view all the flashcards

Response Time

Il tempo che passa tra la richiesta di una computazione e la visualizzazione dell'output. È importante per i processi interattivi.

Signup and view all the flashcards

Throughput

Il volume di lavoro completato nel tempo. Indica l'efficienza del sistema nel gestire le richieste.

Signup and view all the flashcards

Processor Utilization

La percentuale di tempo in cui il processore è effettivamente in esecuzione. Indica l'utilizzo effettivo del processore.

Signup and view all the flashcards

Fairness

La capacità di gestire le richieste di diversi processi in modo equo, senza favorire alcuni processi rispetto ad altri.

Signup and view all the flashcards

Enforcing Priorities

La capacità di gestire processi con priorità diverse, garantendo un'adeguata attenzione ai processi con priorità più alta.

Signup and view all the flashcards

Utilizzo del processore

La percentuale di tempo in cui un processore è effettivamente in uso. Indica l'efficienza dell'utilizzo del processore.

Signup and view all the flashcards

Bilanciamento delle risorse

Ottimizzare l'utilizzo delle risorse del sistema, assicurando che i processi che richiedono meno risorse vengano favoriti.

Signup and view all the flashcards

Priorità

La capacità dello scheduler di dare priorità ai processi in base alla loro importanza, creando diverse code per differenti livelli di priorità.

Signup and view all the flashcards

Starvation

Un processo a bassa priorità potrebbe essere bloccato indefinitamente a causa di un processo a priorità più alta. La soluzione consiste nell'aumentare la priorità del processo in base alla sua età.

Signup and view all the flashcards

Funzione di selezione

Un processo che sceglie il processo successivo da eseguire.

Signup and view all the flashcards

Modalità di decisione

Definisce quando la funzione di selezione viene invocata.

Signup and view all the flashcards

Preemptive

Il sistema operativo può interrompere l'esecuzione di un processo anche se non è in attesa di un I/O o terminato.

Signup and view all the flashcards

Non-Preemptive

Un processo, una volta iniziato, continua a eseguire fino alla sua terminazione o fino a una richiesta di I/O.

Signup and view all the flashcards

FCFS (First Come First Served)

Una politica di scheduling che concede al processo che è arrivato per primo la possibilità di essere eseguito.

Signup and view all the flashcards

Round-Robin

Una politica di scheduling che suddivide equamente il tempo del processore tra tutti i processi.

Signup and view all the flashcards

Quanto di tempo

Il tempo che ogni processo può eseguire prima di essere interrotto per lasciare spazio agli altri processi. Dovrebbe essere leggermente superiore al tempo di interazione tipico.

Signup and view all the flashcards

Processo CPU-bound

Un tipo di processo che utilizza la maggior parte del suo tempo di esecuzione per elaborazioni complesse.

Signup and view all the flashcards

Processo I/O-bound

Un tipo di processo che passa la maggior parte del tempo in attesa di operazioni di input/output.

Signup and view all the flashcards

Round-robin virtuale

Una variante del Round-robin che assegna una priorità ai processi I/O-bound, permettento loro di entrare in esecuzione più rapidamente dopo aver completato un'operazione di input/output.

Signup and view all the flashcards

SPN (Shortest Process Next)

Un sistema di pianificazione dove il processo con il tempo di esecuzione più breve viene eseguito per primo.

Signup and view all the flashcards

Processo bloccato

Un processo che è bloccato in attesa di un evento o di una risorsa, come un file o un dispositivo.

Signup and view all the flashcards

Interruzione

Un evento che interrompe un processo in esecuzione, come un interrupt o un'eccezione.

Signup and view all the flashcards

Scheduling preemptive a priorità dinamica

È una forma di scheduling in cui i processi vengono selezionati per l'esecuzione in base a una priorità che può cambiare dinamicamente durante il loro ciclo di vita.

Signup and view all the flashcards

Timer interrupt

È un evento pianificato che interrompe l'esecuzione di un processo per dare la possibilità ad altri processi di essere eseguiti. Il kernel usa questo meccanismo per garantire un'equa allocazione delle risorse del processore tra diversi programmi.

Signup and view all the flashcards

Wait queue

Quando un processo viene messo in attesa, ad esempio perché sta aspettando un evento di input/output, viene messo in una speciale coda.

Signup and view all the flashcards

Runqueue

È una coda di processi che sono pronti per essere eseguiti, ma non hanno ancora ricevuto la CPU. Il dispatcher seleziona un processo da questa coda per assegnargli il processore.

Signup and view all the flashcards

Runqueue per processore

È un metodo di scheduling in cui ogni processore ha la sua runqueue indipendente. I processi possono essere trasferiti tra le diverse runqueue a seconda delle esigenze.

Signup and view all the flashcards

Processi interattivi

Sono processi che interagiscono con l'utente. Questi processi hanno alta priorità e devono ricevere una risposta veloce per un'esperienza utente fluida.

Signup and view all the flashcards

Processi batch

Sono processi che non interagiscono con l'utente. Hanno bassa priorità e non necessitano di una risposta immediata.

Signup and view all the flashcards

Dispatcher (short-term scheduler)

È un processo che decide quale processo deve eseguire il processore in un dato momento.

Signup and view all the flashcards

Classi di Scheduling in Linux

Le classi di scheduling SCHED_FIFO e SCHED_RR sono associate ai processi real-time. La classe SCHED_OTHER include tutti gli altri processi. Le versioni più recenti del kernel di Linux possono includere altre classi, ma noi ci concentriamo su queste tre.

Signup and view all the flashcards

Priorità di Scheduling

I processi con priorità più alta vengono eseguiti prima di quelli con priorità inferiore. Per esempio, i processi con priorità da 1 a 99 (SCHED_FIFO e SCHED_RR) sono eseguiti prima dei processi con priorità da 100 a 139 (SCHED_OTHER).

Signup and view all the flashcards

Processi Real-Time in Linux

I processi real-time sono quelli che richiedono un'esecuzione immediata e con una tempistica precisa. Il loro codice sorgente utilizza la chiamata di sistema sched_setscheduler per garantire la loro temporizzazione critica.

Signup and view all the flashcards

Processori CPU-bound e I/O-bound

Un processo può essere CPU-bound o I/O-bound. Un processo CPU-bound richiede un'elevata potenza di calcolo, mentre un processo I/O-bound implica principalmente operazioni di input/output.

Signup and view all the flashcards

Predizione con i Tempi Passati

Nella formula di stima del tempo di esecuzione, il valore passato (Ti) viene utilizzato per prevedere il valore futuro (Si). La formula include la somma ponderata dei valori passati per calcolare il valore futuro.

Signup and view all the flashcards

Media Esponenziale

La formula Sn+1 = αTn + (1 − α)Sn, con 0 < α < 1, è una media esponenziale che assegna pesi maggiori ai tempi di esecuzione più recenti. Questo permette di avere una stima più accurata del tempo di esecuzione futuro.

Signup and view all the flashcards

Coefficienti Exponential Averaging

Nell'Exponential Averaging, i pesi αTn e (1 − α)Sn, con 0 < α < 1, vengono assegnati ai tempi di esecuzione corrente Tn e al tempo di esecuzione stimato dell'intervallo precedente Sn, per calcolare la nuova stima Sn+1

Signup and view all the flashcards

Algoritmo SRT

L'algoritmo SRT (Shortest Remaining Time) è una variante dell'algoritmo SPN (Shortest Process Next), ma è preemptive. Questo significa che un processo può essere interrotto durante la sua esecuzione per dare la precedenza a un nuovo processo con tempo di esecuzione rimanente minore.

Signup and view all the flashcards

Algoritmo HRRN

L'algoritmo HRRN (Highest Response Ratio Next) si basa sul rapporto tra il tempo trascorso in attesa e il tempo totale richiesto per un processo. L'algoritmo sceglie il processo con il rapporto più alto, dando priorità a quei processi che hanno atteso più a lungo in relazione al loro tempo di esecuzione totale.

Signup and view all the flashcards

Scheduling Tradizionale di UNIX

Nel sistema operativo UNIX, lo scheduling tradizionale combina priorità e round robin. I processi hanno diversi livelli di priorità e vengono gestiti con il round robin all'interno di ciascuna coda di priorità. Le priorità vengono ricalcolate ogni secondo, dando feedback automatico ai processi in base al tempo di esecuzione.

Signup and view all the flashcards

Formula di Scheduling UNIX

La formula di scheduling in Unix calcola la priorità di un processo in base al suo utilizzo della CPU, al suo valore di base e al suo valore 'nice'. Il valore 'nice' può essere modificato manualmente per assegnare al processo una priorità più bassa.

Signup and view all the flashcards

Esempio di Scheduling su UNIX

L'esempio illustra la priorità di tre processi A, B e C con valori base e 'nice' uguali. La priorità dei processi cambia in base al loro utilizzo della CPU, con CPUj (i) incrementato ogni 60 secondi.

Signup and view all the flashcards

Architetture Multiprocessore

In un cluster multiprocessore, ogni processore ha la sua RAM e la comunicazione tra i processori avviene tramite una rete veloce. I processori specializzati sono dedicati a compiti specifici come l'I/O. I multi-processori/multi-core condividono la RAM e sono gestiti da un solo SO.

Signup and view all the flashcards

Assegnamento Statico

L'assegnamento statico di un processore a un processo avviene al momento della creazione e resta fisso per tutta la sua durata. Questo approccio è semplice e poco costoso, ma può lasciare alcuni processori inutilizzati.

Signup and view all the flashcards

Assegnamento Dinamico

L'assegnamento dinamico permette a un processo di cambiare processore durante la sua esecuzione. Questo approccio è più complesso ma consente un migliore utilizzo delle risorse. Il SO può essere eseguito su un processore fisso per semplicità o su un processore variabile per maggiore flessibilità.

Signup and view all the flashcards

Scheduling in Linux

Il sistema operativo Linux si basa su schedulazione con priorità ed è progettato per la velocità di esecuzione tramite la semplicità di implementazione. Non utilizza scheduler a lungo termine o a medio termine.

Signup and view all the flashcards

PCB (Process Control Bloc)

Process Control Block (PCB): una struttura dati che contiene tutte le informazioni relative a un processo.

Signup and view all the flashcards

Contesto di un Processo

Il contesto di un processo è l'insieme delle informazioni che definiscono lo stato di un processo nel momento in cui viene interrotto. Includono i registri della CPU, l'indirizzo del programma, l'indirizzo del dati, lo stack di chiamate.

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.

Quiz Team

Related Documents

Sistemi Operativi Modulo I PDF
Sistemi Operativi Modulo I PDF

More Like This

Use Quizgecko on...
Browser
Browser