Vous êtes sur la page 1sur 6

Ayudanta Microprocesadores 1er Semestre 2008 Profesor: David Velasco L. Ayudante: Juan Daz G.

Unidad: Modo Protegido Modulo N 4: Registros de control y Conmutacin de Tareas. Registros de Control El 386 tiene 4 registros de 32 bits cada uno, llamados CR0 CR3, los cuales todos, excepto CR1 (por uso reservado) son accesibles al programador de sistemas: pueden ser ledos y escritos mediante instrucciones del tipo MOV desde los registros de uso general (AX, BX, CX, DX). La caracterstica de estos registros es que determinan el modo de operacin del procesador y las caractersticas de la tarea en ejecucin. Veamos las descripciones de estos registros: 1.- CR0: Doble Palabra de estado de la maquina. Este registro es el de mayor importancia desde el punto de vista del programador: posee funciones vitales del funcionamiento del procesador. Solo 11 bits de este tienen funciones: los 16 bits de menos peso (de los 32 bits) forman la palabra de estado de la maquina MSW.

PG: Paginacin: si PG = 1, esta habilitada la Unidad de Paginacin, traduciendo las direcciones lineales a fsicas. Cuando PG = 0, todas las direcciones lineales son tratadas como direcciones fsicas (Importante!). CD: cach desactivada: si CD = 0, se activa la cach interna, desactivndose si es que CD = 1. Mientras el bit este en 1, el CPU puede aun acceder a la memoria cach pero esta no se actualizara hasta que sea reactivada (CD = 0). NW: Escritura Obligada: si NW = 0, se pone en marcha la escritura obligada y los ciclos de invalidacin de la cach. AM: Mascara de Alineamiento: si AM = 1 y AC (en EFLAGS) = 1, se permite comprobar si la direccin de los operandos es mltiplo de 8. 4 y 2; es decir, si la palabra esta alineada. El PL del segmento debe ser 3.

WP: Proteccin de Escritura: Si WP = 1, las paginas de usuario quedan protegidas contra escritura, tanto en nivel Usuario como Supervisor. NE: Error de Coprocesador: Sirve para tomar acciones a seguir en caso de que el coprocesador matemtico FPU falle. TS: Tarea conmutada: la Cpu pone este bit a 1 cuando se produce una conmutacin de tarea. PR: Habilitacin del modo Protegido: Cuando PE = 1, el 386 pasa a operar en modo Protegido, mientas si PE = 0, lo hace en modo Real. ET: Tarea de Coprocesador: Se utiliza para determinar si el coprocesador es un 287 o 387. EM: Emulacin: Si EM = 1, se emula por software al coprocesador; se fuerza a todas las instrucciones en coma flotante a ser ejecutadas por emulacin software. MP: Monitor de Coprocesador: Se usa para controlar la funcin de la instruccin WAIT, que sincroniza el procesador con el coprocesador. CR2: Direccin lineal de fallo de pgina. Si la paginacin esta activa, la direccin lineal se introduce en la Unidad de Paginacin para traducirla en direccin fsica. Este proceso es lento debido a que se requieren tres accesos a memoria principal. Si la direccin buscada se encuentra en la TLB (cach para acelerar la bsqueda) la traduccin es muy rpida, pero en caso de que se produzca un fallo de pagina, la direccin lineal se almacena en el registro de control CR2.

CR3: Base del Directorio de las Tablas de Paginas. Los 20 bits de mas peso de este registro contienen el valor de la base del Directorio de Paginas de la tarea en curso, el cual esta dentro de la Unidad de Paginacin y se utiliza para convertir direcciones lineales a direcciones fsicas. De los 12 bits restantes, se usan significativamente dos es ellos: PCD: Pagina Cacheable: Si PCD = 1, la pagina que esta siendo utilizada en ese momento puede meterse en la cach. PWT: Pagina de Escritura Obligada: Si PWT = 1, significa que es una pagina de escritura obligada.

Para el Pentium hay un nuevo registro de control, el CR4, el cual describe las extensiones de la arquitectura que este procesador soporta. CONMUTACION DE TAREAS La multitarea se define como la capacidad de un microprocesador para realizar muchas tareas simultneamente, ejecutndolas de manera secuencial. Varias son las razones para apoyar el empleo de esta tcnica: Permitir que varias aplicaciones trabajen simultneamente. Compartir recursos fsicos entre barios usuarios. Compartir recursos lgicos, es decir, la informacin. Acelerar los clculos de una tarea trabajando en paralelo. Mejorar la modularidad de una aplicacin dividindola en distintas tareas. Una tarea es una unidad de trabajo que un CPU puede conmutar, ejecutar o suspender. Una conmutacin de tarea consiste en abandonar el procesamiento de la tarea en curso (vieja) para reanudar otra tarea (nueva). Para reanudar una tarea en cualquier momento se dispone del CONTEXTO, que es el estado completo almacenado del procesador cuando abandone dicha tarea. El contexto se compone fundamentalmente de: La mayor parte de los registros de la CPU La LDT especifica de la tarea El registro que apunta al Directorio de Paginas Los punteros de pila para los diversos niveles de privilegio Parmetros del SO, etc. Cada tarea tiene guardado el contexto de la CPU que le corresponde en un segmento que se denomina SEGMENTO DEL ESTADO DE LA TAREA (TSS).

Segmento de Estado de la Tarea, TSS. Es un segmento de estado donde se guardan los principales registros de la CPU y parmetros del Sistema Operativos necesarios para que se pueda reanudar una tarea.

La TSS consta de tres partes: Registros de la CPU (104 bytes) Parmetros del SO (tamao variable) Mapa de bits de permiso de E/S (64 Kbits)

Los campos del segmento TSS se dividen en dos categoras: Dinmicos: Se actualizan cuando una tarea es suspendida en una conmutacin. Dentro de esta categora caen los estados anteriores de los registros de propsito general, de selectores de segmento, de EFLAGS, de campo EIP y TR previo antes de la conmutacin de la tarea. Estticos: No se modifican. Se activan cuando se crea una tarea, como el registro LDTR, CR3, punteros de pila de nivel de privilegio, flag T y parmetros del SO. La conmutacin de tarea se llevara a cabo de una manera ms eficiente si las pginas que contienen estas tambin estn presentes en la memoria antes de que la conmutacin comience. Registro de Tarea, TR y Descriptor Global de TSS La CPU hace referencia al TSS por medio del registro TR, de 16 bits, el cual acta igual que un selector (hasta tiene cach oculta), pero con las siguientes caractersticas. El TR apunta de forma indirecta al DESCRIPTOR DEL TSS QUE SE ENCUENTRA EN LA GDT. El TSS es uno de los llamados segmentos de sistema. El descriptor del TSS no puede ubicarse en la LDT ni en la IDT, solo en la GDT. Si se intenta acceder al descriptor del TSS con un selector de segmento como el TI puesto a 1 (LDT), se crea una excepcin general de proteccin (#GP) Dentro del descriptor, el flag BUSY (B) en el campo TIPO indica si la tarea esta ocupada o no. El campo TIPO, perteneciente a los atributos, tiene el cdigo 010B1: el bit B indica que la tarea est libre (B=0) u ocupada (B=1).

IMPORTANTE: Cualquier programa o proceso cuyo DPL (nivel de privilegio, acordarse de los atributos) sea menor o igual que el DPL del descriptor del TSS puede realizar una conmutacin de tarea a travs de una instruccin CALL o JMP. En sistemas multitarea, el DPL de algunos descriptores TSS puede ponerse a 3 para permitir la condicin de tarea a nivel de privilegio de la aplicacin (o sea, cualquier aplicacin puede saltar al segmento TSS, acurdense que entre mayor el DPL, menor nivel de privilegio). Las instrucciones privilegiadas LTR (cargar el registro TR) y STR (almacenamiento de TR) cargan y leen la parte visible del registro de tarea y se usan generalmente al arrancar el procesador La instruccin LTR carga un selector de segmento en el registro de tarea que apunta a un descriptor TSS en la GDT, y luego se carga el cach del registro TR con la informacin del descriptor TSS (igual que como funcionan los dems registros de segmento, ven?) La instruccin STR guarda la parte visible del registro de tarea en un registro de propsito general o en memoria. Se puede ejecutar desde cualquier privilegio para identificar la tarea que esta corriendo actualmente, pero normalmente solo es usada por el SO.

Vous aimerez peut-être aussi