Unidad 3. Gestion de Memoria

Embed Size (px)

Citation preview

Diapositiva 1

Asignatura: Sistemas Operativos IIGestin de Memoria

Qu es la Memoria?

Es uno de los principales componentes de los sistemas de computo y tiene como funcin la retencin o almacenamiento de informacin.La memoria se puede ver como una amplia tabla de datos compuesta por direcciones, que dependern de su tamao, donde se almacenan los programas para ser ejecutados.

TIPOS DE ALMACENAMIENTOPrimario SecundarioRAMCachMemoria Virtual (Discos)Es una tcnica para proporcionar la simulacin de un espacio de memoria mucho mayor que la memoria fsica de una mquina. Esta "ilusin" permite que los programas se hagan sin tener en cuenta el tamao exacto de la memoria fsica. Se trabaja con espacios de almacenamiento secundario (Parte de la informacin se almacena en el disco y se pasa cuando sea necesaria).

Tipos de Memoria

MEMORIA REALMEMORIA VIRTUALEs el lugar donde se almacenan los procesos a ser ejecutados. Tambin se le conoce como memoria principal. Es de mayor costo que la memoria virtual (secundaria) pero su acceso es mucho ms rpido. Solo la supera la memoria cach que es mucho ms costosa.Jerarqua de Memoria

La jerarquizacin de memoria busca aumentar el rendimiento de los computadores, dividindose en memorias rpidas y lentas.Memorias Rpidas: Tienen un costo elevado y poca capacidad. Memorias Lentas: Mayor capacidad y bajo costo. CD/DVDDISCOS MGNETICOSMEMORIA PRINCIPALCACHREGISTROSMayor rapidez, menor tamao y mayor costoMenor rapidez, mayor tamao y menor costoDireccin de Memoria

Es un identificador nico que se le asigna a los datos o programas almacenados en la memoria del computador, con el fin de poder localizarlos para su uso posterior.Una forma comn de describir lamemoria principal,es como una coleccin de celdas que almacenan datos e instrucciones. Cada celda est identificada unvocamente por un nmero o direccin de memoria. Estas direcciones vienen expresadas en Hexadecimal. Las direcciones de memoria son generadas por el Sistema Operativo a travs de seales del Bus de Direccin y dependern de su arquitectura (32 o 64 bits).

Bus de 32 Bits 232 = 4.294.967.296 direcciones de memoria distintas.Bus de 64 Bits 264 = 18.446.744.073.709.551.615 direcciones Tipos de Direcciones

LGICASSon las direcciones utilizadas por los procesos. Sufren una serie de transformaciones, realizadas por el procesador antes de convertirse en direcciones fsicas.FSICASSon aquellas que referencian alguna posicin en la memoriafsica.Registro Base: establece la direccin fsica donde comienza el espacio de memoria de un proceso.Registro Lmite: establece la direccin fsica donde termina el espacio de memoria de un proceso, en relacin al registro base.

Tipos de Direcciones

Administrador de Memoria

Es una parte del Sistema Operativo que se encarga de llevar un registro de las partes de memoria que se estn utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando stos la necesiten y liberndola cuando terminen, as como administrar el intercambio entre la memoria principal y el disco en los casos en los que la memoria principal no le pueda dar capacidad a todos los procesos que tienen necesidad de ella. Otras funciones del Administrador de Memoria: Convertir las direcciones lgicas emitidas por los procesos en direcciones fsicas. Comprobar que la conversin se puede realizar. La direccin lgica podra no tener un direccin fsica asociada. Por ejemplo, la pagina correspondiente a una direccin se puede haber trasladado a una zona de almacenamiento secundario temporalmente. Comprobar que el proceso que intenta acceder a una cierta direccin de memoria tiene permisos para ello.

La memoria principal debe albergar tanto al sistema operativo como a los procesos de usuario, por lo que es necesario asignar las distintas partes de la memoria principal de una forma eficiente. La memoria generalmente se divide en dos particiones: una para el sistema operativo y otra para los procesos de usuario.Como generalmente se tienen varios procesos residentes en memoria al mismo tiempo, es necesario considerar la forma de asignar la memoria disponible a los procesos que se encuentren en la cola de entrada, por este motivo se han ideado diversas tcnicas de asignacin.Tipos de asignacinAsignacin Contigua: en este modelo cada programa ocupa un bloque contiguo y sencillo de localizaciones de almacenamiento.Asignacin No Contigua: en este modelo un programa se divide en varios bloques o segmentos, que pueden almacenarse en direcciones que no tienen que ser necesariamente adyacentes. Es mas complejo pero ms eficiente que la asignacin contigua.Asignacin de MemoriaAsignacin de Memoria

Consiste en el proceso de asignarmemoriaa los procesos para propsitos especficos. Todo proceso a ser ejecutado debe estar almacenado en la memoria principal Existen varios modelos de asignacin dependiendo el tipo de memoria, real o virtual. Entre ellos: MEMORIA REAL1. Memoria Contigua Particiones FijasParticiones Flexibles2. Paginacin3. SegmentacinMEMORIA VIRTUAL1. Paginacinn bajo demanda2. Sustitucin de PginasPrimero en Entrar Primero en SalirSegunda Oportunidad No usada recientemente Menos usada recientementeMemoria Contigua

Asignacin de Memoria RealEs uno de los mtodos ms simples para asignar la memoria y consiste en dividirla en varias particiones del mismo tamao (tamao fijo); donde cada particin puede contener un proceso, de forma que el grado de multiprogramacin estar limitado por el nmero de particiones disponibles.ESQUEMA DE PARTICIONES FIJASCaractersticasEl sistema operativo mantiene una tabla que indica las partes de la memoria que estn disponibles y las que estn ocupadas.Al principio toda la memoria est disponible para los procesos de usuarioCuando llega un proceso y necesita memoria se busca un espacio lo suficientemente grande para albergar el proceso.A medida que los procesos entran al sistema, se introducen en una cola de entradaEl sistema operativo toma en consideracin los requisitos de memoria en cada proceso y la cantidad de memoria disponible para poder determinar a qu proceso se le debe asignar.Luego de asignarle un espacio a un proceso, este se carga en memoria y empieza a competir por el uso de la CPU.Cuando el proceso termina, se libera la memoria, la cual queda disponible para que el sistema operativo se la asigne a otro proceso que se encuentre en la cola de entrada.La cola de entrada puede ser ordenada por el sistema operativo con algn algoritmo de planificacin, para asignar memoria a los procesos hasta que esta se agote. Si se encuentra se le asigna la memoria necesaria, y el resto de la memoria queda disponible para otros requerimientos.Memoria Contigua

Asignacin de Memoria RealESQUEMA DE PARTICIONES FIJAS

Ejemplo: En 512KB de memoria fsica caben el sistema operativo mas otros 7 programas de 64KB (16 bits) cada uno. El sistema operativo tpicamente usa la regin ms baja, a partir de 0x0000

Memoria Contigua

Asignacin de Memoria RealESQUEMA DE PARTICIONES FIJASVENTAJASDESVENTAJASSencilloNo requiere de un registro lmite.Multiprocesamiento limitado. Siguiendo el ejemplo anterior si hay menos de 7 procesos se desperdicia memoria y si hay ms de 7 procesos tienen que esperar que se libere memoria.Desperdicio de Espacio. Por ejemplo al asignarse la memoria en bloques fijos, un proceso pequeo podra desperdiciar mucho espacio.

Memoria Contigua

Asignacin de Memoria RealEn este modelo cada proceso declara sus requisitos de memoria al iniciar su ejecucin (debe indicar la cantidad de memoria que requiere), y el Sistema Operativo tiene acceso directo a toda la memoria de forma contina (Sin Particiones). ESQUEMA DE PARTICIONES FLEXIBLESCada regin en memoria est limitada por un registro base y un registro lmite.

Memoria Contigua

Asignacin de Memoria RealVENTAJASDESVENTAJASSencillo.Sobrecarga mnima.Conforme van iniciando y terminando los procesos, se van creando agujeros en la asignacin de memoria.Segn anlisis estadstico (Silberschatz, p.289), por cada N bloques asignados se pierden aproximadamente de 0,5 N por fragmentacin.

ESQUEMA DE PARTICIONES FLEXIBLESCada proceso puede direccionar el total de memoria disponible.

Qu es la Fragmentacin?

Es la parte desperdiciada de la memoriaPor ejemplo: Termina el proceso 1 (de 128K); inician 4 (de 64K), 5 (de 156K) y 6 (de 128K); termina 3 (64K). Se va fragmentando la memoria libre.

Tipos de Fragmentacin

INTERNAEs el espacio desperdiciado dentro de la memoria asignada a un procesoPorque tuvo que solicitar toda la memoria que empleara desde un principio (y la desperdicia la mayor parte del tiempo).Por tener que alinearse a cierta frontera de memoria (p.ej. con particiones fijas).y Por qu se presenta?externaEs el espacio desperdiciado dentro de los distintos fragmentos de memoriaPorque el proceso entrante debe ubicarse en el fragmento de memoria libre siempre y cuando sea mayor, por lo que pueden quedar espacios vacos. y Por qu se presenta?17Cmo ubicar un nuevo proceso en memoria?

PRIMER AJUSTE: Asigna al nuevo proceso al primer bloque de tamao suficiente.

MEJOR AJUSTE: Asigna al nuevo proceso al bloque ms chico en que quepa.

PEOR AJUSTE: Asigna al nuevo proceso al bloque ms grande que haya disponibleHay tres estrategias principales para dar espacio en la memoria a un nuevo proceso:Cul ser mejor?

Primer Ajuste

ParticinBase ParticinTamao0010KI1018KII2812KIII408KIV4816KBase ParticinTamaoA8KB14KC18KD6KE14KTabla de MemoriaTabla de ProcesosEl SO ocupa la primera particin que tiene un tamao de 10K010SOI28A

II40III48IV641. Llega el proceso A que requiere 8K. Lo Ubica en la particin I de 18K.10K2. Llega el proceso B que requiere 14K. Lo Ubica en la particin IV de 16K.3. Llega el proceso C que requiere 18K. Como solo queda libre la particin II de 12K y la III de 8K, no lo puede almacenar y lo enva a la cola de espera hasta que se liberen espacios. A pesar de existir 12K inutilizados por los procesos A y B.Asigna al nuevo proceso al primer bloque de tamao suficiente.Fragmentacin InternaDESVENTAJAS010SOI28A

II40III48IV64B

10K2KMejor Ajuste

ParticinBase ParticinTamao0010KI1018KII2812KIII408KIV4816KBase ParticinTamaoA8KB14KC18KD6KE14KTabla de MemoriaTabla de ProcesosEl SO ocupa la primera particin que tiene un tamao de 10K010SOI28II40III48AIV641. Llega el proceso A que requiere 8K. Lo Ubica en la particin III de 8K.2. Llega el proceso B que requiere 14K. Lo Ubica en la particin IV de 16K.3. Llega el proceso C que requiere 18K. Lo ubica en la particin I de 18KAsigna al nuevo proceso al bloque ms chico en que quepa.010SOI28II40III48AIV64B

2K010SOI28CII40III48AIV64B

2K4. Llega el proceso D que requiere 6K. Lo ubica en la particin II de 12K010SOI28CII40D

III48AIV64B

2K2KCmo consideras el algoritmo? Mejor o Peor que el de Primer Ajuste?FRAGMENTACIN= 4KPeor Ajuste

ParticinBase ParticinTamao0010KI1018KII2812KIII408KIV4816KBase ParticinTamaoA8KB14KC18KD6KE14KTabla de MemoriaTabla de ProcesosEl SO ocupa la primera particin que tiene un tamao de 10K010SOI28AII40III48IV641. Llega el proceso A que requiere 8K. Lo Ubica en la particin I de 18K.2. Llega el proceso B que requiere 14K. Lo Ubica en la particin IV de 16K.3. Llega el proceso C que requiere 18K. No consigue espacio disponible y lo enva a la cola.Asigna al nuevo proceso al bloque ms grande que haya disponible010SOI28AII40III48IV64B

2K4. Llega el proceso D que requiere 6K. Lo ubica en la particin II de 12K10K10K010SOI28AII40DIII48IV64B

2K10K6K5. Llega el proceso E que requiere 14K. No consigue espacio disponible y lo enva a la cola. FRAGMENTACIN= 18KFin