Input/Output.

Slides:



Advertisements
Presentazioni simili
Scheduling (Schedulazione) Susanna Pelagatti – Università di Pisa
Advertisements

Meccanismi di IPC Problemi classici di IPC
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
1 Introduzione ai calcolatori Parte II Software di base.
Gestione della memoria centrale
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.
Capitolo 3 Risorse e Stallo 3.1. Risorse 3.2. Introduzione
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.
Hard disk.
Il Sistema Operativo.
File System Cos’è un File System File e Directory
Elaboratore e Sistemi Operativo
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Gestione del processore
1 File System Concetti e tecniche generali. 2 Il file system Il file system è la parte del SO che si occupa di mantenere i dati/programmi in modo persistente.
Gestione della Memoria
Gestione del processore
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
1 Come si avvia un computer... Dove è contenuto il SO ? Come si attiva?
Frontespizio Economia Monetaria Anno Accademico
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.
Realizzazione del file system
Operating System Concepts
Interfaccia del file system
Memoria secondaria Struttura del disco Scheduling del disco
Realizzazione del file system
Architettura hardware
File.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Corso di Informatica (Programmazione)
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Disco magnetico (2) Ciascuna traccia è divisa in settori
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.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Università di Trieste Calcolatori Elettronici a.a Omero TuzziL01, Basi 1 Sommario: 1. Concetto di bit. 2. Indirizzi di memoria. 3. Ordinamento.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
MEMORIA CENTRALE Spazio di lavoro del calcolatore: contiene i dati da elaborare e i risultati delle elaborazioni durante il funzionamento del calcolatore.
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
Architettura del calcolatore
Il Sistema Operativo (1)
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
1 Il Sistema Operativo: Esempio n Le operazioni effettuate sembrano abbastanza semplici ma … n Provocano una serie di eventi in cui vengono coinvolte sia.
Gestione della Memoria
Sistema Operativo (Software di base)
1 Il Buffer Cache Unix (Bach: the Design of the Unix Operating System (cap: 3)
Il Sistema Operativo Il Sistema Operativo è costituito dall’insieme dei programmi necessari per far funzionare tutto l’hardware del calcolatore e per nascondere.
A.P. cat. B - 1 Per chi vuole: Libro di testo D.P. Curtis, K. Foley, K. Sen, C. Morin Informatica di base 2° edizione Mc Graw-Hill Companies.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
Gestione del processore (Scheduler)
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.
1 Alcuni esempi di dispositivi (2) Disco rigido, RAID, video.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Alcuni esempi di dispositivi (2) Disco rigido, RAID, video.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Alcuni esempi di dispositivi Disco rigido, RAID, video.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Il modello di Von Neumann
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
Transcript della presentazione:

Input/Output

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

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

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

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)

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

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

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

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

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

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

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

Driver dei Dispositivi (1)

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 (…)

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

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 …

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

Driver dei Dispositivi (6) Alcuni driver possono fornire sia interfaccia a caratteri che a blocchi es. driver del disco Le interfacce fissano 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

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

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 ….

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

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

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

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

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)

Alcuni esempi di dispositivi Disco rigido, RAID, video

Struttura di un disco rigido Hardware del disco (1) Testine (una per superfice) Braccio (direzioni movimento) 1 Superfici Struttura di un disco rigido

Hardware del disco (2) settore Unità minima di informazione leggibile/scrivibile Ampiezza standard: 512 byte traccia Ogni superficie è divisa in tracce concentriche (una per ogni possibile posizione della testina)

Hardware del disco (3) Geometria fisica di un disco con due zone Una possibile geometria virtuale per lo stesso disco

RAID Redundant Array of Independent Disks Sfrutta il parallelismo per rendere l’accesso al disco più veloce Il controllore RAID mostra l’array come un unico disco al resto del sistema I dati sono distribuiti sui dischi in modo da favorire le letture parallele di parti dello stesso file diverse strategie : RAID livello 0, 1, ….

Ogni strip è una fetta di k Hardware di un RAID Ogni strip è una fetta di k settori consecutivi Dischi di backup Bit di parità

Hardware di un RAID (2) Drive di parità La parità viene calcolata come XOR delle stripe corrispondenti Distribuisce anche le parità

Formattazione del disco Formattazione a basso livello : Struttura di un settore preambolo dati dati ECC Permette alla testina di capire che sta iniziando un nuovo settore, fornisce il numero del settore etc Codici correttori di errore : dati in più per accorgersi se la lettura è andata bene

Formattazione del disco (2) Una illustrazione del cylinder skew (pendenza del cilindro)

Formattazione del disco (3) Senza Interleaving Singolo Interleaving Doppio Interleaving Se il controllore dispone di buffer limitato (un settore) è necessario tenerne conto nella formattazione Controllori più moderni hanno buffer di almeno una traccia

Formattazione del disco (4) Partizionamento : tipicamente nei PC Master Boot Record (settore 0) Codice di boot, tabella delle partizioni partizione di boot marcata attiva Formattazione ad alto livello inserisce un file system vuoto nella partizione boot block (primo blocco della partizione) Al boot BIOS carica ed esegue MBR caricamento boot block della partizione attiva caricamento ed esecuzione SO memorizzato nella partizione

Gestione dello spazio disco (1) Praticamente tutti i file system: dividono i file in blocchi di ampiezza fissata ed eseguono letture e scritture su blocchi o multipli i blocchi non sono contigui su disco Problema 1 : come scegliere l’ampiezza del blocco? Blocchi piccoli usano meglio lo spazio disco diminuiscono la frammentazione interna Blocchi grandi velocizzano gli accessi diminuiscono seek e rotational delay

Alcuni esempi di dispositivi (2) Disco rigido, RAID

Hardware del disco (2) Parametri del floppy disk del PC originale di IBM (anni 80) e di un disco rigido Western Digital WD 18300 (2000)

Algoritmi di scheduling per il braccio (1) Il tempo necessario per leggere o scrivere un blocco è determinato da tre fattori Tempo di seek Ritardo rotazionale (Rotational Delay) Tempo di trasferimento vero e proprio Ad una nuova richiesta RD deve essere pagato comunque Il tempo di seek dipende dalla distanza : viene ottimizzato dagli alg. di scheduling

Algoritmi di scheduling per il braccio (2) Posizione iniziale Richieste pendenti L’algoritmo di scheduling Shortest Seek First (SSF)

Algoritmi di scheduling per il braccio (3) Posizione iniziale L’algoritmo di scheduling “dell’ascensore”

Gestione dello spazio disco Problema 2 : come tenere traccia dei blocchi liberi su disco ? Free list lista concatenata di blocchi pieni di indirizzi di blocchi liberi Bitmap una mappa di bit con un bit per ogni blocco es. 0 blocco libero, 1 blocco in uso mantiene la contiguità dei blocchi (allocare un file su blocchi vicini diminuisce il tempo di seek in letture consecutive

Gestione dello spazio disco (3) Free list Bitmap

Affidabilità di un file system Problemi legati all’hw del disco settori difettosi sostituzione con spare sectors blocchi corrotti raccolti in file fittizi (bad block files)

Gestione degli errori del disco Una traccia con un settore difettoso Sostituzione del settore difettoso con un settore di riserva Slittamento dei settori per evitare quello difettoso

Affidabilità di un file system (2) Backup periodici copia delle informazioni del FS per poterle utilizzare in caso di crash del disco, alluvioni etc ... cancellazioni accidentali backup fisico si copiano tutti i blocchi del disco (su tape o altro) backup logico si copiano file e directory modificati dopo una certa data