Concurrencia
Enviado por rhinostroza • 8 de Octubre de 2015 • Apuntes • 1.515 Palabras (7 Páginas) • 161 Visitas
Capitulo 1
Registros del procesador
Los procesadores modernos cuentan con un conjunto de registros especializados y otros de proposito general, disponibles al programador.
1 Registros de control y status:
Usado por el procesador para controlar actividades del procesador
Usado por rutinas privilegiadas del SO para la ejecucion de programas
Program counter (PC): contiene la direccion de la proxima instruccion
Instruction register (IR): almacena la instrucion mas reciente
Memory address register (MAR): contiene la direccion de memoria de donde se debe leer o escribir
Memory buffer register (MBR): almacena temporalmente el dato de I/O register, I/O buffer register PSW (program status word)
2 Registros de proposito general (visibles al programador)
Pueden ser referenciados por lenguaje de maquina y estan disponibles a todos los programas
Permite optimizar el uso de registros y minimizar referencias a memoria principal
Registros de datos, direcciones, indices, Segment pointer (SP), Stack pointer (SP)
Ciclo basico de instruccion o ciclo fetch
La tarea principal del procesador es ejecutar instrucciones almacenadas en memoria
Las etapas de este ciclo dependen de cada arquitectura, pero generalmente incluyen al menos:
1 Fetch: se va a buscar a memoria la direccion apuntada por el IP (o PC)
2 Decode: se decodifica la instruccion y si es necesario se van a buscar operandos a memoria
Otras clasificaciones de excepciones
Interrupcion: señal proviene de dispositivo de I/O. Siempre retorna a la proxima instruccion
Trap: excepcion intencional (por ejemplo un llamado al sistema).
Siempre retorna a la proxima instruccion
Fault: error potencialmente recuperable (por ejemplo un fallo de pagina).
Puede retornar a la instruccion actual, la que produjo el fallo. Si el error
no es recuperable el SO aborta (termina) el proceso
Abort: error no recuperable (por ejemplo division por zero). No retorna
3 Execute: se ejecta la instruccion
4 Write: se almacena en memoria o en el acumulador el resultado de la instruccion
Interrupciones y excepciones
El ciclo fetch de un programa continua hasta que termina o hasta que se produce algun tipo de excepcion
Una excepcion es cualquier evento en el sistema que requiere alterar la secuencia normal de ejecucion y fuerza al procesador a ejecutar instrucciones en un modo privilegiado
Todas las excepciones llegan al procesador en la forma de señales. Algunas vienen de dispositivos de I/O, mientras que otras son generadas por el mismo programa en ejecucion
Interrupciones en x86
1 Las interrupciones generadas por dispositivos son manejadas por el Programmable Interrupt Controller (PIC)
2 Cada controlador puede emitir un Interrupt ReQuest (IRQ)
El PIC monitorea las IRQ Cuando una o mas IRQ se activan, selecciona la de menor valor
Almacena el vector (numero) en un registro
Envia un señal al procesador a traves de la linea INT (Interrupcion)
Espera hasta que el procesador acknowledges la interrupcion INTA Limpia la INT
Cada tipo de interrupcion es asignado un numero entre 0 y 255
0 - 31: reservadas para interrupciones del procesador (arquitectura Intel), como por ejemplo el reloj o fallo de pagina
32 -255: son configuradas por el SO, por ejemplo para dispositivos de I/O, y llamados al sistema
Excepciones y flujo de control
Toda excepcion implica un cambio en el flujo de control, por ejemplo a una rutina del SO que se encarga de atender la excepcion
Luego de atender la excepcion, el flujo de control puede retornar al programa que estaba en ejecucion cuando se produjo la excepcion.
Tipos de excepciones
1 Sincronas : ocurren cuando hay algun error o problema al finalizar la ejecucion de la instruccion actual
Division por zero
Llamado al sistema
Referencia a memoria incorrecta
2 Asincronas: ocurren por eventos externos, como Dispositivos de I/O Relojes
3 Denominacion Intel
Interrupciones; excepciones asincronas Excepciones: excepciones sincronas
Manejo de excepciones
Cuando el procesador detecta que una excepcion ha ocurrido, realiza un llamado a procedimiento a un manejador de excepciones o manejador de interrupciones especifico para atender la excepcion.
Al finalizar el manejo de la interrupcion, existen tres posibles escenarios:
el manejador retorna el control a la instruccion actual
el manejador retorna el control a la proxima instruccion a ejecutarse
el manejador aborta el programa interrumpido
En realidad existen mas posibilidades, que se veran luego.
Es importante recalcar que la deteccion de la excepcion y la transferencia de control al manejador de interrupciones es realizada por el hardware, pero el manejo de la interrupcion es realizada por software.
Almacenamiento y recuperacion de registros
Antes de saltar a la direccion del manejador de interrupciones, el procesador debe almacenar algunos registros del procesador. Estos generalmente se almacenan en el stack del sistema o stack de control.
Otras clasificaciones de excepciones
Interrupcion: señal proviene de dispositivo de I/O. Siempre retorna a la proxima instruccion
Trap: excepcion intencional (por ejemplo un llamado al sistema).
Siempre retorna a la proxima instruccion
Fault: error potencialmente recuperable (por ejemplo un fallo de pagina).
Puede retornar a la instruccion actual, la que produjo el fallo. Si el error no es recuperable el SO aborta (termina) el proceso
...