Documente Academic
Documente Profesional
Documente Cultură
Entrada Salida
April 26, 2012
() Sistemas operativos. Entrada Salida April 26, 2012 1 / 54
Diciembre de 2012
1 de 77 -- Sistemas Operativos- E/S
Contenidos I
Entrada/salida
Estructura de un sistema de e/s
Estructura del software de entrada/salida
Tipos de entrada/salida
Metodos de entrada/salida
Planicaci on de discos
Entrada/salida en UNIX
Dispositivos e/s en UNIX
Llamadas para e/s en UNIX
Entrada salida asncrona
Redireccion
() Sistemas operativos. Entrada Salida April 26, 2012 2 / 54
2 de 77 -- Sistemas Operativos- E/S
Entrada/salida
Entrada/salida
Estructura de un sistema de e/s
Estructura del software de entrada/salida
Tipos de entrada/salida
Metodos de entrada/salida
Planicaci on de discos
Entrada/salida en UNIX
() Sistemas operativos. Entrada Salida April 26, 2012 3 / 54
3 de 77 -- Sistemas Operativos- E/S
Silberschatz, Galvin and Gagne 2002 13.3 Operating System Concepts
A Typical PC Bus Structure
4 de 77 -- Sistemas Operativos- E/S
Entrada/salida
Entrada/Salida
Dado que son muy heterogeneos sera muy costoso que la CPU los
manejase directamente
Deteccion de Errores
() Sistemas operativos. Entrada Salida April 26, 2012 10 / 54
P.ej. La CPU es mucho ms rpida --> el controlador
almacena los datos que le va enviando la CPU y que
debe ESCRIBIR en el dispositivo ... y los enva paso a
paso al DISPOSITIVO LENTO
11 de 77 -- Sistemas Operativos- E/S
Estructura del software de entrada/salida
Entrada/salida
Estructura de un sistema de e/s
Estructura del software de entrada/salida
Tipos de entrada/salida
Metodos de entrada/salida
Planicaci on de discos
Entrada/salida en UNIX
() Sistemas operativos. Entrada Salida April 26, 2012 11 / 54
12 de 77 -- Sistemas Operativos- E/S
Estructura del software de e/s
Cmo puede una aplicacin escribir en un HDD sin saber de que
clase de disco se trata?
Cmo podemos aadir un nuevo dispositivo sin perturbar el
funcionamiento de un computador?
ABSTRACCIN + ENCAPSULAMIENTO + CAPAS
Abstraccin:
Eliminar las diferencias entre los dispositivos al identificar unas pocas
clases generales
Para cada clase se define una interfaz con unas funciones estndar
Encapsulamiento:
Las diferencias reales se encapsulan mediante los device drivers que
internamente se adaptan a las particularidades del dispositivo, pero que
exportan una de las interfaces estndar (sus funciones).
Capas
13 de 77 -- Sistemas Operativos- E/S
Estructura del software de e/s
Capas:
El software de e/s se estructura en capas.
Las llamadas al subsistema de e/s encapsulan el comportamiento de los dispositivos en
unas cuantas clases genricas
las aplicaciones no perciban las diferencias al operar con un hardware u otro
Por otro lado, el subsistema de e/s (del S.O.) tiene por debajo la capa del device driver
(controlador del dispositivo) que oculta las diferencias entre los distintos controladores de
dispositivo
El disponer de un subsistema de e/s NDEPENDENTE del hardware,...
facilita la vida a los diseadores del S.O. (no tienen que interactuar con NFNTOS dispositivos) y
a los fabricantes de hardware:
O crean su hardware compatible con una interfaz (anfitrin/controlador) existente
O escriben/crean el device driver que establece la interfaz entre el nuevo dispositivo y los S.O's en los que
vayan a operar
observan
Silberschatz, Galvin and Gagne 2002
(http://www.wiley.com//college/silberschatz6e/0471417432/slides/slides.html)
14 de 77 -- Sistemas Operativos- E/S
Estructura del software de entrada/salida
Estructura del software de e/s
Manejador de dispositivo
Manejador de interrupciones
Despierta al proceso que habia solicitado la e/s (en caso de que esta
fuese sncrona
e/s explcita
e/s sncrona
e/s asncrona
() Sistemas operativos. Entrada Salida April 26, 2012 18 / 54
21 de 77 -- Sistemas Operativos- E/S
Tipos de entrada/salida
Comunicaci on de la CPU con los dispositivos
motorola 68000
A veces hay instruciones especiales para acceder a este espacio e/s (IN
y OUT en intel) o un registro de control que activa este espacio
(powerpc)
Dado que la CPU es mucho mas rapida que los dispositivos de e/s,
una vez iniciada la e/s el S.O. asigna la CPU a otra tarea dejando al
proceso que inicin la tarea en espera
polling
interrupciones
dma
() Sistemas operativos. Entrada Salida April 26, 2012 22 / 54
25 de 77 -- Sistemas Operativos- E/S
Metodos de entrada/salida
entrada salida por polling
Bus transparente
() Sistemas operativos. Entrada Salida April 26, 2012 26 / 54
(al dispositivo)
(direccin de memoria donde estn/poner los datos)
(1)
(2)
(3)
33 de 77 -- Sistemas Operativos- E/S
Metodos de entrada/salida
entrada salida por dma
Una vez que el DMA obtiene el control del bus se transere un bloque
y la CPU queda en espera hasta que la transferencia termina
Cada vez que obtiene el control del bus, el DMA transere una palabra,
devolviendole el control del bus a la CPU
Bus transparente
open
int open(const char *path, int flags, mode_t mode)
close
read y write
ssize_t read(int fd, void *buf, size_t count)
ssize_t write(int fd, const void *buf, size_t count)
pread y pwrite
ssize_t pread(int fd, void *buf, size_t count, off_t offset)
ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset)
Estas llamadas son analogas a las read, write, pread y pwrite salvo que
en lugar de hacer la e/s a un solo buer de memoria la realizan a
iovcnt bueres descritos en iov