2. Index
• Introducció
• Funciones del sistema d’E/S
• Components dels dispositius d’E/S
• Controladors de dispositiu
• Controladors de dispositiu: Classificació
• Dispositius conectats per ports o projectats en memòra
• Dispositius de blocs i de caràcters
• Interacció computadora-controlador: Tipus d’entrada/sortida
• E/S programada
• E/S per interrupcions
• Rutina de tractament d’interrupcions
3. Introducció
La CPU és el principal element de l'ordinador
- processa dades i instruccions
Requereix col·laboració dels dispositius d'E/S:
- Perifèrics: Permeten la comunicació entre els usuaris i l'ordinador.
• Entrada: teclat, ratolí, …
• Sortida: impressora, pantalla, …
- Dispositius d'emmagatzematge. Proporcionen emmagatzematge no
volàtil de dades i memòria.
• Emmagatzematge secundari: discos i disquets
• Emmagatzematge terciari: cintes i sistemes d'arxiu
- Dispositius de comunicacions. Connecten l'ordinador amb altres
ordinadors a través d'una xarxa
• targetes de xarxa, mòdems
Són bastant lents
4. Funcions del sistema d’E/S
El sistema d'E/S s'ocupa de facilitar el maneig dels dispositius d'E/S
- Oculta característiques físiques i de funcionament.
Funcions:
- Enviament de comandaments als dispositius, rebre els seus
interrupcions i ocupar-se deseus errors.
- Oferir una interfície entre els dispositius i la resta del sistema simple i
fàcil d'usar
- Optimitzar l'E/S del sistema
- Proporcionar dispositius virtuals que permetin connectar qualsevol
tipus de dispositiu físic
- Permetre la connexió de nous dispositius d'E/S
5. Components dels dispositius d’E/S
Els dispositius d'E/S consten de:
- Un element electrònic (controlador o unitat d'E/S)
• Transfereix informació entre la memòria principal i els
perifèrics.
• Connectat al bus i al dispositiu.
• Poden controlar múltiples dispositius (p.e. el de disc)
• Poden incloure CPU i bus
- Un element mecànic (el dispositiu)
•. Es connecten a la CPU a través dels controladors
El SO normalment tracta amb el controlador, no amb el dispositiu.
- Estandardització: Fer servir un mateix controlador per a diferents
dispositius de diferents fabricants (exemple: SCASI o IDE)
6. Controladors de dispositius
Constitueix la interfície del dispositiu amb el bus de l'ordinador
La comunicació entre la CPU i el controlador es realitza a través dels
registres del controlador.
- Registre de dades: Guarda les dades d'entrada o sortida
- Registre d'estat: Indica si l'ordre s'ha executat, si hi ha hagut
errors, ..
- Registre de control: Indica al controlador les ordres a realitzar
Aquests registres:
- Formen part de l'espai normal d'adreces de memòria o,
- Tenen un espai d'adreces especial
8. Controladors de dispositius: Classificació
• Direcció d'E/S
- Dispositius connectats per ports
- Dispositius projectats en memòria
• Unitat de transferència
- Dispositius de blocs
- Dispositius de caràcters
• Interacció ordinador-controlador
- Entrada/sortida programada
- Entrada/sortida per interrupcions
- Accés directe a memòria (DMA)
9. Dispositius conectats per ports o
projectats en memòria
Dispositius per ports (arquitectures d'Intel)
- El controlador té assignat:
• un port d'E/S
• una interrupció
• un vector d'interrupció.
- Operacions específiques portin o portout en què s'indica
• Direcció de port
• Registre a manipular.
- Problema:
• Cal conèixer les adreces d'E/S
• Programar les instruccions especials d'E/S
Dispositius projectats en memòria (arquitectures de Motorola)
- Tenen assignat un rang d'adreces en memòria
- Les operacions es realitzen mitjançant instruccions màquina de maneig de
memòria (No hi ha operacions específiques)
10. Dispositius de blocs i de caràcters
Dispositius de blocs:
- Accés a nivell de bloc, seqüencial o aleatori
- Mandats: llegir, escriure, buscar, ..
- E/S directament o mitjançant el servidor de fitxers
- Accés possible a través de fitxers projectats en memòria
- Exemples: discos i cintes
Dispositius de caràcter:
- Accés a nivell de caràcter, seqüencial o aleatori
- Mandats: obtenir (get) o col·locar (put) un caràcter.
- Biblioteques per optimitzar i donar forma a aquest tipus
d'accessos: edició de
línies, finestres virtuals, …
- Exemple: terminals i impressores
11. Interacció computador-controlador:
Tipus d'entrada/sortida
1.Entrada/sortida programada.
- La CPU accedeix als registres des programa
- Consulta periòdica per detectar si el dispositiu està preparat
2.Entrada/sortida per interrupcions
- El dispositiu avisa la CPU quan està a punt
- L'E/S es fa mitjançant una rutina de servei d'interrupció
3. Accés directe a memòria.
- El controlador accedeix directament a memòria
- Quan l'operació finalitza avisa la CPU
12. E/S programada
1. La CPU verifica l'estat del controlador llegint el registre d'estat
2. Mentre el controlador no està llest el procés queda en un bucle
3. Quan el controlador està llest, la CPU realitza la transferència
llegint o escrivint dades al registre del controlador
Avantatge: No hi ha despesa de temps de gestió d'interrupció
- Idoni en sistemes de temps real en què la velocitat d'E/S és ràpida
Desavantatge: Grans temps d'espera.
Aplicació:
- Maquinari sense interrupcions
- Programes de control de canals d'E/S
14. 1. El processador envia l'ordre d'E/S al
controlador del dispositiu i, en lloc
d'esperar,es dedica a altres tasques
2. Quan el dispositiu està preparat per
intercanviar dades s'activa una línia de
comanda de interrupció
3. El processador executa la rutina de
tractament deinterrupció i, en ella, la
transferència de dades.
E/S per interrupcions
15. E/S per interrupcions
• La gran majoria de CPU inclouen interrupcions vectoritzades
- Cadascuna està assignada a un dispositiu (o a un rang d'ells).
• Cada senyal d'interrupció tenen una determinada prioritat.
- Si s'activen diversos senyals simultàniament, es tractarà la de
major prioritat
• La CPU inclou, també, un mecanisme d'inhibició
- Els senyals inhibides (emmascarades) no són ateses fins que
passin a estar desinhibides.
16. Rutina de tractament d'interrupció
Les rutines de tractament d'interrupció solen tenir dues parts:
- Genèrica: Proporcionada pel SO
- Particular: La proporciona el fabricant o el SO (dispositiu estàndard)
La part genèrica permet:
1. Capturar la interrupció
2. Salvaguardar l'estat del processador
3. Activar la rutina de maneig de la interrupció
4. Indicar a l'planificador que ha de posar a punt per executar la rutina
particular
5. Desactivar la interrupció
6. Restaurar l'estat del processador
7. Cedir el control (RETI)
La part particular indica al planificador que encole la rutina particular (S'activarà
quan li arribi el seu torn de planificació).