Sie sind auf Seite 1von 15

POLTICAS Filosofa:

FILOSOFA

DE

ADMINISTRACIN

DE

MEMORIA

La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamao. Cada localidad de almacenamiento tiene asignada una direccin que la identifica. Una de las funciones bsicas que debe implementar un SO es la Administracin de la Memoria para tener un control sobre los lugares donde estn almacenados los procesos y datos que actualmente se estn utilizando. Sea cual sea es esquema de organizacin del almacenamiento que se adopte para un sistema especfico, es necesario decidir que estrategias se deben utilizar para obtener un rendimiento ptimo .las estrategias de administracin del almacenamiento determinan el comportamiento de la administracin de memoria cuando se siguen ciertas polticas: Cundo se toma un nuevo programa para colocarlo en memoria? Se toma el programa cuando el sistema lo solicita especficamente o se intenta anticiparse alas particiones del sistema? En que lugar del almacenamiento principal se coloca el programa por ejecutar? Se colocan los programas lo ms cerca unos de otros en los espacios disponibles de la memoria principal para reducir al mnimo el desperdicio de espacio, o se colocan los programas lo ms rpido posible para reducir al mnimo el tiempo de ejecucin? Si se necesita colocar un nuevo programa en el almacenamiento principal y ste est lleno, Cul de los otros programas se desaloja? Se han realizado sistemas que utilizan cada una de estas estrategias de administracin. Los programas y datos necesitan estar en el almacenamiento principal para ser ejecutados o para poder hacer referencia de ellos. Los que no se necesitan de inmediato pueden guardarse en el almacenamiento secundario. Unix permite procesos mltiples y en un proceso puede generar otro fcilmente. La planificacin del procesador usa un algoritmo basado en prioridades. La administracin de memoria es un algoritmo de regiones variables con intercambios. Inicialmente los algoritmos realizados se eligieron por sencillez, no por velocidad ni complejidad. El desarrollo inicial se hizo bajo un espacio muy pequeo de memoria. Los recursos de memoria totales eran insuficientes para justificar algoritmos complejos, por lo que UNIX intercambiaba el contenido en memoria de los procesos. POLTICAS. FIFO: Los procesos se despachan de acuerdo a su tiempo de llega a la cola de procesos listos, si un proceso llega al procesador sale hasta que termine. La poltica FIFO actualmente no se usa como el esquema principal de un sistema, pero si por ejemplo cuando se usa una poltica de prioridades y hay procesos con la misma prioridad, a estos se les podra aplicar FIFO.

Round Robin: Los procesos se despachan en la forma que lo hace el FIFO, pero se les asigna una cantidad limitada de tiempo (CUANTUM) en el procesador, si no termina en ese lapso se manda al final de la lista de procesos listos.

SJF (Shortest job first - Prioridad del trabajo mas corto): Se ejecuta primero el proceso en espera que tiene el menor tiempo estimado. SJF favorece a los procesos cortos, ya que los largos podran llegar a rezagarse mucho tiempo e incluso nunca ejecutarse.

SRT (Sortest remaining time scheduling Tiempo restante ms corto): En SJF una vez que un proceso comienza su ejecucin continua hasta terminar. En SRT, un proceso en ejecucin puede ser desposedo por uno nuevo de menor tiempo de ejecucin.

HRN: (highest response ratio next Prioridad de la tasa de respuesta ms alta): Poltica no apropiativa que corrige el retraso excesivo de procesos grandes que produce el SJF, para as no caer en un favoritismo excesivo por los procesos cortos, lo logra usando una formula basada en el tiempo de espera y el tiempo de servicio, con lo cual la prioridad de cada trabajo no solo esta en funcin del tiempo de servicio sino tambin del tiempo que ha esperado para ser atendido.

PLANIFICAR LA PORCIN JUSTA En el ambiente UNIX, FSS (fair share scheduling) se desarrollo para proporcionar un costo fijo una tasa previamente especificada de los recursos del sistema a un conjunto de usuarios relacionados entre s. UNIX aplica tasas parecidas de consumo de recursos a todos los procesos, pero con FSS los recursos se reparten a varios grupos de porcin justa. Figura A

Los recursos no utilizados por un grupo de porcin justa se distribuyen a otros grupos en proporcin a sus necesidades relativas. Figura B.

MECANISMOS

DE

ASIGNACIN.

Para ejecutar un proceso este debe cargarse en memoria. Generalmente el proceso reside en disco como archivo binario o ejecutable. El procedimiento normal consiste en seleccionar uno de los procesos de la cola de entrada y cargarlos en memoria. Esto ocasiona la relocalizacin de direccin o enlaces a referencias externas, segn sea el caso. Mientras se ejecuta un programa, se accede a las instrucciones o datos en la memoria. Un proceso de usuario puede residir en cualquier parte de la memoria fsica. Por esto, aunque el espacio de direcciones de la computadora comience con 00000, no necesariamente debe de ser ocupado por el proceso del usuario En la mayora de los casos, un programa de

usuario pasar por varias etapas antes de ejecutarse. En estas etapas las direcciones pueden representarse de maneras distintas. A su vez, el cargador enlazar las direcciones relocalizables con direcciones absolutas (como 70414). Cada enlace es una correspondencia entre un espacio de direcciones y otro. El enlace de las instrucciones y datos con las instrucciones y datos con las direcciones de memoria casi siempre puede efectuarse en cualquier etapa del camino: Compilacin. Si se sabe la posicin donde inicia el cdigo, entonces el compilador comenzara en esa posicin y se extendera a partir de ah. Si se cambia la posicin de inicio, ser necesario volver a compilar el cdigo. Los programas con formato. COM se enlazan de manera absoluta durante la compilacin. Carga. Si en la compilacin no se conoce donde residir el programa en memoria, entonces el compilador deber cargar el cdigo relocalizable. Ejecucin. Si durante la ejecucin el proceso puede moverse de un segmento de memoria a otro, entonces el enlace final se debe postergar hasta el momento de la ejecucin. Esto depende de hardware especial. Vemos en este diagrama como se inicia a partir del cdigo fuente de algn lenguaje de alto nivel, pasando a travs de un compilador a ensamblador para crear as el cdigo objeto, si es posible este es enlazado por el editor de enlaces. Si las direcciones no son absolutas, es necesario que el mdulo de carga realice las operaciones necesarias con el cdigo relocalizable.

ESTRATEGIAS DE ASIGNACIN. Una estrategia de asignacin de memoria determina el lugar donde ser cargado un nuevo proceso en base a un criterio. Las estrategias de asignacin son: Primer ajuste. Asignar el primer hueco que tenga el tamao suficiente. La bsqueda puede comenzar en el inicio del conjunto de huecos a partir de donde termino la bsqueda del primer hueco anterior. Podemos dejar de buscar en el momento en que encontremos un hueco libre de tamao suficiente. La bsqueda de este bloque es de manera secuencial.

Mejor ajuste. Asignar el hueco ms pequeo que tenga el tamao suficiente. Debemos recorrer toda la lista, a menos que sta se mantenga ordenada por tamao. Esta estrategia produce el hueco sobrante ms pequeo. Esto quiere decir que el sistema operativo busca el bloque de memoria que represente el menor desperdicio segn el requerimiento. Peor ajuste. Asignar el hueco ms grande. Una vez ms, debemos buscar en toda la lista, a menos que est ordenada por tamao. Esta estrategia produce el hueco sobrante ms grande, el cual puede ser ms til que el hueco sobrante ms pequeo producido por la estrategia del mejor ajuste. El primer ajuste como el mejor ajuste son los mejores que el peor ajuste en cuanto a la reduccin del tiempo y de la utilizacin del almacenamiento. Ni el primer ajuste ni el mejor ajuste son definitivamente superiores uno respecto al otro en relacin con la utilizacin del almacenamiento, pero por lo general el primer ajuste es ms rpido. Estos algoritmos padecen fragmentacin externa: conforme los procesos se cargan y extraen de la memoria, el espacio de memoria libre se divide en pequeos pedazos. La fragmentacin externa se presenta cuando el espacio de memoria es suficiente para atender una solicitud, pero no es contiguo; el almacenamiento est fragmentado en varios huecos pequeos. Dependiendo de la cantidad total de memoria y del tamao promedio de los procesos, la fragmentacin externa puede ser un problema mayor o menor. MEMORIA VIRTUAL. Es un mtodo mediante el cual, un sistema operativo simula tener ms memoria principal que la que existe fsicamente. Para implementar la memoria virtual se utiliza un medio de almacenamiento secundario de alta velocidad de acceso, generalmente en disco duro de la maquina. Esquema Bsico. Un sistema de memoria virtual se implementa utilizando paginacin como mtodo de administracin de memoria bsica y algn mecanismo de intercambio (para descargar pginas de la memoria principal hacia el disco duro y para cargar esas pginas de nuevo a la memoria). Esta forma de trabajar aporta ventajas importantes: Si los programas se pueden ejecutar por partes, la memoria lgica puede ser mayor que la real disponible. Puesto que cada programa ocupa menos memoria real se puede elevar el ndice de multiprogramacin, y por tanto, la eficiencia del sistema se incrementa. Al cargar menos cantidad de cada programa, se necesitan menos operaciones de E/S para las operaciones de carga e intercambio de los mismos. Las diferentes partes de un programa se van cargando en memoria a medida que se necesitan, y por ello, esta tcnica debe considerar tres aspectos importantes:

Carga: Las particiones del programa se cargan cuando se necesitan (peticin de Pagina) o bien se pueden cargar por adelantado (anticipacin o prepaginacin). Colocacin: Los sistemas de memoria virtual que utilicen segmentacin deben decidir, al cargar un nuevo segmento, si lo hacen en el hueco ms adecuado o bien en el primero posible. Sustitucin: La norma ser que toda la memoria real est ocupada, y cuando se necesite cargar una nueva parte de un programa habr que reemplazar alguna de las existentes. Es importante definir la seleccin de la parte a reemplazar. Las dos principales limitaciones que tiene la memoria fsica de una computadora son su tamao y su unidimencionalidad. MECANISMOS DE RELOCALIZACIN. Existen dos mecanismos de relocalizacin: Relocalizacin Relocalizacin esttica. dinmica.

El problema de la relocalizacin Este problema no es exclusivo de la multiprogramacin en memoria real, sino que se present aqu pero se sigue presentando en los esquemas de memoria virtual tambin. Este problema consiste en que los programas que necesitan cargarse a memoria real ya estn compilados y ligados, de manera que internamente contienen una serie de referencias a direcciones de instrucciones, rutinas y procedimientos que ya no son vlidas en el espacio de direcciones de memoria real de la seccin en la que se carga el programa. Esto es, cuando se compil el programa se definieron o resolvieron las direcciones de memoria de acuerdo a la seccin de ese momento, pero si el programa se carga en otro da en una seccin diferente, las direcciones reales ya no coinciden. En este caso, el manejador de memoria puede solucionar el problema de dos maneras: de manera `esttica' o de manera `dinmica'. La solucin `esttica' consiste en que todas las direcciones del programa se vuelvan a recalcular al momento en que el programa se carga a memoria, esto es, prcticamente se vuelve a recompilar el programa. La solucin `dinmica' consiste en tener un registro que guarde la direccin base de la seccin que va a contener al programa. Cada vez que el programa haga una referencia a una direccin de memoria, se le suma el registro base para encontrar la direccin real. Por ejemplo, suponga que el programa es cargado en una seccin que comienza en la direccin 100. El programa har referencias a las direcciones 50, 52, 54. Pero el contenido de esas direcciones no es el deseado, sino las direcciones 150, 152 y 154, ya que ah comienza el programa. La suma de (100 + 50), (100 + 52) y (100 + 54) se hacen al tiempo de ejecucin.

MTODOS

DE

ASIGNACIN

DE

MEMORIA.

Un mtodo de asignacin de memoria es la manera mediante la cual el Sistema Operativo lleva el control de la memoria tratando de que sea lo ms eficiente posible. Los mtodos de asignacin ms comunes son :

SEGMENTACIN. Este mtodo consiste en la asignacin de bloques de memoria de tamao variable, llamados segmentos. El tamao de cada segmento ser el requerido segn la peticin, por ejemplo el tamao del proceso a cargar. El tamao mximo para un segmento estar determinado por la capacidad de direccionamiento del hardware de la computadora, esto es, de cuantos bits se dispone para almacenar una direccin. El acceso a cada elemento individual (byte) en la memoria se hace mediante una direccin de memoria que se integra por dos elementos: una direccin de segmento y una de desplazamiento. La combinacin (suma) de la direccin de segmento y la de desplazamiento generan la direccin de memoria absoluta a acceder.

VALIDACION

DEL

DIRECCIONAMIENTO

Segmentacin

Dado que en cada proceso se manejan direcciones lgicas, el sistema operativo debe obtener una direccin lgica. El sistema operativo debe tambin asegurarse de que cada direccin lgica est dentro del rango de direcciones empleado por el proceso. Para esto el sistema operativo implementa la tabla de segmentos como un arreglo de registros base lmite como se muestra en la siguiente figura:

PAGINACION La paginacin consiste en considerar el espacio de direcciones lgicas de cada proceso como un conjunto de bloques de tamao consistente llamados paginas. Cada direccin lgica manejada para un proceso estar conformada por un par de valores [pagina: desplazamiento]. La memoria fsica se administra implementando bloques de tamao consistente denominados 'marcos'. Obviamente el tamao de un 'marco' debe ser igual al tamao de una pagina. Por lo general el tamao designado para los marcos y pginas es pequeo.

OPCIONES 1. La

DE tabla

IMPLEMENTACION de paginas se

DE implementa

LA

TABLA completamente

DE en

PGINAS hardware.

VENTAJA: Se obtiene una alta velocidad de acceso a memoria. DESVENTAJA: Resulta problemtica cuando la tabla de paginas debe ser grande. 2. Implementar la tabla de paginas en la memoria principal.

VENTAJA: La tabla de pginas puede crecer segn se requiera. DESVENTAJA: La velocidad de accesar a memoria es relativamente baja, dado que cada referencia a memoria involucra 2 accesos. DIRECCIONAMIENTO MS-DOS 8086 (16 Bits) MS-DOS (Segmentacin)

Capacidad 220=1'048,576=1MB. 80286 Puede Modo

de

direccionamiento.

funcionar

de real

(16 alguno

de =

los

Bits) modos: 8086

Modo protegido: o Para cada programa se implementa una tabla de descriptores. o El valor que contenga un registro de segmento se utiliza como un apuntador (selector) a la tabla de descriptores.

Capacidad 224=16'777,216=16MB WINDOWS (Segmentacin o Paginacin) Capacidad 232=4,294'967,296=4GB Puede funcionar de

de

direccionamiento.

de

80386

(32

Bits),

486, Pentium + direccionamiento.

alguno

de

los

modos:

Modo real = 8086 Modo protegido: o Para cada programa se implementa una tabla de descriptores. o El valor que contenga un registro de segmento se utiliza como un apuntador (selector) a la tabla de descriptores.

FORMATO DE UN DESCRIPTOR

BIT G. Es el bit de Granularidad, especifica si el procesador debe interpretar el valor del campo lmite como granularidad de bytes o granularidad de pginas. Si vale 0 indica granularidad de byte (para emular el 286) en caso contrario se utiliza cuando el SO implementa paginacin. BIT B/D: Si el segmento que se esta referenciado no tiene cdigo, este bit recibe el nombre de bit D. Si vale 1 indica que el segmento contiene cdigo para 386(Cdigo Nativo) si vale 0, el segmento contiene cdigo para 286. Si el segmento contiene datos, este bit recibe el nombre de Bit B. Si vale 1 indica que el segmento es mayor de 64 kB. Bit P. Es el bit de presencia, indica si el segmento est presente en la memoria.

Bits DPL. Es el campo de nivel de privilegio del descriptor, especifican el nivel de privilegio del segmento (entre 0 y 3). Bit S. Es el bit de segmento, si vale 1 indica que el descriptor hace referencia a un segmento de Memoria, si vale 0 indica que el descriptor hace referencia a otro tipo de estructura. Bits de Tipo. Estos 3 bits de tipo especifican el tipo de segmento de memoria, por ejemplo: indica si el segmento contiene cdigo o datos protegidos, etc. Bit A. Es el bit de accedido, indica si algn programa ha referenciado el segmento. Si vale 0 indica que el segmento o pgina no ha sido accesado.

SEGMENTACION/PAGINACION Tanto la Segmentacin como la paginacin ofrecen significativas ventajas, algunos sistemas (Multics y la Serie 370 de IBM) combinan ambas tcnicas en donde los segmentos tienen un tamao mltiplo de pagina. Este mtodo utiliza Segmentacin y Paginacin tal y como su nombre lo indica, el proceso es el siguiente: - Se hace la solicitud de acceso por medio de una direccin "V" la cual contiene los campos Segmento, Pagina y Desplazamiento. Con el campo Segmento, lo que se trata es de accesar a una Tabla de segmentos, cada campo de dicha tabla apunta directamente a la tabla de paginas asignada para ese segmento conteniendo una direccin que ser sumada a una direccin en la Tabla Asociativa para por fin formar una direccin real con el desplazamiento de V

En un sistema con un nmero muy grande de procesos, segmentos o paginas, sta estructura puede consumir una parte muy importante de la memoria real. La cuestin es que la traduccin de direcciones puede realizarse con rapidez pero si se tienen demasiadas tablas, el sistema puede soportar menos procesos y bajar su rendimiento

SEGMENTACION

MS-DOS

Si un programa trata de asignar un bloque de memoria de cierto tamao, MS-DOS busca un bloque apropiado, si lo encuentra, se modifica para que pertenezca al proceso solicitado. Si el bloque es demasiado grande, MS-DOS divide en un bloque asignado y un nuevo bloque libre. Cuando un programa libera un bloque de memoria, MS-DOS lo modifica para indicar que est disponible. Cuando un programa reduce la cantidad de memoria que necesita, MS-DOS crea un nuevo bloque de control de memoria para la memoria liberada. TAMAO MAXIMO DE SEGMENTO.

En realidad no solo se ampliaron los registros de 32 bits, sino que tambin la longitud mxima del segmento con lo que un segmento puede ocupar hasta 4 GB (232). TIPOS DE SEGMENTOS

SEGMENTOS DE DATOS: En el solo se puede leer y escribir, pero no se puede ejecutar cdigo de programa. SEGMENTO DE CODIGO: A diferencia del anterior, en este si se puede ejecutar cdigo pero no puede leer ni escribir. SEGMENTO DEL SISTEMA: Describe diferentes tipos de segmentos que todos ellos sirven para la gestin del modo protegido.

Fuente : http://www.itlp.edu.mx/publica/tutoriales/sistemasoperativos2/unidad1.htm