1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.

Slides:



Advertisements
Presentazioni simili
Meccanismi di IPC Problemi classici di IPC
Advertisements

CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
1 Introduzione ai calcolatori Parte II Software di base.
Introduzione Cosa è un Sistema Operativo? Una breve storia
Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire.
Gestione Input Output A. Ferrari.
Tutte le componenti non facenti parte dellunità centrale, unità di I/O, memorie di massa, dispositivi come stampanti, scanner ed in generale tutte le apparecchiature.
Il Sistema Operativo.
Gestione del processore
Gestione del processore
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
Sistemi Operativi - C Susanna Pelagatti
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
Operating System Concepts
INTRODUZIONE AI SISTEMI OPERATIVI
L’organizzazione della comunicazione di I/O G. Vercelli
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Input/Output.
Struttura dei sistemi operativi (panoramica)
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
1 Gestione del processore Il modello a processi sequenziali.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
1.7 Risorse di sistema Comprendere le risorse di sistema Gestire le risorse di sistema.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Il sistema operativo Vito Perrone
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Ingresso/Uscita u Materiale in: –Queste trasparenze, non basta il testo! –Tanenbaum 2.4.1, 5.6.4, 5.6.5,
Informatica per medici
INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller.
Le procedure di gestione input/output Poiché le operazioni di input/output sono più lente rispetto alla velocità del processore, occorrerà sincronizzarle.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Il Software Una programmazione diretta della macchina hardware da parte degli utenti è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica.
TECNICHE DI INPUT/OUTPUT
SISTEMA OPERATIVO..
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
Il sistema operativo.
Architettura degli elaboratori
Il Sistema Operativo (1)
1 Il Sistema Operativo: Esempio n Le operazioni effettuate sembrano abbastanza semplici ma … n Provocano una serie di eventi in cui vengono coinvolte sia.
Sistema Operativo (Software di base)
Il nucleo del Sistema Operativo
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Foglio 1 Di cosa si occupa il gestore della memoria?
Gestione del processore (Scheduler)
Gestione dei dispositivi di I/O:
Sistemi Elettronici Programmabili
Introduzione Cos’è un sistema operativo ?. Hardware Sistema Operativo Applicazioni È il livello di SW con cui interagisce l’utente e comprende programmi.
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
Il software Componente del computer costituita dai: –programmi di base per la gestione del sistema –programmi applicativi per l’uso del sistema Queste.
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Processi e Thread Processi Thread
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.
Informatica Lezione 6 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Cos’è un sistema operativo ?
Informatica Generale Marzia Buscemi
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu.
Il modello di Von Neumann
Il computer RAM: Unità di misura MByte e GByte MHz Processore: Unità di misura Singolo o multiprocessore 32/64 bit velocità GHz Mouse tastiera video stampante.
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
Componenti base di un computer Gli elementi fondamentali La Cpu La Ram L’ Hard disk.
Transcript della presentazione:

1 Input/Output

2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo Software di I/O di livello utente Modo kernel Modo utente

3 I controllori dei dispositivi La parte meccanica viene controllata da un controllore del dispositivo (device controller) o adapter Monitor Bus

4 Controllore I/O Registro/i dati Registro/i controllo Unità di controllo Bus dati Bus indirizzi Bus controllo Dispositivo porta Operazione / esiti Dati da/per la periferica I controllori dei dispositivi (2) Esempio di controllore di una porta.

5 I controllori dei dispositivi (3) Problema 1 : come si accede ai registri dei controllori ? –Si utilizzano istruzioni assembler ‘speciali’ per l’I/O (es. IN, OUT ) ogni registro dei controllori è contraddistinto da un numero di porta di I/O es. IN R0, 4 –Si ‘mappano’ i registri del controllore su particolari indirizzi di memoria, e si utilizzano le normali LOAD/STORE (memory mapped I/O)

6 Memory-Mapped I/O (a) Spazi di memoria ed I/O separati (b) Memory-mapped I/O (c) Modello ibrido

7 Memory-Mapped I/O (2) Come si discrimina fra accessi di I/O e accessi in RAM ?

8 Memory Mapped I/O (3) Attenzione alla cache!!!! –Se si usa MMIO, deve essere possibile disabilitare selettivamente il caching degli indirizzi relativi a registri di I/O –… altrimenti non saremo mai in grado di accorgerci di modifiche dei registri da parte del controllore!

9 Accesso diretto alla memoria (DMA) Vari tipi di gestione delle interazioni con le periferiche –a controllo di programma : il processore esegue personalmente tutti i trasferimenti dalla RAM alle periferiche e viceversa –in DMA (Direct Memory Access) l’interfaccia può accedere direttamente alla RAM possibilità di trasferire dati mentre il processore elabora la periferica avverte quando ha finito con una interruzione

10 Accesso diretto alla memoria DMA (2) Operazioni effettuate durante un trasferimento DMA –da notare: memoria virtuale, pinning

11 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo Software di I/O di livello utente Modo kernel Modo utente

12 Gestori delle Interruzioni (Interrupt Handlers) Tipicamente i driver sono bloccati in attesa che arrivi una interruzione dalla periferica che stanno controllando –es: il driver si blocca dopo aver iniziato una operazione di I/O Quando arriva una interruzione –viene mandato in esecuzione il gestore delle interruzioni (GI) di quel tipo (selezionato in base al vettore di interruzione) –GI sblocca il driver utilizzando un opportuno meccanismo di IPC

13 Gestori delle Interruzioni (2) Abbiamo già visto il meccanismo delle interruzioni in dettaglio. Le operazioni effettuate dai GI sono : –invocare la routine assembler che salva i registri del processo interrotto –segnalare al controllore delle interruzioni quando può inviare una nuova interruzione –svegliare il driver opportuno –chiamare lo scheduler –invocare la routine assembler che carica il nuovo processo I GI usano uno stack a parte nel kernel

14 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo Software di I/O di livello utente Modo kernel Modo utente

15 Driver dei Dispositivi (1)

16 Driver dei Dispositivi (2) Il driver di un dispositivo è la parte del sistema operativo che interagisce con il dispositivo –legge/scrive i registri di controllo –tratta le caratteristiche a basso livello –fornisce una interfaccia astratta del dispositivo indipendente dai dettagli hw al resto del sistema operativo –tipicamente è sviluppato dal costruttore del dispositivo (…)

17 Driver dei Dispositivi (3) Tipico funzionamento di un driver : 1. Inizializza il dispositivo 2. Accetta richieste di operazioni e ne controlla la correttezza 3. Gestisce le code delle richieste che non possono essere subito servite 4. Sceglie la prossima richiesta da servire e la traduce in una sequenza S di comandi a basso livello da inviare al controllore 5. Trasmette i comandi in S al controllore eventualmente bloccandosi in attesa del completamento dell’esecuzione di un comando 6. Controlla l’esito di ciascun comando gestendo eventuali errori 7. Invia l’esito dell’operazione ed eventuali dati al richiedente

18 Driver dei Dispositivi (4) Tipicamente le interfacce astratte fornite dai driver vengono classificate in due categorie principali : –interfacce a blocchi (block-oriented) : la lettura/scrittura sul dispositivo fisico avviene un blocco alla volta, tipicamente i dati scritti vengono bufferizzati nel SO finchè non si raggiunge l’ampiezza di un blocco es : dischi, nastri …

19 Driver dei Dispositivi (5) Tipicamente le interfacce astratte fornite dai driver vengono classificate in due categorie principali (cont.): –interfacce a caratteri (character-oriented) : la lettura/scrittura sul dispositivo fisico avviene un carattere alla volta, non c’è bufferizzazione, es : tipicamente tastiera, mouse, es : si possono avere interfacce a caratteri anche per dischi, nastri

20 Driver dei Dispositivi (6) Alcuni driver possono fornire sia interfaccia a caratteri che a blocchi –es. driver del disco Le interfacce fissnao un insieme di chiamate di funzioni standard fornite da tutti i driver che le implementano –es. tutti i driver che forniscono una interfaccia a blocchi forniscono una implementazione di una funzione read() per scrivere/leggere blocchi con formato fissato

21 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo Software di I/O di livello utente Modo kernel Modo utente

22 Software di I/O Indipendente dal dispositivo (1) Funzioni del software di I/O indipendente dal dispositivo –fornire funzionalità di sistema ai driver attraverso una interfaccia uniforme es. allocazioni di memoria, etc…. –bufferizzare le informazioni –segnalare, gestire errori –allocare e rilasciare le risorse –….

23 Software di I/O Indipendente dal dispositivo (2) Accetta le richieste dal livello utente e invoca il driver opportuno utilizzando le funzioni di interfaccia –problema: come si risale dal nome del dispositivo al driver? Fornisce un insieme uniforme di funzioni invocabili da chi scrive il driver –allocazione di aree di memoria fisica contigua per i buffer –interazione con il controllore DMA, la MMU

24 Software di I/O Indipendente dal dispositivo (3) Gestisce la bufferizzazione dove necessario : (a) Input non bufferizzato, un interrupt per carattere (inefficiente) (b) Input bufferizzato in spazio utente, (occupa RAM utente) (c) Input bufferizzato nel kernel, seguito da una copia in spazio utente (se la seconda è lenta si possono ancora perdere info) (d) Doppia bufferizzazione nel kernel

25 Software di I/O Indipendente dal dispositivo (4) La bufferizzazione può portare a molte copie durante il cammino dei dati!

26 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo Software di I/O di livello utente Modo kernel Modo utente

27 Software di I/O in spazio utente Funzionalità del software di I/O che gira in spazio utente : –librerie linkabili da programmi utente (es. stdio, unistd...) passano i parametri alle SC nel modo giusto gestiscono la formattazione (es. printf()..) –spooling processo utente (demone di stampa) directory di spool (in cui l’utente copia il file da stampare)