Input/output. Sistemi Operativi Lez. 21. Corso: Sistemi Operativi Danilo Bruschi A.A. 2009/2010

Documenti analoghi
Input/output. Sistemi Operativi Lez. 32. Corso: Sistemi Operativi Danilo Bruschi A.A. 2009/2010

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

Livelli del sottosistema di I/O

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI

Il sistema di I/O. Sistemi Operativi 13.1

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Input/Output. Livelli del sottosistema di I/O

LA GESTIONE DELLA I/O

ISA Input / Output (I/O) Data register Controller

Sistemi Operativi. Sottosistema di I/O

Operazioni di I/O. Schema di collegamento fra dispositivi periferici e CPU

Input/Output (Cap. 7, Stallings)

Stallo di processi. Definizione del problema e modellizzazione Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Corso di Calcolatori Elettronici I

Sottosistemi ed Architetture Memorie

La gestione dell I/O (Cap. 5, Tanenbaum)

Deadlock (stallo) Risorse. Uso delle risorse. Parte III. Deadlock

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

Dispositivi di I/O. Dispositivi di I/O. Prestazioni degli hard disk. Dispositivi di I/O (2) Architetture dei Calcolatori (lettere A-I)

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Sistemi di I/O. Contenuti. L hardware di I/O. Bus in un PC. L hardware di I/O. Le interfacce I/O per le applicazioni.

Periferiche CPU. Misure e Sistemi Microelettronici Sistemi 6-1 SREG. Data Bus Address Bus Control Bus

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

Sistemi Operativi. Sottosistema di I/O

Architettura hardware

Come funzionano i computer

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Struttura dei Sistemi di Calcolo

Modelli di interazione tra processi

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Capitolo2: Architettura del calcolatore

Struttura hw del computer

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione

Elettronica dei Sistemi Programmabili A.A Microcontrollori. Introduzione allo sviluppo di progetti

Capitolo 7: Input/Output. Es.1 - Bus sincrono. Es.1 - Risposta (a)

Tipi di Bus. Bus sincrono. Comunicazioni nell elaboratore (e oltre) Bus sincroni e asincroni Standard commerciali (PCI,SCSI,USB)

Sistemi Operativi: Concetti Introduttivi

Componenti e connessioni. Capitolo 3

Sistemi Operativi. Lez. 6: Problemi classici della programmazione concorrente

Il Sistema Operativo. Informatica Sistema Operativo 1

I dispositivi di input/output

Corso di Informatica

Il sistema di Input/Output

Informatica di Base - 6 c.f.u.

Modelli di interazione tra processi

Com è fatto un computer (seconda puntata) Appunti per le classi 1 A cura del prof. Ing. Mario Catalano

Corso di Informatica

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Virtualizzazione delle Periferiche. Corso di Sistemi Operativi

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

Modulo 3. Software. Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè

Architettura di un sistema di calcolo

Informatica Generale 06 - Introduzione ai Sistemi Operativi

Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per:

Secondo l architettura di Von Neumann il bus rappresenta il punto di interconnessione di tutti i componenti del calcolatore.

Sottosistema d ingresso uscita

Il Processore. Informatica di Base -- R.Gaeta 27

Memoria Secondaria o di Massa

Il sistema operativo

Sistemi Operativi (prima parte) Appunti di TPI Elaborati dal prof. Ing. Mario Catalano Per la classe 3 Einf.

SISTEMA DI I/O CALCOLATORI ELETTRONICI I

Architettura di una CPU

Capitolo 13 Il sottosistema di ingresso/uscita

Architettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer?

Informatica Sistemi operativi Sistemi Operativi 1

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

CPU, RAM, ROM e BUS Corso di Abilità Informatiche Laurea in Fisica

Capitolo 6 Le infrastrutture SoftWare

STRUTTURE DEI SISTEMI DI CALCOLO

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

Marco Cesati Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata

Gestione software Il meccanismo delle interruzioni - 3

Architetture di rete. 4. Le applicazioni di rete

Sistema operativo & file system 1

Struttura Logica del S.O:

Architettura di Von Neumann

- Dispensa V - IL SISTEMA OPERATIVO

In entrambi i casi i dispositivi vengono comunque trattati alla stregua di indirizzi, con minime

I sistemi operativi. Prof. Daniele Contarino

Lezione 2 Chiamate di procedura e risposta alle interruzioni

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

Sistemi Operativi. Lez. 0: Introduzione ai sistemi operativi

I dispositivi di input/output: il mouse

Architettura dei calcolatori

Architettura dei calcolatori

Sistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Sistemi Di Elaborazione Dell informazione

Collegamento al sistema

Influenza dell' I/O sulle prestazioni (globali) di un sistema

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Il software: Istruzioni per il computer

Sistema operativo. Interazione con il SO

Progetto del processore e supporto del processore al SO (interruzioni eccezioni) Salvatore Orlando

I dischi ottici. Istituzioni di Informatica -- Rossano Gaeta 43

Architettura dei calcolatori e Software di sistema

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Transcript:

Input/output Sistemi Operativi Lez. 21 1

Ruolo del SO Le periferiche di I/O sono i dispositivi attraverso i quali un calcolatore scambia dati/interagisce con la realtà esterna Per ogni periferica collegata ad un calcolatore il SO deve essere in grado di Inviare comandi alla periferica Intercettare segnali di interrupt da questa generati Gestire errori Per capire come possono essere realizzate queste funzionalità è necessario conoscere i principi di funzionamento di una periferica 2

Dispositivi di I/O I dispositivi di I/O hanno: Una componente meccanica Una componente elettronica La componente elettronica chiamata device controller impartisce comandi al dispositivo fisico (drive/device) e ne controlla la corretta esecuzione L insieme dei comandi impartiti dal controller al device, il loro formato, i codici di errore riportati definiscono l interfaccia tra il device ed il dispositivo Un controller può controllare più device purché abbiano la stessa interfaccia Interfacce famose: IDE (Integrated Device electronics, SCSI (Small Computer System Interface), USB (Universal Serial BUS 3

Tipi di Device I dispositivi possono essere suddivisi in due grosse categorie in funzione delle modalità con cui manipolano i dati su cui operano: Dispositivi a blocchi: memorizzano e trasferiscono le informazioni in blocchi di dimensione fissa, e ciascun con un suo indirizzo. La dimensione del blocco varia da 512-32,768 byte Dispositivi a carattere: memorizzano e trasferiscono stringhe di byte senza riferimento ad alcuna struttura di blocco Il clock è un dispositivo di I/O che non ricade in nessuna delle due predette categorie 4

Device Controller 5

Device Controller Interposti tra il SO e la periferica, offrono un interfaccia di comunicazione tra i due mondi Possono essere programmati usando appositi registri ed in alcuni casi data buffer Caricando opportune sequenze di bit all interno di questi registri, il sistema operativo può richiedere l esecuzione di comandi il cui risultato può essere prelevato sempre attraverso questi registri L insieme di comandi usati per comunicare con il controller, il loro formato, ed i codici di errore costituiscono l interfaccia del controller verso il sistema operativo, questa interfaccia è devicedependent 6

Comunicare con il controller Per comunicare con un controller dobbiamo affrontare due problemi: Come accedere ai registri (data, status, ) Questo accesso dipende dalle modalità di I/O mapping» Memory-mapped I/O» Isolated I/O Un protocollo per comunicare 3 tipi Programmed I/O & Polling Direct memory access (DMA) Interrupt-driven I/O 7

Memory mapped I/O I controller condividono lo spazio fisico della memoria, cioè ai registri dei controller sono assegnate determinate locazioni di memoria centrale Le operazioni di I/O sono le stesse operazioni usate per la gestione delle memoria (LW,SW) Non esiste alcuna istruzione particolare di I/O 8

Isolated I/O Le spazio degli indirizzi dei controller è diverso da quello della memoria centrale Si adottano istruzioni di I/O dedicate a manipolare i registri A livello hw è necessario prevedere degli opportuni meccanismi (I/O bus, linee dedicate) per discernere gli indirizzi di I/O da quelli relativi alla memoria 9

Isolated I/O in INTEL I/O port: ad ogni registro è assegnato un numero di 8/16 bit, che specifica la porta di I/O corrispondente a cui ci si riferisce usando istruzioni di I/O Es. mov al, 0x20 out 0x20, al Sistema ibrido: Buffer dati mappati in memoria, registri di controllo come I/O port 10

I/O port INTEL 11

Modalità di comunicazione tra controller e driver 12

Programmed I/O & Polling Continuous polling: all interno del driver è presente un loop di busy waiting che continuamente verifica se il dispositivo è pronto o meno ad accettare dati o comandi, oppure a produrre un output Periodic Polling: in alcuni casi, il driver verifica periodicamente se un dispositivo e pronto ad operare, in caso affermativo procede altrimenti si blocca e ripete l operazione ad intervalli di tempo prefissati Es: un mouse USB deve essere interrogato con una frequenza di 100 Hz 13

I/O Controllo Programma 14

Interrupt Driven I/O I registri di controllo di un device controller posseggono almeno uno status bit che indica se un operazione di ouput è stata completata oppure se c è un nuovo dato da consumare Nelle periferiche più sofisticate questo insieme a questi bit viene asserita una linea di IRQ sul bus di sistema Quindi ogni volta che si inserisce un nuovo controller su un sistema va indicato l IRQ di riferimento, per evitare conflitti questa scelta viene spesso demandata al BIOS in fase di boot 15

Interrupt driven I/O 16

Interrupt-driven I/O 17

DMA-CPU La CPU (il driver) programma il DMA controller, predisponendone i registri con i seguenti dati: indirizzo di memoria da dove prelevare o depositare i dati; Numero di byte da acquisire/prelevare Informazione di controllo (read/write) Dopodiché riprende la normale operatività Il DMA controller prende il controllo del memory bus directly e impartisce i comandi all I/O controller per effettuare lo spostamento di dati richiesto dalla CPU Il Disk controller transferisce i dati in memoria principale Terminato il trasferimento il disk controller invia un ACK al DMA controller Il DMA controller invia un interrupt al processore per avvertirlo del completamento dell operazione 18

DMA 19

DMA PRO Allegerisce la CPU dall overhead imposto dalla gestione degli interrupt nel caso di periferiche veloci CONS Il DMA è in genere più lento della CPU, in molti sistemi la CPU (più lenta) si trova spesso in attesa del DMA Il DMA aumenta i costi del sistema 20

I/O sw system Il sottosistema per la gestione dell I/O viene solitamente strutturato in 5 livelli, ciascuno formato da diverse componenti 21

Interrupt Handler Gli Interrupt handler sono la parte più nascosta dell architettura e sono caratterizzati da stretti vincoli di tempo, eseguono quindi lo stretto necessario per Acquisire i dati dell ultima operazione di I/O Predisporre le condizione per garantire l esecuzione delle prossima operazione di I/O Risvegliare il driver della periferica che stava attendendo il completamento dell operazione di I/O 22

Device Driver Ogni periferica è caratterizzata da un proprio insieme di registri e di comandi, affinché la periferica funzioni correttamente è necessario che registri e comandi siano correttamente predisposti e impartiti Il device driver è un programma che svolge esattamente queste funzioni Esiste un device driver per ogni periferica solitamente realizzato dal costruttore della periferica stessa Solitamente concepito come parte del kernel, per consentire l accesso rapido alle periferiche, in Minix i driver operano in user mode 23

Device driver Il driver costituisce quindi l interfaccia tra il SO e il controller della periferica Riceve dal device independent sw la richiesta per l esecuzione di comandi d alto livello, che traduce in una sequenza di comandi per il controller Avvia il controller e resta in attesa di essere risvegliato da un interrupt, tramite l interrupt handler 24

Device-Independent I/O Software Scopi: Fornire un interfaccia standard alle applicazioni per la gestione dell I/O fornire le funzionalità comuni a tutti i dispositivi di I/O Uniform interfacing for device drivers Buffering Error reporting Allocating and releasing dedicate devices Providing a device-independent block size 25

Interfaccia verso i driver Interfaccia Driver-SO: le funzioni che il driver deve mettere a disposizione e le funzioni di kernel che può chiamare Un interfaccia uniforme facilita la stesura di driver, e rende possibile l aggiunta di driver senza ricorrere alla modifica del kernel 26

Device-Independent I/O Software Uniform naming: si preoccupa di mappare il nome simbolico di un dispositivo nel corrispondente driver Buffering: si preoccupa di gestire la diversità tra i dati acquisiti da un dispositivo e i dati richiesti da un applicazione Error Reporting: si preoccupa di fornire un interfaccia comune verso i diversi messaggi di errore che possono derivare dai driver, a seguito di errori nei dispositivi 27

Device-Independent I/O Software Allocating/Releasing : si preoccupa di allocare deallocare l uso di risorse ai processi utente, funzionalità particolarmente critica per risorse non condivisibili, a causa del deadlock Device independent block size: nasconde al livello superiore alcuni dettagli implementativi come ad esempio la diversa dimensione dei blocchi 28

Riassumendo 29

Deadlock 30

5 filosofi al ristorante cinese I filosofi alternano momenti di riflessione e di appetito Per mangiare occorrono due bacchette 31

Una possibile soluzione Filosofo i sem chops[5] = {1,1,1,1,1} do { down (chops[i]); down (chops[(i+1) % 5]); /* mangia / up (chops[i]); up(chops[(i+1) % 5]); /* riflette */ } while (1); 32

Deadlock Un insieme di processi S è in deadlock se ciascuno di essi è in attesa di un evento, che solo un altro processo appartenente a S può provocare Es. Due processi A e B usano lo stesso file in modo esclusivo e la stessa stampante durante la loro esecuzione. All istante t, A acquisisce il file e viene sospeso, la CPU viene assegnata a B che acquisisce la stampante e poi si mette in attesa del file; quando la CPU torna ad A, A si mette in attesa della stampante A questo punto nessuno dei due è più in grado di proseguire 33 33

Deadlock È stato dimostrato (Coffman 1971) che il deadlock è caratterizzato dalla presenza contemporanea in un sistema di 4 condizioni necessarie: 1. Accesso alle risorse in mutua esclusione 2. Hold and Wait processi in possesso di risorse possono continuare a richiederne delle nuove, senza cedere quelle già acquisite anche se rimangono bloccati in attesa 3. NO Preemption 4. Attesa circolare due o più processi sono in attesa di risorse usate da un altro processo del gruppo 34 34

RAG Il Deadlock può essere descritto usando un Resource Allocation Graph (RAG) Un RAG è formato da due insiemi di nodi, P = {P1, P2,, Pn} che rappresenta i processi e R = {R1, R2,, Rm} che rappresenta le risorse Un arco diretto da un processo ad una risorsa, Pi Ri, denota che Pi ha richiesto Rj Un arco diretto da una risorsa ad un processo, Ri Pi, denota che Rj è in uso da parte di Pi Ogni risorsa può avere un numero di copie Se il grafo non ha cicli, non può esserci deadlock nel sistema Se il grafo ha un ciclo, nel sistema può esserci un deadlock 35

36

RAG UN CICLO e DEADLOCK UN CICLO E NESSUN DEADLOCK 37

Come gestire i deadlock Ignorandoli: quando possibile si cerca di ignorarli, gli sforzi richiesti per una loro gestione non è sempre sostenibile Prevention: si prendono tutte le precauzioni affinché una delle 4 condizioni necessarie non si verifichi mai Detection e Recovery: si verifica costantemente il grafo di allocazione risorse, individuato un ciclo si killano uno o più processi coinvolti, che vanno riportati al loro stato iniziale (recovery) prima di essere di nuovo eseguiti Avoidance: attraverso un allocazione oculata delle risorse 38

Deadlock Prevention Fare in modo che una delle condizioni necessarie non si verifichi mai: Mutua esclusione Rendere tutte le risorse condivisibili (difficilmente praticabile) Hold and wait Process cannot hold one resource when requesting another Process requests, releases all needed resources at once Preemption Il SO può prelazionare tutte le risorse (costoso) Circular wait Imporre un ordine (numerazione) sulle risorse e forzare la loro richiesta nel rispetto di questo ordine 39

Detection e Recovery In questo caso la strategia adottata è quella di assumere la possibilità che il deadlock si verifichi e quindi individuare un meccanismo per rilevarlo e poi rimuoverlo In questo caso servono due algoritmi il primo di rilevamento del deadlock (detection) Il secondo per riprisitnare una situazione deadlock free 40

Deadlock Detection Visita il RAG alla ricerca di cicli Se viene trovato un ciclo, prelaziona una delle risorse coinvolte, forzando un processo a rilasciarla (vedi recovery) Costoso in termini di risorse Risultato non garantito Molto critica la frequenza di esecuzione: Eseguire sulla base della freuqnza del dealock Eseguire quando la richiesta per risorse di sistema va in time-out 41

Deadlock Recovery Una volta che il deadlock è stato rilevato abbiamo due opzioni Abort dei processi Forzo Abort di tutti i processi coinvolti nel deadlock I processi dovranno essere fatti ripartire Forzo abort di un processo alla volta sino a che il ciclo non è eliminato Dopo l eliminazione di ciascun processo deve rieseguire l algoritmo di detection Prelazione delle risorse È necessario individuare processo e risorse da prelazionare Deve essere eseguito il rollback del processo selezionato C è il rischio della starvation 42

Deadlock Avoidance In questo caso è necessario fornire al sistema informazioni preventive sull allocazione delle risorse di cui necessita un processo al fine di garantire che il deadlock non si verifichi mai Il sistema soddisfa la richiesta di risorse da parte di un processo, solo se sa che il processo potrà soddisfare tutte le sue richieste future Si evitano così eventuali circolarità Molto pesante computazionalmente Difficile determinare in anticipo le risorse di cui necessita un processo 43

Avoidance: l algoritmo del banchiere Consente di evitare ad un sistema di entrare in uno stato di deadlock, garantendo che il sistema effettui solo transizioni tra stati sicuri Uno stato sicuro è uno stato del sistema in cui è possibile soddisfare tutte le richieste dei processi in esecuzione e garantirne così la loro terminazione 44

Esempio E (existing): risorse totali P (possessed): possedute A (available): disponibili 45