Dipartimento di Elettronica ed Informazione
Politecnico di Milano
Informatica e CAD (c.i.) - ICA
Prof. Pierluigi Plebani
A.A. 2008/2009
Sistema operativo: Introduzione
La presente dispensa e’ da utilizzarsi ai soli fini didattici
previa autorizzazione dell’autore. E’ severamente vietata la
riproduzione anche parziale e la vendita.
14/01/2009
Software
•  Il software può essere
classificato in due
categorie:
–  Di sistema
–  Applicativo
•  I primi servono al
sistema per funzionare
•  I secondi sono rivolti
all’utente finale
Corso di Informatica e CAD (c.i.) – ICA LC - prof. Plebani
2
Sistema operativo
•  Il sistema operativo è uno strato software
–  Si interpone tra l’hardware e gli applicativi
–  Nasconde i dettagli realizzativi della macchina
–  Permette di astrarre dalla architettura fisica
realizzando una macchina virtuale
•  Alcuni esempi:
–  Windows
–  DOS
–  Mac
–  Unix
–  Linux
–  …
Applicazioni
Sistema operativo
Corso di Informatica e CAD (c.i.) – ICA LC - prof. Plebani
Primitive
Microistruzioni
Hardware
3
Struttura
•  È solitamente organizzato per strati funzionali (a
buccia di cipolla)
– 
– 
– 
– 
– 
– 
– 
Programmi utente
Interprete comandi
File system
Gestore delle periferiche
Gestore memoria centrale
Gestore dei processi
Macchina fisica
Strati del sistema
operativo
•  Il gestore dei processi è anche detto core (nucleo)
•  Il gestore dei processi, della memoria e dei driver di
periferica formano il kernel
Corso di Informatica e CAD (c.i.) – ICA LC - prof. Plebani
4
Classificazione
•  Secondo gli utenti
–  Mono utente
–  Multi utente
•  Secondo i processi in esecuzione
–  Mono tasking
–  Multi tasking
•  Noi analizzeremo sistemi multi utente e multi
tasking su elaboratori mono processore
Corso di Informatica e CAD (c.i.) – ICA LC - prof. Plebani
5
Gestore dei processi
•  Un processo è un programma in esecuzione
•  Il gestore è responsabile del ciclo di vita del
processo:
–  Caricamento dei programmi
–  Esecuzione del processo
–  Accesso alle risorse
–  Controllo gli accessi concorrenti
–  …
Corso di Informatica e CAD (c.i.) – ICA LC - prof. Plebani
6
Gestore della memoria
•  Alloca la memoria ai processi in esecuzione
•  È responsabile del corretto accesso dei
processi alla memoria
•  Ogni processo non deve preoccuparsi
dell’esistenza di altri processi caricati in
memoria
•  Realizza le politiche di ottimizzazione nella
gestione della memoria
Corso di Informatica e CAD (c.i.) – ICA LC - prof. Plebani
7
Gestore delle periferiche
•  Rappresenta il driver della periferica
•  Fornisce una serie di procedure standard per
l’accesso alla periferica
•  Nasconde all’utente la reale struttura della
periferica
Corso di Informatica e CAD (c.i.) – ICA LC - prof. Plebani
8
File system
•  Gestisce gli accessi alla memoria di massa
•  Organizza le informazioni in file e cartelle
•  Controlla gli accessi ai file e amministra i
diritti di accesso
•  Permette la cancellazione, creazione, modifica
dei file
Corso di Informatica e CAD (c.i.) – ICA LC - prof. Plebani
9
Interprete comandi
•  È lo strato più vicino alle applicazioni e quindi
all’utente
•  Gestisce l’interazione con l’utente fornendo un
set di comandi che richiamano le funzionalità
del sistema operativo
•  Attraverso l’interprete comandi l’utente può
usufruire delle funzionalità messe a
disposizione dagli strati sottostanti
•  Nel mondo Windows è il “Prompt di Ms-Dos”
•  Nel mondo unix/linux è il “terminale”
Corso di Informatica e CAD (c.i.) – ICA LC - prof. Plebani
10
Dipartimento di Elettronica ed Informazione
Politecnico di Milano
Informatica e CAD (c.i.) - ICA
Prof. Pierluigi Plebani
A.A. 2008/2009
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.
14/01/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
12
Ciclo di vita di un processo
Corso di Informatica e CAD (c.i.) – ICA LC - prof. Plebani
13
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
14
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
15
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
16
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
17
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
18
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
19
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
20
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
21
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
22