Sistemas operativos modernos

segmento de datos. Lx)s demás registros de segmento son menos importantes. Cada selector es un número de 16 bits, como se muestra en la figura 4-43. Bits 13 índice o = GDT/1 = LDT Nivel de privilegio (0-3) Figura 4*43. Un selector Pentium. Uno de los bits del selector indica si el segmento es local o global (es decir, si está en la LDT o en la GDT). Otros 13 bits especifican el número de entrada en la LDT o GDT, así que estas tablas no pueden contener descriptores de segmentos de más de 8 K. Los otros 2 bits fie­ nen que ver con la protección, y los describiremos más adelante. El descriptor Ono es válido, pero puede cargarse sin peligro en un registro de segmento para indicar que dicho registro no está disponible por el momento. Causa una interrupción de sistema si se usa. Cuando un selector se carga en un registro de segmento, se trae el descriptor correspon­ diente de la LDT o GDT y se coloca en registros de microprograma para poder acceder a él rá­ pidamente. Un descriptor consta de 8 bytes, e incluye la dirección base del segmento, su tamaño y otra información, como se muestra en la figura 4-44. 0: Segmento de 16 bits 1: Segmento de 32 bits 0: Li está en bytes 1: Li está en páginas 0: Ei segmento no está en la memoria 1: El segmento está en la memoria Nivel de privilegio (0-3) 0: Sistema 1: Aplicación Tipo de segmento y protección Base 24-31 G D 0 Límite 16-19 P DPL S Tipo Base 16-23 Base 0-15 Límite 0-15 32 Bits Dirección relativa Figura 4-44. Descriptor de segmento de código en Pentium. Los segmentos de da­ los son un poco diferentes. El formato del selector se escogió ingeniosamente para facilitar la localización del descrip­ tor. Primero se selecciona la LDT o la GDT, con base en el bit 2 del selector. Luego se copia el selector en un registro de borrador interno y los tres bits de orden bajo se ponen en 0. Por úlfimo, se añade la dirección de la LDT o de la GDT, para tener un apuntador directo al descriptor. Por ejem­ plo, el selector 72 se refiere a la entrada 9 de la GDT, que está en la dirección GDT -i- 72. Sigamos los pasos con los que un par (selector, desplazamiento) se convierte en una dirección física. Tan pronto como el microprograma sepa cuál registro de segmento se está usando, podrá

RkJQdWJsaXNoZXIy MjI4NDcx