Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica - ICA Prof. Pierluigi Plebani A.A. 2011/2012 Sistema operativo: Gestione dei processi La presente dispensa e da utilizzarsi ai soli fini didattici previa autorizzazione dell autore. E severamente vietata la riproduzione anche parziale e la vendita. 13/01/2012
Processo e programma Programma È una entità statica Può essere associato al file eseguibile presente in memoria di massa È immutabile Processo È una entità dinamica È associato al codice caricato in memoria di massa Cambia secondo lo stato di esecuzione In linea di massima un processo può essere definito come un programma in esecuzione composto dalla coppia (E,S) E: codice eseguibile S: stato del processo Un programma può riferirsi a diversi processi Un processo è associato ad un unico programma Corso di Informatica ICA LC - prof. Plebani 2
Ciclo di vita di un processo Corso di Informatica ICA LC - prof. Plebani 3
Processo utente e supervisore Il processo utente è un processo generato da un programma scritto dall utente Anche il sistema operativo è un software Tra i processi in esecuzione c è anche il processo del sistema operativo (supervisore) In realtà un sistema operativo è composto da numerosi processi Il processo di sistema operativo ha una priorità e una importanza maggiore di quello del processo utente Quando un processo utente invoca delle primitive del sistema (e.g., accesso a periferiche) Si ha una supervisor call (SVC) In esecuzione viene mandato il processo supervisore Corso di Informatica ICA LC - prof. Plebani 4
Compiti del gestore dei processi Gestire il ciclo di vita dei processi Selezionare (scheduling) quale tra i processi in stato di pronto devono essere mandati in esecuzione Gestire la cooperazione tra processi Gestire la concorrenza tra processi nell accesso alle risorse Corso di Informatica ICA LC - prof. Plebani 5
Da pronto a esecuzione : scheduling In un sistema operativo multi tasking diversi processi concorrenti devono essere eseguiti Ma la CPU è unica (o comunque si hanno sempre un numero di CPU minore dei processi in esecuzione) Il sistema deve rendere trasparente questa concorrenza Lo scheduling seleziona tra i processi in stato pronto quale mandare in stato esecuzione Attenzione! In un dato momento solo un processo è in stato esecuzione L obiettivo degli algoritmi di scheduling è minimizzare il tempo medio di attesa per ogni processo per il loro completamento Corso di Informatica ICA LC - prof. Plebani 6
Approccio FIFO La schedulazione avviene in modo semplice Il primo processo viene mandato in esecuzione Quando termina è il turno del secondo processo Molto semplice da realizzare Troppo inefficiente e praticamente inutilizzabile Corso di Informatica ICA LC - prof. Plebani 7
Approccio ideale Il minimo tempo medio di attesa si ottiene eseguendo prima i processi la cui esecuzione è più rapida Il problema è che non si conosce a priori quanto un programma rimarrà in esecuzione Si corre il rischio di non vedere eseguiti i processi troppo lunghi Corso di Informatica ICA LC - prof. Plebani 8
Approccio Round Robin 1/2 Viene definito un quanto di tempo Ogni processo viene lasciato in stato esecuzione per un quanto di tempo Scaduto il quanto di tempo Il processo in esecuzione torna in stato di pronto e il processo successivo va in esecuzione Viene memorizzato il contesto del processo e caricato il contesto del processo successivo (context switch) Ogni processo è identificato dal suo contesto Il contesto è dato dai valori dei registri di sistema (PC, SP, ) Attraverso il contesto il sistema sa a che punto era arrivato nell esecuzioen del processo quando il quanto di tempo era scaduto Corso di Informatica ICA LC - prof. Plebani 9
Approccio Round Robin 2/2 Molto efficiente e un buon compromesso tra il FIFO e la situazione ideale La criticità sta nel dimensionamento del quanto di tempo Più è piccolo maggiore è la sensazione che la CPU sia dedicata ad un solo processo Più è piccolo maggiore è il tempo speso per il context switching Corso di Informatica ICA LC - prof. Plebani 10
Da esecuzione a attesa : interruzioni interne Una interruzione esterna avviene quando il processo richiede l utilizzo di una periferica (e.g., lettura di dati da tastiera) In questo caso il tempo di attesa può essere elevato e non ha senso rimanere nello stato di esecuzione e occupare la CPU Il processo viene quindi mandato in attesa Viene eseguita una chiamata a supervisore (SVC) che dialogherà con la periferica Dallo stato di attesa passo allo stato di pronto appena un evento che indica la terminazione delle operazioni da parte della periferica non viene inviato Corso di Informatica ICA LC - prof. Plebani 11
Da esecuzione a pronto : interruzioni esterne Le interruzioni esterne sono quelle che il sistema operativo solleva per bloccare l esecuzione di un processo Solitamente avvengono quando scade il quanto di tempo Possono avvenire anche quando un processo con priorità maggiore ha necessità di essere eseguito Corso di Informatica ICA LC - prof. Plebani 12