INTERRUPCION POR SOFTWARE

Páginas: 21 (5054 palabras) Publicado: 30 de abril de 2015
Interrupciones Software

LECCIÓN 2: INTERRUPCIONES SOFTWARE

2.1 Introducción..........................................................................................................................1
2.2 system_call............................................................................................................................3
2.3Sys_call_table.......................................................................................................................9
2.4 Excepciones........................................................................................................................15

Interrupciones Software

LECCIÓN 2: INTERRUPCIONES SOFTWARE

2.1 Introducción
Una interrupción se genera cuando se quiere que la CPU deje de ejecutar el proceso
en curso yejecute una función específica de quien produce la interrupción. Cuando
se ejecuta esta función específica decimos que la CPU está atendiendo la
interrupción. Podemos realizar una clasificación de las interrupciones, atendiendo a la
fuente que las produce.
Interrupcion software, se produce cuando un usuario solicita una llamada del
sistema.
Interrupciones hardware, son causadas cuando un dispositivohardware requiere la
atención de la CPU para que se ejecute su manejador.
Excepciones, son interrupciones causadas por la propia CPU, cuando ocurre algún
suceso, por ejemplo una división por cero.
Una Interrupción software se produce cuando un usuario solicita un recurso del
núcleo, mediante una llamada al sistema, open, write, read, mount, etc. Los pasos
que se producen son los siguientes:
Elproceso usuario solicita la función correspondiente de la librería libc, que ha sido
añadida en la compilación del proceso.
df = open (fichero, modo);
La función de librería coloca los parámetros de la llamada en los registros del
procesador y ejecuta la instrucción INT 0x80.
Se conmuta de modo usuario a modo núcleo mediante las estructuras conocidas
como las tablas IDT (Tabla Descriptora deInterrupciones) y GDT (Tabla Global de
Descriptores).
Entra a ejecutarse una función del núcleo, system_call, Interfase entre el usuario
y el núcleo.
Cuando se termina la llamada, system_call retorna al proceso que la llamo y se
retorna a modo usuario.
El modo de llegar a la función system_call se visualiza en la siguiente figura.
Llega la interrupción software INT 80h y se busca en la IDT la entradacorrespondiente a la interrupción.
Se obtiene un puntero desplazamiento al núcleo (D).
Y una entrada (S) a GDT.
La entrada en la GDT indica una base (B) y un limite (L) del núcleo.
Se llega al manejador de interrupción system_call.

Interrupciones Software

df = open(ficheor, modo);
open – libc
INT 80

TSS
EAX

LDT
Descriptor 1

EBX

Descriptor 2

ECX

Descriptor 3

...
0

S

IDT
D

1

S

D

A

2

S

DA

33

S

D

S

D

S

INT 80

255
B
IDTR

L

A

B

TR

B

GDT
L
L

A
A

B

L

A

A

B

L

A

A

B

L

A

D

A

B

L

A

S

D

A

B

L

A

S

D

A

L

A

LDTR

B
B
GDTR

CS

Descriptor n

FLG

Descriptor

Base

MEMORIA
NÚCLEO

+

Desplazamiento

system_call:
save_all
call sys_open
restore_all
sys_open

L
Limite
S – Selector
D – Desplazamiento
A – Atributos
B – Base
L - Limite

IDT (TablaDescriptora de Interrupciones)
Tabla que guarda los descriptores de interrupciones, cada vez que se produce una
interrupción se salta a una entrada de esta tabla. Contiene 256 entradas, y cada entrada
tiene información para llegar a una función manejadora de la interrupción. Contienen el
campo denominado Selector, que tiene la dirección de una entrada de la tabla GDT; el
campo Desplazamiento, que contieneel desplazamiento que hay que sumar a la base del
núcleo para llegar a la función que queremos que se ejecute cuando se interrumpe; por
último contiene una serie de campos denominados Atributos, que fijan si el desplazamiento
viene en bytes o en palabras, bits de protección, etc). Existe un registro IDTR dentro del
microprocesador que contiene la dirección base y la longitud de esta tabla, para...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • E9 Interrupciones De Software
  • Interrupciones
  • Interrupciones
  • Interrupciones
  • Interrupciones
  • Interrupciones
  • Interrupciones
  • INTERRUPCIONES

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS