Informatica e CAD (c.i.) - ICA Prof. Pierluigi...

22
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

Transcript of Informatica e CAD (c.i.) - ICA Prof. Pierluigi...

Page 1: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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

Page 2: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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

Page 3: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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

Page 4: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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

Page 5: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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

Page 6: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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 – …

Page 7: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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

Page 8: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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

Page 9: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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

Page 10: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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”

Page 11: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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

Page 12: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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

Page 13: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

Corso di Informatica e CAD (c.i.) – ICA LC - prof. Plebani 13

Ciclo di vita di un processo

Page 14: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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

Page 15: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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

Page 16: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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

Page 17: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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

Page 18: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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

Page 19: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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

Page 20: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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

Page 21: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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

Page 22: Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebanihome.deib.polimi.it/plebani/download/infoICA/L10-SistemiOperativi... · categorie: – Di sistema ... tasking su elaboratori

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