11
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

Sistemi Operativi A Parte I - Introduzionesoa2001/docs/soa-introduzione1.pdf · gestiscono le caratteristiche specifiche dei dispositivi ... ' Augusto Celentano Sistemi Operativi

Embed Size (px)

Citation preview

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)