Sistemi Operativi - 03: Processi
41 Questions
1 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quale stato indica che un processo è appena nato nel sistema?

  • Running
  • Waiting
  • Ready (to Run)
  • New (correct)
  • Un processo può esistere senza mai essere stato avviato da un altro processo.

    False (B)

    Quali sono i cinque stati in cui può trovarsi un processo?

    New, Ready (to Run), Running, Waiting, Terminated

    Quando un processo è in stato '________', la CPU sta eseguendo il codice del processo.

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

    Cosa implica lo stato 'Waiting' per un processo?

    <p>Il processo ha lasciato la CPU per attendere un evento. (D)</p> Signup and view all the answers

    Abbina i seguenti stati del processo con la loro descrizione:

    <p>New = Il processo è pronto per entrare in esecuzione. Ready (to Run) = Il SO sta allestendo le strutture dati per il processo. Running = La CPU sta eseguendo il codice del processo. Waiting = Il processo attende il completamento di un evento.</p> Signup and view all the answers

    Che significato ha eliminare l’arco 'interrupt' nel diagramma di transizione degli stati di un processo?

    <p>Elimina la possibilità che un processo possa essere interrotto da un evento esterno.</p> Signup and view all the answers

    Quale chiamata di sistema viene generalmente utilizzata per terminare un processo?

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

    Un processo può essere terminato solo se è morto il suo processo padre.

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

    Quali sono le due categorie principali di processi basate sulle loro interazioni?

    <p>Indipendenti e cooperanti.</p> Signup and view all the answers

    In un sistema operativo, i processi cooperanti necessitano di meccanismi di ______ e ______.

    <p>comunicazione, sincronizzazione</p> Signup and view all the answers

    Abbina i seguenti termini secondo il loro significato:

    <p>exit() = Chiamata di sistema per terminare un processo kill() = Chiamata di sistema per uccidere un altro processo ram = Memoria utilizzata da un processo buffer = Spazio limitato per informazioni prodotte e consumate</p> Signup and view all the answers

    Quale delle seguenti affermazioni descrive meglio il concetto di 'cambio di contesto'?

    <p>Un'operazione che richiede tempo per passare da un processo all'altro. (C)</p> Signup and view all the answers

    Il cambio di contesto non influisce sulle prestazioni del sistema.

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

    Qual è il costo di un cambio di contesto in termini di tempo?

    <p>Da qualche centinaio di nanosecondi a qualche microsecondo.</p> Signup and view all the answers

    La coda dei processi pronta per l'esecuzione è conosciuta come _______.

    <p>ready queue</p> Signup and view all the answers

    Abbina le seguenti code di processi con la loro descrizione:

    <p>Device queues = Code di processi in attesa per l'uso di un dispositivo di I/O Waiting queues = Code di processi in attesa di un certo evento Ready queue = Insieme dei processi pronti a essere eseguiti</p> Signup and view all the answers

    Cos'è un 'overhead' nel contesto del cambio di contesto?

    <p>Il tempo sprecato durante l'esecuzione del cambio di contesto. (C)</p> Signup and view all the answers

    Un processo in attesa di un dispositivo di I/O è inserito nella ready queue.

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

    Qual è il ruolo del sistema operativo nella gestione dei processi?

    <p>Gestire varie code di processi.</p> Signup and view all the answers

    Quando un processo rilascia la CPU, ma non termina, il SO lo 'parcheggia' in _______.

    <p>code di attesa o waiting queues</p> Signup and view all the answers

    Qual è il compito principale del CPU Scheduler?

    <p>Sceglie un processo dalla coda di ready e lo manda in esecuzione (C)</p> Signup and view all the answers

    Il CPU Scheduler si attiva ogni 1000 millisecondi.

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

    Quali sono le due principali code associate allo stato 'waiting' di un processo?

    <p>device queues e waiting queues</p> Signup and view all the answers

    Il CPU scheduler è anche chiamato __________.

    <p>Short Term Scheduler</p> Signup and view all the answers

    Abbina la seguente terminologia di scheduling con le loro descrizioni:

    <p>Device queues = Code di attesa per operazioni di I/O Waiting queues = Code di attesa per eventi CPU Scheduler = Sceglie i processi da eseguire Time sharing = Condivisione del tempo tra più processi</p> Signup and view all the answers

    Quale affermazione sui processi è corretta?

    <p>I processi si spostano tra le varie code durante la loro vita (A)</p> Signup and view all the answers

    Le code di scheduling non influenzano le prestazioni del sistema.

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

    Cosa influisce sull'effetto di time sharing nel CPU Scheduler?

    <p>La frequenza con cui il CPU Scheduler si attiva</p> Signup and view all the answers

    Il CPU Scheduler deve essere molto __________ per limitare l'overhead.

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

    Cosa rappresenta lo stato di 'terminated' nel diagramma di transizione degli stati di un processo?

    <p>Un processo che è stato completato (A)</p> Signup and view all the answers

    Qual è il compito principale del sistema operativo durante la creazione di un processo?

    <p>Assegna un identificatore del processo unico (A)</p> Signup and view all the answers

    Il processo padre si ferma sempre dopo aver generato un processo figlio.

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

    Quale termine descrive il processo creato da un altro processo?

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

    Il processo creato da un processo padre è chiamato processo ___.

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

    Abbina i seguenti termini con le loro definizioni:

    <p>Processo padre = Genera un nuovo processo Processo figlio = Un processo creato da un altro pid = Identificatore del processo unico PCB = Struttura dati per il controllo del processo</p> Signup and view all the answers

    Cosa fa il sistema operativo dopo la creazione di un processo?

    <p>Inserisce il PCB in coda di ready (C)</p> Signup and view all the answers

    Ogni processo può creare al massimo un processo figlio.

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

    Quali sono le due scelte implementative principali nella creazione di un processo figlio?

    <p>Il processo padre può proseguire o fermarsi; il figlio può avere una copia del codice o eseguire un nuovo programma.</p> Signup and view all the answers

    Il processo che crea altri processi viene definito processo ___.

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

    Abbina i seguenti concetti con le loro descrizioni:

    <p>Processo padre = Crea uno o più processi figli Coda di ready = Luogo dove i processi sono pronti per essere eseguiti System Call = Funzione per richiedere servizi dal sistema operativo Albero di processi = Struttura gerarchica di processi</p> Signup and view all the answers

    Flashcards

    Stato New

    Un nuovo processo viene creato in questo stato. Il sistema operativo (SO) sta preparando le strutture dati necessarie per gestirlo.

    Stato Ready

    Il processo è pronto per essere eseguito. Aspetta il suo turno per accedere alla CPU.

    Stato Running

    Il processo sta eseguendo il codice e utilizzando la CPU per eseguire le sue istruzioni.

    Stato Waiting

    Il processo è in attesa che si verifichi un evento per poter proseguire l'esecuzione. Ad esempio, potrebbe essere in attesa di input da un dispositivo o di un altro processo.

    Signup and view all the flashcards

    Stato Terminated

    Il processo ha terminato l'esecuzione e il SO sta liberando le risorse che erano state occupate dal processo.

    Signup and view all the flashcards

    Diagramma di Transizione degli Stati di un Processo

    Un diagramma di transizione degli stati dimostra come i processi possono passare da uno stato a un altro durante la loro vita. Il diagramma mostra le possibili transizioni tra gli stati di un processo, ad esempio da 'Ready' a 'Running' o da 'Running' a 'Waiting'.

    Signup and view all the flashcards

    Un processo nasce sempre da un altro processo.

    La creazione di un processo a partire da un altro processo viene sempre gestita dal SO. Questo significa che un nuovo processo non nasce da solo, ma ha bisogno dell'intervento del SO per essere creato e gestito.

    Signup and view all the flashcards

    Cambio di Contesto (Context Switch)

    L'operazione di scrittura nel PC e nella CPU dei valori contenuti nel PCB del processo scelto per l'esecuzione.

    Signup and view all the flashcards

    Tempo del Context Switch

    Tempo necessario per eseguire un context switch. Include la scrittura dei dati del processo corrente e la lettura dei dati del nuovo processo.

    Signup and view all the flashcards

    Coda di Scheduling

    Una lista di PCB organizzata in base allo stato del processo.

    Signup and view all the flashcards

    Ready Queue (RQ)

    La coda più importante, contiene i processi pronti per essere eseguiti.

    Signup and view all the flashcards

    Code di Waiting

    Coda che contiene i processi in attesa di un evento specifico.

    Signup and view all the flashcards

    Device Queues

    Coda che contiene i processi in attesa di utilizzare un dispositivo di Input/Output.

    Signup and view all the flashcards

    Contesto di un Processo

    L'insieme di informazioni che descrivono lo stato di un processo, incluso il registro della CPU, la memoria e i file aperti.

    Signup and view all the flashcards

    Overhead del Context Switch

    Il tempo sprecato durante un context switch, che non è dedicato all'esecuzione di programmi.

    Signup and view all the flashcards

    Processo in Stato di Waiting

    Un processo che aspetta che un evento si verifichi prima di poter continuare la sua esecuzione.

    Signup and view all the flashcards

    Creazione di un processo

    La creazione di un nuovo processo è un'operazione fondamentale in qualsiasi sistema operativo.

    Signup and view all the flashcards

    System Call di creazione processi

    Ogni sistema operativo ha almeno una chiamata di sistema (system call) per creare un nuovo processo.

    Signup and view all the flashcards

    Processo padre

    Un processo che crea un nuovo processo è chiamato processo padre o parent.

    Signup and view all the flashcards

    Processo figlio

    Un nuovo processo creato da un altro processo è chiamato processo figlio o child.

    Signup and view all the flashcards

    Albero di processi

    L'insieme dei processi e delle relazioni tra loro forma un albero di processi.

    Signup and view all the flashcards

    PID (Process ID)

    Ogni processo ha un identificatore unico, chiamato PID (Process ID), per essere riconosciuto dal sistema operativo.

    Signup and view all the flashcards

    Coda di ready

    Quando un nuovo processo viene creato, il sistema operativo lo inserisce nella coda di ready, pronto per essere avviato.

    Signup and view all the flashcards

    Comportamento del processo padre

    Un processo padre può scegliere di continuare l'esecuzione in parallelo al processo figlio, oppure di sospendere la propria esecuzione fino al completamento del figlio.

    Signup and view all the flashcards

    Eredità del codice e dei dati dal processo padre

    Quando un nuovo processo viene creato, il sistema operativo può utilizzare una copia del codice e dei dati del processo padre, oppure assegnare un nuovo codice e dati.

    Signup and view all the flashcards

    Flessibilità nella creazione di processi

    Le system call dei moderni sistemi operativi offrono una vasta flessibilità nella creazione di nuovi processi, consentendo di configurare diversi aspetti del processo figlio.

    Signup and view all the flashcards

    Valore di ritorno della fork()

    Il valore restituito dalla fork() indica il PID (Process ID) del processo figlio se la chiamata è andata a buon fine nel processo padre, mentre restituisce 0 nel processo figlio. Questo valore può essere utilizzato per distinguere tra padre e figlio e permettere loro di eseguire compiti diversi.

    Signup and view all the flashcards

    Terminazione di un processo

    Un processo termina quando esegue l'ultima istruzione del suo codice. La system call exit() termina esplicitamente un processo. Il sistema operativo recupera le risorse (memoria, file aperti) del processo terminato.

    Signup and view all the flashcards

    Uccisione di un processo

    La system call kill() (Unix) o TerminateProcess() (Win32) permette a un processo di terminare un altro processo (di solito dello stesso utente). Questo è uno strumento di controllo sui processi.

    Signup and view all the flashcards

    Processi indipendenti e cooperanti

    Processi indipendenti non si influenzano l'un l'altro durante la loro esecuzione, mentre processi cooperanti si influenzano per condividere informazioni o eseguire elaborazioni in modo coordinato. La cooperazione richiede meccanismi di comunicazione e sincronizzazione.

    Signup and view all the flashcards

    Problema del produttore-consumatore

    Un processo produttore crea dati che vengono utilizzati da un processo consumatore. Il processo produttore inserisce i dati in un buffer, mentre il processo consumatore li estrae. Questo modello rappresenta un problema classico di interazione tra processi.

    Signup and view all the flashcards

    Code di processi

    Le code sono fondamentali per gestire i processi. Quando un processo è in attesa di un evento, viene inserito in una coda specifica.

    Signup and view all the flashcards

    Code di I/O

    Le code di I/O servono per gestire i processi in attesa del completamento di un'operazione di I/O.

    Signup and view all the flashcards

    Code di attesa

    Le code di attesa vengono utilizzate per gestire i processi che aspettano il verificarsi di un evento specifico.

    Signup and view all the flashcards

    Transizione dallo stato "running" a "waiting"

    Un processo può passare dallo stato "running" allo stato "waiting" per diversi motivi, come l'attesa di un evento o l'attesa di un I/O.

    Signup and view all the flashcards

    CPU scheduler

    Il CPU scheduler è un componente del sistema operativo che seleziona un processo dalla coda "ready" per eseguirlo sul processore.

    Signup and view all the flashcards

    Frequenza di attivazione dello scheduler

    Lo scheduler si attiva ogni 50/100 millisecondi.

    Signup and view all the flashcards

    Velocità dello scheduler

    Lo scheduler deve essere molto veloce per limitare l'overhead del sistema.

    Signup and view all the flashcards

    Criteri di scelta dello scheduler

    Lo scheduler usa criteri per scegliere quale processo eseguire, ad esempio, la priorità del processo.

    Signup and view all the flashcards

    Study Notes

    Gestione dei Processi

    • I processi sono l'unità di base del lavoro del sistema operativo. Il sistema operativo gestisce la creazione, la cancellazione e lo scheduling dei processi, oltre ai meccanismi di sincronizzazione e comunicazione.
    • Un processo è più di un semplice programma, possedendo una struttura in memoria primaria suddivisa in parti: codice da eseguire, dati, stack (per chiamate a procedure e parametri) e heap (memoria dinamica).
    • L'immagine del processo è la combinazione di codice, dati, stack e heap.
    • I processi possono condividere lo stesso codice, ma un processo è un'entità attiva, mentre un programma è statica.
    • Un programma lanciato due volte può generare processi diversi.
    • Processi, task e job sono termini sinonimi.
    • Un programma si trasforma in un processo quando lanciato (doppio click o riga di comando).
    • I processi nascono da altri processi tramite system call.

    Stato del Processo

    • Un processo attraversa diversi stati durante la sua esistenza (nuovo, ammesso, in attesa, pronto, in esecuzione, terminato).
    • Lo stato di un processo evolve in base al codice eseguito e alle azioni del sistema operativo in ogni dato istante.
    • Il diagramma delle transizioni di stato di un processo mostra come lo stato di un processo cambia. Gli stati sono: nuovo, ammesso, in attesa, pronto, in esecuzione, terminato.
    • Gli stati in cui un processo può trovarsi sono: Nuovo, Pronto (to Run), In Esecuzione, In Attesa, Terminato.

    Process Control Block (PCB)

    • Ogni processo ha un PCB che contiene informazioni essenziali per gestire la sua vita.
    • Le informazioni nel PCB includono il numero del processo, il suo stato, i registri della CPU (nel momento in cui il processo è stato sospeso), gli indirizzi in RAM, i file e dispositivi I/O correlati e le informazioni per lo scheduling della CPU (tempo CPU usato).

    Scheduling dei Processi

    • La multiprogrammazione garantisce un utilizzo massimo della CPU.
    • Il Time Sharing distribuisce l'uso della CPU tra processi a intervalli prefissati.
    • Lo scheduling è il processo attraverso cui il sistema operativo decide quale processo dovrà utilizzare la CPU in un dato momento.

    Cambio di Contesto (Context Switch)

    • Il cambio di contesto è un processo necessario per commutare la CPU da un processo all'altro in un sistema time-sharing.
    • Il cambio di contesto è un'operazione che riprende il controllo della CPU, salva lo stato del processo corrente e carica lo stato del processo successivo che riceverà la CPU.
    • Il tempo impiegato per il cambio di contesto crea un overhead per il sistema e influenza le prestazioni.

    Code di Scheduling

    • Il sistema operativo gestisce diverse code di processi.
    • La coda di ready contiene processi pronti per l'esecuzione.
    • La coda di ready coincide con lo stato Ready nel diagramma degli stati del processo.
    • Ci sono altre code che gestiscono processo in attesa, output device, eventi, ecc.

    Operazioni sui Processi

    • La creazione di un processo è un'operazione critica.
    • Ogni sistema operativo ha una o più System call per la creazione di processi.
    • Un processo crea un altro processo utilizzando una system call.
    • Dopo la creazione di un nuovo processo, i suoi dati e il codice sono copiati ad esso, che è ora un processo indipendente.

    Terminazione del Processo

    • Il processo termina dopo l'esecuzione del suo ultimo istruzione.
    • Ci sono system call (es. exit) per terminare i processi.
    • Il sistema operativo rimuove le risorse allocate al processo terminato, in particolare le parti di RAM e i file aperti.
    • Un processo può essere terminato esplicitamente da un altro processo o dal sistema operativo.

    Comunicazione tra processi (IPC)

    • I processi che cooperano si scambiano informazioni.
    • Il sistema operativo mette a disposizione meccanismi di comunicazione tra processi.
    • I meccanismi principali sono la memoria condivisa e lo scambio di messaggi.
    • La memoria condivisa permette a processi di leggere scrivere dati nella stessa area in memoria. Le system call sono usate per questo
    • Lo scambio di messaggi impiega code di messaggi per la comunicazione.

    Studying That Suits You

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

    Quiz Team

    Related Documents

    Gestione dei Processi PDF

    Description

    Esplora la gestione dei processi nel sistema operativo, inclusi la creazione, cancellazione e scheduling. Scopri gli stati che un processo attraversa durante la sua vita e le differenze tra processi e programmi. Un quiz utile per comprendere le basi dell'architettura dei sistemi operativi.

    More Like This

    Use Quizgecko on...
    Browser
    Browser