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

Documenti analoghi
Sistemi Operativi SISTEMI DI INPUT/OUTPUT. D. Talia - UNICAL. Sistemi Operativi 10.1

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

Sistemi Operativi. Sottosistema di I/O

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI

Livelli del sottosistema di I/O

Componenti di un sistema operativo

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

Input/Output. Livelli del sottosistema di I/O

Il sistema operativo

Prof. G. Ascia. Sistema Operativo

Architettura dei sistemi di elaborazione (Input/Output parte 1)

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA COMPITI DEL SOTTOSISTEMA DI I/O ARGOMENTI

5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche

Gestione periferiche I/O

LA GESTIONE DELLA I/O

Il sistema operativo

I Processi. Il Concetto di Processo

Sistemi Operativi. Sottosistema di I/O

Struttura dei Sistemi di Calcolo

Introduzione ai thread

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

I THREAD O PROCESSI LEGGERI

Architettura dei calcolatori e sistemi operativi. Input Output. IO 3 Device driver

Strutture dei sistemi di calcolo

Università degli Studi di Cassino

Struttura interna del sistema operativo Linux

Università degli Studi di Cassino

Il Sistema Operativo

2. Cenni di sistemi operativi

IL SISTEMA OPERATIVO

Modi di esecuzione user / kernel

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.

Il sistema di I/O. Sistemi Operativi 13.1

Il problema dello I/O e gli Interrupt. Appunti di Sistemi per la cl. 4 sez. D A cura del prof. Ing. Mario Catalano

Elementi di Informatica A. A. 2016/2017

Gestione dei Processi

Sistemi Operativi e Laboratorio, Prova del 10/4/2018 compito A

Sistemi Operativi e Laboratorio, Prova del 10/4/2018 compito B

Pag. 1. Il Nucleo del sistema operativo (la gestione dei processi)

CAP9. Device drivers

Sistemi Operativi. Bruschi Martignoni Monga. La gestione. Concetti generali Comandi Interrupt Pila sw Deadlock Gestione dei deadlock

Sistema operativo: Introduzione

Sistemi operativi 2003/2004. Input e output

Capitolo 2: Strutture dei sistemi di calcolo

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

Modulo 10: Gestione dei dispositivi di I/O

Il Sistema Operativo Ripasso

Elenco sezioni libro di testo Ed. 5 Tra parentesi le corrispondenze per l'ed. 7.

Le Interruzioni. Ciclo del processore

Le risorse. Alcune definizioni

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

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

LINUX: struttura generale

Il Concetto di Processo

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

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Sistemi Operativi 9 luglio 2013 Compito

Struttura dei Sistemi Operativi

Il Microprocessore. Modello di Von Neumann

Sistemi Operativi: Concetti Introduttivi

Sistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1

Programma e Modalità d Esame

Sommario FONDAMENTI DI INFORMATICA. Schema dell'architettura a livelli del SO. Il Sistema Operativo (SO) SISTEMI OPERATIVI

Richiami sui Concetti Fondamentali dei Processi

5 Thread. 5 Thread. 5 Thread. Ad un generico processo, sono associati, in maniera univoca, i seguenti dati e le seguenti informazioni:

Struttura Logica del S.O:

Il Sistema Operativo

SISTEMA DI ELABORAZIONE

API Socket di Berkeley

Architettura di un calcolatore

Il Modello a scambio di messaggi

Introduzione al Multithreading

Trasparenze del Corso di Sistemi Operativi

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

Laboratorio di Informatica. Il Sistema Operativo. Il Sistema Operativo 1

FONDAMENTI DI INFORMATICA

2. Nucleo del sistema operativo (la gestione dei processi)

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

coda arrivo burst P 1 A 0 20ms P 2 C 10 25ms P 3 B 15 20ms P 4 A 25 20ms

Capitolo 13 Il sottosistema di ingresso/uscita

i. Diagramma di GANTT relativo all esecuzione dei quattro processi:

Sistema di protezione (1)

Sistema di protezione (2) Protezione (1)

Corso di Informatica

Corso di Informatica

Diplomi Universitari Teledidattici. Sistemi Operativi

Struttura dei Sistemi di Calcolo

Sistemi Operativi e Laboratorio, Prova del 9/9/2016

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

Il Sistema Operativo. Informatica B AA 17/18 Luca Cassano 30 Novembre 2017 Informatica B, AA 17/18, Luca Cassano

Il supporto al sistema operativo

I Processi. Il Concetto di Processo

Sistemi Operativi e Laboratorio, Prova del 15/06/2016

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

Corso di Informatica Modulo T3 1-Nucleo e processi

Elaborazione parallela

Laboratorio di Informatica (Chimica)

Processi e Thread. Meccanismi di IPC (1)

Transcript:

Operazioni di I/O 1 Schema di collegamento fra dispositivi periferici e CPU Memoria CPU buffer interfaccia Registro di controllo Registro Di stato Unità di controllo Dispositivo fisico 2 1

Unità di interfaccia Contiene i seguenti registri: Registro di controllo (include vari bit per abilitare particolari comportamenti del dispositivo, es. bit di start) Registro di stato (codifica lo stato del dispositivo) Buffer (contiene dati in lettura o scrittura) La CPU accede ai registri dell interfaccia mediante apposite istruzioni macchina, es.: get(valore, registro) put(valore, registro) 3 Ciclo di I/O basato sulle interruzioni 4 2

Interfaccia di I/O per le applicazioni Le SC di I/O incapsulano i comportamenti dei dispositivi in classi generiche che nascondono le differenze alle applicazioni Il livello dei driver dei dispositivi nasconde al sottosistema di I/O del nucleo le differenze fra i controllori dei dispositivi di I/O I dispositivi differiscono in: A carattere o blocchi Ad accesso sequenziale o random Condivisi o dedicati Velocità delle operazioni read-write, read only, or write only 5 La struttura di I/O di un nucleo 6 3

Sottosistema di I/O del nucleo Scheduling Ordinare le richieste di I/O presenti nelle code dei dispositivi per migliorare l efficienza Buffering per contenere in memoria i dati mentre vengono trasferiti Per gestire le differenze di velocità fra dispositivi Per gestire dispositivi che trasferiscono dati in blocchi di dimensioni diverse 7 Sottosistema di I/O del nucleo Caching per mantenere copia dei dati coinvolti in I/O in una memoria veloce Spooling memoria di transito per tenere i dati destinati a dispositivi che possono servire una sola richiesta per volta i.e., stampanti (coda di file da stampare) 8 4

Gestione degli Errori Il SO si può proteggere da errori dovuti ai dispositivi o alle applicazioni (es. read che non ha successo, dispositivo non pronto, fallimento di una scrittura) Molti SO restituiscono un error number o un codice d errore quando la richiesta di I/O fallisce System error logs riportano gli errori avvenuti 9 Strutture dati del Kernel Il Kernel conserva informazioni sui componenti di I/O in uso, come tabella dei file aperti, connessioni di rete, stato dei dispositivi a carattere Moltissime strutture dati complesse per gestire i buffer, l allocazione di memoria, blocchi difettosi Per implementare l I/O in modo indipendente dai dispositivi si usano molto le tecniche objectoriented e lo scambio di messaggi 10 5

Strutture dati per l I/O del Kernel UNIX 11 I/O ad interruzione di programma Il colloquio fra interfaccia e dispositivo è di tipo handshake Interfaccia: Request to Send Periferica: Ack Interfaccia: Send Dato Il colloquio tra processore ed interfaccia deve essere tale da realizzare l attesa passiva del processo che esegue l operazione di I/O 12 6

Procedura wait_for_interrupt Un processo opera su un dispositivo eseguendo: put(valore, registro-controllo) Wait_for_interrupt Get(valore, registro-di-stato) interno periferico interrupt interrupt 13 Il Driver Due modalità di esecuzione: Il driver fa parte del kernel del S.O.: è invocabile dal processo utente mediante SVC Dunque sarà eseguito nel contesto del processo utente, ma in modo kernel Esiste un processo driver cui il processo utente richiede un servizio Soluzione più leggera, non richiede modifiche del Kernel all aggiunta di una nuova periferica, ma solo la creazione del driver all atto del boot 14 7

Realizzazione del driver Il processo che richiede l I/O invocherà un driver virtuale, capace di garantire la mutua esclusione nell accesso alla periferica Driver Virtuale: Richiesta Periferica Driver-reale Rilascio Periferica Driver Reale: Testa-driver Wait_for_interrupt Coda_driver // è eseguito in modo kernel 15 Sincronizzazione fra processo che esegue il driver e la periferia La testa-driver è responsabile di lanciare l operazione di I/O scrivendo sui registri dell interfaccia Wait-for-interrupt: il processo che esegue il driver si sospenderà attendendo l interrupt di fine I/O, dando la possibilità ad un altro processo di essere schedulato-> corrisponde ad una wait (sem) ove sem è il semaforo associato alla periferica Quando la periferica avrà completato l operazione, alzerà un segnale di interruzione: l ISR relativa provvederà a sbloccare il processo sospeso sul semaforo, attraverso una signal(sem). Il processo rimesso nella ready queue, una volta schedulato, eseguirà la coda del driver nella quale leggerà dal registro di stato dell interfaccia l esito dell operazione 16 8

Il driver virtuale L ultima istruzione del driver virtuale implementa il rilascio della periferica Per rilasciare rapidamente la periferica, due possibili soluzioni: Il processo sbloccato diventa direttamente running, senza passare per lo stato ready Il processo sbloccato va nella coda dei ready ma con una elevata priorità (soluzione UNIX) 17 Comunicazione tra processo utente e processo driver Se il driver fa parte di un processo invocabile dall utente, occorre gestire la comunicazione mediante apposite istruzioni messe a disposizione dal SO. Questa comunicazione sarà realizzata diversamente a seconda del modello scelto: macchina a memoria comune o macchina a scambio di messaggi. 18 9

Realizzazione nel modello a memoria comune La comunicazione tra processo interno e processo driver avviene mediante una risorsa condivisa (monitor) che rappresenta la periferica Il richiedente potrà depositare la sua richiesta nell area di memoria comune interno MONI TOR driver attivazione periferica interruzione esterno/ periferica 19 Realizzazione nel modello a scambio di messaggi Il processo driver fungerà da gestore della risorsa periferica Il processo utente invierà al processo driver la richiesta di operazione di I/O (send) e si sincronizzerà con esso, attendendo il completamento dell operazione (receive) Il processo driver adotterà la stessa soluzione precedente per sincronizzarsi con la periferica 20 10

I/O nel modello a scambio di messaggi utente Send(richiesta di attivazione) driver attivazione periferica Receive(risposta) interrupt Receive(richiesta) testa-driver wait-for-interrupt coda-driver Send(risposta) 21 I/O in UNIX In UNIX non esiste il concetto di processo driver, ma le operazioni di ingresso uscita possono essere realizzate solo da parte del processo utente mediante chiamate al kernel. La ISR possiede tanti rami quanti sono i driver, e in ognuno di essi è presente la coda del rispettivo driver, la quale viene eseguita. Dopodiché si torna al processo utente. In effetti, il processo utente penetra verso l interno del SO, strato per strato, mediante una sequenza di chiamate, fino ad entrare nel kernel e a lanciare una operazione periferica; dopo l esecuzione di tale operazione, la stessa sequenza di chiamate dovrà essere eseguita, ma a ritroso e nel modo più rapido possibile. Il processo utente all'interno del Kernel assume una priorità altissima rispetto a quella che deterrebbe rimanendo al suo esterno 22 11