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.
Mostra di più20 pagine
Visualizza gratis il Pdf completo
Registrati per accedere all’intero documento e trasformarlo con l’AI.
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
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 2
È importante distinguere tra processo e programma:
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 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
Consideriamo quindi un processo come una unità di elaborazione che viene eseguita sequenzialmente. Possiede alcune proprietà che lo caratterizzano. Tra esse ci sono:
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
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
Ogni processo evolve durante la sua esistenza: in ogni istante si trova in un determinato stato. I principali stati sono:
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 7
new admitted interrupt exit terminated ready running scheduler dispatch I/O or event completion I/O or event wait waiting
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 8
Il Process Control Block (o process descriptor) è una struttura che contiene le informazioni su un processo nel S.O. Tra esse citiamo:
Il PCB descrive l'execution context del processo
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 9
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
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
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
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:
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 13
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
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
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:
Oss .: "Long" e "short" suggeriscono la frequenza con cui sono eseguiti
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 16
Spesso vi è un ulteriore scheduler, detto di medio termine
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
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 18
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 19
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
Il S.O. deve implementare un insieme di operazioni sui processi, al fine di permettere
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 22
swap in sleep