PDF de programación - Periféricos Interfaces y Buses - Programación de E/S Aspectos básicos de la programación de E/S. Arquitectura y programación de la E/S en el sistema operativo

Imágen de pdf Periféricos Interfaces y Buses - Programación de E/S Aspectos básicos de la programación de E/S. Arquitectura y programación de la E/S en el sistema operativo

Periféricos Interfaces y Buses - Programación de E/S Aspectos básicos de la programación de E/S. Arquitectura y programación de la E/S en el sistema operativográfica de visualizaciones

Publicado el 14 de Enero del 2017
967 visualizaciones desde el 14 de Enero del 2017
336,2 KB
42 paginas
Creado hace 15a (18/02/2009)
Periféricos Interfaces y Buses

UNIVERSIDAD
DE CANTABRIA

I. Arquitectura de E/S
II. Programación de E/S

Aspectos básicos de la programación de E/S. Arquitectura y
programación de la E/S en el sistema operativo. Manejadores de
dispositivos (drivers) y su programación (interrupciones).

III. Interfaces de E/S de datos
IV. Dispositivos de E/S de datos
V. Buses
VI. Controladores e interfaces de dispositivos de almacenamiento
VII. Sistemas de almacenamiento

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
8

© J. Javier Gutiérrez, Michael González

18/feb/09

1

II. Programación de E/S

UNIVERSIDAD
DE CANTABRIA

Bloque I
• Aspectos básicos de la programación de E/S
• Arquitectura y programación de la E/S en el sistema operativo
• Módulos de núcleo en Linux
• Organización de manejadores de dispositivos (drivers)
• Gestión de memoria

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez, Michael González

18/feb/09

2

Aspectos básicos de la programación
de entrada/salida

UNIVERSIDAD
DE CANTABRIA

Tres tipos de programación de la E/S:
• Entrada/salida por consulta o programada
• Entrada/salida por interrupciones
• Entrada/salida por acceso directo a memoria

El control de la entrada/salida recae fundamentalmente en el
sistema operativo:
• la programación se realiza mediante los drivers de dispositivos

(device drivers)

• las interfaces que ofrecen los sistemas operativos para la

programación de drivers no son uniformes

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez, Michael González

18/feb/09

3

Drivers de dispositivos

UNIVERSIDAD
DE CANTABRIA

Un driver para un dispositivo es una interfaz entre el sistema
operativo y el hardware de un dispositivo

Los drivers forman parte del kernel y tienen acceso restringido a
estructuras del sistema operativo

El objetivo de un driver debe ser flexibilizar el uso de los
dispositivos, proporcionando un mecanismo de uso y no una
política de uso (idea que proviene del diseño de Unix):
• mecanismo: capacidades que debe proporcionar
• política: cómo utilizar las capacidades que proporciona

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez, Michael González

18/feb/09

4

Drivers de dispositivos (cont.)

UNIVERSIDAD
DE CANTABRIA

Ej. 1: los gráficos en Unix se dividen en:
• el X server que maneja el hardware y ofrece una interfaz única

a los programas de usuario, y

• los managers de windows y sesión que implementan unas

políticas concretas sin conocer absolutamente nada del
hardware

Ej. 2: para los niveles TCP/IP de red el sistema operativo ofrece:
• la abstracción del socket que no implementa política alguna

sobre el uso de la red, y

• son los servicios que están por encima los que implementan las

políticas de uso

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez, Michael González

18/feb/09

5

Drivers de dispositivos (cont.)

UNIVERSIDAD
DE CANTABRIA

En la implementación de drivers intentaremos observar esta
separación en la medida de lo posible (escribir el código de acceso
al hardware pero no forzar un uso particular)

Otros aspectos a tener en cuenta:
• la concurrencia en el uso de los drivers
• operación síncrona o asíncrona de los drivers
• la capacidad de ser abiertos muchas veces

Nos vamos a centrar en los sistemas operativos:
• Linux: es un SO libre con interfaz POSIX, no es de tiempo real
• MaRTE OS: es un SO de tiempo real que implementa el perfil

mínimo de POSIX

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez, Michael González

18/feb/09

6

II. Programación de E/S

UNIVERSIDAD
DE CANTABRIA

Bloque I
• Aspectos básicos de la programación de E/S
• Arquitectura y programación de la E/S en el sistema operativo
• Módulos de núcleo en Linux
• Organización de manejadores de dispositivos (drivers)
• Gestión de memoria

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez, Michael González

18/feb/09

7

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

© J. Javier Gutiérrez, Michael González

18/feb/09

8

Partición del kernel de Linux

UNIVERSIDAD
DE CANTABRIA

Manejo de procesos:
• creación y destrucción de procesos, entrada/salida de los
mismos, comunicación entre procesos (señales, pipes, o
primitivas de intercomunicación), planificación de los procesos
(cómo comparten el uso de la CPU)

Manejo de memoria:
• el kernel implementa un espacio de direcciones virtuales para
cada uno de los procesos encima de los recursos disponibles
que son limitados

• diferentes partes del kernel interaccionan a través de un

conjunto de llamadas del sistema correspondientes al
subsistema de manejo de memoria (ej.: malloc/free)

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez, Michael González

18/feb/09

9

Partición del kernel de Linux (cont.)

UNIVERSIDAD
DE CANTABRIA

Sistema de ficheros:
• casi todo en Unix puede ser tratado como un fichero
• el kernel construye una sistema de ficheros estructurado

encima de hardware desestructurado

• Linux soporta varios sistemas de ficheros

Control de dispositivos:
• casi todas las operaciones del sistema se pueden mapear en un

dispositivo físico

• salvo el procesador, la memoria, y algún otro elemento, las

operaciones de control de los dispositivos se realizan mediante
drivers de dispositivos; así cada dispositivo presente en el
sistema debe tener su driver

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez, Michael González

18/feb/09

10

Partición del kernel de Linux (cont.)

UNIVERSIDAD
DE CANTABRIA

Redes:
• las redes deben ser manejadas por el SO porque la mayoría de

las operaciones de red no son específicas de un proceso

• la llegada de paquetes es un evento asíncrono
• el paquete debe ser recogido, identificado y despachado antes

de que el proceso correspondiente lo reciba

Linux tiene la capacidad de extender la funcionalidad del kernel en
tiempo de ejecución mediante lo que denomina módulo (module):
• objetos software con una interfaz bien definida, que se cargan

dinámicamente en el núcleo del sistema operativo

• el propio kernel ofrece servicios para su instalación y

desinstalación

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez, Michael González

18/feb/09

11

Organización de drivers de entrada/
salida

UNIVERSIDAD
DE CANTABRIA

Los drivers se implementan mediante módulos del núcleo

Los drivers forman parte del núcleo y tienen
• acceso completo al hardware
• acceso restringido a estructuras del sistema operativo

El objetivo del driver es ofrecer un mecanismo de uso general, con
operaciones como:

leer (read)

- abrir (open) y cerrar (close)
-
- escribir (write)
- controlar (ioctl)

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez, Michael González

18/feb/09

12

Tipos de dispositivos y módulos

UNIVERSIDAD
DE CANTABRIA

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

© J. Javier Gutiérrez, Michael González

18/feb/09

13

Dispositivos de caracteres

UNIVERSIDAD
DE CANTABRIA

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

© J. Javier Gutiérrez, Michael González

18/feb/09

14

Dispositivos de caracteres (cont.)

UNIVERSIDAD
DE CANTABRIA

La diferencia fundamental con los ficheros es que en ellos te
puedes desplazar hacia delante y hacia atrás, mientras que los
drivers son normalmente canales de datos a los que se accede
secuencialmente

Puede haber dispositivos de caracteres en los que aparecen áreas
de datos, como por ejemplo en la adquisición de imágenes por
trozos:
• cada trozo puede tener varios elementos, bytes, accesibles
• podría necesitar la implementación de otras funciones de la

interfaz de drivers

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez, Michael González

18/feb/09

15

Dispositivos de bloques

UNIVERSIDAD
DE CANTABRIA

Al igual que los dispositivos de caracteres se acceden a través de
nodos del sistema de ficheros en el directorio /dev

Pueden contener y controlar un sistema de ficheros (como por
ejemplo un disco)

La información se maneja en bloques normalmente de 512 bytes o
alguna otra potencia de 2

Las operaciones de lectura y escritura funcionan como en un
disposivo de caracteres permitiendo la transferencia de cualquier
cantidad de bytes:
• sólo difieren en el modo en que el kernel maneja los datos

internamente y en la interfaz software hacia el kernel

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez, Michael González

18/feb/09

16

Interfaces de red

UNIVERSIDAD
DE CANTABRIA

Cualquier transacción de red se hace a través de una interfaz para
el intercambio de información con otros equipo
  • Links de descarga
http://lwp-l.com/pdf1052

Comentarios de: Periféricos Interfaces y Buses - Programación de E/S Aspectos básicos de la programación de E/S. Arquitectura y programación de la E/S en el sistema operativo (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad