Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Modo de Direccionamiento protegido

No description
by

jose reyes

on 13 November 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Modo de Direccionamiento protegido

Modo de Direccionamiento protegido
Direccionamiento Protegido
El modo protegido es un modo operacional de los CPUs compatibles x86 de la serie 80286 y posteriores. El modo protegido tiene un número de nuevas características diseñadas para mejorar la multitarea y la estabilidad del sistema, tales como la protección de memoria, y soporte de hardware para memoria virtual como también la conmutación de tarea. A veces es abreviado como p-mode y también llamado Protected Virtual Address Mode (Modo de Dirección Virtual Protegido).
El direccionamiento de la memoria en modo protegido permite acceso a los datos y programas ubicados arriba del primer Mbyte de memoria, esta parte de la memoria es denominada memoria extendida o XMS.

Cuando se direcciona a los datos y programas en la memoria ampliada, todavía se utiliza la dirección de desplazamiento para acceder a la información ubicada dentro del segmento.

En lugar de la dirección del segmento, el registro del segmento contiene un selector que selecciona un descriptor.

En la práctica, la mayor parte de los programas escritos para funcionar en el modo real, funcionaran sin ningún cambio en el modo protegido.

La diferencia entre los modos está en la forma en que el registro de segmento accede al segmento de memoria.
Selector
El selector ubicado en el registro del segmento selecciona a uno de los 8192 descriptores en la tabla de descriptores. El registro de segmento, en forma indirecta, todavía selecciona un segmento de memoria, pero no lo hace en forma directa como en el modo real.

Se utilizan dos tablas de descriptores con los registros de segmento: una contiene descriptores globales y, la otra, contiene descriptores locales. Los descriptores globales contiene segmentos que se aplican a todos los programas, mientras que los descriptores locales suelen ser exclusivos de una aplicación. Cada tabla de descriptores contiene 8192 descriptores con lo cual hay disponible en cualquier momento un total de 16384 descriptores. Debido a que un descriptor describe un segmento de memoria, ello permite describir hasta 16384 segmentos de memoria para cada aplicación.

Estructura de un selector
Descriptores
El descriptor describe la ubicación, longitud y derechos de acceso de un segmento de memoria. El formato de cada descriptor varia según el procesador, pero estas diferencias son mínimas lo que hace compatibles algunos formatos con otros.


Equipo#06
Integrantes:
José Ignacio Espericueta Reyes 11130483
Agustín Jaime Cepeda Hernández 11131036
Manuel Alejandro Aguilera Rivera 11130489
Ricardo Alfonso Puentes Herrera 11131051

El Selector consta de 16 bits que estan divididos en 3 partes:

RPL (bits 0-1): Este parte determina el nivel de privilegio solicitado.

TI (bit 2): Este bit nos indica que tabla de descriptores usaremos, TI=1 Tabla de descriptores Locales. TI=0 tabla de descriptores globales.

SELECTOR (bits 3-15): consta de 12 bits, que sirven para seleccionar un descriptor.
Estructura de un Descriptor
Como podemos observar un descriptor esta constituido por 8 bytes, cada byte representa algo. A la derecha tenemos un descriptor del procesador 80286 y la derecha uno del 80386/80487.

El descriptor 80286 sus primeros 2 bytes son reservados y no son utilizados al momento de direccionar un segmento. El resto de los bytes son idénticos al de 80386/80486, de hay que un descriptor 80286 es compatible en procesadores posteriores.

Las diferencias básicas entre estos descriptores son:

* la dirección de base en 80286 es de 24 bits mientras que en 80386/80486 es de 32 bits.
*El limite es de 16 bits y 20 bits respectivamente.
* EL 80286 puede direccionar cualquier localidad en 16MB de memoria.
*EL procesador 80386/80486 puede direccionar a cualquier localidad de los 4GB de memoria.
*EL descriptor del 80386/80486 incluye 4 bits para describir la naturaleza del segmento.
*El 80286 accede a segmentos de memoria que tengan longitud entre 1 byte y 64k bytes.
*El 80386/80486 accede a segmentos de memoria con longitud desde 1 byte hasta 1Mbyte o desde 4K bytes hasta 4Gbytes.

Estas diferencias no impiden a descriptores 80286 trabajar en procesadores posteriores.
Estructura de un Descriptor
EL descriptor del 80386/80486 consta de 8 bytes ó 64 bits los cuales se dividen en :
-BASE(32 bits): esta parte esta dividida a través del descriptores.

-LIMITE(20bits): al igual que la base se determina uniendo bits del descriptor.

-BITS G, D, AV: estos bits determinan características especiales del descriptor.

-Derechos de Acceso: determinan los derechos necesarios
para acceder a el segmento descrito.

BITS G, D, AV
Estos bits especiales de los descriptores 80386 y superiores, nos describen un poco acerca del segmento a describir:

-BIT G:
Este bit G o bit de Granulidad nos determina el tamaño del segmento a utilizar.
Si G=0, el segmento tendrá una longitud entre 1 byte y 1Mbyte. Si G=1, el limite se multiplica con 4KB, así la longitud estará entre 4KB y 4GB.
BITS G, D, AV
-El BIT D:
Este bit D nos indica la forma en que se accede a la memoria en modo protegido. Si D=0, entonces el 80386/80486 supone que las instrucciones son de 16 bits. Esto significa que las direcciones y registros usados serán de 16 bits, lo que lo hace compatible con el 80286.
Si D=1, esto supone que las instrucciones serán de 32 bits, así como las direcciones y los registros. Algunos programas requiere del modo de 16 bits para funcionar.

-El BIT AV:
Ese bit se usa para determinar si el segmento esta disponible o no.
Derecho de Acceso
El byte de derecho de acceso controla el acceso al segmento de memoria.Este byte describe cómo funciona el segmento en el sistema. Se puede ver lo completo que es el control del segmento.
Bit P: Este bit indica si la base y el limite se utilizan o no.

Bits DLP: Indica el nivel de privilegio del descriptor.

Bit S: determina si el descriptor es de sistema o de un segmento de código de datos.

Bit E: de este bit depende el resto de los bits. Determina si el segmento es de datos o de código. Si E=0, los bits siguientes son: ED, W. Si E=1, los bits serán: C, R.

Bit A: determina si se accedió al segmento. Este es puesto a 1 por el procesador al momento de acceder.

Bit ED: Determina la forma en que se desarrola el segmento. ED=0, de forma ascendente, ED=1, de forma descendente.

Bit W: Determina si se pueden escribir Datos. W=0, no se permite, W=1, se permite.

Bit C: Indica si se tomara en cuenta el nivel de privilegio del descriptor. C=0, no se tomara en cuenta, C=1, se toma en cuenta.

Bit R: Indica si es posible la lectura del segmento. R=0, no es posible, R=1, la lectura es posible.
Registros invisibles
Las tablas de descriptores globales y locales se encuentran en el sistema de memoria. Para poder acceder a la dirección de estas tablas y especificarla, el 80286, 80386 / 80486 contiene registros invisibles para el programa. A los registros invisibles para el programa no se les direcciona en forma directa por el software del sistema. Estos registros controlan al microprocesador cuando funciona en el modo protegido.
GRACIAS POR SU ATENCIÓN.

EJEMPLO
Niveles de Privilegio
En modo protegido, hay cuatro niveles de privilegio o anillos, numerados de 0 a 3.
-El código del núcleo (kernel) del sistema operativo, que necesita usar instrucciones privilegiadas se ejecuta en el anillo 0.

-Las aplicaciones del usuario se ejecutan normalmente en el anillo 3.

-El sistema operativo puede asignar los anillos 1 y 2 a servicios de sistema, como protocolos de red o la gerencia de ventanas, que las aplicaciones pueden llamar.

Cada nivel puede acceder a los niveles inferiores a el, como por ejemplo un servicio de sistema nivel 1, puede acceder a los niveles 2 y 3, pero los niveles 2 y 3 no pueden acceder a 1.
Full transcript