Sistemi Operativi A Parte I - Introduzionesoa2001/docs/soa-introduzione.pdf · gestiscono le...

21
Sistemi Operativi A Parte I - Introduzione Augusto Celentano Universit Ca Foscari Venezia Corso di Laurea in Informatica ' Augusto Celentano Sistemi Operativi A -2 La gestione di un calcolatore Un calcolatore L un sistema complesso (sistema di elaborazione) e la sua gestione non pu essere distribuita e replicata in tutti i programmi applicativi ! operazioni ripetitive complesse svolte da tutti i programmi ! relazioni e interferenze tra programmi diversi ! controllo del funzionamento del calcolatore come macchina Il software di un sistema di elaborazione si pu dividere in due classi: ! software applicativo, composto da programmi e servizi che risolvono problemi per gli utenti ! software di sistema, composto da programmi e servizi che gestiscono il funzionamento del calcolatore (del sistema di calcolo) ' Augusto Celentano Sistemi Operativi A -3 Classi e livelli di software (vista architetturale) Dispositivi fisici Microarchitettura Linguaggio macchina Sistema operativo Sistema bancario Prenotazioni aeree Browser Web Compilatore Editor Interprete comandi Software applicativo Software di sistema Hardware/Firmware (Tanenbaum, 2001) ' Augusto Celentano Sistemi Operativi A -4 Sistema operativo Il sistema operativo pu essere visto e studiato da diversi punti di vista: ! come interfaccia tra lutente e il sistema permette di utilizzare il calcolatore e le sue le risorse per risolvere problemi ! come macchina virtuale permette di programmare come se si avesse a disposizione una macchina funzionalmente estesa ! come gestore di risorse controlla e coordina il funzionamento contemporaneo dei componenti del sistema I diversi punti di vista non si escludono a vicenda ! in un sistema operativo coesistono servizi per lesecuzione dei programmi, funzionalit per la gestione interna e funzioni standard per la programmazione

Transcript of Sistemi Operativi A Parte I - Introduzionesoa2001/docs/soa-introduzione.pdf · gestiscono le...

Sistemi Operativi AParte I - Introduzione

Augusto CelentanoUniversità Ca� Foscari VeneziaCorso di Laurea in Informatica

© Augusto Celentano Sistemi Operativi A - 2

La gestione di un calcolatore

� Un calcolatore è un sistema complesso (sistema di elaborazione) e la sua gestione non può essere distribuita e replicata in tutti i programmi applicativi! operazioni ripetitive complesse svolte da tutti i programmi! relazioni e interferenze tra programmi diversi! controllo del funzionamento del calcolatore come macchina

� Il software di un sistema di elaborazione si può dividere in due classi:! software applicativo, composto da programmi e servizi che

risolvono problemi per gli utenti! software di sistema, composto da programmi e servizi che

gestiscono il funzionamento del calcolatore (del sistema di calcolo)

© Augusto Celentano Sistemi Operativi A - 3

Classi e livelli di software (vista architetturale)

Dispositivi fisici

Microarchitettura

Linguaggio macchina

Sistema operativo

Sistemabancario

Prenotazioniaeree

Browser Web

Compilatore EditorInterpretecomandi

Software applicativo

Software di sistema

Hardware/Firmware

(Tanenbaum, 2001)

© Augusto Celentano Sistemi Operativi A - 4

Sistema operativo

� Il sistema operativo può essere visto e studiato da diversi punti di vista:! come interfaccia tra l�utente e il sistema permette di utilizzare il

calcolatore e le sue le risorse per risolvere problemi! come macchina virtuale permette di programmare come se si

avesse a disposizione una macchina funzionalmente estesa! come gestore di risorse controlla e coordina il funzionamento

contemporaneo dei componenti del sistema

� I diversi punti di vista non si escludono a vicenda! in un sistema operativo coesistono servizi per l�esecuzione

dei programmi, funzionalità per la gestione interna e funzioni standard per la programmazione

© Augusto Celentano Sistemi Operativi A - 5

Sistema operativo = interfaccia utente - sistema

enduser

programmer

OSdesigner

applicationprograms

utilities

operating system

computer hardware

(Stallings, 2000)

© Augusto Celentano Sistemi Operativi A - 6

Sistema operativo = macchina virtuale (1)

� Il sistema operativo pone sopra lo hardware un insieme di funzionalità che ne gestiscono i componenti! fornisce agli utenti la visibilità di una macchina più completa e

più semplice da programmare

� Il sistema operativo racchiude funzioni che gestiscono in modo standard situazioni quali! operazioni di ingresso e uscita! presenza contemporanea di più programmi in memoria che si

alternano nell�esecuzione! risposta ad eventi esterni (tempo, segnalazioni dalla periferia,

malfunzionamenti)! adattamento alla varietà dei dispositivi di memoria e esterni

© Augusto Celentano Sistemi Operativi A - 7

Sistema operativo = macchina virtuale (2)

� In questo modo si consente la programmazione di applicazioni come se si disponesse di una macchina estesa! tanti programmi → tanti processori, tante memorie! tante periferiche → gestione unificata! strutture di archivio complesse → visione logica

© Augusto Celentano Sistemi Operativi A - 8

Sistema operativo = gestore di risorse (1)

� Il sistema operativo gestisce le risorse del sistema (componenti, sottosistemi, tempo di elaborazione, etc.) distribuendole alle attività in corso (processi)! utilizza l�unità centrale a turno per i diversi processi! conserva più programmi e dati in memoria evitando

interferenze! sincronizza le attività comuni e l�uso di informazioni condivise! stabilisce le priorità di intervento necessarie nei vari casi! protegge le informazioni private degli utenti da accessi non

autorizzati! simula per ogni utente un sistema di elaborazione dedicato e

completo (macchina virtuale)

© Augusto Celentano Sistemi Operativi A - 9

Sistema operativo = gestore di risorse (2)

processor

I/O controller

processor

I/O controller

I/O controller

operatingsystemsoftware

programsand data

printers,keyboards,digital camera,etc.

I/O devicesmemory

computer system

• • •

•••

•••

(Stallings, 2000)

OSprograms

data

storage

© Augusto Celentano Sistemi Operativi A - 10

Funzioni di un sistema operativo (1)

� Controllo e esecuzione dei programmi, interpretazione delle richieste di servizi (processi, memoria, I/O)! esecuzione e terminazione dei programmi! ingresso e uscita dei dati! temporizzazione! gestione dei dispositivi hardware

� Organizzazione e strutturazione delle informazioni su memoria di massa (file system)! catalogazione di archivi (directory)! operazioni sui file! accesso alle singole informazioni

� Interpretazione e esecuzione di comandi dell�utente

© Augusto Celentano Sistemi Operativi A - 11

Funzioni di un sistema operativo (2)

� Gestione risorse interne (unità centrale, memoria centrale)

� Gestione risorse esterne (memoria di massa, periferia)

� Utilizzo di componenti e funzioni in modo indipendente dalle specifiche caratteristiche fisiche (macchine virtuali)

� Funzioni di uso generale (programmi di utilità)

� Funzioni operative (interfaccia utente)

� Supporto per la costruzione e l�esecuzione di applicazioni (ambienti di sviluppo)

© Augusto Celentano Sistemi Operativi A - 12

Interruzioni e supervisor call

� Il sistema operativo interviene su richiesta di un programma (processo) o in seguito ad un evento che modifica o richiede di modificare lo stato del sistema! la richiesta di intervento da parte di un processo avviene

attraverso una chiamata al supervisore (supervisor call, SVC)! la richiesta di intervento a seguito di un evento avviene

attraverso il meccanismo delle interruzioni

� In entrambi i casi vengono attivati gli stessi meccanismi di esecuzione! una interruzione software è una richiesta di intervento del

sistema operativo non causata da dispositivi esterni alla CPU

© Augusto Celentano Sistemi Operativi A - 13

Esecuzione di una supervisor call

proceduradi servizio

programmi utente(user mode)

sistema operativo(kernel mode)

tabelladei servizi

routinedi risposta

chiamata alsupervisore

© Augusto Celentano Sistemi Operativi A - 14

Review dei meccanismi di base hw/sw

� Interruzioni

� Memoria

� Input/Output

© Augusto Celentano Sistemi Operativi A - 15

Interruzioni (1)

� Il meccanismo di interruzione (interrupt) è una combinazione di comportamenti hardware e software attivati da un segnale hardware (segnale di controllo sul bus) o software (istruzione) per cui! si interrompe l�esecuzione del programma in corso ! si trasferisce il controllo della unità centrale (e della

memoria) ad un programma di risposta all�interruzione la cui posizione in memoria è nota a priori

! si esegue il programma di risposta! al termine si riprende l�attività che era stata sospesa

© Augusto Celentano Sistemi Operativi A - 16

Interruzioni (2)

(Stallings, 2000)

© Augusto Celentano Sistemi Operativi A - 17

Interruzioni (3)

� Al verificarsi di una interruzione l�unità centrale! termina l�esecuzione della istruzione in corso! copia il contenuto dei registri PC e PSW in locazioni apposite

in memoria centrale (salvataggio dei registri)! copia nei registri PC e PSW i valori contenuti in due celle di

memoria predefinite, dipendenti dall�interruzione ricevuta, corrispondenti al programma di risposta all�interruzione

! prosegue con la fase di fetch dell�istruzione successiva, che è la prima del programma di risposta all�interruzione

© Augusto Celentano Sistemi Operativi A - 18

Interruzioni (4)

(Stallings, 2000)

© Augusto Celentano Sistemi Operativi A - 19

Interruzioni (5)

� Il programma di risposta: ! salva i registri generali che deve utilizzare! acquisisce le informazioni sull�interruzione segnalata! esegue le operazioni di gestione relative! ripristina i registri generali che ha utilizzato! esegue una istruzione di fine interruzione che ripristina i

registri PC e PSW! prosegue con la fase di fetch dell�istruzione successiva, che è

normalmente l�istruzione del programma interrotto successiva al punto di interruzione

� Il programma di risposta può modificare la prosecuzione dell�esecuzione

© Augusto Celentano Sistemi Operativi A - 20

Interruzioni (6)

(Stallings, 2000)

© Augusto Celentano Sistemi Operativi A - 21

Interruzioni (7)

� Durante la gestione di una interruzione il meccanismo di interruzione può essere disabilitato per evitare interferenze! le interruzioni che si verificano durante questo tempo sono

poste in attesa, e segnalate quando il meccanismo di interruzione viene riabilitato

! l� esecuzione del programma di risposta deve essere veloce

� Se le interruzioni non sono disabilitate si adotta uno schema a priorità! le interruzioni più prioritarie possono interrompere le

interruzioni meno prioritarie

© Augusto Celentano Sistemi Operativi A - 22

Interruzioni (8)

(Stallings, 2000)

disabilitazione delle interruzioni annidamento delle interruzioni

© Augusto Celentano Sistemi Operativi A - 23

Tipi di interruzione (1)

� Le interruzioni possono verificarsi in seguito a! eventi causati da dispositivi periferici (esterne, asincrone) ! esecuzione di particolari istruzioni (interne, sincrone)

� Alcuni tipi di interruzione:! ingresso e uscita! clock! malfunzionamento hardware! errore software! chiamata al supervisore

© Augusto Celentano Sistemi Operativi A - 24

Tipi di interruzione (2)

� Ingresso e uscita! segnala il completamento di un comando di I/O o il verificarsi

di un evento su un dispositivo esterno

� Clock! è un segnale cadenzato per marcare il trascorrere del tempo

e per consentire un�analisi periodica dello stato del sistema

� Malfunzionamento hardware! alcuni malfunzionamenti possono essere rilevati e generare

una interruzione, che consente di segnalare, diagnosticare e talvolta ripristinare una situazione di errore

! il meccanismo di interruzione viene utilizzato come meccanismo generalizzato di segnalazione

© Augusto Celentano Sistemi Operativi A - 25

Tipi di interruzione (3)

� Errore software! alcune istruzioni possono dare luogo a situazioni di errore

che vengono segnalate per mezzo di una interruzione interna� divisione per zero� indirizzamento di memoria non esistente� esecuzione di istruzione non lecita (codice operativo non

significativo, o istruzione privilegiata)

� Chiamate al sistema operativo (supervisor call)! l�esecuzione di servizi del sistema operativo richiede una

gestione dello stato del sistema simile a quella necessaria nel caso di interruzione esterna.

© Augusto Celentano Sistemi Operativi A - 26

Multiprogrammazione

© Augusto Celentano Sistemi Operativi A - 27

Gerarchie di memoria

gerarchie di memoria

trasferimento dati

(Stallings, 2000)

© Augusto Celentano Sistemi Operativi A - 28

Spazio di indirizzamento di un programma

(Stallings, 2000)

© Augusto Celentano Sistemi Operativi A - 29

Rilocazione

(Stallings, 2000)

© Augusto Celentano Sistemi Operativi A - 30

Dispositivi di ingresso/uscita (1)

� Trasferiscono dati da e verso la periferia attraverso circuiti di interfaccia che adattano i segnali e gestiscono le caratteristiche specifiche dei dispositivi

� La comunicazione si avvale di due registri:! registro dati: tramite per lo scambio di dati! registro di stato (o di controllo): contiene informazioni sullo

stato della periferica e sui comandi da eseguire

© Augusto Celentano Sistemi Operativi A - 31

Dispositivi di ingresso/uscita (2)

� L'individuazione dei dispositivi (indirizzamento) può avvenire in due modi:! in corrispondenza di un'area "riservata" di memoria centrale

(dispositivi di I/O "mappati" in memoria)� accesso tramite normali operazioni di accesso a memoria

! attraverso uno spazio di indirizzamento dedicato (dispositivi "non mappati")

� accesso tramite operazioni di ingresso e uscita dedicate

© Augusto Celentano Sistemi Operativi A - 32

Gestione dei dispositivi di I/O (1)

� I dispositivi di I/O richiedono una gestione del colloquio e del trasferimento dei dati più articolata di quella della memoria centrale:! il loro funzionamento è asincrono rispetto all'unità centrale! la loro velocità è molto inferiore a quelle dell'unità centrale e

della memoria

� Per tali motivi è necessario utilizzare dei meccanismi di sincronizzazione nelle operazioni di I/O che:! assicurino il corretto trasferimento dei dati, evitando

duplicazioni (stesso dato più volte) e perdite (salto di dati)! evitino un degrado generalizzato delle prestazioni dovute alla

lentezza dei dispositivi

© Augusto Celentano Sistemi Operativi A - 33

Gestione dei dispositivi di I/O (2)

� Si possono utilizzare tre tecniche di gestione:! software, a controllo di programma (polling)! hardware-software, a interruzione! hardware, DMA (Direct Memory Access)

© Augusto Celentano Sistemi Operativi A - 34

Gestione software, polling (1)

� Il programma che deve effettuare le operazioni di ingresso e uscita controlla periodicamente lo stato del dispositivo (polling) per verificarne la disponibilità

� Ingresso:! legge lo stato del dispositivo! se è disponibile un dato, lo trasferisce! altrimenti non fa nulla fino alla prossima verifica

� Uscita:! legge lo stato del dispositivo! se il dispositivo è pronto, invia un dato! altrimenti non fa nulla fino alla prossima verifica

© Augusto Celentano Sistemi Operativi A - 35

Gestione software, polling (2)

� Il trasferimento dei dati è gestito da una funzione dedicata.

� La scelta del tempo di campionamento dei controlli è critica, e condiziona le prestazioni generali: se troppo bassa, si possono perdere dati, se troppo alta la macchina è bloccata sulle operazioni di I/O

© Augusto Celentano Sistemi Operativi A - 36

Gestione hardware/software, a interruzione

� La gestione a interruzione richiede un dispositivo hardware che possa segnalare all'unità centrale il verificarsi di un evento sull'interfaccia di I/O! presenza di un dato, o disponibilità dell'unità periferica a

riceverlo! il segnale provoca una modifica del comportamento dell'unità

centrale durante l'esecuzione delle istruzioni

© Augusto Celentano Sistemi Operativi A - 37

Gestione hardware/software, a interruzione

� L'unità centrale inizia un'operazione di I/O comunicandone i parametri a una funzione dedicata

� Quindi, prosegue l'elaborazione con operazioni che non richiedono che l'operazione di I/O sia terminata

� Quando l'operazione di I/O si è compiuta (dato disponibile, o dispositivo pronto), il dispositivo di I/O invia alla unità centrale un segnale hardware (interruzione)

� L'unità centrale serve l�interruzione e completa l�operazione di I/O

© Augusto Celentano Sistemi Operativi A - 38

Gestione hardware, DMA (1)

� La gestione delle operazioni di I/O a interruzione richiede l'intervento della CPU per ogni dato trasferito. La gestione DMA (Direct Memory Access) fa intervenire la CPU solo una volta per un blocco di dati, ma richiede hardware aggiuntivo con capacità di elaborazione (controllore DMA).

� E' utilizzata per trasferire molti dati da un dispositivo periferico verso celle contigue di memoria e viceversa, in particolare da e verso memorie di massa veloci.

© Augusto Celentano Sistemi Operativi A - 39

Gestione hardware, DMA (2)

� L'unità centrale inizia un'operazione di I/O comunicandone i parametri al controllore DMA tramite una funzione dedicata: numero di dati da trasferire, indirizzo di partenza in memoria, indirizzo del blocco dati sul dispositivo periferico

� Quindi, prosegue l'elaborazione con operazioni che non richiedono che l'intera operazione di I/O sia terminata

© Augusto Celentano Sistemi Operativi A - 40

Gestione hardware, DMA (3)

� Quando il dispositivo periferico è pronto per il trasferimento di un singolo dato, il controllore DMA si riserva l'utilizzo del bus di sistema per il tempo necessario a scambiare il dato con la memoria centrale, indirizzandole direttamente e sospendendo per il tempo del trasferimento l'attività della CPU sul bus (cycle stealing)

� Al termine del trasferimento dell'intero blocco di dati invia un segnale di interruzione all'unità centrale, segnalando il completamento dell'operazione di I/O

© Augusto Celentano Sistemi Operativi A - 41

Operazioni di I/O

(Stallings, 2000)

© Augusto Celentano Sistemi Operativi A - 42

Evoluzione dei sistemi operativi (1)

� Primi calcolatori! non esiste distinzione tra servizi e applicazioni (non c�e�

sistema operativo)

� Elaborazione seriale! esecuzione comandata da console attraverso dispositivi molto

semplici: display, interruttori, tastiera e stampante! setup complesso:

� caricamento del compilatore, lettura del programma, compilazione, salvataggio del programma compilato su supporto esterno

� caricamento del linker, lettura del programma compilato e delle librerie, collegamento del programma, salvataggio dell�eseguibile

� caricamento del loader, lettura del programma eseguibile, esecuzione

© Augusto Celentano Sistemi Operativi A - 43

Evoluzione dei sistemi operativi (2)

� Un monitor residente governa l�alternanza dei lavori

interruptprocessing

devicedrivers

jobsequencing

control languageinterpreter

userprogram

area

monitorresidente

(Tanenbaum, 2001) (Stallings, 2000)

© Augusto Celentano Sistemi Operativi A - 44

Evoluzione dei sistemi operativi (3)

� Sistemi batch! i programmi vengono divisi in lotti di lavorazione che passano

attraverso più fasi con supporti di memorizzazione intermedi veloci (nastri magnetici)

cardreader

tape drive inputtape

systemtape output

tape

printer

(Tanenbaum, 2001)

© Augusto Celentano Sistemi Operativi A - 45

Evoluzione dei sistemi operativi (4)

� Sistemi multiprogrammati! più programmi sono caricati in memoria

contemporaneamente, e l�elaborazione passa periodicamente dall�uno all�altro

partizionidi memoria

job 3

job 1

job 2

sistemaoperativo spooling system

input output

disco

© Augusto Celentano Sistemi Operativi A - 46

Evoluzione dei sistemi operativi (5)

� Personal computer, workstation, sistemi distribuiti! più elaboratori collegati in rete condividono risorse e

distribuiscono potenza di calcolo

© Augusto Celentano Sistemi Operativi A - 47

Classificazione dei sistemi operativi

� Sistemi dedicati (home computer, videogiochi)

� Sistemi batch (sistemi EDP)

� Sistemi interattivi in time-sharing (Unix)

� Sistemi in tempo reale (sistemi dedicati, sistemi industriali)

� Sistemi transazionali

� Sistemi misti

� Sistemi personali

� Sistemi operativi virtuali

© Augusto Celentano Sistemi Operativi A - 48

Sistemi dedicati (home computer, videogiochi)

� La macchina serve un solo �utente� e svolge un solo �compito�! funzioni base per interpretare comandi e eseguire programmi! supervisori o monitor! semplicità, basso livello, scarso sfruttamento del tempo

macchina

© Augusto Celentano Sistemi Operativi A - 49

Sistemi batch (sistemi EDP)

� La macchina serve un �lotto� di programmi in sequenza, in modo non interattivo! serializzazione delle operazioni di ingresso / uscita! sovrapposizione dei lavori! elaborazione non assistita ! sfruttamento del tempo macchina

© Augusto Celentano Sistemi Operativi A - 50

Sistemi interattivi in time-sharing (Unix)

� La macchina serve a turno più utenti ripartendo tra essi l�utilizzo delle risorse (unità centrale, memoria, periferiche)! ogni utente lavora indipendentemente dagli altri, avendo

l�impressione di utilizzare una macchina dedicata! protezione! sfruttamento delle risorse della macchina

© Augusto Celentano Sistemi Operativi A - 51

Sistemi real-time

� La macchina esegue più attività sulla base di una scala di priorità, sospendendo i lavori meno urgenti a favore dei più urgenti! protezione, tempi di risposta! gestione conflitti! sfruttamento delle risorse compatibilmente con le esigenze

dell�ambiente esterno

© Augusto Celentano Sistemi Operativi A - 52

Sistemi transazionali

� Permettono l�uso di programmi applicativi e l�accesso a archivi di dati salvaguardando la compiutezza delle operazioni! gestione del traffico verso sistemi remoti ! gestione della concorrenza tra gli utenti! gestione degli errori e ripristino della coerenza dei dati

© Augusto Celentano Sistemi Operativi A - 53

Altri tipi di sistemi operativi

� Sistemi misti! presentano più caratteristiche contemporaneamente, in

funzione dell�utilizzo e della configurazione! sistemi multi-purpose, operano in time-sharing, con

meccanismi di priorità e possibilità di elaborazioni batch

� Sistemi personali! offrono possibilità di esecuzioni multiple da parte di un unico

utente

� Sistemi operativi virtuali! offrono all�utente la scelta di più sistemi operativi sulla stessa

macchina

© Augusto Celentano Sistemi Operativi A - 54

Struttura a livelli di un sistema operativo

� Un sistema operativo complesso definisce una serie di macchine virtuali, realizzate per mezzo di astrazioni sopra la macchina fisica.

nucleo

gestore della memoria

gestore dell’I/O

file system

interfaccia utente

HW

© Augusto Celentano Sistemi Operativi A - 55

Nucleo di un sistema operativo (1)

� In un sistema ideale dedicato alla esecuzione di un solo programma le operazioni sono sequenziali e sincrone! tutte le operazioni (elaborazione, ingresso e uscita, controllo

dell�esecuzione) sono eseguite una dopo l�altra in mododeterministico e ripetibile

! ogni azione viene terminata prima di passare all�azione successiva

! l�esito dell�elaborazione non dipende dal tempo totale di esecuzione, né dal tempo relativo di esecuzione delle singole operazioni

� In un sistema reale multiprogrammato tale comportamento può essere riferito al singolo programma, ma non al sistema nel suo complesso

© Augusto Celentano Sistemi Operativi A - 56

Nucleo di un sistema operativo (2)

� La macchina è dotata di un solo processore e di una sola memoria centrale. Il nucleo ripartisce l�uso della unità centrale tra i diversi processi attraverso la gestione delle interruzioni! si genera una macchina virtuale in cui ad ogni programma

attivo (processo) corrisponde una unità centrale virtuale dedicata.

! i programmi che vengono eseguiti in tale ambiente non devono occuparsi della ripartizione dell�uso dell�unità centrale, poiché ciascuno ne utilizza una diversa (virtuale)

© Augusto Celentano Sistemi Operativi A - 57

Nucleo di un sistema operativo (3)

CPU memoriacentrale

memoriadi massa

I/O

CPUmemoriacentrale

memoriadi massa

I/OCPU •••

processo 1 processo n•••

© Augusto Celentano Sistemi Operativi A - 58

Gestore della memoria centrale (1)

� Il gestore della memoria di un sistema operativo consente di programmare riferendosi ad uno spazio di indirizzamento virtuale, indipendente dall�effettivo spazio di indirizzamento della memoria fisica.

� Si genera una macchina virtuale in cui ogni processore (virtuale) ha a disposizione una memoria privata la cui corrispondenza con la memoria fisica non è (in linea di principio) rilevante.

� I programmi possono essere sviluppati senza sapere la configurazione reale della memoria in cui saranno allocati

© Augusto Celentano Sistemi Operativi A - 59

Gestore della memoria centrale (2)

CPU memoriacentrale

memoriadi massa

I/OCPU •••

memoriacentrale memoria

di massaI/OCPU •••

memoriacentrale

CPU

processo 1 processo n•••

© Augusto Celentano Sistemi Operativi A - 60

Gestore delle periferiche di I/O (1)

� Il gestore delle periferiche realizza due tipi divirtualizzazione:! come i due gestori precedenti, ripartisce l�utilizzo delle

risorse esterne in modo che ogni processo possa vedere una periferia dedicata, in cui

� non ci sono conflitti di utilizzo con altri processi o utenti� non è necessario gestire la sincronizzazione e i tempi di attesa

(operazioni sincrone)! fornisce un insieme di funzioni di gestione di alto livello che,

mascherando le differenze costruttive delle apparecchiature, rendono omogeneo l�utilizzo della periferia anche se questa è diversificata

© Augusto Celentano Sistemi Operativi A - 61

Gestore delle periferiche di I/O (2)

memoriacentrale memoria

di massaI/O•••

memoriacentrale

CPUCPU I/O

CPUmemoriacentrale

memoriadi massa

I/O I/OCPU memoria

centralememoriadi massa

I/O I/O

CPUmemoriacentrale

memoriadi massa

I/O I/OCPU

memoriacentrale

memoriadi massa

I/O I/O

© Augusto Celentano Sistemi Operativi A - 62

File system (1)

� Il file system assegna alle informazioni memorizzate su una memoria di massa una organizzazione e una strutturazione riferite all�utilizzo delle informazioni e non al loro schema di memorizzazione! le informazioni sono raccolte in unità logiche (file) identificate

da un nome, di cui si ignora la struttura fisica e l�allocazionesul supporto di memorizzazione

! l�accesso avviene tramite funzioni che operano sul contenuto in base alla sua organizzazione logica (stream, record)

! sono gestite sia la privatezza dei dati, sia i conflitti di accesso nel caso di utilizzo condiviso tra più utenti

© Augusto Celentano Sistemi Operativi A - 63

File system (2)

disco fisico

organizzazionelogica

© Augusto Celentano Sistemi Operativi A - 64

Sistemi operativi virtuali

� Replicano macchine complete su cui possono girare più sistemi operativi diversi

(Tanenbaum, 2001)

© Augusto Celentano Sistemi Operativi A - 65

Sistemi operativi a microkernel (client-server)

� Dividono i servizi in più processi che comunicano attraverso un nucleo semplificato

(Tanenbaum, 2001)

© Augusto Celentano Sistemi Operativi A - 66

Sistemi distribuiti

� Estendono il modello client-server su una architettura distribuita attraverso lo scambio di messaggi lungo una rete

(Tanenbaum, 2001)

© Augusto Celentano Sistemi Operativi A - 67

Sistemi operativi moderni

Dimensione del nucleo di un sistema operativo

(Tanenbaum, 2001)

© Augusto Celentano Sistemi Operativi A - 68

Unix

� Ha una struttura a livelli che maschera la visibilità della macchina fisica! il livello più interno è il kernel, che racchiude le funzioni di

gestione dei processi, della memoria e dell�I/O

� Alcuni programmi di utilità esterni al sistema operativo sono forniti con il sistema! interpreti comandi (shell)! compilatore C

(Stallings, 2000)

© Augusto Celentano Sistemi Operativi A - 69

I livelli di un sistema Unix

(Tanenbaum, 2001)

© Augusto Celentano Sistemi Operativi A - 70

La struttura del kernel di Unix

(Tanenbaum, 2001)

© Augusto Celentano Sistemi Operativi A - 71

Alcuni sistemi Unix

� System V Release 4 (SVR4)

� Solaris 2.x

� 4.4BSD

� Linux

© Augusto Celentano Sistemi Operativi A - 72

Windows NT/2000 (1)

� E� progettato per utilizzare al meglio le proprietà delle architetture moderne a 32 bit

� Fornisce meccanismi di esecuzione multitask in un ambiente mono-utente

� E� basato sul paradigma client-server

© Augusto Celentano Sistemi Operativi A - 73

Windows NT/2000 (2)

� Ha un�architettura modulare che consente un elevato livello di flessibilità nella configurazione! può adattarsi a macchine differenti sul piano hw (in modo

limitato) ! supporta applicazioni scritte per altri sistemi operativi (in

modo limitato)

� E� un�architettura microkernel modificata! molte funzioni esterne al microkernel sono eseguite in modo

kernel! ogni modulo del sistema può essere rimosso, aggiornato o

sostituito senza modificare il resto del sistema

© Augusto Celentano Sistemi Operativi A - 74

Struttura a livelli di Windows NT/2000

� Hardware abstraction layer (HAL)! è un livello che isola il sistema operativo dalle differenze

hardware specifiche della singola piattaforma

� Microkernel! il kernel contiene solo i componenti essenziali del sistema

operativo o quelli più utilizzati! il resto è costituito da oggetti e processi esterni

� Device driver! traducono le richieste I/O dei processi utente in richieste ai

dispositivi di controllo dllo specifico hardware

© Augusto Celentano Sistemi Operativi A - 75

Hardware Abstraction Layer

(Tanenbaum, 2001)

© Augusto Celentano Sistemi Operativi A - 76

Il nucleo di Windows NT/2000 (executive)

� I/O manager� Object manager� Security reference monitor� Process/thread manager� Local procedure call (LPC) Facility� Virtual memory manager� Cache manager� Windows/graphics modules

© Augusto Celentano Sistemi Operativi A - 77

I sottosistemi ambientali

� I processi utente si appoggiano ai sottosistemi ambientali (environment subsystems)! Win32! OS/2! Posix

� Applicazioni progettate per sistemi Windows 16-32 bit, per sistemi OS/2 o per sistemi Posix trovano in WIndows NT/2000 un ambiente di esecuzione che simula l�ambiente nativo

© Augusto Celentano Sistemi Operativi A - 78

L�architettura di Windows NT/2000

(Tanenbaum, 2001)

© Augusto Celentano Sistemi Operativi A - 79

Il modello client - server

� Rende più semplice l�executive! è possibile estendere o modificare le funzioni fornite

(API, Application Program Interface)

� Migliora l�affidabilità! ogni servizio è svolto da un processo separato! i processi client non hanno accesso diretto alla macchina hw

(protezione)

� Permette di remotizzare i servizi costituendo la base per l�elaborazione distribuita

© Augusto Celentano Sistemi Operativi A - 80

Thread e SMP (simmetric multiprocessing)

� L�esecuzione dei processi si basa sui due concetti di thread e di multiprocessing simmetrico! un processo può avere al suo interno più flussi di esecuzione

logicamente paralleli (thread)! un processo server può creare tanti thread quanti sono i

client che richiedono il servizio! in un hardware multiprocessor i thread possono essere

eseguiti da processori diversi! i processor fisici sono perfettamente equivalenti rispetto ad

ogni richiesta di esecuzione (simmetric multiprocessing)

© Augusto Celentano Sistemi Operativi A - 81

L�implementazione dei sottosistemi ambiente

(Tanenbaum, 2001)

© Augusto Celentano Sistemi Operativi A - 82

Esecuzione di programmi MS-DOS

(Tanenbaum, 2001)