PDF de programación - Excepciones y llamadas al sistema

<<>>
Imágen de pdf Excepciones y llamadas al sistema

Excepciones y llamadas al sistemagráfica de visualizaciones

Publicado el 14 de Junio del 2019
432 visualizaciones desde el 14 de Junio del 2019
290,4 KB
15 paginas
Modos de operación
Unidad de protección de memoria
Excepciones
Programación de llamadas al sistema
Ejercicios propuestos

Excepciones y llamadas al sistema

Departamento de Automática

Sistemas Operativos

Excepciones y llamadas al sistema

1 / 15

Modos de operación
Unidad de protección de memoria
Excepciones
Programación de llamadas al sistema
Ejercicios propuestos

Índice

● Modos de operación

● Conmutación entre modos

● Unidad de protección de memoria

● Registros
● Modos de región

● Excepciones

● Marco de excepción

● Programación de llamadas al sistema

● Manejador de llamadas al sistema

● Ejercicios propuestos

Sistemas Operativos

Excepciones y llamadas al sistema

2 / 15

Modos de operación
Unidad de protección de memoria
Excepciones
Programación de llamadas al sistema
Ejercicios propuestos

Descripción general
Conmutación entre modos

Modos de operación
Descripción general

● El procesador implementa dos modos de operación:

○ Modo supervisor



Permite la ejecución del juego completo de instrucciones

○ Modo usuario

■ No permite la ejecución de instrucciones privilegiadas (STI, CLI,



IN, OUT, etc.)
Si se intenta ejecutar una instrucción privilegiada en modo
usuario se produce un error (excepción)

● El sistema siempre comienza en modo supervisor
● La CPU proporciona instrucciones para conmutar de modo

Sistemas Operativos

Excepciones y llamadas al sistema

3 / 15

Las excepciones se describen en una transparencia posterior.

Modos de operación
Unidad de protección de memoria
Excepciones
Programación de llamadas al sistema
Ejercicios propuestos

Descripción general
Conmutación entre modos

Conmutación entre modos

Instrucción SRET

Conmuta la CPU de modo supervisor a modo usuario

Conmuta a la pila de modo usuario
● Modifica el puntero de instrucción


El nuevo valor de los registros lo obtiene del marco de supervisor

Instrucción
privilegiada





El marco de supervisor (supervisor frame) es
una estructura que contiene:







El nuevo valor del puntero de instrucción
después de la conmutación
El valor que tendrá el puntero de pila de modo
usuario
El valor que tendrá el registro de estado
después de la conmutación

El marco se almacena en la pila de supervisor

SP

Nuevo puntero de

instrucción

Puntero de pila de

usuario

Nuevo registro de

estado

Sistemas Operativos

Excepciones y llamadas al sistema

4 / 15

Modos de operación
Unidad de protección de memoria
Excepciones
Programación de llamadas al sistema
Ejercicios propuestos

Descripción general
Conmutación entre modos

Conmutación entre modos

Instrucción SVC




Conmuta la CPU de modo usuario a modo supervisor
Sólo se puede ejecutar en modo usuario

● Cuando se ejecuta, la CPU realiza las siguientes operaciones:

1.
2.

Conmuta a la pila de modo supervisor
Almacena en la pila el marco de supervisor:

■ Dirección de la siguiente instrucción a SVC



Puntero de pila de modo usuario
Valor previo del registro de estado

3. Modifica el puntero de instrucción

¡Punto de entrada conocido y fijo!

Instruction
Pointer

Valor previo

0x0006

Sistemas Operativos

Excepciones y llamadas al sistema

5 / 15

Modos de operación
Unidad de protección de memoria
Excepciones
Programación de llamadas al sistema
Ejercicios propuestos

Descripción general
Registros
Modos de región

Unidad de protección de memoria
Descripción general

Procesador

Unidad de

protección de

memoria

Bus de direcciones

Bus de entrada/salida



El sistema proporciona una unidad de protección de memoria
(memory protection unit):







Permite bloquear los accesos a memoria en modo escritura dentro (o
fuera) de una región de memoria
El acceso se puede controlar para los dos modos de operación (usuario y
supervisor)
Implementa dos registros: MEMPTSTART y MEMPTEND

Sistemas Operativos

Excepciones y llamadas al sistema

6 / 15

Las excepciones se describen en una transparencia posterior.

Modos de operación
Unidad de protección de memoria
Excepciones
Programación de llamadas al sistema
Ejercicios propuestos

Descripción general
Registros
Modos de región

Registros de la unidad de protección de memoria
Memory Protection Unit Start Register (MEMPTSTART)

Memory
Protection Unit
Start Register
(MEMPTSTART)

START_ADDRESS

16 bits

ABUS

0

0

0

0

El registro MEMPTSTART establece la dirección inicial de la región de
memoria y el modo de protección:






Active. Protección de memoria: 1 ⇒ activada, 0 ⇒ desactivada
Block. Modo de región: 1 ⇒ bloque, 0 ⇒ segmento
User. Escritura en modo usuario: 1 ⇒ permitida, 0 ⇒ no permitida
Supervisor. Escritura en modo supervisor: 1 ⇒ permitida, 0 ⇒ no permitida

➢ La dirección de comienzo de la región será START_ADDRESS * 16

Sistemas Operativos

Excepciones y llamadas al sistema

7 / 15

Modos de operación
Unidad de protección de memoria
Excepciones
Programación de llamadas al sistema
Ejercicios propuestos

Descripción general
Registros
Modos de región

Registros de la unidad de protección de memoria
Memory Protection Unit End Register (MEMPTEND)

Memory
Protection Unit
End Register
(MEMPTEND)

END_ADDRESS

16 bits

El registro MEMPTEND establece la dirección final de la región de memoria

Región de memoria = [START_ADDRESS * 16, END_ADDRESS]

¡No se debe modificar el registro MEMPTEND con la región activada!

Sistemas Operativos

Excepciones y llamadas al sistema

8 / 15

Modos de operación
Unidad de protección de memoria
Excepciones
Programación de llamadas al sistema
Ejercicios propuestos

Descripción general
Registros
Modos de región

Modos de región

Protección en modo bloque

Block (B) == 1

Protección en modo segmento

Block (B) == 0

0x0000

0x0000

Región protegida

START_ADDR * 16

END_ADDRESS

Región protegida

START_ADDR * 16

END_ADDRESS

0x03FF

Región protegida

0x03FF

Sistemas Operativos

Excepciones y llamadas al sistema

9 / 15

Modos de operación
Unidad de protección de memoria
Excepciones
Programación de llamadas al sistema
Ejercicios propuestos

Descripción general
Marco de excepción

Excepciones
Descripción general

● Una excepción es un error provocado durante la ejecución de una

instrucción
El simulador define seis tipos de excepciones:





Nombre

Descripción

0

1

2

3

4

5

DIVIDE_BY_ZERO

El procesador ejecuta una instrucción que resulta en una división por cero

INSTRUCTION_FETCH_ERROR

Error al obtener de memoria la siguiente instrucción a ejecutar

MEMORY_ACCESS_ERROR

El procesador ejecuta una instrucción que accede a una posición de memoria no válida

UNKNOWN_OPCODE

El procesador intenta ejecutar una instrucción con un código de operación inválido

ILLEGAL_INSTRUCTION

El procesador intenta ejecutar una instrucción privilegiada en modo usuario

STACK_ACCESS_ERROR

Error al acceder a la memoria correspondiente a la pila

Sistemas Operativos

Excepciones y llamadas al sistema

10 / 15

Modos de operación
Unidad de protección de memoria
Excepciones
Programación de llamadas al sistema
Ejercicios propuestos

Descripción general
Marco de excepción

Excepciones
Descripción general

● Las excepciones se pueden tratar sólo si se producen en

modo usuario



Si se producen en modo supervisor, el procesador pasa a modo
fallo (fault mode)

● Cuando se produce una excepción en modo usuario, el

procesador realiza las siguientes operaciones:

○ Conmuta a modo supervisor
○ Guarda el marco de excepción (exception frame)
○ Modifica el registro puntero de instrucción

Instruction
Pointer

Valor previo

0x0009

Sistemas Operativos

Excepciones y llamadas al sistema

11 / 15

Modos de operación
Unidad de protección de memoria
Excepciones
Programación de llamadas al sistema
Ejercicios propuestos

Descripción general
Marco de excepción

Marco de excepción



El marco de excepción contiene la información
necesaria poder identificar el fallo que ha
ocurrido:









El tipo (número) de excepción

La dirección de memoria cuyo acceso ha
provocado el fallo (sólo si la excepción es de
tipo MEMORY_ACCESS_ERROR)

La instrucción que ha provocado el fallo

El valor del puntero de pila de usuario en el
momento del fallo

El valor del registro de estado en el momento
del fallo

SP

SP



El marco se almacena en la pila de supervisor

Tipo de excepción

Dirección de memoria

inválida

Instrucción que ha
provocado el fallo

Puntero de pila en el
momento del fallo

Registro de estado en el

momento del fallo

Sistemas Operativos

Excepciones y llamadas al sistema

12 / 15

Modos de operación
Unidad de protección de memoria
Excepciones
Programación de llamadas al sistema
Ejercicios propuestos

Programación de llamadas al sistema

● En un sistema convencional, las aplicaciones se ejecutan en

modo usuario y el núcleo del SO en modo supervisor

● Las aplicaciones solicitan servicios al SO mediante llamadas

al sistema:





Permiten ejecutar código privilegiado en nombre de la
aplicación
Se implementan utilizando una instrucción específica (TRAP)



En el simulador, la instrucción de TRAP es SVC


El acceso al código del núcleo se realiza de forma controlada
○ Una vez ejecutado el servicio, el núcleo retorna a la aplicación

Sistemas Operativos

Excepciones y llamadas al sistema

13 / 15

Modos de operación
Unidad de protección de memoria
Excepciones
Programación de llamadas al sistema
Ejercicios propuestos

Programación de llamadas al sistema

● El manejador de llamadas al sistema es la rutina que se

ejecuta cuando se produce el TRAP

● Un mismo manejador puede proporcionar múltiples

servicios, cada uno con un número variable de parámetros
El manejador establece un mecanismo para indicar el tipo de
servicio y la forma en que se pasan los parámetros:



■ Registros, pila, posiciones fijas de memoria, etc.



Las aplicaciones tienen que invocar las llamadas siguiendo las
directrices del manejador

Sistemas Operativos

Excepciones y llamadas al sistema

14 / 15

Comentar paso a paso el Ejemplo 5 (Sample 5). Explicar l
  • Links de descarga
http://lwp-l.com/pdf16128

Comentarios de: Excepciones y llamadas al sistema (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