Vous êtes sur la page 1sur 71

Sistemas Operativos

I
Administracin de Memoria Principal

Indice

Introduccin (Video)
Administracin de Memoria Principal
Administrador de Memoria
Requisitos del Administrador de Memoria
Estrategias de Administracin de Almacenamiento
Organizacin de la Memoria Fsica
Organizacin Lgica de la Memoria
Procesos y Memoria
Tipos de Memoria Principal
Tcnicas de Administracin de Memoria
Particin Fija
Estrategias
Particin Dinmica
Fragmentacin Interna
Fragmentacin Externa

Paginacin Simple
Estrategias de Paginacin Simple
Segmentacin Simple
Estrategias de Segmentacin Simple

Administracin de Memoria Principal


La parte del sistema operativo que administra la memoria se llama
administrador de memoria y su labor consiste en 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.

Administracin de Memoria Principal


El propsito principal de una computadora es el de ejecutar programas,
estos programas, junto con la informacin que accedan deben de estar en
la memoria principal (al menos parcialmente) durante la ejecucin.
Para optimizar el uso del CPU y de la memoria, el sistema operativo
debe de tener varios procesos a la vez en la memoria principal, para lo
cual dispone de varias opciones de administracin tanto del procesador
como de la memoria.
La seleccin de uno de ellos depende principalmente del diseo del
hardware para el sistema.

Administracin de Memoria Principal


Administrador de Memoria
Ubicar, reemplazar, cargar y descargar procesos en la memoria principal.
Proteger la memoria de acceso indeseados (accidentals o intencionados).
Permitir la comparticin de zonas de memoria (indispensable para lograr la cooperacin
de procesos).

Administracin de Memoria Principal


Administrador de Memoria

Administracin de Memoria Principal


Requisitos del Administrador de Memoria
Reubicacin: Permitir el recalculo de direcciones de memoria de un proceso reubicado.
Proteccin: Evitar el acceso a posiciones de memoria sin el permiso expreso.
Comparticin: Permitir a procesos diferentes accede a la misma porcin de memoria.
Organizacin Lgica: Permitir que los programas se escriban como mdulos
compilables y ejecutables por separado.
Organizacin Fsica: Permitir el intercambio de datos en la memoria primaria y
secundaria.

Administracin de Memoria Principal


Requisitos del Administrador de Memoria
Reubicacin

Los programadores no saben dnde estar el programa en memoria


cuando se ejecute.
Mientras el programa se ejecuta, puede ser movido al disco y devuelto
a memoria principal en una posicin diferente (reubicado).
Se deben traducir las referencia a memoria del cdigo a las direcciones
fsicas reales.

Administracin de Memoria Principal


Requisitos del Administrador de Memoria
Proteccin

Los procesos no deberan ser capaces de referenciar el espacio de


memoria de otro procesos sin permiso.
Es imposible comprobar las direcciones absolutas de los programas
puesto que stos pueden ser reubicados.
Deben ser traducidas durante la ejecucin.
El sistema operativo no puede anticipar todas las referencias de
memoria que un programa puede generar.

Administracin de Memoria Principal


Requisitos del Administrador de Memoria
Comparticin

Permitir a varios procesos acceder a la misma zona de memoria.


Es mejor permitir a cada proceso (persona) acceso a la misma copia del
programa que tener cada uno su copia individual.

Administracin de Memoria Principal


Requisitos del Administrador de Memoria
Organizacin Lgica

Los programas son escritos en mdulos.


Los mdulos se pueden escribir y compilar por separado.
A los mdulos se les puede dar diferente grado de proteccin (slo
lectura, slo ejecucin).
Mdulos compartidos.

Administracin de Memoria Principal


Requisitos del Administrador de Memoria
Organizacin Fsica

La memoria disponible para un programa y sus datos puede ser


insuficiente.
El solapamiento permite asignar la misma zona de memoria a
diferentes mdulos.
El programador no sabe cuanto espacio habr disponible.

Administracin de Memoria Principal


Estrategias de Administracin de Almacenamiento
Dirigidas a la obtencin del mejor uso del recurso MEMORIA PRINCIPAL
Estrategia de Solicitud (bsqueda): Cuando obtener un fragmento de programa.
Estrategias de bsqueda por demanda: el siguiente fragmento de programa o de
datos se carga al almacenamiento principal cuando algn programa en ejecucin lo
referencia.
Estrategias de bsqueda anticipada: puede producir un mejor rendimiento del
sistema.
Estrategia de Ubicacin: donde se colocar un fragmento de programa Nuevo.
Estrategia de Reposicin: qu fragmento de programa o de datos desplazar para dar
lugar a los programas nuevos.

Organizacin de la Memoria Fsica

Organizacin Lgica de la Memoria

Procesos y Memoria

Tipos de Memoria Principal


Memoria ROM o Memoria de solo lectura

(Read Only Memory): es un circuito integrado (chip) programado con


unos datos especficos cuando es fabricado.
Los chips de caractersticas ROM no solo se usan en ordenadores, sino en
muchos otros componentes electrnicos.

Tipos de Memoria Principal

Tipos de Memoria Principal


Memoria RAM o Memoria de acceso aleatorio

(Random Access Memory). Es la memoria del usuario que contiene de


forma temporal el programa, los datos y los resultados que estn siendo
usados por el usuario del computador, es decir una memoria operativa
para el usuario.
En general es voltil, pierde su contenido cuando se apaga el ordenador,
es decir mantiene los datos y resultados en tanto el bloque reciba
alimentacin elctrica.
Tanto la RAM como la ROM son circuitos integrados, llamados chips.

Tipos de Memoria Principal

Tcnicas de Administracin de Memoria


Particionamiento

Tcnicas de Administracin de Memoria


Particin Fija

La memoria principal se divide en un conjunto de particiones de tamao


fijo durante el inicio del sistema.
Un proceso se puede cargar completamente en una particin de
tamao menor o igual.
Si un programa no cabe en una particin, el programador debe
disearlo en mdulos cargables.
El uso de la memoria es muy ineficiente, no importa el tamao del
proceso, ocupara toda la particin, se genera una fragmentacin

Tcnicas de Administracin de Memoria


Particin Fija

Tcnicas de Administracin de Memoria


Particin Fija

Ventajas:
Sencilla de implementar.
Poca sobrecarga al Sistema Operativo.
Desventajas:
Fragmentacin interna.
Nmero fijo de procesos activos.

Tcnicas de Administracin de Memoria


Estrategias de Particin Fija

Solicitud:
Por demanda
Ubicacin:
Particin de igual tamao. Si el proceso cabe en una particin se puede
cargar.
Particin de diferente tamao. Asignar a la particin ms pequea. Se
genera dos tipos de colas: una cola, varias colas.
Reemplazo:
Uno de los procesos se saca, segn el planificador.

Tcnicas de Administracin de Memoria


Algoritmo de Ubicacin con Particiones
Particiones del mismo tamao
como todas las particiones tienen el mismo tamao, no importa qu
particin
asignar
Particiones de diferente tamao
se puede asignar a cada proceso la particin ms pequea en la que
cabe
cola para cada particin
los procesos se asignan de manera que se minimiza la memoria
desperdiciada de una particin

Tcnicas de Administracin de Memoria


Estrategias de Ubicacin de Particin Fija

Tcnicas de Administracin de Memoria


Estrategias de Ubicacin de Particin Fija

Tcnicas de Administracin de Memoria


Particin Dinmica

Las particiones se crean dinmicamente por demanda.


Son variables en tamao y nmero.
Cada proceso se carga completamente en una nica particin del
tamao del proceso.
El uso de la memoria es muy ineficiente, se generan muchos huecos
entre las particiones, cada vez ms pequeas, se genera la
fragmentacin externa.
Cada cierto tiempo se debe compactar los segmentos libres, para que

Tcnicas de Administracin de Memoria


Particin Dinmica

Tcnicas de Administracin de Memoria


Efecto del Particionamiento Dinmico

Tcnicas de Administracin de Memoria


Efecto del Particionamiento Dinmico

Tcnicas de Administracin de Memoria


Particin Dinmica

Ventajas:
No existe fragmentacin interna.
Desventajas:
Fragmentacin externa.
Se debe compactar la memoria. El compactado toma tiempo.

Tcnicas de Administracin de Memoria


Estrategias de Particin Dinmica

Solicitud:
Por demanda
Ubicacin:
Primer ajuste. El primer bloque disponible que ubique (parte del inicio).
Siguiente ajuste. El siguiente bloque disponible que ubique (parte desde
la ubicacin actual).
Mejor ajuste. El bloque disponible que deje el menor espacio libre
(bsqueda exhaustiva).
Reemplazo:
Uno de los procesos se saca, segn el planificador.

Tcnicas de Administracin de Memoria


Estrategias de Particin Dinmica

Tcnicas de Administracin de Memoria


Particionamiento Dinmico Algoritmo de Ubicacin
El sistema operativo debe decidir qu bloque libre
asignar a un proceso
Algoritmo del mejor ajuste (best fit)
Elige el bloque que tiene el tamao ms
cercano al solicitado
Peor rendimiento de todos
Como se busca el bloque ms pequeo por
proceso, se produce el menor volumen de
fragmentacin, pero hay que compactar ms a

Tcnicas de Administracin de Memoria


Particionamiento Dinmico Algoritmo de Ubicacin
Algoritmo del primer ajuste (first fit)
Es el ms rpido
Puede haber muchos procesos cargado en la
zona inicial de la memoria, que debe ser
examinada cuando se busca un bloque libre

Tcnicas de Administracin de Memoria


Particionamiento Dinmico Algoritmo de Ubicacin
Algoritmo del siguiente ajuste (Next-fit)
A menudo se asigna un bloque de memoria en
la ltima parte de la memoria donde est el
mayor bloque
El mayor bloque de memoria se parte en
pequeos bloques
Se necesita compactar para obtener un bloque
grande en la ltima zona final memoria

Tcnicas de Administracin de Memoria


Particionamiento
Dinmico Algoritmo de
Ubicacin
Ejemplo:

Antes y Despues de un
bloque de 16 MBytes.

Tcnicas de Administracin de Memoria


Fragmentacin Interna

Deja
parte
de
las
particiones sin usar, pues
los requerimientos de los
procesos rara vez cubren
totalmente la particin a
la cual se asignan y el
espacio no utilizado no se
puede asignar a otro
proceso.

Tcnicas de Administracin de Memoria


Fragmentacin Externa

Deja pequeos espacios


libres
que,
en
su
conjunto, pudieran usarse
por algn proceso pero
que,
al
no
estar
contiguos, no pueden ser
utilizados

Tcnicas de Administracin de Memoria


Fragmentacin Externa

Para
solucionar
este
problema se debe recurrir
a la compactacin de la
memoria para eliminar
los espacios (huecos)
entre
procesos.
Esto
significa que los procesos
deben ser reubicados en
memoria
de
forma
dinmica.

Tcnicas de Administracin de Memoria


En Resumen
Fragmentacin Externa
Existe espacio de memoria para satisfacer una demanda, pero
no es contiguo.

Fragmentacin Interna
La memoria ocupada puede ser ligeramente mas grande que la
demandada; esta diferencia de tamao es memoria interna de la
particin, pero no es usada.

Se reduce la fragmentacin externa por compactacin


Mueva el contenido de memoria de modo de dejar toda la
memoria libre en un solo bloque.
La compactacin es posible solo si la relocacin es dinmica, y
es hecha en tiempo de ejecucin.
Problema de E/S

Tcnicas de Administracin de Memoria


Buddy System
Es un sistema de asignacin de memoria utilizado por
algunos sistemas operativos.
Las magnitudes de las zonas de memoria estn cuantificadas
(determinadas) siguiendo un algoritmo recursivo, y se
expresan en mltiplos de una determinada unidad de
asignacin.
Si no, el bloque se divide en dos trozos iguales (buddies)
Se usan reglas de recursividad, dadas por:
El Sistema Binario: 1, 2, 4, 8, 16, ...

Tcnicas de Administracin de Memoria


Buddy System

Ventajas:
Slo se obtienen ventajas cuando las demandas coinciden con los
posibles tamaos de los bloques:
La bsqueda de un bloque es muy rpida
La fusin de bloques que se liberan, es prcticamente instantnea

Tcnicas de Administracin de Memoria


Buddy System

Tcnicas de Administracin de Memoria


Buddy System

Tcnicas de Administracin de Memoria


Paginacin y Segmentacin

Tcnicas de Administracin de Memoria


Paginacin y Segmentacin

Tcnicas de Administracin de Memoria


Paginacin

El espacio de direcciones puede no ser contiguo; el proceso es alojado


en la memoria fsica donde haya lugar.
Se divide a la memoria fsica en bloques de tamao fijo llamados
cuadros ( el tamao es potencia de 2, entre 512 bytes y 8192 bytes).
Se divide a la memoria lgica en bloques de tamao similar llamados
pginas.
Se guarda informacin de todos los cuadros libres.
Para correr un programa de n pginas, se necesita encontrar n cuadros
libres y cargar el programa.
Se establece una tabla de pginas para traducir las direcciones lgicas
a fsicas.
Fragmentacin interna.

Tcnicas de Administracin de Memoria


Paginacin Simple

La memoria principal se divide en un conjunto de marcos de igual


tamao.
Cada proceso se divide en una serie de pginas del tamao de los
marcos.
Un proceso se carga en los marcos que requiera (todas las pginas), no
necesariamente contiguos.
El SO mantiene una tabla de paginas para cada proceso, que contiene
la lista de marcos para cada pagina.
Una direccin de memoria es un nmero de pgina (P) y un
desplazamiento dentro de la pgina (W).

Tcnicas de Administracin de Memoria


Paginacin Simple

Ventajas:
No hay fragmentacin externa.
Desventajas:
Fragmentacin interna pequea.

Tcnicas de Administracin de Memoria


Estrategias de Paginacin Simple

Solicitud:
Por demanda
Ubicacin:
Se cargan todas las pginas de un proceso en los marcos libres y se
actualiza su tabla de pginas.
Reemplazo:
Una de las pginas se puede sacar y se marca como que no est
cargada. Esto es posible por que cada proceso tiene su propia tabla de
pginas.
No es necesario sacar todas las pginas de un proceso.

Tcnicas de Administracin de Memoria


Paginacin Simple
Ejemplo:

Tcnicas de Administracin de Memoria


Paginacin Simple
Ejemplo:

Tcnicas de Administracin de Memoria


Paginacin Simple
Ejemplo de Cuadros Libres:

Tcnicas de Administracin de Memoria


Implementacin de Tabla de Pginas

La tabla de pginas es guardada en memoria principal.


El registro base de tablas de pginas (PTBR) apunta a la tabla de
pginas.
El registro de longitud de la tabla de pginas (PRLR) indica el
tamao de la tabla de pginas.
En este esquema cada acceso a instruccin/dato requiere dos accesos a
memoria. Uno para la tabla de pginas y otro para el instruccin/dato.
El problema del doble acceso puede ser resuelto por el uso de un cache
hardware especial de adelantamiento llamado registro asociativo o
translation look-aside buffers (TLBs)

Tcnicas de Administracin de Memoria


Proteccin de Memoria

La proteccin de memoria se implementa asociando un bit con cada


cuadro.
Un bit de vlido-invlido agregado a cada entrada en la tabla de
pginas:
Vlido. indica que la pgina asociada est en el espacio de
direcciones lgicas del proceso, por lo tanto es una pgina legal.
Invlido. indica que la pgina no est en el espacio de direcciones
lgicas del proceso.

Tcnicas de Administracin de Memoria


Paginacin Simple

Bit de Vlido (v) o Invlido (i)


en una Tabla de Pginas

Tcnicas de Administracin de Memoria


Esquema de Traduccin de Direcciones

La direccin generada por la CPU est dividida en:


Nmero de pgina (p): usado como un ndice en la tabla de pginas
la cual contiene la direccin base de cada pgina en la memoria
fsica.
Desplazamiento en la pgina (d): combinado con la direccin base
para definir direccin fsica de memoria que es enviada a la unidad
de memoria.

Tcnicas de Administracin de Memoria


Tipos de Direcciones

Lgicas
Referencias a posiciones de memoria independientes de la
asignacin vigente de datos en memoria
La traduccin se realiza a direccin fsica
Relativas
Las direcciones se expresan como posiciones relativas a algn punto
conocido
Fsicas
Es la direccin absoluta o ubicacin real en memoria principal

Tcnicas de Administracin de Memoria


Segmentacin

Esquema de administracin de memoria que soporta la visin de


usuario de la memoria.
Un programa es una coleccin de segmentos. Un segmento es una
unidad lgica como:
programa principal,
procedimiento,
funcin,
variables locales,
variables globales,
bloque comn,
stack,
tabla de smbolos,

Tcnicas de Administracin de Memoria


Segmentacin Simple

Cada proceso y sus datos se dividen en segmentos de longitud variable.


Un proceso carga sus segmentos
necesariamente contiguas.

en

particiones

dinmicas

no

Todos los segmentos de un proceso se deben de cargar en memoria.


Se diferencia de la particin dinmica en que un proceso puede ocupar
ms de un segmento.
El SO mantiene una tabla de segmentos para cada proceso y la lista de
bloques libres.

Tcnicas de Administracin de Memoria


Visin lgica de la Segmentacin

Tcnicas de Administracin de Memoria


Arquitectura de la Segmentacin

Direccin lgica consistente de dupla:


< nmero-segmento, offset>,
Tabla de Segmentos mapean direcciones fsicas en dos
dimensiones; cada entrada en la tabla tiene:
base contiene la direccin fsica inicial donde el segmento reside
en memoria. lmite especifica la longitud del segmento.
Registro base de la tabla de segmentos (STBR) apunta a la
locacin de la tabla de segmentos en memoria.
Registro de longitud de la tabla de segmentos (STLR) indica el
nmero de segmentos usados por el programa; el nmero de segmento

Tcnicas de Administracin de Memoria


Arquitectura de la Segmentacin

Relocacin.
Dinmica
Por tabla de segmentos
Compartir
Segmentos compartidos
Igual nmero de segmento
Alocacin
Primer lugar/mejor lugar
Fragmentacin externa

Tcnicas de Administracin de Memoria


Arquitectura de la Segmentacin

Proteccin. Con cada entrada en la tabla de segmentos se asocia:


bit de validacin => 0
segmento ilegal
privilegios read/write/execute
Bits de proteccin asociados con segmentos; el cdigo compartido
ocurre a nivel de segmento.
Dado que los segmentos varan en longitud, la alocacin de memoria es
un problema de alocacin dinmica de almacenaje.
Un ejemplo de segmentacin se muestra en el siguiente diagrama

Tcnicas de Administracin de Memoria


Ejemplo de Segmentacin

Tcnicas de Administracin de Memoria


Segmentacin Simple

Ventajas:
No hay fragmentacin interna.
Desventajas:
Fragmentacin externa, pero menor (compatacin).

Tcnicas de Administracin de Memoria


Estrategias de Segmentacin Simple

Solicitud:
Por demanda
Ubicacin:
Se cargan los segmentos de un proceso en los bloques libres y se
actualiza su tabla de segmentos.
Reemplazo:
Uno de los segmentos se puede sacar y se marca como que no est
cargada. Esto es posible por que cada proceso tiene su propia tabla de
segmentos.

Tcnicas de Administracin de Memoria


Validacin del Direccionamiento

No hay correspondencia entre direccin lgica y direccin fsica.


El SO trabaja con direcciones lgicas.
El SO debe asegurar que cada direccin lgica est dentro del rango de
direcciones del proceso
El SO implementa la tabla de segmentos como un arreglo de registros
base limite.
La segmentacin por lo general es invisible al programador.
Es el compilador el que define los segmentos.

Vous aimerez peut-être aussi