Post on 18-Feb-2019
transcript
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
Corso di Informatica e CAD (c.i.) – ICA LC - prof. Plebani 2
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 3
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 – … Hardware
Sistema operativo
Applicazioni
Microistruzioni
Primitive
Corso di Informatica e CAD (c.i.) – ICA LC - prof. Plebani 4
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
• Il gestore dei processi è anche detto core (nucleo) • Il gestore dei processi, della memoria e dei driver di
periferica formano il kernel
Strati del sistema operativo
Corso di Informatica e CAD (c.i.) – ICA LC - prof. Plebani 5
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 6
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 7
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 8
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 9
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 10
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”
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
Corso di Informatica e CAD (c.i.) – ICA LC - prof. Plebani 12
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 13
Ciclo di vita di un processo
Corso di Informatica e CAD (c.i.) – ICA LC - prof. Plebani 14
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 15
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 16
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 17
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 18
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 19
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 20
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 21
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 22
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