I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di...

49
I N F O R M A T I C A I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Università degli Studi di Catania Prof. Mario Pavone Prof. Mario Pavone [email protected] http://www.dmi.unict.it/mpavone/ AA. 2012/2013 Il Sistema Il Sistema Operativo Operativo

Transcript of I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di...

Page 1: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

I N F O R M A T I C AI N F O R M A T I C ACdL Magistrale in Odontoiatria e Protesi DentariaCdL Magistrale in Odontoiatria e Protesi Dentaria

Università degli Studi di CataniaUniversità degli Studi di Catania

Prof. Mario PavoneProf. Mario [email protected]

http://www.dmi.unict.it/mpavone/AA. 2012/2013

Il Sistema Il Sistema OperativoOperativo

Page 2: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Il sistema operativo

• UUn generico programma non accede direttamente alle componenti n generico programma non accede direttamente alle componenti hardwarehardware

• SSoftware di sistemaoftware di sistema (o di base): programmi che gestiscono in (o di base): programmi che gestiscono in modo ottimale le risorse fisichemodo ottimale le risorse fisiche

• UUn sistema operativo è un insieme di programmi che agiscono da n sistema operativo è un insieme di programmi che agiscono da intermediario fra utente e macchina hardwareintermediario fra utente e macchina hardware

• IIl sistema operativo fornisce all'utente vari strumenti, quale un l sistema operativo fornisce all'utente vari strumenti, quale un ambiente per l'esecuzione di altri programmi e una visione ambiente per l'esecuzione di altri programmi e una visione astratta del hardwareastratta del hardware

Page 3: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Funzioni del sistema operativo

• RRendere utilizzabili le risorse fisiche presenti nel sistema endere utilizzabili le risorse fisiche presenti nel sistema informaticoinformatico• infrastruttura software, che si pone come interfaccia per

l’infrastruttura hardware e serve a facilitarne l’utilizzo e la gestione• II

l sistema operativo è un insieme di moduli software che l sistema operativo è un insieme di moduli software che virtualizzano le caratteristiche dell’hardware sottostante, virtualizzano le caratteristiche dell’hardware sottostante, rendendolo accessibile come una macchina astratta, più rendendolo accessibile come una macchina astratta, più semplice da utilizzare di quella fisicamente disponibilesemplice da utilizzare di quella fisicamente disponibile

Page 4: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

HW

SW

HW

Sistema Operativo

SW Applicativo

Il software

• SW= Sistema Operativo + SW applicativoSW= Sistema Operativo + SW applicativo

• Il S.O. come necessario intermediarioIl S.O. come necessario intermediario

Page 5: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Funzionalità del sistema operativo

•GGESTORE DELLE RISORSEESTORE DELLE RISORSE,,controlla tutte le risorse del calcolatore e le gestisce in controlla tutte le risorse del calcolatore e le gestisce in modo efficiente:modo efficiente:• tiene traccia di chi utilizza la risorse• accetta e soddisfa le richieste di utilizzo di una risorsa• fa da mediatore fra le risorse che risultano in conflitto

•MMACCHINA ESTESAACCHINA ESTESA::• costituisce la base su cui è possibile scrivere i programmi

applicativi• presenta all’utente una macchina estesa più facile da

programmare dell’HW sottostante

Page 6: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Funzioni di servizio del SO

• EEsecuzione di applicazionisecuzione di applicazioni• caricamento del programma (istruzioni e dati) nella memoria centrale,• inizializzazione dei dispositivi di ingresso/uscita,• preparazione e gestione di altre risorse come la rete di

comunicazione

• AAccesso ai dispositivi di ingresso/uscitaccesso ai dispositivi di ingresso/uscita• gestione dei segnali necessari per il trasferimento dei dati,• consente all’utente di ragionare in termini di operazioni astratte di

lettura e scrittura;

• AArchiviazione di dati e programmirchiviazione di dati e programmi• fornire un’organizzazione logica dei dati sotto forma di cartelle

(directory) e file,• gestire le operazioni di basso livello per il relativo ingresso/uscita;

Page 7: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Funzioni di servizio del SO

• CControllo di accessoontrollo di accesso• condivisione di risorse da parte di più utenti o applicazioni,• meccanismi di protezione e politiche di risoluzione degli eventuali

conflitti d’uso;

• CContabilizzazioneontabilizzazione• ottimizzare il tempo di risposta dei programmi interattivi,• fatturare agli utenti i costi dell’impiego del sistema;

• GGestione dei malfunzionamentiestione dei malfunzionamenti• rilevare e, se possibile, di risolvere eventuali malfunzionamenti

provocati da guasti hardware, o da operazioni scorrette compiute dal software applicativo.

Page 8: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Elementi di un sistema operativo

•Gestisce il processore, la memoria centrale, la memoria di massa e i dispositivi di I/O

•Sistema di gestione del processoregestione del processore• controlla l’unità centrale di elaborazione (CPU);• definisce quali programmi sono da eseguire e quali compiti sono da

assegnare alla CPU;• Supporto di compilatori ed interpreti per la traduzione dei programmi

•Sistema di gestione della memoriagestione della memoria• controlla l’allocazione della memoria di lavoro ai diversi programmi che

possono essere contemporaneamente in esecuzione;• garantisce la mutua esclusione nell’accesso alle risorse

Page 9: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Elementi di un sistema operativo

•SSistema di istema di gestione delle periferichegestione delle periferiche• garantisce l’accesso ai dispositivi di ingresso/uscita,• maschera i dettagli di basso livello e gli eventuali conflitti che possono insorgere nel

caso che diverse richieste arrivino contemporaneamente a uno stesso dispositivo•SS

istema di istema di gestione dei filegestione dei file (file system) (file system)• consente l’archiviazione e il reperimento dei dati sfruttando le periferiche che

costituiscono la memoria di massa;•SS

istema di istema di gestione degli utentigestione degli utenti e dei relativi comandi (interprete e dei relativi comandi (interprete comandi)comandi)• interfaccia diretta con gli utenti,• permette agli utenti di accedere in maniera semplice e intuitiva alle funzionalità

disponibili.•SS

istema di istema di gestione della retegestione della rete• interfaccia con risorse collegate via rete• comunicazione con processi in esecuzione su altri calcolatori.

Page 10: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Sistema Operativo

Utente

Nucleo (o kernel)[gestione processore]

Hardware

Softwareapplicativo

Gestioneperiferiche

Filesystem Interfaccia

con la rete

Gestionememoria

Interpretecomandi

Elementi di un sistema operativo

Page 11: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Programmi applicativi e SO

•PProgrammi applicativirogrammi applicativi

• hanno accesso a un insieme ridotto di risorse

• possono utilizzare solo un sottoinsieme delle istruzioni del processore

• esecuzione in modalità utente• non possono decidere

autonomamente quando e come avere accesso alle risorse del sistema

• richiedono al sistema richiedono al sistema operativo l’esecuzione di operativo l’esecuzione di alcuni servizialcuni servizi

•SSistema operativoistema operativo

• ha accesso a tutte le risorse;• può utilizzare tutte le istruzioni del

processore (esecuzione in modalità supervisore);

• è organizzato in modo modulare per consentire efficientemente l’aggiornamento dell’hardware

• stabilisce in che ordine e come stabilisce in che ordine e come le richieste che riceve devono le richieste che riceve devono essere soddisfatte;essere soddisfatte;

Page 12: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Evoluzione dei sistemi operativi

• SSeconda metà degli anni ’40 (schede perforate)econda metà degli anni ’40 (schede perforate)• non c’era un sistema operativonon c’era un sistema operativo: il programmatore interagiva direttamente

con i dispositivi fisici,• introdurre nel software applicativo anche le funzionalità di gestione gestione

dell’hardwaredell’hardware.• esecuzione di un solo programma alla voltaun solo programma alla volta• problemi da risolvere:

• evoluzione dell’interfaccia utente• miglioramento dell’efficienza di gestione delle risorse disponibili

• SSistemi a lotti (istemi a lotti (batchbatch))• impiego di un componente software, detto monitormonitor, in grado di automatizzare

l’avviamento e l’esecuzione di programma;• apposito linguaggio, detto Job Control LanguageJob Control Language (JCL);• le operazioni di ingresso/uscita vengono eseguite tramite fileoperazioni di ingresso/uscita vengono eseguite tramite file;• ottimizzano lo sfruttamento delle risorse di elaborazioneottimizzano lo sfruttamento delle risorse di elaborazione del sistema con

un’accurata distribuzione del tempo di calcolo tra i vari programmi da eseguire• svantaggio principalesvantaggio principale: tempo di latenza che intercorre fra il momento in cui

un job è sottoposto al sistema e il momento in cui vengono presentati i risultati dell’elaborazione di quel job.

Page 13: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Sistemi mono-processori

• jjobob: esecuzione di un programma;

• Nei primi computer l’esecuzione di un programma richiedeva compiti laboriosicompiti laboriosi;

• Ciascuna sessionesessione iniziava con il caricamento del programma e brevi periodi di esecuzioni del job;

• OOperatore addetto al computerperatore addetto al computer: seguiva il funzionamento del calcolatore

• CCompiti dell’operatore addetto al computerompiti dell’operatore addetto al computer: caricava il programma e le istruzioni speciali del programma nella memoria di massa, dove il sistema operativo poteva eseguirli.

• SSeparazione tra utente e calcolatoreeparazione tra utente e calcolatore: ciascun utente portava il programma con le relative istruzioni all’operatore e ritornava successivamente per avere i risultati.

Page 14: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Elaborazione BATCH

jobs: programma, dati e istruzioni

dominio dell’utente

risultati

dominio del computer

elaborazione batchelaborazione batch: caricamento di job in un unico batch (lotto)batch (lotto) e successiva esecuzione senza interazioni con l’utente.

Nei sistemi di elaborazione batch un job aspetta di trovarsi in “job execution”Nei sistemi di elaborazione batch un job aspetta di trovarsi in “job execution”

Page 15: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Elaborazione BATCH

• ccodaoda: struttura datistruttura dati in cui gli oggetti (job) sono ordinati utilizzando il metodo FIFOFIFO (first in, first outfirst in, first out)• gli oggetti vengono rimossi dalla coda nell’ordine di arrivogli oggetti vengono rimossi dalla coda nell’ordine di arrivo

• le code di job seguono il metodo FIFOmetodo FIFO, tenendo conto delle priorità dei jobpriorità dei job

• SSvantaggiovantaggio dell’elaborazione batchelaborazione batch: l’utente non ha alcune possibilità di interagire con il programma

Page 16: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Evoluzione dei sistemi operativi

•eelaborazione interattivalaborazione interattiva: nuovi sistemi operativi in grado di far interagire l’utente durante l’esecuzione dei programmi • tale sistema viene denominato anche elaborazione in tempo realeelaborazione in tempo reale (real real

timetime)

•CCaratteristiche desiderate in un sistema operativo:aratteristiche desiderate in un sistema operativo:• interattivitàinterattività con un utente umano con tempi di risposta accettabili;• accurata protezioneprotezione della memoria;• temporizzazionetemporizzazione dell’esecuzione (evitare che un programma

monopolizzi il sistema);• gestione delle attività di ingresso/uscitaingresso/uscita;• maggiore sfruttamentomaggiore sfruttamento delle risorse disponibili nel sistema.

in parallelo da parte di diversi programmi

Page 17: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Evoluzione dei sistemi operativi

• SSistemi istemi uniprogrammatiuniprogrammati: in memoria centrale risiede un : in memoria centrale risiede un solo programma utentesolo programma utente

• SSistemi istemi multiprogrammatimultiprogrammati: in ogni istante, la memoria : in ogni istante, la memoria centrale può contenere più di un programma applicativocentrale può contenere più di un programma applicativo

Page 18: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Sistemi uni e multi programmati

• Nei sistemi uniprogrammati, nell’attesa per le operazioni I/O il processore rimane inattivo

• Per ridurre i tempi “morti”ridurre i tempi “morti” è possibile passare da un programma all’altro:• ““scaricare” il programma residente in memoria centralescaricare” il programma residente in memoria centrale• ““caricare” il nuovo programma dalla memoria di massacaricare” il nuovo programma dalla memoria di massa• ha “senso” se i tempi di attesa sono maggiori del tempo di “carica/scarica”ha “senso” se i tempi di attesa sono maggiori del tempo di “carica/scarica”

• Nei sistemi multiprogrammati la commutazioni tra programmi avviene in maniera efficiente• tempo di accesso alla memoria centrale molto inferiore rispetto alla memoria di

massa• P

ossibilità di gestione di più utenti senza degrado eccessivo delle prestazioni

Page 19: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Sistemi uni e multi programmati

•SSvantaggio dei sistemi multiprogrammativantaggio dei sistemi multiprogrammati: complessità del sistema operativo• gestire in modo sofisticato la memoria• Minimizzare il tempo necessario alla commutazione fra programmi

•Sistema a partizione di tempopartizione di tempo (time-sharingtime-sharing): sistema operativo in grado di alternare i vari job tra uno stato di esecuzioneesecuzione e uno di attesaattesa• tempo suddiviso in porzionitempo suddiviso in porzioni• simulazione di un parallelismo nell’accesso alle risorseparallelismo nell’accesso alle risorse

Page 20: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Sistemi uni e multi programmati

TempoProgr. 3

Progr. 2

Progr. 1

attesa per operazioni di I/O

elaborazione

Sistema uniprogrammato

Sistema multiprogrammat

o

Tempo

attesa per operazioni di I/O

elaborazione

Page 21: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Sistema time-sharing

•PPer evitare ler evitare l’’utilizzo esclusivo della CPU da parte di un solo utilizzo esclusivo della CPU da parte di un solo programmaprogramma• Tempo suddiviso in unità di tempo: quantiquanti• Ogni programma ha assegnato un quanto di tempoOgni programma ha assegnato un quanto di tempo per

l’esecuzione sulla CPU che gli viene tolta allo scadere per assegnarla a un altro programma

• Un programma rinuncia alla CPU spontaneamente quando è in Un programma rinuncia alla CPU spontaneamente quando è in attesa di operazioni di ingresso/uscitaattesa di operazioni di ingresso/uscita

• La scelta dei turniscelta dei turni di assegnazione della CPU ai programmi dipendedipende dalle politiche decise dal sistema operativodal sistema operativo:• Metodo più semplice: a rotazione tra tutti i programmi in memoria centrale Metodo più semplice: a rotazione tra tutti i programmi in memoria centrale

(round robin)(round robin)• La durata del quanto di tempo incide sulle prestazioni del La durata del quanto di tempo incide sulle prestazioni del

sistema e sullsistema e sull’’efficacia del paralellismoefficacia del paralellismo

Page 22: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Sistema time-sharing

•Il time-sharingtime-sharing viene utilizzato sia nei sistemi mono-utentemono-utente che in quelli multi-utentimulti-utenti

•Nel primo caso si dice sistema multitaskingsistema multitasking

•IIl time-sharing aumenta l’efficienza di un computer l time-sharing aumenta l’efficienza di un computer

•Il sistema time-sharingsistema time-sharing consente di destinare ad altri job il tempo che altrimenti andrebbe sprecato

Page 23: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Sistemi Sistemi Multi-ProcessoriMulti-Processori

Page 24: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Sistemi multi-processore

• SSingoli computer contenenti più processori danno origine ad un ingoli computer contenenti più processori danno origine ad un sistema multi-processoresistema multi-processore

• Il SO ha il compito di coordinarecoordinare le attività da eseguire simultaneamente su ciascun processore e l’attribuzione dei compitiattribuzione dei compiti

• BBilanciamento del caricoilanciamento del carico: distribuzione dinamica dei tasks ai vari processi tale che ogni processore “lavori” efficientemente

• SScalabilitàcalabilità: divisione dei tasks in sotto-tasks compatibile con il numero di processori

Page 25: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Processo versus Programma

•PProgrammarogramma: : entità staticaentità statica composta dal codice eseguibile dal composta dal codice eseguibile dal processoreprocessore

•PProcessorocesso: : entità dinamicaentità dinamica che corrisponde al programma in che corrisponde al programma in esecuzione, composto da:esecuzione, composto da:• codice (il programma);• dati (quelli che servono per l’esecuzione del programma);• stato (a che punto dell’esecuzione ci si trova, cosa c’è nei registri, …).

•IIl sistema operativo è caratterizzato da un insieme di processi l sistema operativo è caratterizzato da un insieme di processi di servizio e un di servizio e un gestoregestore, detto , detto nucleonucleo• il nucleo opera come sistema di controllo dei processiil nucleo opera come sistema di controllo dei processi

Page 26: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Organizzazione di un SO

•II moderni SO sono strutturati in moderni SO sono strutturati in successione di livellisuccessione di livelli

•OOgni livello è costruito a partire da gni livello è costruito a partire da quelli sottostantiquelli sottostanti

•GGerarchia di “macchine virtuali”erarchia di “macchine virtuali”

•LLa visione della macchina virtuale a a visione della macchina virtuale a livellolivello nn è quella fornita dall’HW e è quella fornita dall’HW e dagli strati del SO fino all’ennesimo dagli strati del SO fino all’ennesimo (incluso)(incluso)

•IIl nucleo è l’unico componente l nucleo è l’unico componente dipendente dalle caratteristiche dipendente dalle caratteristiche HWHW

Page 27: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Organizzazione a “livelli”“livelli”

•OOgni livello corrisponde a un insieme di programmigni livello corrisponde a un insieme di programmi che realizza delle che realizza delle funzionalità che utilizzano i servizi forniti a livello inferiore.funzionalità che utilizzano i servizi forniti a livello inferiore.

•OObiettivobiettivo: : creare un insieme di ambienti protetti in cui i processi possono creare un insieme di ambienti protetti in cui i processi possono evolvere, ognuno dei quali dispone apparentemente di una macchina evolvere, ognuno dei quali dispone apparentemente di una macchina dotata di tutte le risorse di quella reale e a esso completamente dedicatadotata di tutte le risorse di quella reale e a esso completamente dedicata : : macchina virtualemacchina virtuale

•OOgni macchina virtuale ha il compito di gni macchina virtuale ha il compito di gestire risorse specifiche di sistemagestire risorse specifiche di sistema regolandone l’uso e mascherandone i limiti.regolandone l’uso e mascherandone i limiti.

•II meccanismimeccanismi che garantiscono la correttezza logica sono separati dalle che garantiscono la correttezza logica sono separati dalle politichepolitiche di gestione (maggiore flessibilità). di gestione (maggiore flessibilità).

ogni “livello” risolve un problema specificoogni “livello” risolve un problema specifico

Page 28: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Macchine virtuali

•II diversi moduli del sistema operativo diversi moduli del sistema operativo virtualizzano virtualizzano specifiche risorse fisichespecifiche risorse fisiche:: il nucleo consente a ogni processo di considerare la il nucleo consente a ogni processo di considerare la CPU completamente dedicata alla sua esecuzioneCPU completamente dedicata alla sua esecuzione

il modulo della memoria consente di gestire la memoria gestire la memoria centrale come dedicata interamente al processocentrale come dedicata interamente al processo

il gestore delle periferiche permette al processo di interagire con le periferiche in modo astratto tramite interagire con le periferiche in modo astratto tramite filefile

il file system consente al processo di accedere ai file accedere ai file indipendentemente dalla struttura del discoindipendentemente dalla struttura del disco

Page 29: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Nucleo (o Kernel)

•IInteragisce direttamente con l’hardwarenteragisce direttamente con l’hardware

•SSi occupa dell’esecuzione dei programmii occupa dell’esecuzione dei programmi e della risposta agli eventi esterni e della risposta agli eventi esterni generati dalle unità periferiche.generati dalle unità periferiche.

•SScopo principalecopo principale: : gestire i processigestire i processi corrispondenti ai programmi che sono corrispondenti ai programmi che sono contemporaneamente attivicontemporaneamente attivi• applicazioni utente• processi di servizio

•FFornisce alle macchine virtuali di livello superiore la ornisce alle macchine virtuali di livello superiore la visione di un insieme di unità visione di un insieme di unità di elaborazione virtualidi elaborazione virtuali ciascuna dedicata a un processo presente in memoria ciascuna dedicata a un processo presente in memoria

•GGestisce il contesto di esecuzione dei vari processiestisce il contesto di esecuzione dei vari processi

•AAttua una politica di alternanza (ttua una politica di alternanza (schedulingscheduling) nell’accesso alla CPU da parte dei ) nell’accesso alla CPU da parte dei processi in esecuzione.processi in esecuzione.

Page 30: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

CPU

dati

controllo

indirizzi

BUS

Memoriadi

lavoro

Memoria di massa

Interfaccia I/O

Video/tastiera

(terminale)

Interfaccia I/O

Nucleo: macchina astratta

Page 31: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

dati

controllo

indirizzi

BUS

Memoriadi

lavoro

Memoria di massa

Interfaccia I/O

Video/tastiera

(terminale)

Interfaccia I/O

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

… … …

Page 32: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Gestore della memoria

•CControlla la memoria centraleontrolla la memoria centrale, al fine di risolvere le relative esigenze dei , al fine di risolvere le relative esigenze dei vari processi in modo trasparente ed efficiente.vari processi in modo trasparente ed efficiente.

•CConsente ai programmi di lavorare in un proprio spazio di onsente ai programmi di lavorare in un proprio spazio di indirizzamento indirizzamento virtualevirtuale e di ignorare quindi le effettive zone di memoria fisica occupata. e di ignorare quindi le effettive zone di memoria fisica occupata.

•SSi occupa di:i occupa di:• proteggere programmi e relativi dati caricati nella memoria di lavoroproteggere programmi e relativi dati caricati nella memoria di lavoro

(nessun processo deve poter leggere o modificare quanto contenuto nello spazio di indirizzamento virtuale di un altro processo);

• mascherare la collocazione fisica dei datimascherare la collocazione fisica dei dati (un processo potrebbe agire su uno spazio di indirizzamento di dimensione maggiore di quello della memoria fisica);

• permettere, in modo controllato, la parziale sovrapposizione degli spazi di sovrapposizione degli spazi di memoriamemoria associati ai vari programmi (condivisione dati e/o scambio messaggi).

•FFornisce alle macchine di livello superiore la possibilità di lavorare ornisce alle macchine di livello superiore la possibilità di lavorare come se esse avessero a disposizione una memoria dedicata, di come se esse avessero a disposizione una memoria dedicata, di capacità anche maggiore di quella fisicamente disponibile.capacità anche maggiore di quella fisicamente disponibile.

Page 33: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Gestore della memoria

Memoriadi

lavoro(fisica)

BUS

Memoria di massa

Interfaccia I/O

Video/tastiera

(terminale)

Interfaccia I/O

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

… … …

Page 34: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Gestore della memoria

BUS

Memoria di massa

Interfaccia I/O

Video/tastiera

(terminale)

Interfaccia I/O

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

… … …

Memorialogica

Memorialogica

Memorialogica

Memorialogica

Memorialogica

34

Page 35: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Gestore delle periferiche

•FFornisce una visione del sistema in cui i processi possono operare ornisce una visione del sistema in cui i processi possono operare mediante mediante periferiche astratteperiferiche astratte..

•MMaschera le caratteristiche fisiche delle periferiche e le specifiche aschera le caratteristiche fisiche delle periferiche e le specifiche operazioni di ingresso/uscitaoperazioni di ingresso/uscita

•OOgni processo ha a disposizione delle periferiche virtualigni processo ha a disposizione delle periferiche virtuali• sono completamente dedicate alle esigenze del processocompletamente dedicate alle esigenze del processo in questione• il gestore si preoccupa della soluzione degli eventuali conflitti di accessosoluzione degli eventuali conflitti di accesso (es:

stampante condivisa fra più utenti)• utilizza un insieme di comandi di alto livellocomandi di alto livello (forniti dai driverdriver delle periferiche) per

leggere e scrivere dati, senza preoccuparsi dei problemi di indirizzamento e di sincronizzazione delle periferiche.

Page 36: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Gestore dei file (file systemfile system)

•SSi occupa di i occupa di organizzare i dati e programmiorganizzare i dati e programmi in contenitori logici (file) in contenitori logici (file)• maschera le operazioni di allocazione e accesso alla memoriamaschera le operazioni di allocazione e accesso alla memoria

•GGestisce la memoria di massaestisce la memoria di massa• anche se è una delle unità periferiche, le sue peculiarità richiedono la presenza di

un apposito modulo del SO •GG

estisce i fileestisce i file• Un file è un contenitore logico per dati e programmi• Un file è l’unità di base per la memorizzazionel’unità di base per la memorizzazione nella memoria di massa• Ogni file è identificato da un nome e accessibile tramite comandi ad alto Ogni file è identificato da un nome e accessibile tramite comandi ad alto

livellolivello che rendono trasparenti all’utente le operazioni per:• l’allocazione della memoria necessaria per i dati• l’accesso alla memoria di massa

• Di ogni file si possono definire diversi diritti di accessodiversi diritti di accesso ai relativi contenuti.

Page 37: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Organizzazione del file system

uno

root

due tre …

alfa beta

f1 f2f1 f2

f3

f3 f4

Page 38: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Interprete dei comandi

•MModulo del SO direttamente accessibile dall’utenteodulo del SO direttamente accessibile dall’utente

•HHa la funzione di a la funzione di interpretare i comandiinterpretare i comandi che gli giungono (da tastiera che gli giungono (da tastiera e/o point&click) e di attivare i relativi programmie/o point&click) e di attivare i relativi programmi

•LLe operazioni che svolge sono:e operazioni che svolge sono:• letturalettura dalla memoria di massa del programma da eseguire (tramite il gestore dei

file);

• allocazioneallocazione della memoria centrale (tramite il gestore della memoria);

• caricamentocaricamento del programma e dei relativi dati nella memoria allocata (tramite il gestore della memoria);

• creazionecreazione e attivazioneattivazione del processo corrispondente (tramite il nucleo).

Page 39: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Programmi di utilità

•CConsentono di ampliare le funzionalità del SOonsentono di ampliare le funzionalità del SO• facilitano ed ottimizzano l’utilizzo all’utente

•I programmi di utilità sono (numerosi):• CompilatoriCompilatori• DebbugerDebbuger• Programmi per le memorizzazione organizzata dei dati (backupbackup)• Programmi di ottimizzazione dello spazio occupato su discoProgrammi di ottimizzazione dello spazio occupato su disco• Programmi di testProgrammi di test• Editor di testiEditor di testi• ……..

Page 40: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Gestione dei processi

•IIl concetto di l concetto di elaborazione parallela elaborazione parallela si riferisce:si riferisce:• ai dati, che potrebbero essere trattati parallelamente (es. immagine);• alle istruzioni, che potrebbero essere eseguite contemporaneamente nel caso di

operazioni indipendenti che trattano dati distinti;• ai programmi, che potrebbero essere in esecuzione nello stesso tempo.

•IIl parallelismo a livello di dati e di istruzioni è possibile solo con l’impiego di l parallelismo a livello di dati e di istruzioni è possibile solo con l’impiego di architetture di elaborazione parallela, basate sulla presenza di architetture di elaborazione parallela, basate sulla presenza di più unità più unità di elaborazionedi elaborazione in grado di eseguire istruzioni in modo concorrente ma in grado di eseguire istruzioni in modo concorrente ma anche, per esempio, di adeguati linguaggi di programmazione.anche, per esempio, di adeguati linguaggi di programmazione.

•IIl parallelismo a livello di programma ricade nell’ambito dei sistemi l parallelismo a livello di programma ricade nell’ambito dei sistemi operativioperativi..

Page 41: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Elaborazione parallela dei programmi

• SSistema operativo deve gestire un insieme di risorse scarseistema operativo deve gestire un insieme di risorse scarse

• OObiettivo:biettivo:• ridurre i periodi di inutilizzoridurre i periodi di inutilizzo• aumentare laumentare l’’utilizzo del sistemautilizzo del sistema• ridurre i tempi di risposta (in caso di interazione con utente)ridurre i tempi di risposta (in caso di interazione con utente)

• LLe condizioni che un sistema operativo deve soddisfare sono:e condizioni che un sistema operativo deve soddisfare sono:• efficienza: occorre assicurare un impiego ottimale di tutte le risorse;• interattività: il tempo di risposta è un fattore determinante per definire la qualità del

sistema operativo;• sincronizzazione/cooperazione: gestire la conseguente presenza di più agentiagenti in

grado di operare sul sistema in modo concorrente, al fine di evitare possibili malfunzionamenti (per esempio il blocco di un programma a causa di operazioni errate compiute da altri).

Page 42: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Elaborazione parallela dei programmi

• Le condizioni di parallelismo a livello di programma si riferiscono ai processiprocessi

• programma in esecuzioneprogramma in esecuzione

• Un processo è caratterizzato anche dal contestocontesto necessario per la sua esecuzione• elenco file utilizzati• valori contenuti nei vari registri

• I processi sono di natura dinamicidinamici

• AAd un programma possono corrispondere più processid un programma possono corrispondere più processi (processi figliprocessi figli)

• es: scrittura e stampa lettera

Page 43: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Esecuzione dei processi•PP

rocesso caratterizzato da:rocesso caratterizzato da:• Programma eseguibile

• Contesto: informazioni ausiliarie necessarie alla sua esecuzione

•IIn un sistema con una sola CPU multiprogrammato in time sharing la n un sistema con una sola CPU multiprogrammato in time sharing la CPU è condivisa tra più processi in memoriaCPU è condivisa tra più processi in memoria

•OOgni processo in esecuzione ha a disposizione un gni processo in esecuzione ha a disposizione un quanto di tempo di quanto di tempo di utilizzo della CPUutilizzo della CPU, al termine del quale viene sospeso per lasciare il , al termine del quale viene sospeso per lasciare il posto ad un altro processo in attesa di esecuzioneposto ad un altro processo in attesa di esecuzione

•UUn processo in esecuzione si (auto)sospende quando è in attesa di una n processo in esecuzione si (auto)sospende quando è in attesa di una operazione di ingresso/uscitaoperazione di ingresso/uscita

Page 44: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Processi non in esecuzione

• PProcessi in attesa di un evento esterno (ad esempio I/O)rocessi in attesa di un evento esterno (ad esempio I/O)

• PProcessi pronti ad essere eseguiti in attesa della CPUrocessi pronti ad essere eseguiti in attesa della CPU

• SSi tratta di due stati diversi: i tratta di due stati diversi: PRONTOPRONTO e e ATTESAATTESA realizzati realizzati con due code diversecon due code diverse

• NNOTAOTA: : • in un dato istante in un dato istante un solo processo è in esecuzioneun solo processo è in esecuzione• ci possono essere due ci possono essere due modalità di esecuzionemodalità di esecuzione::

• esecuzione in modalità utenteesecuzione in modalità utente• esecuzione in modalità supervisoreesecuzione in modalità supervisore

Page 45: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Stati di un processo

Selezione primo processo pronto e sua

esecuzione

Processo in

esecuzione

Processi pronti

Inizio esecuzione (accodamento ai processi pronti)

Termine quanto di tempo

Termine elaborazio

ne

Processiin attesa

Richiesta operazione di

I/OCompletamento

operazione di I/O (evento esterno

atteso)

Page 46: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

• Pronto EsecuzionePronto Esecuzione• Il SO stabilisce quale dei processi

“pronti” debba essere mandato in “esecuzione”.

• La scelta è fatta dall’algoritmo di scheduling che deve bilanciare efficienza e fairness.

• Esecuzione AttesaEsecuzione Attesa• il processo chiede delle risorse che

non sono disponibili o attende un evento

• il SO salva tutte le informazioni necessarie a riprendere l’esecuzione e l’informazione relativa all’evento atteso nella tabella dei processi

Transizioni di statoTransizioni di stato

E

E

P

A

P

A

Page 47: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Esecuzione dei processi

•IIl processo viene l processo viene creato e posto nella coda dei processicreato e posto nella coda dei processi pronti pronti

•iil primo tra i processi pronti viene posto in esecuzionel primo tra i processi pronti viene posto in esecuzione ( (FIFOFIFO))

•iil processo in esecuzione dispone delle risorse del sistema fino a:l processo in esecuzione dispone delle risorse del sistema fino a:• termine del quanto di tempotermine del quanto di tempo

• il nucleo interrompe il processo e lo mette in coda ai processi pronti;• quando arriva in cima alla coda dei processi pronti, il processo torna in stato in esecuzione,

proseguendo con l’elaborazione dell’istruzione successiva a quella su cui era stato interrotto;• richiesta di operazione I/Orichiesta di operazione I/O

• il nucleo sposta il processo attivo nello stato di attesa;• quando l’operazione di ingresso/uscita si completa il processo può proseguire l’elaborazione e

viene messo in fondo alla coda dei processi in pronti e prosegue come nel punto precedente;• termine esecuzione (istruzione finale)termine esecuzione (istruzione finale)

• il processo viene eliminato e rimosso dall’elenco dei processi esistenti;

•iil nucleo provvede a sostituirlo con il primo dei processi pronti.l nucleo provvede a sostituirlo con il primo dei processi pronti.

Page 48: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Esecuzione dei processi

•IIl processo non si rende conto delle interruzioni (interrupt):l processo non si rende conto delle interruzioni (interrupt):• il nucleo maschera al processo come effettivamente la sua elaborazione

evolve nel tempo;• il nucleo rende trasparente la presenza delle operazioni di interruzione e di

riassegnamento del processore a un processo.

•CContesto di un processoontesto di un processo• insieme dei dati che rappresentano lo “stato” del processo: situazione della

memoria, contenuto dei registri, livello di priorità, …• quando un processo viene interrotto (esce dallo stato di esecuzione) il

nucleo provvede a salvare il suo contesto (in una struttura dati chiamata descrittore del processodescrittore del processo);

• quando un processo torna nello stato di esecuzione il nucleo provvede a ripristinare il suo contesto (recuperando i dati precedentemente salvati nel descrittore).

Page 49: I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it

Context Swapping

•CCambio di contesto (ambio di contesto (context swappingcontext swapping))• si verifica quando un processo (e.g. P1) in esecuzione viene sostituito da un altro processo P2 (il primo dei processi pronti);

• il nucleo provvede a • salvare il contesto di P1 e gestirne l’evoluzione (pronto vs attesa);• ripristinare il contesto di P2 per consentirgli una corretta evoluzione.