Anda di halaman 1dari 35

MECANISMOS DE PROTECCIN

10.1.- Aspectos generales ............................................................................. ............... 1 10.1.1.- Necesidad de la proteccin .................................................................................... 1 10.1.2.- Activacin y desactivacin de la proteccin de segmentos y de pginas ........ 3 10.1.3.- Campos y flags utilizados para la proteccin entre segmentos y entre pginas .......................................................................................... ............................ 10.2.- Niveles de proteccin ............................................................................ ........... 6 10.2.1.- !roteccin entre tareas ........................................................................................... " 10.2.2.- !roteccin de los segmentos ................................................................................. " 10.2.2.1.- !roteccin del l#mite ....................................................................................... " 10.2.2.2.- !roteccin del tipo .......................................................................................... $ 10.2.2.3.- !roteccin seg%n el nivel de privilegio ...................................................... 10 10.2.2. .- Acceso a segmentos con el &it a'usta&le a cero ........................................ 13

Captulo 10 - 1

Captulo 10: Mecanismos de proteccin

10.2.2.(.- Acceso a segmentos con el &it a'usta&le a uno ........................................ 1 10.2.3.- !roteccin de las pginas ..................................................................................... 1 10.2. .- !roteccin de las instrucciones ........................................................................... 1" 10.2. .1.- )nstrucciones protegidas .............................................................................. 1"... 10.2. .2.- )nstrucciones privilegiadas ........................................................................... 1$

Captulo 10 - 2

Captulo 10: Mecanismos de proteccin

10.1. ASPECTOS GENERALES 10.1.1 Necesidad de proteccin


Cuando se tra&a'a en *odo +eal, el !entium atiende a una sola tarea y el programa de instrucciones, confeccionado por el dise-ador del soft.are, se encarga de la pro&lemtica originada por el desarrollo de la aplicacin. /n cam&io, en *odo !rotegido, el procesador atiende a varias tareas simultneamente. /l !entium dispone de un 0ard.are au1iliar, integrado en el c0ip, 2ue se encarga de compro&ar el cumplimiento de unas reglas 2ue conforman el llamado mecanismo de proteccin y as# permitir la e'ecucin de todas las tareas sin interferencias. /l o&'etivo fundamental del mecanismo de proteccin es caracterizar y defender las funciones vitales del sistema de e1plotacin ante las posi&les intrusiones procedentes de las aplicaciones, pero sin e1cluir una comunicacin controlada. /n la construccin de un sistema lgico e1isten programas 2ue son nota&lemente seguros por estar muy e1perimentados y pro&ados3 tienen un nivel de seguridad muy alto es decir, un elevado nivel de privilegio 4!56. 7am&i8n e1isten programas, como los de aplicacin del usuario, 2ue son poco fia&les al estar en la fase de evaluacin y depuracin3 consecuentemente su nivel de privilegio es &a'o. 9e de&e evitar 2ue programas poco seguros accedan a los datos o al cdigo situado en niveles de privilegio superiores, por2ue podr#an ocasionar la corrupcin de estos %ltimos re&a'ando su nivel de privilegio al del programa 2ue les accedi. /l mecanismo de proteccin 0ard.are persigue la integridad del sistema, y las funciones vitales, so&re todo las intrusiones no permitidas y las comunicaciones entre las tareas. Cuando el mecanismo de proteccin detecta una violacin de las reglas escritas en el silicio, genera una e1cepcin, deteniendo el procesamiento normal de la C!:. Como podr#a suceder al e'ecutar una instruccin de divisin en la 2ue el valor del divisor sea cero. /l n%cleo del 9.;. posee el grado de seguridad m1imo, tam&i8n son muy seguros los mdulos de los servicios del 9.;. !or el contrario, son poco fia&les los programas de aplicacin 2ue tienen un nota&le riesgo de generar errores y fallos, adems e1isten programas 2ue necesitan de un nivel de seguridad intermedio. Como se muestra en la figura 10.1, en el caso de la segmentacin, se distinguen cuatro niveles de privilegio, numerados del 0 al 3 4el 0 el ms privilegiado o de nivel 'err2uico superior6. <ay 2ue tener en cuenta 2ue el nivel num8rico es inverso al 'err2uico. !or e'emplo, un segmento con !5 =2 es 'err2uicamente mayor 2ue otro con !5 = 3, pero num8ricamente es menor. Al comparar niveles de privilegio en la segmentacin, se de&e precisar si se 0ace referencia a su valor num8rico o al 'err2uico. Captulo 10 - 3

Captulo 10: Mecanismos de proteccin

/n el caso de la paginacin, solamente se distinguen dos niveles de privilegio> el del supervisor, 2ue es el 2ue proporciona la m1ima seguridad, y el del usuario, en el 2ue el grado de seguridad es m#nimo.

Captulo 10 - 4

Captulo 10: Mecanismos de proteccin /n la siguiente ta&la se refle'a la relacin entre los niveles de proteccin en la segmentacin y en la paginacin> SEGMENTACI N !" # 0 9egmentos y programas del n%cleo del 9.;. > 9eguridad alta !" # 1 !rogramas 2ue necesitan seguridad media !" # 2 !rogramas 2ue necsitan seguriadad media !" # % !rogramas de usuario > 9eguridad &a'a. !AGINACI N

S$pervisor Nivel m1imo

&s$ario Nivel m#nimo

?igura 10.1 -- Niveles de proteccin en la segmentacin y en la paginacin.

5a :nidad de 9egmentacin eval%a el cumplimiento de las reglas de acceso y mane'o de los segmentos en primer lugar, y si est 0a&ilitada la paginacin, son e1aminadas las reglas 2ue afectan a las pginas en la :nidad de !aginacin seguidamente. /n la figura 10.2, se incluye un e'emplo de un sistema 2ue utiliza los cuatro niveles de privilegio. *ane'a dos tareas, un espacio glo&al compartido, e1istiendo segmentos de datos y de cdigo en todos los niveles de privilegio. <ay 2ue tener en cuenta 2ue, siempre 2ue e1ista un segmento de cdigo de&e 0a&er uno de pila.

Captulo 10 - 5

Captulo 10: Mecanismos de proteccin

?igura 10.2 @ /s2uema de distri&ucin de los segmentos 2ue conforman un sistema lgico, 2ue utiliza los cuatro niveles de privilegio.

Captulo 10 - 6

Captulo 10: Mecanismos de proteccin /n la figura 10.3, puede o&servarse 2ue todos los segmentos de las tareas tienen asignado un nivel de privilegio. /l campo A!5 del descriptor 2ue referencia al segmento, es el 2ue indica dic0o nivel de privilegio.

?igura 10.3 -- Cada segmento de tarea tiene asignado un nivel de privilegio, indicado en el campo A!5 del descriptor 2ue referencia.

/l mecanismo ideal de proteccin es el proporcionado con'untamente por la segmentacin y la paginacin> segmentacin para la proteccin y paginacin para mane'ar la memoria. Como resultado de esta com&inacin ciertas pginas pueden ser escritas 4las pginas son una parte del segmento6 y otras le#das. /l mecanismo de proteccin del !entium cu&re los siguientes niveles> 1. !roteccin de tareas 2. !roteccin de los segmentos 3. !roteccin de las pginas . !roteccin de las instrucciones

10.1.2. Activacin y desactivacin de la proteccin de se !entos y p" inas


!ara 2ue el procesador cam&ie a *odo !rotegido y 8ste active el mecanismo de proteccin de segmentos, se de&e activar el flag /! 4ena&le protection6 del registro de control C+0. No e1iste ning%n &it de control para desactivar este mecanismo de proteccin estando en *odo !rotegido, pero asignando el nivel de proteccin 0 4mayor privilegio6 a todos los segmentos y descriptores de segmento se pueden desactivar las reglas de proteccin de segmentos &asadas en los niveles de privilegio. As# se des0a&ilitan las &arreras de proteccin del nivel de privilegio entre los segmentos, pero todav#a siguen

Captulo 10 - 7

Captulo 10: Mecanismos de proteccin activas las reglas de proteccin del l#mite y del acceso permitido a lecturaBescritura.

Captulo 10 - 8

Captulo 10: Mecanismos de proteccin Al activar la paginacin, poniendo el flag !C del registro C+0 a 1, se activa automticamente la proteccin en la paginacin. 9i se 2uiere desactivar el mecanismo de proteccin en la paginacin, se de&e poner el flag D! del registro C+0 a 0. !osteriormente, se ponen a 1 los flags +BD 4readB.rite6 y :B9 4usuarioBsupervisor6 en el Airectorio de !ginas y en la 7a&la de !ginas. As# las pginas pasan a ser escri&i&les y pertenecientes al nivel 9upervisor, 2uedando desactivado el mecanismo de proteccin en la paginacin.

10.1.#. Ca!pos y $la s %sados para la proteccin entre se !entos y p" inas
/l mecanismo de proteccin de&e tener en cuenta ciertos campos y se-alizadores para controlar el acceso a las pginas y segmentos. A continuacin, se descri&en los campos necesarios para realizar dic0o control. 1. 'lag tipo de seg(ento )S* > &it 12 en la segunda do&le pala&ra de un descriptor de segmento. Aetermina si el descriptor de segmento descri&e un segmento del sistema o un segmento normal de cdigo o datos. 2. Ca(po TI!+> &its del E al 11 en la segunda do&le pala&ra de un descriptor de segmento. Aetermina si el segmento es de cdigo, de datos o del sistema. %. Ca(po del l,(ite> &its del 0 al 1( de la primera do&le pala&ra y &its del 1" al 1F de la segunda do&le pala&ra del descriptor de segmento. Aetermina el tama-o del segmento, estando relacionado con el flag C y el flag / 4para segmentos de datos6. -. 'lag G> &it 32 en la segunda do&le pala&ra del descriptor de segmento. Aefine el tama-o del segmento, estando relacionado con el l#mite del segmento y el flag / 4para segmentos de datos6. .. 'lag E> &it 10 en la segunda do&le pala&ra del descriptor de segmento. Aefine el tama-o del segmento, estando relacionado con el l#mite del segmento y el flag C. 9i est a 1 ser un segmento de cdigo 4e'ecuta&le o de slo lectura6, sin em&argo si est a 0 se trata de un segmento de datos. Gunto con el &it C se puede sa&er de 2ue tama-o se trata si de *H IH y con el campo l#mite se o&serva cual es el l#mite de dic0o segmento. 6. Ca(po descriptor del nivel de privilegio )/!"* > &its 13 y 1 en la segunda do&le pala&ra del descriptor de segmento. Aetermina el nivel de privilegio del segmento. 0. Ca(po del nivel de privilegio del peticionario )1!"* > &its 0 y 1 de cual2uier selector de segmento. 2. Ca(po del nivel de privilegio de la tarea en c$rso )C!"* > &its 0 y 1 del registro de segmento C9. 9e refiere al procedimiento o programa 2ue se est e'ecutando en ese momento.

Captulo 10 - 9

Captulo 10: Mecanismos de proteccin 3. 4it de Ta(a5o )SI6*> Hit $ de una entrada directa del Airectorio de !ginas o de la 7a&la de !ginas. )ndica si se trata de pginas de IH si es 0 sin em&argo si se tarta de pginas de *H si es 1. No se de&e olvidar 2ue el !entium acepta pginas de *H. 10. 4it S$cio )/*7 Hit " de una entrada directa del Airectorio de !ginas o de la 7a&la de !ginas. 9i A=1 se 0a escrito a la pgina. 9irve para avisar al 9istema ;perativo 2ue antes de mac0acar la pgina 0ay 2ue actualizarla en la *emoria Jirtual.

Captulo 10 - 10

Captulo 10: Mecanismos de proteccin

11. 4it A )Accedido*7 Hit ( de una entrada directa del Airectorio de !ginas o de la 7a&la de !ginas. /l 9istema ;perativo pone un contador para cada pgina. Cada vez 2ue se accede a esa pgina el &it A se pone automticamente a 1. /l 9istema ;perativo cada cierto tiempo mira los &its A incrementando los respectivos contadores. Al final cuando se llena la memoria con pginas el 9.; sustituye el 2ue menos tiene en su contador. 12. 4it !C/7 Hit de una entrada directa del Airectorio de !ginas o de la 7a&la de !ginas. )ndica si est a 1 2ue se trata e una pgina cac0ea&le 4se puede meter en la cac086. 1%. 4it !8T7 Hit 3 de una entrada directa del Airectorio de !ginas o de la 7a&la de !ginas. )ndica si est a 1 2ue la pgina es de escritura o&ligada y cac0ea&le. 1-. &s$ario9S$pervisor )&9S*> &it 2 de una entrada directa del Airectorio de !ginas o de la 7a&la de !ginas. )ndica el tipo de pgina> :suario o 9upervisor. 1.. "ect$ra9escrit$ra )198*> &it 1 de una entrada del Airectorio de !ginas o de la 7a&la de !ginas. )ndica el tipo de acceso permitido a esta pgina> slo lectura o lectura y escritura. 16. 4it de !resencia )!*> Hit 0 de una entrada directa del Airectorio de !ginas o de la 7a&la de !ginas. )ndica si est a 1 2ue la pgina est presente en la memoria principal y si est a 0 2ue no lo est. /n las figuras 10. y 10.( se muestran los campos de un Aescriptor de 9egmento y de una entrada de la 7a&la de !ginas, respectivamente.
31 23 22 20 13 16 1( E 5)*. $ 0

4ASE 31 @ 2

AT1I4 . 4ASE 0 - 1(

1F @ 1"

AT1I4&T+ 4ASE S 1" - 23 E "IMITE 0 @ 1(

/!"

TI!+

/94

?igura 10. /structura del descriptor de segmento

31

12

11

HA9/

A/?) 0 9 A A ! ! : + N) ) C D B B ! Captulo 10 - 11

Captulo 10: Mecanismos de proteccin 420 &its6 H5/ 9 K A 7 9 D

?igura 10.( ?ormato de las entradas a las 7a&las de !ginas

Captulo 10 - 12

Captulo 10: Mecanismos de proteccin

10.2. N&'ELES (E PROTECC&)N 10.2.1. Proteccin entre tareas


5os descriptores de segmento de la CA7, en todo momento, 0acen referencia a o&'etos del espacio glo&al 4comunes a todas las tareas6. L los descriptores de segmento de la 5A7, 0acen referencia a los segmentos de la tarea en curso. Nunca es posi&le 2ue, e'ecutando una tarea se realice un acceso pro0i&ido a un segmento de otra tarea, ya 2ue a la C!: slo se le permite el acceso a los descriptores de la 5A7 activa, 8sta de forma indirecta, es apuntada por el registro 5A7+. 5o 2ue s# es posi&le, es acceder desde una tarea a segmentos referenciados por los descriptores de la CA7. !ara e'ecutar una tarea nueva, se cam&ia el contenido del registro de ta&la 5A7+ y as# se referencia a la 5A7 de la tarea nueva y se activan los descriptores de los segmentos de la nueva tarea.

10.2.2. Proteccin de se !entos


Cuando se carga el contenido de un descriptor en el registro cac08 ultrarrpido asociado a un registro de segmento, se almacena la &ase 432 &its6, el l#mite 420 &its6 y los atri&utos 412 &its6. Cada vez 2ue se accede a memoria, la :nidad de 9egmentacin es la encargada de compro&ar las normas de proteccin y en caso de fallo, se genera una e1cepcin.

10.2.2.1. Proteccin del l*!ite


!ara llevar a ca&o la compro&acin del l#mite de los segmentos se de&e tener en cuenta el flag de granularidad 4C6. !ara segmentos de datos, tam&i8n depende del flag /A 4direccin de e1pansin descendente6 y del H 4tama-o por defecto del puntero a pila6. 9i C = 0 4granularidad de &yte6, el l#mite efectivo, medido en &ytes, viene marcado por los 20 &its del l#mite indicado en el descriptor de segmentos. /n este caso el l#mite est situado en el rango de 0 a 1*H 4????? <6. /n cam&io, si C = 1 4granularidad de pginas de IH6, el procesador escala el valor del campo l#mite con un factor de 212, el rango l#mite efectivo se encuentra comprendido entre IH 4??? <6 y CH 4???????? <6. /n el caso de C = 1, los 12 &its menos significativos del desplazamiento no se comprue&an con respecto al l#mite. !ara todos los segmentos 4menos para los segmentos de datos de e1pansin decreciente6, la %ltima direccin a la 2ue se puede acceder 4l#mite efectivo6, es el tama-o del segmento 4en &ytes6 menos 1. Cada vez Captulo 10 - 13

Captulo 10: Mecanismos de proteccin 2ue se intente acceder a las siguientes direcciones en un segmento, el procesador genera una e1cepcin de proteccin general> 1. :n &yte ms arri&a del l#mite efectivo 2. :na pala&ra ms arri&a del l#mite efectivo 4-16 3. :na do&le pala&ra ms arri&a del l#mite efectivo 4-36

Captulo 10 - 14

Captulo 10: Mecanismos de proteccin . :na cudruple pala&ra ms arri&a del l#mite efectivo 4-$6 !ara segmentos de !ila 4segmentos de datos de e1pansin decreciente6, el l#mite depende del valor de H. 9i H=0, el rango va de 4l#mite efectivo M 16 a IH. 9i H=1, el rango vlido va de 4l#mite efectivo M 16 a CH. Cuando el l#mite es 0, un segmento de e1pansin decreciente tiene el m1imo tama-o. /sta compro&acin genera errores, 2ue sino se detectan se puede llegar a so&rescri&ir el cdigo o datos de otro segmento. /l procesador tam&i8n de&e compro&ar los l#mites de las ta&las de descriptores. !ara evitar 2ue los programas seleccionen un descriptor de segmento de fuera de sus ta&las de descriptores, se usan los valores de los registros CA7+ e )A7+ 41" &its6. !ara evitar 2ue se acceda fuera de las actuales 5A7 y 799, se utilizan los valores del l#mite de segmento 432 &its6 de los registros 5A7+ y los de tareas 7+.

10.2.2.2. Proteccin del tipo


!ara evitar el uso de un segmento o puerta de forma incorrecta se tiene en cuenta el tipo de los descriptores de segmento 2ue viene determinado por el campo tipo y el flag 9, tal y como puede o&servarse en la figura 10.". /=1 9=1 /=0 /A D C + A

?igura 10.". ?ormato del campo 7)!;

9i 9 = 1, se trata de un segmento normal de cdigo, datos o pila creado por el programa. 9i 9 = 0, es un segmento especial creado por el programador de sistemas. 9i el &it / = 1, el segmento es e'ecuta&le o de cdigo. /n este caso los &its restantes 2ue componen el campo tipo son C, 2ue indica si es a'usta&le 416 o no 406, y el &it +, 2ue indica si el segmento es le#&le 416 o no 406. /n caso de 2ue / = 0, se trata de un segmento de datos no e'ecuta&le, siendo los &its /A y D los 2ue forman el campo tipo. /A indica si el segmento tiene o no e1pansin de direcciones decreciente. 9i /A = 1 se trata de un segmento de pila, en caso contrario es un segmento de datos. /l flan D indica si el segmento es escri&i&le. /n cada acceso, se comprue&an todas las caracter#sticas del segmento relativas al campo 7ipo. 5as diferentes e1cepciones generadas por el mecanismo de proteccin, son las siguientes>

Captulo 10 - 15

Captulo 10: Mecanismos de proteccin 1. 9i se intenta escri&ir en un segmento de cdigo 4/=16 2. 9i se intenta leer un segmento de cdigo con +=0 4pro0i&icin de lectura6 3. 9i se intenta cargar C9 4registro de segmento de cdigo6 con el valor de un selector 2ue corresponda a un descriptor con /=0. 9e estar#a intentando e'ecutar un segmento de datos . 9i se intenta escri&ir un segmento de datos con D=0 4pro0i&icin de escritura6 (. 9i se intenta cargar 99 4registro del segmento de pila6 con el valor de un selector, cuyo descriptor asociado est8 definido como no escri&i&le 4D=06. 5a informacin es e1aminada por el procesador en varias ocasiones seg%n se opere con segmentos selectores o segmentos descriptores. A continuacin se muestran algunos e'emplos de operaciones t#picas en las 2ue se comprue&a el campo 7)!;> 1. Cuando un segmento selector es cargado en un registro de segmento> ciertos registros de segmento slo pueden contener ciertos tipos de descriptores, por e'emplo> /l registro C9 solo se puede cargar con el selector de un segmento de cdigo. 9electores de segmento de segmentos de cdigo 2ue no son le#&les o de segmentos del sistema no pueden ser cargados en registros de segmentos de datos 4A9, /9, ?9, C96. 9lo selectores de segmentos de datos escri&i&les pueden ser cargados en registros de pila 4996.

2. Cuando un selector de segmento es cargado en 5A7+ o un registro de tareas> /n 5A7+ slo se puede cargar el selector de una 5A7. /n el registro de tareas 7+ slo se puede cargar un selector de segmento de un 799.

3. Cuando instrucciones acceden a segmentos cuyos descriptores ya 0an sido cargados en registros de segmento. Ciertos segmentos pueden ser utilizados por instrucciones slo en ciertas predefinidas formas, por e'emplo> Ninguna instruccin de&er#a escri&ir en un segmento e'ecuta&le Ninguna instruccin de&er#a escri&ir en un segmento de datos si 8ste no es escri&i&le. Ninguna instruccin de&er#a leer un segmento e'ecuta&le a menos 2ue el flag de permiso de lectura est8 a 1.

. Cuando un operando de una instruccin contiene un selector de segmento> ciertas instrucciones pueden acceder a segmentos o puertas de tan solo un tipo en particular. !or e'emplo>

Captulo 10 - 16

Captulo 10: Mecanismos de proteccin :na instruccin G*! o CA55 slo puede acceder a un descriptor de segmento de un segmento de cdigo conforming , no conforming, puerta de llamada, puerta de tareas o 799. 5a instruccin 55A7 de&e referenciar a un descriptor de segmento de una 5A7 5a instruccin 57+ de&e referenciar a un descriptor de segmento de una 799 5a instruccin 5A+ de&e referenciar a un descriptor de segmento o puerta de una 5A7, 799, puerta de llamada, C9 o segmento de datos. 5a instruccin 597 de&e referenciar a un descriptor de segmento de una 5A7, 799, segmento de cdigo o segmento de datos. 5as entradas )A7 de&en ser interrupciones, e1cepciones o puertas de llamada.

Captulo 10 - 17

Captulo 10: Mecanismos de proteccin (. Aurante una determinada operacin interna. !or e'emplo> /n una llamada 4CA556 o salto 4G*!6 le'ano, el procesador determina el tipo de transferencia de control 2ue de&e llevarse a ca&o 4call o 'ump a otro segmento de cdigo, a trav8s de una puerta o un cam&io de tareas6 compro&ando el campo 7)!; en el descriptor de segmento 4o puerta6 apuntado por el selector de segmento 4o puerta6 dado como operando en la CA55 o G*!. 9i el descriptor es para un C9 o puerta de llamada, la llamada o salto a otro C9 est indicado. 9i el descriptor es para una 799 o puerta de tarea, es indicado un cam&io de tareas. /n una llamada o salto a trav8s de una puerta de llamada , el procesador comprue&a automticamente 2ue el descriptor de segmento al 2ue apunta por medio de la puerta es un segmento de cdigo. /n una llamada o salto a una nueva tarea a trav8s de la puerta de tareas, el procesador comprue&a automticamente 2ue el descriptor de segmento apuntado por la puerta de rateas es una 799. /n una llamada o salto a una nueva tarea mediante una referencia directa a una 799, el procesador comprue&a automticamente 2ue el descriptor de segmento al 2ue se apunta por medio de la instruccin CA55 o G:*! es una 799. Jolviendo de una tarea anidada 4iniciada por una instruccin )+/76,el procesador comprue&a 2ue el campo de unin de la tarea precedente en la actual 799 apunta a una 799.

!ara los segmentos del sistema en los 2ue el &it 9 = 0, los otros cuatro &its del campo tipo definen la clase de segmento de 2ue se trata, de acuerdo con la siguiente relacin de cdigos>

C /IG+ 0 1 2 3 ( " $ E F A H C A / ?

TI!+ No definido 799 disponi&le del E02E" 5A7 799 ocupado del E02E" !uerta de llamada del E02E" !uerta de tarea !uerta de interrupcin del E02E" !uerta de e1cepcin del E02E" No definido 799 disponi&le del 3E" No definido 799 ocupado del 3E" !uerta de llamada del 3E" No definido !uerta de interrupcin del 3E" !uerta de e1cepcin del 3E"

?igura 10.$. 5os cdigos del campo tipo cuando 9 es 1

Captulo 10 - 18

Captulo 10: Mecanismos de proteccin

Compro&acin del selector del segmento nulo> 9i se intenta cargar un selector de segmento nulo en C9 o 99 se provoca una e1cepcin.

Captulo 10 - 19

Captulo 10: Mecanismos de proteccin /ste selector slo puede cargarse en los registros A9, /9, ?9 o C9, pero su acceso, una vez cargados con valor cero, genera una e1cepcin. Nste es un m8todo para detectar accesos a registros de segmentos 2ue no se usan y evitar accesos no deseados a segmentos de informacin.

10.2.2.#. Proteccin se +n el nivel de privile io


/l campo A!5 de los atri&utos de un descriptor, consta de dos &its 2ue e1presan el nivel de privilegio del descriptor, o sea, del segmento al 2ue selecciona. !ara identificar el nivel de privilegio de un segmento, 0ay 2ue estudiar el campo A!5 de los atri&utos de un descriptor. 5os niveles de privilegio son usados por el procesador para evitar accesos inde&idos a los mismos, como puede ser 2ue un programa de un nivel &a'o de seguridad acceda a los segmentos de niveles superiores. /n caso de 2ue esto ocurra, el procesador genera una e1cepcin de proteccin general 4C!6. 5a mezcla de segmentos de mayor nivel de seguridad con otros segmentos de menor nivel de seguridad por parte del usuario no se puede permitir ya 2ue, si sucediera, se degradar#a al nivel de privilegio del ms seguro. 9iempre 2ue se 2uiera acceder a un segmento de&e ser a trav8s de una instruccin e'ecutada en el segmento de cdigo en curso, su nivel de privilegio se denomina Nivel de !rivilegio en Curso 4C!56. *ediante la e'ecucin de una instruccin, es decir, desde el segmento de cdigo en curso de procesamiento se realiza el acceso a cual2uier segmento. /s imposi&le acceder a un segmento desde uno 2ue no sea de cdigo. !ara realizar la seleccin del segmento en curso se 0ace mediante el selector cargado en C9> sus 13 &its de ms peso act%an como #ndice de la ta&la CA7 o 5A7, pudiendo as# encontrar el descriptor del segmento de cdigo cuyo nivel de privilegio es definido por el campo A!5. /l nivel de privilegio del segmento de cdigo en curso reci&e el nom&re de Nivel de !rivilegio en Curso, C!5 y a partir del valor del C!5 se determinan las reglas de acceso a otros segmentos, ya 2ue son las instrucciones 2ue contiene las 2ue determinan los mismos. !ara localizar un operando, una instruccin puede necesitar acceder a un segmento de datos, por e'emplo, *;J /AO, (???<. /sta instruccin accede al dato localizado en la posicin (???< del segmento de datos A9 4A9>(???<6 para cargarlo en /AO. 7am&i8n se puede acceder a un segmento de pila con una instruccin como !:9< /AO. /sta instruccin lo 2ue 0ace es introducir un nuevo dato en la pila. 5as instrucciones del tipo G*! y CA55. 5a G*!> realiza un salto incondicional a otro segmento de cdigo, por otro lado, la CA55> llama a una rutina 2ue al terminar 4+/76 vuelve a la posicin en la 2ue se encontra&a al 0acer la CA55. Nsta %ltima guarda en una pila parmetros del segmento de Captulo 10 - 20

Captulo 10: Mecanismos de proteccin cdigo en curso, por lo 2ue siempre de&e 0a&er un segmento de pila en el mismo !5 2ue 0aya un segmento de cdigo. /n el caso de !entium, siempre 2ue 0aya un acceso a un segmento, se comprue&a la relacin entre el C!5 y el A!5 del segmento 2ue ser accedido. !ara controlar el acceso a los distintos tipos de segmentos e1isten unas reglas &sicas 2ue se descri&en a continuacin>

Captulo 10 - 21

Captulo 10: Mecanismos de proteccin 1: 1EG"A7 ACCES+ A SEGMENT+S /E C /IG+ 9lo se puede acceder a segmentos de cdigo 2ue tengan el mismo !5 2ue el segmento de curso peticionario. 9i se 2uisiera acceder a otro de mayor !5, no est permitido por2ue 8ste se Pre&a'ar#aQ a nuestro nivel, 2ue es menos seguro. 9i por el contrario, se desease acceder a uno de menor !5, el segmento peticionario ser#a el 2ue se Pre&a'araQ a dic0o nivel inferior. 5as instrucciones 2ue permiten estas llamadas o saltos directos son G*!, CA55 y +/7. /l C!5 del segmento de cdigo peticionario de&e ser igual al A!5 del segmento a acceder directamente con la instruccin G*!,CA55 o +/7. /n la figura 10.E. se muestran los accesos permitidos entre segmentos de cdigo y accesos no permitidos entre estos. !ara 2ue se puedan realizar dic0os accesos los segmentos de cdigo tienen 2ue tener igual nivel de

privilegio.
?igura 10.E. /l acceso entre segmentos de cdigo

/l selector de segmento del destinatario de&e ser cargado en el C9 para realizar la transferencia del control del programa de un segmento de cdigo a otro. 5as compro&aciones en cuanto al l#mite, tipo y privilegio son e1aminadas por parte del procesador como parte de este proceso de carga. 9i son satisfactorias, lo 2ue implica 2ue el registro C9 es cargado, el control del programa es transferido al nuevo segmento de cdigo y empiezan a e'ecutarse las instrucciones apuntadas por el registro /)!. 5as transferencia del control del programa las llevan a ca&o las instrucciones G*!, CA55, +/7, )N7n, )+/7, 9L9/N7/+ y 9L9/O)7, al igual 2ue lo 0acen los mecanismos de e1cepcin e interrupcin. 5as dos %ltimas instrucciones son especiales y se usan para e'ecutar procedimientos para realizar llamadas rpidas o para regresar del 9.;.

Captulo 10 - 22

Captulo 10: Mecanismos de proteccin /l !entium dispone de un recurso llamado !uerta de 5lamada creada por el programador de sistema ya 2ue es normal 2ue desde un segmento de cdigo de &a'o !5 se 2uiera acceder a rutinas del 9.;. 4!5 superior6.

Captulo 10 - 23

Captulo 10: Mecanismos de proteccin 2: 1EG"A /E ACCES+ A SEGMENT+S /E /AT+S 9lo est permitido el acceso desde segmentos de cdigo con un !5 a otros de datos de igual o menor !5. !ara ello se usan instrucciones tipo *;J o similares. :n segmento de datos se puede leer y escri&ir. !ara evitar corromper la seguridad de los segmentos de datos se usa esta regla, ya 2ue o&liga a ser igual o mayor el nivel de privilegio del segmento de cdigo 2ue les intenta acceder. 5a escritura se realiza con la seguridad correspondiente al segmento de cdigo. 9e producir#a una degradacin del nivel de privilegio del segmento de datos si se accediese desde un segmento de cdigo con menor !5 4?igura 10.F6.

?igura 10.F. /l acceso entre segmentos de datos

A trav8s de una puerta de llamada se puede aumentar el !5 de un segmento de cdigo, pudiendo as#, pasar a la pila un parmetro 2ue ser#a usado como selector al ser cargado en un registro de segmento. /sto ocurre si se comparan los valores, solamente, de C!5 y A!53 para solucionarlo se compara el A!5 del segmento al 2ue se 2uiere acceder con el /!5 4Nivel de !rivilegio /fectivo6. %: 1EG"A /E ACCES+ A SEGMENT+S /E !I"A 9lo se permite acceder a segmentos de pila con el mismo !5 2ue el del segmento de cdigo 2ue los solicita. /l C!5, el +!5 del selector de segmento y el A!5 del selector del segmento de pila de&en ser iguales. /n caso de restriccin se genera una e1cepcin de proteccin general 4C!6.

Captulo 10 - 24

Captulo 10: Mecanismos de proteccin /l procesador de&e tener en cuenta los siguientes tipos de niveles de privilegio para llevar a ca&o todas las compro&aciones>

Captulo 10 - 25

Captulo 10: Mecanismos de proteccin 1. Nivel de privilegio actual 4C!56> !5 del programa o tarea en curso, es el mismo 2ue del segmento de cdigo del 2ue se realizan actualmente las instrucciones.

Al realizar una transferencia de control internivel, el procesador cam&ia el C!5. /l C!5 puede encontrarse en los dos &its de menos peso de los registros C9 y 99. 2. Nivel de privilegio del descriptor 4A!56> !5 de un segmento o puerta. 9e almacena en el campo A!5 del descriptor del segmento de la puerta.

Aependiendo del tipo de puerta o segmento al 2ue se 2uiere acceder, se puede interpretar el A!5 de diferentes maneras> 9egmento de datos> el A!5 indica el menor nivel de privilegio 2ue un programa o tarea puede tener para 2ue pueda acceder al segmento. 9egmento de cdigo, 2ue no puede ser accedido a trav8s de una puerta de llamada> indica el !5 2ue se de&e tener para poder acceder al segmento. 9egmento de cdigo accedido a trav8s de una puerta de llamada> indica el mayor !5 2ue se de&e tener para acceder al segmento. !uerta de llamada> el A!5 es el menor !5 2ue se le permite tener a u segmento para acceder a la puerta. /sta norma es igual 2ue la de los segmentos de datos. 799> indica el menor !5 2ue el programa o tarea, en estado de e'ecucin, puede tener para realizar el acceso. /sta norma es igual 2ue la de los segmentos de datos.

3.

Nivel de privilegio del peticionario 4+!56> es el !5 ms importante y es almacenado en los &its 0 y 1 del selector de segmento. /l C!5 y el +!5 son compro&ados por el procesador para ver si se permite el acceso , por el contrario, es un acceso no permitido. !ara asegurarse 2ue las instrucciones privilegiadas no son accedidas por segmentos de un programador de aplicaciones a menos 2ue el programa en s# tenga privilegios de acceso a este segmento se usa el +!5 .

10.2.2.,. Acceso a se !entos con el -it a.%sta-les /con$or!in 0 a cero


!ara accesos a segmentos de cdigo con C = 0, el C!5 del segmento 2ue 2uiere 0acer el acceso, igual del A!5 del segmento de cdigo destino, sino se dar#a e1cepcin de proteccin general 4C!6. Captulo 10 - 26

Captulo 10: Mecanismos de proteccin

Al cargar un selector de segmento de un segmento de cdigo en un registro C9, el campo del nivel de privilegio no var#a a%n cuando el +!5 del segmento selector sea diferente del C!5.

Captulo 10 - 27

Captulo 10: Mecanismos de proteccin /l +!5 de&e ser 'err2uicamente mayor o igual 2ue el C!5 de la rutina, por lo 2ue se dice 2ue el +!5 tiene un efecto limitado en la compro&acin de privilegio.

10.2.2.1. Acceso a se !entos con el -it a.%sta-les /con$or!in 0 a %no


Cuando se accede a segmentos de cdigo con C = 0, el C!5 de la rutina 2ue 0ace la llamada, puede ser igual o menor 2ue el A!5 del segmento de cdigo destino, sino se dar#a e1cepcin de proteccin general 4C!6. /n el caso de C = 1, no se tiene en cuenta el +!5 del selector de segmento del destino. /n estos casos el A!5 representa num8ricamente el de menor !5 2ue puede tener una rutina para poder 0acer una llamada. /l C!5 no cam&ia al transferir el control del programa a un segmento de cdigo conforming 4aun2ue el A!5 del destino sea mayor 2ue el C!56, por lo 2ue no 0ay intercam&io de pilas. /s la %nica situacin en la 2ue el C!5 puede ser distinto del A!5 del segmento de cdigo actual. 5os segmentos a'usta&les se usan para mdulos de cdigo como por e'emplo, li&rer#as matemticas y mane'adores de e1cepciones, 2ue aun2ue formando parte del 9.;. o del soft.are e'ecuta&le pueden ser e'ecutados en niveles de menos privilegio. !ara los segmentos de cdigo nonconforming, 2ue son la mayor#a, a menos 2ue la transferencia se lleve a ca&o mediante una puerta de llamada, el programa de control puede ser transferido slo a segmentos de cdigo con el mismo nivel de privilegio.

10.2.#.Proteccin de las p" inas


5os niveles e1istentes en la paginacin son el :suario y el 9upervisor como se muestra en la figura 10.10. 5as reglas de paginacin se aplican tras aplicar las reglas en segmentacin.

Captulo 10 - 28

Captulo 10: Mecanismos de proteccin

?igura 10.10. Niveles de privilegio de la paginacin

Captulo 10 - 29

Captulo 10: Mecanismos de proteccin !ara definir el acceso el %nico &it 2ue se usa el DB+, el cual se encuentra en las entradas de las 7a&las de !ginas y en las del Airectorio de !ginas. /n caso 2ue 8ste sea 0, puede leerse, si es 1 puede tanto leerse como escri&irse. !uede esta&lecerse una relacin entre estos niveles y los de la segmentacin> en lo referente al nivel supervisor, 8ste e2uivale al los niveles 0, 1 o 2 en los 2ue se realizan la e'ecucin de instrucciones y programador del sistema. /n cuanto al nivel usuario, 2ue e2uivale al nivel 3 se realizan las aplicaciones de usuario y del programador de aplicaciones. /n este tipo de proteccin se tienen en cuenta dos reglas> 1. Aesde una pgina u&icada en nivel :suario slo se puede acceder a pginas de dic0o nivel. 2. Aesde una pgina del nivel de 9upervisor se puede acceder a todas. /ste mecanismo de proteccin se usa al nivel de Airectorio de !ginas y al nivel de 7a&la de !ginas, es decir en la traduccin de direcciones lineales a f#sicas. !uede darse 2ue 0aya diferencias en am&as entradas respecto a la especificacin de pgina, por lo 2ue se coge como nivel de privilegio y tipo de acceso el ms restrictivo. 5as distintas com&inaciones 2uedan refle'adas en la ta&la de la figura 10.11>

Captulo 10 - 30

Captulo 10: Mecanismos de proteccin

Entrada al /irectorio de !;ginas

Entrada a la Ta<al de !;ginas

E=ecto Co(<inado

!rivilegio :suario :suario :suario :suario :suario :suario :suario :suario 9upervisor 9upervisor 9upervisor 9upervisor 9upervisor 9upervisor 9upervisor 9upervisor

7ipo acceso

de

!rivilegio :suario :suario :suario :suario

7ipo acceso

de

!rivilegio :suario :suario :suario :suario 9upervis or 9upervis or 9upervis or 9upervis or 9upervis or 9upervis or 9upervis or 9upervis or 9upervis or 9upervis or 9upervis or 9upervis or

7ipo acceso

de

9olo lectura 9olo lectura lecturaescritura lecturaescritura 9olo lectura 9olo lectura lecturaescritura lecturaescritura 9olo lectura 9olo lectura lecturaescritura lecturaescritura 9olo lectura 9olo lectura lecturaescritura lecturaescritura

9olo lectura lecturaescritura 9olo lectura lecturaescritura

9olo lectura 9olo lectura 9olo lectura lecturaBescrit ura lecturaBescrit uraR lecturaBescrit uraR lecturaBescrit uraR lecturaBescrit ura lecturaBescrit uraR lecturaBescrit uraR lecturaBescrit uraR lecturaBescrit ura lecturaBescrit uraR lecturaBescrit uraR lecturaBescrit uraR lecturaBescrit ura

9uperviso 9olo lectura r 9uperviso lecturar escritura 9uperviso 9olo lectura r 9uperviso lecturar escritura :suario :suario :suario :suario 9olo lectura lecturaescritura 9olo lectura lecturaescritura

9uperviso 9olo lectura r 9uperviso lecturar escritura 9uperviso 9olo lectura r 9uperviso lecturar escritura

?igura 10.11. 7a&la de niveles de privilegio

Captulo 10 - 31

Captulo 10: Mecanismos de proteccin 4R6 si el flag D! de C+0 est a 1, el tipo de acceso lo determina +BD de las entradas del Airectorio de !ginas y de la 7a&la de pginas 9e de&e tener en cuenta 2ue no todas las instrucciones pueden e'ecutarse desde cual2uier nivel de privilegio, el sistema de proteccin el !entium resuelve este pro&lema. Ca&e destacar la e1istencia de dos grupos de instrucciones especiales 2ue e1igen ser e'ecutadas con un C!5 m#nimo> el de instrucciones protegidas y el de instrucciones privilegiadas

10.2.,.1.&nstr%cciones prote idas


9on a2u8llas 2ue slo pueden e'ecutarse desde o&'etos de cdigo situados en un nivel de privilegio igual o mayor 2ue el indicado en el campo );!5 4Nivel de privilegio de /B96 del registro /?5AC9, 8ste es determinado por el programador del sistema. /l campo );!5 puede ser controlado dinmicamente por el 9.;. para decidir los mdulos 2ue tienen acceso a los perif8ricos, este 0ec0o se muestra en la figura 10.12.

?igura 10.12. 9i );!5 = 1, el grupo de instrucciones protegidas slo se puede e'ecutar desde segmentos de cdigo con nivel de privilegio 0 y 1

9e incluyen las siguientes instrucciones para mane'ar las operaciones del espacio de /B9 perif8ricos> 1. )N> puerta por la 2ue toma un valor para cargar el acumulador 2. ;:7> puerta en la 2ue se deposita el valor del acumulador 4/AO6 Captulo 10 - 32

Captulo 10: Mecanismos de proteccin 3. )N9, ;:79> como las anteriores, pero mane'an una cadena de caracteres . C5)> pone el flan de interrupcin )? del registro de se-alizadotes a 0, no permitiendo instrucciones mascara&les (. 97)> pone el flan de interrupcin )? del registro de se-alizadotes a 1, permitiendo instrucciones mascara&les.

Captulo 10 - 33

Captulo 10: Mecanismos de proteccin

10.2.,.2.&nstr%cciones privile iadas


/stn protegidas de los programas de aplicaciones, estas instrucciones controlan las funciones del sistema 4como por e'emplo la carga de los registros del sistema6. 9lo se pueden e'ecutar desde el nivel de mayor de privilegio 4C!5=06, sino se da una e1cepcin de proteccin general 4C!6. Crupos en los 2ue se clasifican> 1. )nstrucciones 2ue pueden modificar el );!5 !;!?> carga los 32 &its de la cima de la pila en el registro de flags afectando al );!5 +/7> retorno de interrupcin, adems de retornar al programa original, carga una parte en el registro de estado 2. )nstrucciones 2ue escri&en los registros 2ue controlan las ta&las del sistema al operar en modo protegido 3. )nstrucciones 2ue afectan al contenido de la pala&ra de estado . )nstruccin de paro <75. A continuacin se muestra una lista de las instrucciones privilegiadas> 5CA7> carga el registro CA7 55A7> carga el registro 5A7 57+> carga el registro de tareas 5)A7> carga el registro )A7 *;J 4registros de control6>carga y almacena los registros de control 5*9D> carga la pala&ra de estado de la m2uina C579> pone a cero el flan de conmutacin de tareas del registro C+0 *;J 4registro de&ug6> carga y almacena registros de de&ug )NJA> invalida la cac08, sin actualizar la memoria principal DH)NJA> invalida la cac08, actualizando la memoria principal )NJ5!C> invalida la 75H <57> para temporalmente el procesador. +A*9+> +ead *ode-9pecific +egisters > instruccin de leer modelo y registro espec#fico. DA*9+> Drite *ode-9pecific +egisters > instruccin de escri&ir modelo y registro espec#fico. Captulo 10 - 34

Captulo 10: Mecanismos de proteccin +A!*C> +ead !reformase-*onitoring Counter> leer contadores de monitoreo de desempe-o. +A79C> +ead 7ime-9tamp Counter> leer contador de tiempo estampado

Captulo 10 - 35

Anda mungkin juga menyukai