La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo."— Transcript della presentazione:

1 1 Input/Output

2 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 3 I controllori dei dispositivi La parte meccanica viene controllata da un controllore del dispositivo (device controller) o adapter Monitor Bus

4 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 5 I controllori dei dispositivi (3) Problema 1 : come si accede ai registri dei controllori ? –Si utilizzano istruzioni assembler speciali per lI/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 6 Memory-Mapped I/O (a) Spazi di memoria ed I/O separati (b) Memory-mapped I/O (c) Modello ibrido

7 7 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) linterfaccia può accedere direttamente alla RAM possibilità di trasferire dati mentre il processore elabora la periferica avverte quando ha finito con una interruzione

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

9 9 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

10 10 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

11 11 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

12 12 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

13 13 Driver dei Dispositivi (1)

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

15 15 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 dellesecuzione di un comando 6. Controlla lesito di ciascun comando gestendo eventuali errori 7. Invia lesito delloperazione ed eventuali dati al richiedente

16 16 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 lampiezza di un blocco es : dischi, nastri …

17 17 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

18 18 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

19 19 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

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

21 21 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

22 22 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

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

24 24 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

25 25 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 lutente copia il file da stampare)

26 26 Alcuni esempi di dispositivi Disco rigido, RAID, video

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

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

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

30 30 RAID Redundant Array of Independent Disks Sfrutta il parallelismo per rendere laccesso al disco più veloce Il controllore RAID mostra larray 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, ….

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

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

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

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

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

36 36 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

37 37 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 lampiezza del blocco? –Blocchi piccoli usano meglio lo spazio disco diminuiscono la frammentazione interna –Blocchi grandi velocizzano gli accessi diminuiscono seek e rotational delay

38 38 Alcuni esempi di dispositivi (2) Disco rigido, RAID

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

40 40 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

41 41 Algoritmi di scheduling per il braccio (2) Lalgoritmo di scheduling Shortest Seek First (SSF) Posizione iniziale Richieste pendenti

42 42 Algoritmi di scheduling per il braccio (3) Lalgoritmo di scheduling dellascensore Posizione iniziale

43 43 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

44 44 Gestione dello spazio disco (3) Free list Bitmap

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

46 46 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

47 47 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


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

Presentazioni simili


Annunci Google