PDF de programación - Programación de bajo nivel

Imágen de pdf Programación de bajo nivel

Programación de bajo nivelgráfica de visualizaciones

Publicado el 15 de Octubre del 2018
1.050 visualizaciones desde el 15 de Octubre del 2018
135,7 KB
72 paginas
Creado hace 15a (25/02/2009)
ditdit

UPM

Programación de bajo nivel

Juan Antonio de la Puente

DIT/UPM

Transparencias basadas en el capítulo 15 del libro de A. Burns y A. Wellings Real-Time Systems and Programming Languages, 3ª edición (2001)

Objetivos

Los sistemas de tiempo real suelen tener dispositivos de

entrada y salida especiales

Los manejadores de dispositivos forman parte del

software de aplicación

Veremos cómo controlar los dispositivos de hardware en

un lenguaje de alto nivel

Veremos también cómo incluir los manejadores de

dispositivos en el modelo de tareas de tempo real

Y cómo tener en cuenta las características del núcleo de

ejecución en el análisis de tiempos de respuesta

25/02/2009

Programación de bajo nivel

1

6
0
0
2
-
1
0
0
2
e
n
e
u
P
a

t



l


i



t

e
d
o
n
o
n
A
n
a
u
J
©



Índice

Mecanismos de hardware para entrada y salida y

manejadores de dispositivos

Mecanismos de bajo nivel en Ada

– cláusulas de representación
– manejo de interrupciones
– ejemplo
– código de máquina

Programación de dispositivos en C
Planificación con manejadores de dispositivos

25/02/2009

Programación de bajo nivel

2

6
0
0
2
-
1
0
0
2
e
n
e
u
P
a

t



l


i



t

e
d
o
n
o
n
A
n
a
u
J
©



Arquitecturas de entrada-salida

datos

datos

memoria

CPU

dispositivo

dispositivo

Bus de E/S separado del
de memoria

direcciones

direcciones

datos

CPU

memoria

dispositivo

dispositivo

direcciones

Bus único para E/S y memoria
(memory mapped)

25/02/2009

Programación de bajo nivel

3

6
0
0
2
-
1
0
0
2
e
n
e
u
P
a

t



l


i



t

e
d
o
n
o
n
A
n
a
u
J
©



Interfaz con los dispositivos

de entrada y salida

Los dispositivos de entrada-salida se conectan a los otros

elementos del computador mediante controladores que
presentan una interfaz homogénea

El procesador intercambia datos e información de control

y estado con los controladores mediante registros de
hardware

La forma concreta de hacerlo depende de la arquitectura

de entrada y salida

25/02/2009

Programación de bajo nivel

4

6
0
0
2
-
1
0
0
2
e
n
e
u
P
a

t



l


i



t

e
d
o
n
o
n
A
n
a
u
J
©



Entrada y salida en lenguaje de máquina

Bus de E/S separado
Registros en espacio de

direcciones de E/S
(direcciones de puerto)

Bus de memoria
Registros en el espacio de

direcciones de memoria

Se leen y escriben mediante

Se leen y escriben mediante

instrucciones de transferencia de
datos

mov r, address
mov address, r

instrucciones de E/S
específicas

in r, port
out r, port

6
0
0
2
-
1
0
0
2
e
n
e
u
P
a

t



l


i



t

e
d
o
n
o
n
A
n
a
u
J
©



Ejemplo: Intel 486 & Pentium

Ejemplo: M 68000, PowerPC

25/02/2009

Programación de bajo nivel

5

Sincronización

Por consulta (status driven)
El procesador interroga al

controlador para comprobar el
estado del dispositivo.
Operaciones
– test
– control
– E/S

Complicado e ineficiente
A veces es la única opción

(en sistemas muy críticos es
posible que no se permita
usar interrupciones)

Por interrupción (interrupt driven)
El controlador presenta una

interrupción en determinadas
circunstancias

Un manejador de interrupción se

encarga de tomar la acción
adecuada

Varios tipos

– controlado por programa
– acceso directo a memoria
– controlado por canal

Puede ser difícil estimar el tiempo

de computo
– robo de ciclos al procesador

25/02/2009

Programación de bajo nivel

6

6
0
0
2
-
1
0
0
2
e
n
e
u
P
a

t



l


i



t

e
d
o
n
o
n
A
n
a
u
J
©



Mecanismos de interrupción (1)

Cambio de contexto

– se guarda el estado del procesador antes de la interrupción
– se carga el estado del manejador de interrupción
– cuando se completa el manejador, se restaura el estado anterior

Soporte de hardware
– básico:
– parcial: PC y PSW (registro de estado)
– completo: todo el contexto

sólo se guarda el contador de programa (PC)

– Puede hacer falta hacer una parte en software

25/02/2009

Programación de bajo nivel

7

6
0
0
2
-
1
0
0
2
e
n
e
u
P
a

t



l


i



t

e
d
o
n
o
n
A
n
a
u
J
©



Mecanismos de interrupción (2)

Identificación del dispositivo que interrumpe

– por vector de interrupción: array asociado al hardware de

interrupción que contiene direcciones de memoria con
manejadores de interrupción y otros datos (p.e. palabra de estado)

– por estado: cada interrupción tiene una palabra de estado

asociada que indica cuál es el origen de la misma

– por consulta: un manejador general consulta a los dispositivos

para averiguar cuál ha interrumpido

Identificación de la causa de la interrupción

– consultando el estado del dispositivo
– con diferentes interrupciones para el mismo dispositivo

25/02/2009

Programación de bajo nivel

8

6
0
0
2
-
1
0
0
2
e
n
e
u
P
a



t

l


i

t



e
d
o
n
o
n
A
n
a
u
J
©



Mecanismos de interrupción (3)

Control de interrupciones

Las interrupciones de un dispositivo pueden estar
permitidas (enabled) o inhibidas (disabled)
– mediante indicadores (flags) en registros de estado
– mediante una máscara (mask), con un bit por dispositivo
– mediante un nivel de prioridad de hardware

» cada dispositivo tiene un nivel asociado
» si el nivel del procesador es mayor o igual que el de un dispositivo, no

se aceptan interrupciones de éste

Control de prioridad

– a veces se asocia una prioridad a cada fuente de interrupciones
– la prioridad indica la urgencia relativa de la interrupción
– puede ser estática o dinámica
– normalmente está relacionada con los niveles de prioridad del

procesador

25/02/2009

Programación de bajo nivel

9

6
0
0
2
-
1
0
0
2
e
n
e
u
P
a

t



l


i



t

e
d
o
n
o
n
A
n
a
u
J
©



Ejemplo de sistema de entrada y salida

6
0
0
2
-
1
0
0
2
e
n
e
u
P
a



t

l


i

t



e
d
o
n
o
n
A
n
a
u
J
©



Suponemos una arquitectura con E/S por bus de

memoria, con interrupciones (como la M68000)

Cada dispositivo tiene dos tipos de registros

– Registros de control y estado (CSR), que contienen información

sobre el dispositivo y el control de interrupciones

– Registros de datos (DBR), que contienen los datos que se

transmiten al dispositivo o desde él

Un mismo dispositivo puede tener varios CSR o DBR
Cuando se produce una interrupción, se guarda el estado

(PC y PSW) en la pila, y se carga el nuevo estado del
vector de interrupción correspondiente
– Las interrupciones y el procesador tienen asociada una prioridad
– Una interrupción puede desalojar a un manejador con prioridad

más baja

25/02/2009

Programación de bajo nivel

10

Estructura de los registros

CSR

15

12

14
13
errors

11
B

10

8

9
unit

7
6
R I

2

4

3

5
1
reserved function

0
E

B device busy
R device ready / done
I
E device enable

interrupt enable

15

14

13

11

12
unused

10

9

8

7

6

5

2

1

0

4

3
data

15

14

13

12

11

mode

8

9

10
unused

7

6

5
priority

4

3

2

1

0

condition codes

DBR

PSW

25/02/2009

Programación de bajo nivel

11

6
0
0
2
-
1
0
0
2
e
n
e
u
P
a

t



l


i



t

e
d
o
n
o
n
A
n
a
u
J
©



Manejadores de dispositivos

Para realizar manejadores de dispositivos hace falta:

– Un modelo abstracto de la gestión de dispositivos

» procesos sincronizados por interrupciones

– Manipular registros de hardware y direcciones

» un registro se puede representar como una variable, un objeto o un

canal de comunicación

– Enlazar interrupciones con código. Algunas posibilidades son:

» llamada a procedimiento
» activación de proceso esporádico
» suceso asíncrono
» sincronización con variable de condición
» mensaje

Todos estos métodos (excepto la llamada a procedimiento)
requieren un cambio de contexto

6
0
0
2
-
1
0
0
2
e
n
e
u
P
a



t

l


i



t

e
d
o
n
o
n
A
n
a
u
J
©



25/02/2009

Programación de bajo nivel

12

Manejadores de dispositivos en Ada

Modelo abstracto de dispositivos: tareas en hardware

Las tareas que usan el dispositivo se tienen que

comunicar y sincronizar con las tareas de hardware
– acceso a registros de hardware
– sincronización con interrupciones

Manejador: subsistema que controla el acceso al

dispositivo
– objeto protegido: abstracción de comunicación y sincronización
– registros como variables en memoria
– interrupciones asociadas a procedimientos protegidos

25/02/2009

Programación de bajo nivel

13

6
0
0
2
-
1
0
0
2
e
n
e
u
P
a



t

l


i

t



e
d
o
n
o
n
A
n
a
u
J
©



Esquema general

software

hardware

manejador

interrupción

tarea
cliente

registros

25/02/2009

Programación de bajo nivel

14

6
0
0
2
-
1
0
0
2
e
n
e
u
P
a



t

l


i

t



e
d
o
n
o
n
A
n
a
u
J
©



Mecanismos de bajo nivel en Ada

Ada 95 tiene varios mecanismos de bajo nivel que
permiten acceder a registros, direcciones e interrupciones

– cláusulas de representación

» permiten especificar la representación de tipos y objetos en la

arquitectura de hardware

representación de atributos (tamaño, dirección, alineación)
representación de tipos enumerados
representación de registros

– manejadores de interrupciones

» permiten asociar una interrupción a un procedimiento protegido

– subprogramas en lenguaje de máquina

» permiten un control total sobre la arquitectura de hardware

25/02/2009

Programación de bajo nivel

15

6
0
0
2
-
1
0
0
2
e
n
e
u
P
a



t

l


i



t

e
d
o
n
o
n
A
n
a
u
J
©



Cláusulas de representación de atributos

Tamaño

type Data_Register is mod 2**8;
for Data_Register'Size use 16;
-- los objetos de tipo Data_Register ocupan 16 bits

Dirección

Data_Buffer : Data_Register;
for Data_Buffer'Address
use System.Storage_Elements.To_Address(8#177560
  • Links de descarga
http://lwp-l.com/pdf13900

Comentarios de: Programación de bajo nivel (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