Publicado el 14 de Enero del 2017
834 visualizaciones desde el 14 de Enero del 2017
378,3 KB
66 paginas
Creado hace 13a (19/05/2011)
UNIVERSIDAD
DE CANTABRIA
Bloque I: Principios de sistemas
operativos
Tema 1. Principios básicos de los sistemas operativos
Tema 2. Concurrencia
Tema 3. Ficheros
Tema 4. Sincronización y programación dirigida por eventos
Tema 5. Planificación y despacho
Tema 6. Sistemas de tiempo real y sistemas empotrados
Tema 7. Gestión de memoria
Tema 8. Gestión de dispositivos de entrada-salida
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
8
© Michael González, J. Javier Gutiérrez
19/ma/11
1
Notas:
UNIVERSIDAD
DE CANTABRIA
Tema 8. Gestión de dispositivos de entrada-salida
• Características de los dispositivos de entrada/salida
• Entrada/salida por consulta
• Entrada/salida por interrupciones
• Entrada/salida por acceso directo a memoria
• Organización de manejadores de dispositivos (drivers) de entrada/salida
• Programación de manejadores de dispositivos de entrada/salida
• Implementación de drivers
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© Michael González, J. Javier Gutiérrez
19/ma/11
2
UNIVERSIDAD
DE CANTABRIA
1. Características de los dispositivos
de entrada/salida
Los dispositivos de entrada/salida (I/O) forman junto con la CPU y
la memoria los elementos más importantes del computador
Uno de sus objetivos principales es la eficiencia en las
operaciones de entrada/salida, minimizando el trabajo a realizar
por la CPU
Las velocidades de los dispositivos de I/O son muy variadas:
• dispositivos lentos (p.e., ratón, teclado)
• dispositivos medios (p.e., impresora)
• dispositivos rápidos (p.e., red, disco)
Para acomodar las velocidades se usan circuitos de interfaz
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© Michael González, J. Javier Gutiérrez
19/ma/11
3
Interfaces de entrada/salida
Se encargan de la comunicación entre la CPU y el dispositivo
UNIVERSIDAD
DE CANTABRIA
Unidad de
Control
CPU
Regs.
ALU
Regs.
Circuito de
Interfaz de
I/O
Datos
Programa
Memoria
Dispositivo
de I/O
Líneas de control
Líneas de direcciones
Líneas de datos
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© Michael González, J. Javier Gutiérrez
19/ma/11
4
Conexión de las interfaces de
entrada/salida
Conexión mapeada en memoria
• el circuito de interfaz se conecta como si fuera memoria
• se accede a los registros leyendo o escribiendo una variable en
UNIVERSIDAD
DE CANTABRIA
una posición de memoria concreta
Conexión mediante puertos de entrada/salida
• el circuito de interfaz se conecta mediante líneas especiales
• se accede a los registros mediante instrucciones especiales (in,
out), especificando un número de puerto
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© Michael González, J. Javier Gutiérrez
19/ma/11
5
Tipos de entrada/salida
Entrada/salida por consulta o programada
• la CPU accede a los registros desde programa
• para saber si el dispositivo está listo, se hace una consulta
UNIVERSIDAD
DE CANTABRIA
periódica
Entrada/salida por interrupciones
• el dispositivo avisa a la CPU cuando está listo
• la entrada/salida se hace mediante una rutina de servicio de
interrupción
Entrada/salida por acceso directo a memoria
• el dispositivo accede directamente a la memoria
• avisa a la CPU del inicio o final de la operación
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© Michael González, J. Javier Gutiérrez
19/ma/11
6
UNIVERSIDAD
DE CANTABRIA
2. Entrada/salida por consulta
La operación de I/O es controlada por la CPU
Antes de realizar la operación se comprueba el (los) registro(s) de
estado, para ver si el dispositivo está listo
Ventajas: sencillez
Desventajas:
• ritmo de transferencia limitado por la velocidad de la CPU
• tiempo de respuesta elevado, mayor que el periodo de consulta
• sobrecarga de la CPU para operaciones de consulta que podrían
evitarse
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© Michael González, J. Javier Gutiérrez
19/ma/11
7
3. Entrada/salida por interrupciones
Permite al dispositivo marcar el instante en que se hace la
transferencia de datos
El mecanismo de interrupción está presente en casi todos los
computadores
UNIVERSIDAD
DE CANTABRIA
IRQ
IRQ
Mask
CPU
Unidad
de control
Regs.
Circuito de
Interfaz de
I/O
IACK
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© Michael González, J. Javier Gutiérrez
19/ma/11
8
Identificación de la fuente de
interrupción
UNIVERSIDAD
DE CANTABRIA
CPU
CPU
IRQ
Por consulta
I/O-1
I/O-2
I/O-3
IRQ0
IRQ1
IRQ2
Por múltiples líneas
I/O-1
I/O-2
I/O-3
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© Michael González, J. Javier Gutiérrez
19/ma/11
9
Gestión de interrupciones
Las interrupciones se pueden enmascarar
• se utiliza para evitar la interrupción cuando se accede a datos
UNIVERSIDAD
DE CANTABRIA
compartidos con ella
Para cada interrupción se puede instalar una rutina de servicio de
interrupción
• al llegar la interrupción, el procesador interrumpe el programa
en ejecución y enmascara esa interrupción
• después ejecuta la rutina de servicio de interrupción
• al acabar, el procesador restaura el estado anterior y el
programa interrumpido continúa
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© Michael González, J. Javier Gutiérrez
19/ma/11
10
La rutina de servicio de interrupción
Estructura habitual
• Acceder al dispositivo causante de la interrupción y hacer que
UNIVERSIDAD
DE CANTABRIA
cese la petición de interrupción
• Si es necesario, acceder al controlador de interrupciones para
hacer lo mismo
• realizar la transferencia de datos
El modelo es el de una tarea concurrente más
• ejecuta a la máxima prioridad del sistema
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© Michael González, J. Javier Gutiérrez
19/ma/11
11
4. Entrada/salida por acceso directo a
memoria
El ritmo de transferencia es superior al de los otros métodos
El instante de I/O lo marca el dispositivo con interrupciones
Hay líneas para desconectar a la CPU de la memoria
UNIVERSIDAD
DE CANTABRIA
Memoria
CPU
DMA acknowledge
DMA request
IRQ
IACK
Regs.
Circuito de
Interfaz de
I/O
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© Michael González, J. Javier Gutiérrez
19/ma/11
12
UNIVERSIDAD
DE CANTABRIA
Funcionamiento de la I/O directa
Registros del dispositivo:
• IODIR: Dirección de memoria para la operación de I/O
• CONT: Contador de número de bytes a transferir
Funcionamiento habitual:
• La CPU carga los valores en los registros del dispositivo
• El dispositivo solicita el uso de la memoria: DMA-request
• La CPU se lo concede: DMA-acknowledge
• El dispositivo transfiere los datos. Para cada uno, incrementa
IODIR y decrementa CONT
• Cuando CONT llega a 0 se devuelve el control de la memoria a la
CPU (DMA-request) y se envía una interrupción de aviso
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© Michael González, J. Javier Gutiérrez
19/ma/11
13
5. Organización de drivers de
entrada/salida
Un driver para un dispositivo es una interfaz entre el sistema
operativo y el hardware de ese dispositivo
Los drivers forman parte del núcleo y tienen acceso restringido a
estructuras del sistema operativo
El objetivo del driver es ofrecer un mecanismo de uso general, con
operaciones como:
UNIVERSIDAD
DE CANTABRIA
leer (read)
- abrir (open) y cerrar (close)
-
- escribir (write)
- controlar (ioctl)
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© Michael González, J. Javier Gutiérrez
19/ma/11
14
El driver en el contexto del sistema
operativo
UNIVERSIDAD
DE CANTABRIA
Usuarios
Aplicaciones
Shell
Servicios (API)
Drivers I/O
Núcleo/Kernel
Hardware
Sistema
operativo
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© Michael González, J. Javier Gutiérrez
19/ma/11
15
UNIVERSIDAD
DE CANTABRIA
Tipos de dispositivos y módulos
En Linux 2.6 se distinguen tres tipos de dispositivos y módulos:
• de caracteres: E/S directa o por interrupciones
• de bloques: E/S por acceso directo a memoria
• de red: E/S por dispositivos de comunicaciones
Esta clasificación no es rígida y se podría considerar otra
ortogonal como:
• módulos USB, módulos serie, módulos SCSI (Small Computer
Systems Interface), etc.
• cada dispositivo USB estaría controlado por un módulo USB,
pero el dispositivo en sí mismo se comportaría como de
caracteres (puerto serie USB), de bloques (tarjeta de memoria
USB), o una interfaz de red (interfaz Ethernet USB)
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© Michael González, J. Javier Gutiérrez
19/ma/11
16
UNIVERSIDAD
DE CANTABRIA
Dispositivos de caracteres
Se puede utilizar como si se tratara de un fichero, como una tira o
conjunto de bytes
Normalmente implementa las llamadas al sistema: open, close,
read y write
Ejemplos de dispositivos de caracteres:
• consola (/dev/console)
• puertos serie (/dev/ttys0)
El acceso a estos dispositivos se realiza a través de nodos (nodes)
del sistema de ficheros
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© Michael González, J. Javier Gutiérrez
19/ma/11
17
Módulos de Linux
Los drivers se implementan mediante módulos del núcleo:
• objetos software con una interfaz bien definida, que se cargan
UNIVERSIDAD
DE CANTABRIA
dinámicamente en el núcleo del sistema operativo
El módulo en Linux debe tener al menos dos operaciones:
• init_function: para instalarlo
- debe preparar el módulo para la posterior ejecución del resto de las
funciones o puntos de entrada del módulo
• cleanup_function: para desinstalarlo
- debe eliminar todo rastro del módulo
El código de un módulo sólo debe llamar a funciones incluidas en
el kernel y no en librerías, ya que el módulo se enlaza directamente
con el kernel.
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© Michael González, J. Javier Gutiérrez
19/ma/11
18
ción del módulo
tenemos un fichero.c
-
2. compilar el módulo
Módulos de Linux (cont.)
Los pasos para construir un
Comentarios de: Bloque I: Principios de sistemas operativos (0)
No hay comentarios