Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2009/2010 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. 03/12/2009 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 e CAD (c.i.) ICA LC - prof. Plebani 2
Ciclo di vita di un processo Corso di Informatica e CAD (c.i.) 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 e CAD (c.i.) 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 e CAD (c.i.) 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 e CAD (c.i.) 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 e CAD (c.i.) 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 e CAD (c.i.) 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 e CAD (c.i.) 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 e CAD (c.i.) 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 e CAD (c.i.) 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 e CAD (c.i.) ICA LC - prof. Plebani 12