Input/Output - PowerPoint PPT Presentation

1 / 47
About This Presentation
Title:

Input/Output

Description:

Input/Output Livelli del sottosistema di I/O I controllori dei dispositivi La parte meccanica viene controllata da un controllore del dispositivo (device controller ... – PowerPoint PPT presentation

Number of Views:30
Avg rating:3.0/5.0
Slides: 48
Provided by: SteveAr2
Category:

less

Transcript and Presenter's Notes

Title: Input/Output


1
Input/Output
2
Livelli del sottosistema di I/O
Modo utente
Software di I/O di livello utente
Software di sistema indipendente dal dispositivo
Modo kernel
Driver dei dispositivi
Gestori delle interruzioni
Hardware
3
I controllori dei dispositivi
Monitor
Bus
  • La parte meccanica viene controllata da un
    controllore del dispositivo (device controller) o
    adapter

4
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
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
Memory-Mapped I/O
  • (a) Spazi di memoria ed I/O separati
  • (b) Memory-mapped I/O
  • (c) Modello ibrido

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
Accesso diretto alla memoria DMA (2)
  • Operazioni effettuate durante un trasferimento
    DMA
  • da notare memoria virtuale, pinning

9
Livelli del sottosistema di I/O
Modo utente
Software di I/O di livello utente
Software di sistema indipendente dal dispositivo
Modo kernel
Driver dei dispositivi
Gestori delle interruzioni
Hardware
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
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
Livelli del sottosistema di I/O
Modo utente
Software di I/O di livello utente
Software di sistema indipendente dal dispositivo
Modo kernel
Driver dei dispositivi
Gestori delle interruzioni
Hardware
13
Driver dei Dispositivi (1)
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
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
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
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
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
Livelli del sottosistema di I/O
Modo utente
Software di I/O di livello utente
Software di sistema indipendente dal dispositivo
Modo kernel
Driver dei dispositivi
Gestori delle interruzioni
Hardware
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
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
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
Software di I/O Indipendente dal dispositivo (4)
  • La bufferizzazione può portare a molte copie
    durante il cammino dei dati!

24
Livelli del sottosistema di I/O
Modo utente
Software di I/O di livello utente
Software di sistema indipendente dal dispositivo
Modo kernel
Driver dei dispositivi
Gestori delle interruzioni
Hardware
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
Alcuni esempi di dispositivi
  • Disco rigido, RAID, video

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

28
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)

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

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
Hardware di un RAID
Ogni strip è una fetta di k settori consecutivi
Dischi di backup
Bit di parità
32
Hardware di un RAID (2)
Drive di parità
La parità viene calcolata come XOR delle stripe
corrispondenti
Distribuisce anche le parità
33
Formattazione del disco
  • Formattazione a basso livello Struttura di un
    settore

ECC
dati
preambolo
dati
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
34
Formattazione del disco (2)
Una illustrazione del cylinder skew (pendenza
del cilindro)
35
Formattazione del disco (3)
Senza Interleaving
Doppio Interleaving
Singolo Interleaving
  • Se il controllore dispone di buffer limitato (un
    settore) è necessario tenerne conto nella
    formattazione
  • Controllori più moderni hanno buffer di almeno
    una traccia

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
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
Alcuni esempi di dispositivi (2)
  • Disco rigido, RAID

39
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)

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
Algoritmi di scheduling per il braccio (2)
Richieste pendenti
Posizione iniziale
  • Lalgoritmo di scheduling Shortest Seek First
    (SSF)

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

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
Gestione dello spazio disco (3)
Bitmap
Free list
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
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
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
Write a Comment
User Comments (0)
About PowerShow.com