PDF de programación - PTR-TEMA2

Imágen de pdf PTR-TEMA2

PTR-TEMA2gráfica de visualizaciones

Publicado el 14 de Enero del 2017
692 visualizaciones desde el 14 de Enero del 2017
180,8 KB
28 paginas
Creado hace 9a (05/05/2014)
Plataformas de Tiempo Real:
Dispositivos y Drivers
Tema 2. Programación básica de E/S en Linux
• 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

UNIVERSIDAD
DE CANTABRIA

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
8

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

5/ma/14

1

Aspectos básicos de la programación
de entrada/salida
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

UNIVERSIDAD
DE CANTABRIA

(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

5/ma/14

2

UNIVERSIDAD
DE CANTABRIA

Drivers de dispositivos
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

5/ma/14

3

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

UNIVERSIDAD
DE CANTABRIA

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

5/ma/14

4

UNIVERSIDAD
DE CANTABRIA

Drivers de dispositivos (cont.)
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

5/ma/14

5

Plataformas de Tiempo Real:
Dispositivos y Drivers
Tema 2. Programación básica de E/S en Linux
• 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

UNIVERSIDAD
DE CANTABRIA

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

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

5/ma/14

6

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

5/ma/14

7

Partición del kernel de Linux
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)

UNIVERSIDAD
DE CANTABRIA

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

5/ma/14

8

Partición del kernel de Linux (cont.)
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

UNIVERSIDAD
DE CANTABRIA

• 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

5/ma/14

9

Partición del kernel de Linux (cont.)
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

UNIVERSIDAD
DE CANTABRIA

• 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

5/ma/14

10

Organización de drivers de entrada/
salida
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:

UNIVERSIDAD
DE CANTABRIA

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

5/ma/14

11

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

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

5/ma/14

12

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

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

5/ma/14

13

UNIVERSIDAD
DE CANTABRIA

Dispositivos de caracteres (cont.)
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

5/ma/14

14

UNIVERSIDAD
DE CANTABRIA

Dispositivos de bloques
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

5/ma/14

15

UNIVERSIDAD
DE CANTABRIA

Interfaces de red
Cualquier transacción de red se hace a través de una interfaz para
el intercambio de información con otros equipos
Normalmente una interfaz es un dispositivo hardware, pero podría
ser únicamente software puro
Una interfaz de red se encarga de enviar y recibir paquetes, y
también de encaminarlos por el subsistema de red del kernel:
• con independencia de las aplicaciones emisora y receptora
• por tanto, un driver de red en principio no debe saber nada de

las conexiones individuales, sólo debe manejar paquetes

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

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

5/ma/14

16
  • Links de descarga
http://lwp-l.com/pdf1133

Comentarios de: PTR-TEMA2 (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