Processi nei sistemi operativi: concetti fondamentali e gestione

Slide dal Dipartimento di Scienze Matematiche, Informatiche e Fisiche sui Processi. Il Pdf è una presentazione universitaria di Informatica che esplora la nozione di processo, le operazioni e la comunicazione tra processi, il PCB e il context switch, le code di processi e gli scheduler.

Ver más

20 páginas

Processi
Sistemi Operativi e Laboratorio
A. Formisano
Dipartimento di Scienze Matematiche, Informatiche e Fisiche
Anno Accademico 2024-25
Sistemi Operativi e Lab. 24/25 A. Formisano , DMIF 1
Contenuti
1
Nozione di Processo
2
Operazioni sui Processi
3
Comunicazione tra Processi
Sistemi Operativi e Lab. 24/25 A. Formisano , DMIF 2
Nozione di Processo
Nozione di Processo (1)
È importante distinguere tra processo e programma:
un programma è una entità statica
un processo è una entità dinamica
Con un’analogia potremmo dire che il programma sta al processo come lo spartito sta
alla musica suonata ad un concerto
Si noti che:
ad UN processo corrisponde UN programma
ad UN programma possono corrispondere PIÙ processi
Ad esempio, lo stesso programma impiegato con input diversi. Si parla in questo caso
di differenti istanze dello stesso programma in esecuzione
Sistemi Operativi e Lab. 24/25 A. Formisano , DMIF 4
Nozione di Processo
Nozione di Processo (2)
Consideriamo quindi un processo come una unità di elaborazione che viene eseguita
sequenzialmente.
Possiede alcune proprietà che lo caratterizzano. Tra esse ci sono:
il programma, solitamente detto code region (anche detto: text section, sezione
di testo, codice, istruzioni,. . . )
il program counter (anche detto: instruction pointer, . . . )
il contenuto dei registri
la data region (sezione dati)
la stack region (o semplicemente, stack)
un insieme di attributi (informazioni per la sua gestione: PID, priorità,
accounting info, privilegi e limiti,...)
Inoltre ad un processo possono essere assegnate delle risorse: memoria allocata, file
aperti, dispositivi di I/O, . . . .
Sistemi Operativi e Lab. 24/25 A. Formisano , DMIF 5

Visualiza gratis el PDF completo

Regístrate para acceder al documento completo y transformarlo con la IA.

Vista previa

Processi

Sistemi Operativi e Laboratorio A. Formisano Dipartimento di Scienze Matematiche, Informatiche e Fisiche Anno Accademico 2024-25 Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 1

Contenuti

  1. Nozione di Processo
  2. Operazioni sui Processi
  3. Comunicazione tra Processi

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 2

Nozione di Processo

Nozione di Processo (1)

È importante distinguere tra processo e programma:

  • un programma è una entità statica
  • un processo è una entità dinamica

Con un'analogia potremmo dire che il programma sta al processo come lo spartito sta alla musica suonata ad un concerto Si noti che:

  • ad UN processo corrisponde UN programma
  • ad UN programma possono corrispondere PIÙ processi

Ad esempio, lo stesso programma impiegato con input diversi. Si parla in questo caso di differenti istanze dello stesso programma in esecuzione

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 4

Nozione di Processo

Nozione di Processo (2)

Consideriamo quindi un processo come una unità di elaborazione che viene eseguita sequenzialmente. Possiede alcune proprietà che lo caratterizzano. Tra esse ci sono:

  • il programma, solitamente detto code region (anche detto: text section, sezione di testo, codice, istruzioni, ... )
  • il program counter (anche detto: instruction pointer, ... )
  • il contenuto dei registri
  • la data region (sezione dati)
  • la stack region (o semplicemente, stack)
  • un insieme di attributi (informazioni per la sua gestione: PID, priorità, accounting info, privilegi e limiti, ... )

Inoltre ad un processo possono essere assegnate delle risorse: memoria allocata, file aperti, dispositivi di I/O, ....

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 5

Nozione di Processo

Immagine di un Processo (1)

Un programma C ed una rappresentazione della sua immagine char buf [1000]; int test; dati main ( { int argc, char *argv [] ) int n; stack for (n=0 ;.... ) } int func int x codice { int k; if ... } attributi

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 6

Nozione di Processo

Ciclo di Vita di un Processo

Ogni processo evolve durante la sua esistenza: in ogni istante si trova in un determinato stato. I principali stati sono:

  • new: appena creato
  • ready: pronto per essere eseguito
  • running: in esecuzione (ovvero detiene l'uso della risorsa "processore")
  • waiting: in attesa di qualche evento (ad esempio, della terminazione di un I/O,. . . ). A volte si usano anche i termini blocked o sleeping
  • terminated: ha finito la sua esecuzione

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 7

Nozione di Processo

Transizioni tra gli Stati

new admitted interrupt exit terminated ready running scheduler dispatch I/O or event completion I/O or event wait waiting

  • l'assegnamento di un processore ad un processo (ready=>running) è detto dispatching ed è eseguito da un particolare modulo del S.O. detto dispatcher

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 8

Nozione di Processo

Rappresentazione di un Processo: il PCB

Il Process Control Block (o process descriptor) è una struttura che contiene le informazioni su un processo nel S.O. Tra esse citiamo:

  • il PID (identificatore del processo, solitamente un numero intero)
  • lo stato (running, ready, waiting, ... )
  • il valore del program counter
  • il contenuto dei registri della CPU
  • informazioni utili allo scheduling di CPU (priorità, ... )
  • informazioni sulla gestione della memoria (tabelle di paging, ... )
  • informazioni sull'accounting (contabilizzazione uso risorse, ... )
  • informazioni sullo stato dell'I/O (devices, file aperti, ... )

Il PCB descrive l'execution context del processo

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 9

Nozione di Processo

Process Control Blocks e Process Table

Tutti i PCB sono raccolti in una process table (globale o "per-user") Process table PID PCB 1 2 : . n Process control block Program counter Process control block Process control block Program counter Program counter Registers Registers Address space State State Parent Priority Priority Children Address space Address space Open files Parent Parent : Children Children Other flags Open files Open files : : Other flags Other flags

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 10

Nozione di Processo

Immagine di un Processo (2)

Process Identification Processor State Information Process Control Information User Stack Private User Address Space (Programs, Data) Kernel Stack Shared Address Space

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 11

Una rappresentazione un po' più dettagliata dell'immagine di un processo, per un sistema che abbia una duplice modalità di funzionamento (user mode e kernel mode). Nell'execution context si distinguono due porzioni di memoria, user stack e kernel stack, che corrispondono alle due modalità di esecuzione Registers State Priority

Nozione di Processo

PCB e Context Switch

Durante un cambio di contesto il S.O. salva l'execution context del processo P0 che era running, e ripristina quello del processo "entrante" P1 (che passa dallo stato ready allo stato running)

Sistemi Operativi e Lab. 24/25

process Po operating system process P1 interrupt or system call executing save state into PCB0 Çidle reload state from PCB. idle interrupt or system call executing save state into PCB, .. idle reload state from PCB. executing A. Formisano, DMIF 12

Nozione di Processo

Code di Processi

I processi competono per utilizzare le risorse. Il S.O. gestisce le richieste dei processi utilizzando code di scheduling e politiche di scheduling Esistono diverse code, associate a diverse risorse. Alcuni esempi:

  • job queue (coda dei processi) raccoglie tutti i (PCB dei) processi presenti nel sistema
  • ready queue (coda dei processi pronti) raccoglie tutti i (PCB dei) processi ready
  • device queue (coda del dispositivo) raccoglie tutti i (PCB dei) processi in attesa di un particolare dispositivo di I/O

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 13

Nozione di Processo

Code di Processi e Risorse

queue header PCB- PCB2 ready queue tail registers registers · . · mag tape unit 0 head tai mag tape unit 1 head PCB3 PCB14 PCB6 tail disk unit 0 head tail PCB5 terminal unit 0 head tail

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 14

Nozione di Processo

Code di Processi e Scheduling

L'inserimento in una coda è correlato al verificarsi di un evento. Si applica il diagramma di accodamento:

ready queue CPU I/O wait queue di I/O richiesta di I/O quanto di tempo esaurito processo figlio terminato wait queue di terminazione del figlio generazione di un processo figlio interruzione wait queue d'interruzione attesa di un'interruzione Figura 3.5 Diagramma di accodamento per lo scheduling dei processi.

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 15

head

Nozione di Processo

Scheduler

Quando una risorsa si rende disponibile, il S.O. deve scegliere uno dei processi in attesa nella corrispondente coda (N.B .: non è sempre una coda FIFO). I due principali scheduler sono:

  • Long term scheduler: (o job scheduler) decide quali processi (non ancora iniziati) debbano essere caricati in memoria principale, e quindi inseriti nella ready queue, e quali invece debbano restare in memoria secondaria. Determina il grado di multiprogrammazione del sistema e deve bilanciare bene tra processi CPU-bound e I/O-bound
  • Short term scheduler: (o scheduler della CPU) sceglie a quale processo, tra quelli nella ready queue, assegnare la CPU

Oss .: "Long" e "short" suggeriscono la frequenza con cui sono eseguiti

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 16

Nozione di Processo

Swapping e Medium-term Scheduler

Spesso vi è un ulteriore scheduler, detto di medio termine

  • ha il compito di modulare il carico a cui è soggetto il sistema
  • ciò viene ottenuto spostando dei processi dalla memoria principale alla memoria secondaria o viceversa
  • queste due operazioni, dette swap-out e swap-in, interessano di norma solo i processi già parzialmente eseguiti

swap in swap out partially executed swapped-out processes ready queue CPU + end I/O I/O waiting queues

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 17

Nozione di Processo

Swapping e Medium-term Scheduler Dettagli

  • Lo swapping viene attivato quando è necessario cambiare dinamicamente il grado di multiprogrammazione del sistema per migliorare l'utilizzo della CPU
  • Un processo può essere swapped-out per vari motivi:
  • per (ri-)bilanciare il rapporto tra CPU-bound e I/O-bound
  • quando la memoria principale non è sufficiente a soddisfare le richieste di tutti i processi
  • quando l'utente o un altro processo lo richiede, ad esempio per poter accedere/modificare il suo execution context in debugging,. .. . . .
  • Un processo swapped-out passa in uno stato detto swapped (o suspended); più precisamente possiamo avere processi nello stato ready+swapped o waiting+swapped

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 18

Nozione di Processo

Transizioni tra gli Stati: il caso UNIX

  • created: il processo è appena stato creato
  • user/kernel running: in esecuzione in modalità utente/kernel
  • ready in memory: pronto per andare in esecuzione
  • preempted: bloccato dal kernel al fine di eseguire un altro processo
  • asleep in memory: caricato in memoria, ma in attesa di un evento
  • ready swapped: pronto per eseguire, ma attualmente swapped-out (su disco)
  • sleeping swapped: attualmente swapped-out e in attesa di un evento
  • zombie: terminato, ma in attesa che il padre riceva (eseguendo la wait () ) lo status di ritorno

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 19

Nozione di Processo

Transizioni tra gli Stati: il caso UNIX Dettagli

fork Created Preempted return to user enough memory not enough memory (swapping system only) User Running preempt swap out return reschedule process Ready to Run In Memory Ready to Run Swapped system call, interrupt Kernel Running wakeup wakeup interrupt, interrupt return exit swap out Zombie Asleep in Memory Sleep, Swapped

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 20

Operazioni sui Processi

Operazioni sui Processi

Il S.O. deve implementare un insieme di operazioni sui processi, al fine di permettere

  • creazione
  • terminazione/distruzione
  • sospensione e riattivazione (swap-out e swap-in)
  • modifica degli attributi (priorità, ... )
  • scheduling/dispatch
  • comunicazione e tra processi (IPC) . . . .

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 22

swap in sleep

¿Non has encontrado lo que buscabas?

Explora otros temas en la Algor library o crea directamente tus materiales con la IA.