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