Vous êtes sur la page 1sur 11

REGISTRO DE BASE

Al hacer evidente la necesidad de almacenamientos primarios mayores,


la arquitectura de las computadoras se modific para poder acomodar
una capacidad muy grande de direcciones. Un sistema diseado para
mantener 16M bytes (M=1,048,576) requera direcciones de 24 bits.
Incorporar direcciones tan grandes en cada instruccin en una mquina
con instrucciones de una sola direccin sera costoso; en mquinas con
instrucciones de direccin mltiple sera intolerable. As, que, para
obtener grandes capacidades de direcciones, los sistemas utilizan
direccionamiento de base ms desplazamiento, en los cuales todas las
direcciones son aadidas al contenido de un Registro base. Este
esquema tiene la ventaja adicional de hacer a los programas
independientes de la localizacin, una propiedad particularmente valiosa
para programas dentro de ambientes de usuarios mltiples, en los
cuales un programa puede necesitar ser situado en diferentes
localizaciones de almacenamiento primario cada vez que es cargado.

REGISTRO DE LMITES

La proteccin del almacenamiento es esencial en los sistemas


computacionales de usuarios mltiples. Limita el nmero de direcciones
que un programa que puede referenciar. La proteccin del
almacenamiento puede ser implementada para un programa que ocupa
un bloque continuo de localizaciones de almacenamiento por medio de
Registros de lmites, los cuales definen las direcciones superior e
inferior del bloque del almacenamiento. Al ejecutarse un programa,
todas las direcciones de almacenamiento a las que se hace referencia
son revisadas para verificar si se encuentran entre las direcciones de los
registros de lmites.

Es evidente que el sistema operativo debe estar protegido contra el


usuario. La proteccin se implementa mediante un registro de lmites,
incorporado al CPU. Cada vez que el programa de un usuario hace
referencia a una direccin de almacenamiento, se comprueba el registro
de lmites para asegurarse que el usuario no va a destruir el sistema
operativo. El registro de lmites contiene la direccin de la instruccin
ms alta utilizada por el sistema operativo. Si el usuario intenta entrar
en el sistema operativo, entonces la instruccin es interceptada y el
trabajo se termina con un mensaje de error apropiado.

Fig. Proteccin del almacenamiento con asignacin contigua de


un solo usuario.

En los sistemas de multiprogramacin de asignacin contigua, la


proteccin suele implementarse con varios registros de lmites. Los
extremos superior e inferior de una particin del usuario pueden ser
delineados con dos registros o pueden indicarse el lmite inferior (o el
superior) y la longitud de la regin. El usuario que necesite llamar al
sistema operativo tiene que utilizar una instruccin de llamada al
supervisor. Esto permite al usuario cruzar el lmite del sistema operativo
y pedir sus servicios.
Fig. Proteccin del almacenamiento en sistemas de
multiprogramacin de asignacin contigua. Mientras que el
usuario de la particin 2 se encuentra activo, todas las
direcciones de almacenamiento desarrolladas por el programa
son verificadas para asegurar que se encuentren entre b y c.

CONVERSIN DE DIRECCIN VIRTUAL A FISICA


La memoria fsica de un ordenador es una secuencia de bytes, que
empieza en el 0 y termina en....por ejemplo 64 megas. Es decir, un array
de bytes.

Cada byte tiene una direccin: el nmero que ocupa posicionalmente en


la memoria. Esta direccin es conocida como direccin fsica. Las
direcciones que va a utilizar un programa (en modo protegido), no son
esas. Siempre son traducidas, o mapeadas, en direcciones de memoria
fsica por un mecanismo de traduccin de direcciones.

Este mecanismo, nos introduce en el concepto de direccin virtual. Se


llama de esta manera porque no corresponde directamente a posiciones
de memoria fsica, sino que a travs de una funcin de mapeado
equivale a una direccin de memoria fsica. Es decir, este mecanismo, al
apuntar a una direccin de memoria, lo que hace es buscar, por ejemplo,
en unas tablas internas, la correspondencia entre esta direccin y la
direccin real fsica del dato.

La traduccin de direccin virtual a fsica tambin proporciona


proteccin de memoria, ya que podra disponerse, por ejemplo, que
ciertas direcciones fsicas de memoria no se mapeen desde ninguna
direccin virtual.

La traduccin de las direcciones virtuales a reales es implementada por


una Unidad de Manejo de Memoria (MMU). El sistema operativo es el
responsable de decidir qu partes de la memoria del programa es
mantenida en memoria fsica. Adems, mantiene las tablas de
traduccin de direcciones (si se usa paginacin la tabla se denomina
tabla de paginacin), que proveen las relaciones entre direcciones
virtuales y fsicas, para uso de la MMU. Finalmente, cuando una
excepcin de memoria virtual ocurre, el sistema operativo es
responsable de ubicar un rea de memoria fsica para guardar la
informacin faltante, trayendo la informacin desde el disco,
actualizando las tablas de traduccin y finalmente continuando la
ejecucin del programa que dio la excepcin de memoria virtual desde
la instruccin que caus el fallo.

Existen muchos mecanismos para la traduccin de direcciones virtuales


a fsicas, entre los cuales destacamos:

Particiones fijas
La memoria fsica se divide en particiones fijas que pueden ser de
diferentes tamaos. El hardware requiere de un registro base y un
registro lmite. La direccin fsica estar compuesta por la direccin
virtual ms un registro base (cargado por el SO despus del cambio de
contexto). La ventaja que tiene es que es sencillo y tiene un cambio de
contexto rpido, y como desventajas la fragmentacin interna y externa.

Particiones variables
La memoria fsica es dividida en particiones variables cuyo tamao vara
dinmicamente. El hardware requiere de un registro base y un registro
lmite. La direccin fsica estar compuesta por la direccin virtual ms
un registro base. El registro base contiene el valor de la direccin fsica
menor posible, y el registro lmite el mayor rango de direcciones
virtuales. Con este tipo de traduccin nos evitamos el problema de la
fragmentacin interna (si sabemos cunto necesita el proceso) pero
seguimos teniendo el problema de la fragmentacin externa.

Paginacin (tcnica actual)


Para solucionar el problema de la fragmentacin externa dada con
particiones variables, usamos particiones fijas en memoria virtual y
fsica.

Con este mtodo, los procesos ven a la memoria como un espacio


contiguo de 0 a M, aunque en realidad la memoria fsica est
desparramada. Cada pgina virtual se mapea a una pgina real (marco
de pgina) que est en cualquier parte en memoria fsica. Dicho mapeo
es invisible al programa.

En la traduccin de direcciones virtual, es una direccin tiene dos partes,


el nmero de pgina virtual y el offset. El nmero de pgina virtual es un
ndice en la tabla de pginas. Una entrada en la tabla de pginas
contiene el nmero de marco de pgina, por lo que la direccin fsica se
traduce a un nmero de marco de pgina ms el offset. Las tablas de
pginas son manejadas por el SO.
Concepto Interrupciones.

Una interrupcin es una operacin que suspende la ejecucin de un


programa cuando quiere comunicarse de modo que el sistema pueda
realizar una accin especial. Una interrupcin tiene una subrutina
asociada, que realiza lo que sea necesario para la interrupcin, de este
modo, los dispositivos pueden provocar que la CPU deje por el momento
la tarea que estaba realizando y atienda la interrupcin. La rutina de
interrupcin ejecuta y por lo general regresa el control del procedimiento
que fue interrumpido, el cual entonces reasume su ejecucin.
Cuando no existan interrupciones, era el procesador el que tena que
estar comprobando el estado del dispositivo cuando lo necesitaba. Todo
ese tiempo que el procesador estaba sondeando el estado de los
dispositivos era tiempo que no se poda dedicar a otros procesos, con lo
que significa esto en cuanto a rendimiento. Por todo ello se. pens que lo
mejor era que existiera una lnea especial entre el procesador y los
dispositivos, por la que los dispositivos indicaban al procesador que ya
estaban listos. Cuando al procesador le llega una interrupcin, la atiende
inmediatamente dejando de hacer lo que estuviera haciendo.

Tipos de Interrupciones

Interrupciones por hardware


Es una seal elctrica producida por un dispositivo fsico del ordenador,
siendo un suceso externo al procesador que cambia el flujo normal de
ejecucin del procesador, convirtindose en un evento asncrono. Esta
seal informa a la CPU que el dispositivo requiere su atencin. La CPU
parar el proceso que est ejecutando para atender la interrupcin.
Cuando la interrupcin termina, la CPU reanuda la ejecucin en donde
fue interrumpida, pudiendo ejecutar el proceso parado originalmente o
bien otro proceso.
Las interrupciones por hardware son generadas por un agente externo al
procesador (disco duro, teclado, etc) por ejemplo del teclado, cada vez
que se presiona una tecla y se suelta se genera una interrupcin.
Las interrupciones tienen distintas prioridades predefinidas que indican
que interrupcin tiene mayor prioridad y no puede ser interrumpida por
una de menor prioridad, as el Registro de Interrupciones Activas (ISR)
indica el nmero de la interrupcin en concreto que se est realizando.
Si llega otra interrupcin de hardware con menor o igual prioridad no se
ejecutar, pues se asume que an est en ejecucin la anterior,
mientras el ISR est con su nmero.
Los IRQ se encuentran numerados, y cada dispositivo hardware se
encuentra asociado a un nmero IRQ. Por ejemplo, el reloj (en IRQ 0)
tiene una prioridad ms alta que el teclado (IRQ 1).

TABLA DE INTERRUPCIONES DE HARDWARE


Interrupciones por software

Las interrupciones de software son eventos sncronos que son


provocadas por el programa en ejecucin usando una funcin especial
del lenguaje, esto puede ocurrir al llamar a la instruccin INT, al realizar
una divisin por 0 o realizar una peticin de una interrupcin externa.
Tienen como objetivo el que la CPU ejecute algn tipo de funcin. Al
terminar de ejecutarse esta funcin, se seguir ejecutando el programa
que provoc la interrupcin.
Este tipo de interrupciones es la forma ms importante que tendrn los
programas de ejecutar funciones especiales del DOS (Disk Operating
System) o del BIOS (Basic Input Output System). Estas funciones tienen
un nmero de interrupcin software asociada. Cuando un programa
lanza una interrupcin de este tipo, la CPU ejecuta su funcin de
tratamiento asociada. Se guarda la mscara de interrupciones, se
modifica la mscara a fin de habilitar selectivamente las interrupciones
que permitiremos durante la ejecucin de la rutina, se habilitan
globalmente las interrupciones seteando el flag IF en 1 y se ejecuta la
rutina de atencin de la interrupcin solicitada.
Se deshabilitan globalmente las interrupciones seteando el flag IF en 0,
se reemplaza la mscara de interrupciones con la original, retorna de la
interrupcin con una instruccin que restaura el estado del programa
antes del llamado (IRET), restaura el PC de la pila, restaura el PSW de la
pila (datos de interrupcin)
Las funciones que se ejecutan con cada interrupcin software son un
estndar en el mundo PC.
Algunas de las interrupciones que nos van a ser ms tiles sern:

Interrupcin 14h: Acceso al puerto serie por el BIOS.

Interrupcin 21h: Funciones del DOS.

Interrupcin 17h: Servicios de acceso a la impresora del BIOS.

Excepciones
Las excepciones son un tipo de interrupcin sincrnica tpicamente
causada por una condicin de error en un programa, como por ejemplo
una divisin entre 0 o un acceso invlido a memoria en un proceso de
usuario. Normalmente genera un cambio de contexto a modo supervisor
para que el sistema operativo atienda el error. As pues, las excepciones
son un mecanismo de proteccin que permite garantizar la integridad de
los datos almacenados tanto en el espacio de usuario como en el
espacio kernel. Cuando el Sistema Operativo detecta una excepcin
intenta solucionarla, pero en caso de no poder simplemente notificar la
condicin de error a la aplicacin/usuario y abortar la misma.
UNIVERSIDAD NACIONAL DE INGENIERIA
UNI-ies
TRABAJO DE SISTEMAS OPERATIVOS

Nombre:
Clifford Isa Campbell Narvez
Grupo:
3T1-T

Fecha:
27 de febrero de 2017

Vous aimerez peut-être aussi