0% encontró este documento útil (0 votos)
41 vistas35 páginas

Sesion9 10

El documento aborda la administración de memoria en sistemas operativos, centrándose en la multiprogramación, paginación y segmentación. Se discuten las ventajas y desventajas de la paginación, como la reducción de la fragmentación externa y el incremento de costos en hardware y software. Además, se presentan políticas de lectura, colocación y reemplazo de páginas, junto con una introducción a la segmentación y sus implicaciones en la gestión de memoria.

Cargado por

Carlithos Bncs
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
41 vistas35 páginas

Sesion9 10

El documento aborda la administración de memoria en sistemas operativos, centrándose en la multiprogramación, paginación y segmentación. Se discuten las ventajas y desventajas de la paginación, como la reducción de la fragmentación externa y el incremento de costos en hardware y software. Además, se presentan políticas de lectura, colocación y reemplazo de páginas, junto con una introducción a la segmentación y sus implicaciones en la gestión de memoria.

Cargado por

Carlithos Bncs
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Administración de memoria

Mgtr. Karla Reyes Burgos

Sesión
9-10
2
Contenidos

• Multiprogramación en Memoria virtual


• Paginación
• Segmentación

M. Tesen
Multiprogramación en
Memoria Virtual
Paginación
Hoy en día la memoria primaria se divide en páginas o en segmentos.
Las páginas son pedazos del proceso, todos del mismo tamaño,
mientras que los segmentos son pedazos de tamaño diferente,
que responden a las secciones lógicas del proceso. El objetivo de
esto es no tener que colocar los pedazos de un proceso contíguos,
si no regados por la memoria, y así no depender de bloques
contiguos del tamaño adecuado(Como en las particiones
Estáticas y Dinámicas).
La memoria se divide en un número de bloques de tamaños fijos,
denominados marcos de página. El espacio de direcciones virtuales de un
proceso (todas las posibles direcciones que puede generar el proceso)
también se divide en bloques de tamaño fijo, llamados páginas, del mismo
tamaño que los marcos de página.
La asignación de memoria consiste en encontrar un número suficiente de
marcos de página sin usar para cargar las páginas de los procesos solicitadas.
Mediante un mecanismo de traducción de direcciones, se asignan las páginas
virtuales a su contrapartida física. A esto se le conoce como Mapping
Ventajas

1. Es posible comenzar a ejecutar un programa, cargando solo una parte del mismo en memoria, y el
resto se cargará bajo la solicitud.
2. No es necesario que las páginas estén contiguas en memoria, por lo que no se necesitan procesos
de compactación cuando existen marcos de páginas libres dispersos en la memoria.
3. Es fácil controlar todas las páginas, ya que tienen el mismo tamaño.
4. El mecanismo de traducción de direcciones (DAT) permite separar los conceptos de espacio de
direcciones y espacios de memoria. Todo el mecanismo es transparente al usuario.
5. Se libera al programador de la restricción de programar para un tamaño físico de memoria, con lo
que s e aumenta su productividad. Se puede programar en función de una memoria mucho más
grande a la existente.
6. Al no necesitar cargar un programa completo en memoria para su ejecución, se puede aumentar
el número de programas multiprogramándose.
7. Se elimina el problema de fragmentación externa.
Desventajas

1. El costo de hardware y software se incrementa, por la nueva información que debe manejarse y el
mecanismo de traducción de direcciones necesario. Se consume mucho mas recursos de memoria,
tiempo en el CPU para su implantación.
2. Se deben reservar áreas de memoria para las PMT de los procesos. Al no ser fija el tamaño de
estas, se crea un problema semejante al de los programas (como asignar un tamaño óptimo sin
desperdicio de memoria, u "ovearhead" del procesador).
3. Aparece el problema de fragmentación interna. Así, si se requieren 5K para un programa, pero las
paginas son de 4K, deberán asignárseles 2 paginas (8k), con lo que quedan 3K sin utilizar. La suma de
los espacios libres dejados de esta forma puede ser mayor que el de varias paginas, pero no podrá
ser utilizados. Debe asignarse un tamaño promedio a las páginas, evitando que si son muy pequeñas,
se necesiten TABLAS BMT y PMT muy grandes, y si son muy grandes, se incremente el grado de
fragmentación interna.
Mapping

En un sistema con multiprogramación es necesario realizar un proceso


de traducción (reubicación) de las direcciones de memoria a las que
hacen referencia las instrucciones de un programa(direcciones lógicas)
para que se correspondan con las direcciones de memoria principal
asignadas al mismo (direcciones físicas). Este proceso de traducción
crea, por tanto, un espacio lógico(o mapa) independiente para cada
proceso proyectándolo sobre la parte correspondiente de la memoria
principal de acuerdo con una función de traducción:

Traducción(dirección lógica)-> dirección física


Dado que hay que aplicar esta función a cada una de las direcciones
que genera el programa, es necesario que sea el procesador el
encargado de realizar esta traducción.
La función de traducción la lleva a cabo concretamente un módulo
específico del procesador denominado unidad de gestión de memoria
(MMU,Memory Management Unit). El sistema operativo deberá poder
especificar a la MMU del procesador qué función de traducción debe
aplicar al proceso que está ejecutando en ese momento.
DF=(TamañoPágina*Frame)+Distancia
Mapeo o Mapping
Mapping

Tabla de páginas
Desarrollar los ejercicios propuestos
POLÍTICAS DE ADMINISTRACIÓN DE MEMORIA

POLÍTICAS DE POLÍTICAS DE POLÍTICAS DE


LECTURA O COLOCACIÓN O REEMPLAZO O
BÚSQUEDA UBICACIÓN REUBICACIÓN
POLÍTICAS DE LECTURA O BÚSQUEDA

Está relacionada con la decisión de cuándo se debe cargar una página en la


memoria principal.
• Con la paginación por demanda, se trae una página a la memoria
principal sólo cuando se hace referencia a una posición en dicha página:
• Cuando un proceso se ejecute por primera vez, se producirán muchos
fallos de página.
• Con la paginación previa, se cargan más páginas de las necesarias:
• Es más eficiente traer a la memoria un número de páginas contiguas.
POLÍTICAS DE COLOCACIÓN O UBICACIÓN

Se emplean para decidir en qué dirección de memoria se cargará la página o


segmento a traerse a memoria.
• En el caso de páginas es simple pues todas son del mismo tamaño.
Puesto que el HW de traducción de direcciones y el HW de acceso a la
memoria principal pueden desarrollar sus fucniones en cualquier
combinación de marco de página con idéntica eficiencia.
• En el caso de los segmentos se implantan algunos posibles algoritmos
vistos ya con anterioridad como “Primer ajuste”,“Mejor ajuste”, “Siguiente
ajuste”, “Peor ajuste”.
POLÍTICAS DE REEMPLAZO O REUBICACIÓN

Estas políticas se utilizan para decidir, en caso de que haya que traer una
página a memoria primaria y ésta esté llena, qué página debe sacarse de
memoria para hacer espacio a la nueva que llega.
Para tomar la decisión más acertada en este aspecto, debe tenerse en
consideración cuántas páginas de cada proceso pueden cargarse a la vez a
memoria (mientras más páginas haya, se generan menos interrupciones
“Fallos de Página” pero se desperdicia más espacio con páginas que tal vez no
se estén usando), o sea, cuál es el “Conjunto de Trabajo" del proceso.
Las políticas o algoritmos de reemplazo básicos, que podrían
implementarse en un SO son:
❖ Óptima
❖ Usada menos recientemente (LRU)
❖ Primera en Entrar, primera en salir(FIFO)
❖ Reloj (Clock o NUR)
VIDEOS DE POLÍTICAS DE REEMPLAZO O REUBICACIÓN

FIFO https://www.youtube.com/watch?v=ztpkJZtCEfw
OPT https://www.youtube.com/watch?v=Xqhk3w4EZeo
LRU https://www.youtube.com/watch?v=17UTRJcQ7rc
RELOJ https://www.youtube.com/watch?v=JJ_4xdxcCno&t=5s

Complementar la visualización de los videos con la revisión del libro de Stallings Páginas
361-365
Desarrollar los ejercicios propuestos
Segmentación

La segmentación es un
esquema de administración
de la memoria que soporta la
visión que el usuario tiene de
la misma.
Visión del usuario
Hay un acuerdo general en que el
usuario o programador de un
sistema no piensa en la memoria
como una tabla lineal de palabras.
Más bien prefieren concebirla
como una colección de segmentos
de longitud variable, no
necesariamente ordenados
Un espacio de direcciones lógicas es una
Segmento 0
colección de segmentos.
Segmento 4

Segmento 1

Segmento 3

Segmento 2
Cada segmento tiene un nombre y
una longitud. LÍMITE BASE 1400
Las direcciones especifican tanto el Segmento 0
0 1000 1400
nombre del segmento como el
2400
desplazamiento dentro del 1 400 6300
segmento. Por lo tanto, el usuario 400 4300
especifica cada dirección mediante 2
3200
1100 3200
dos cantidades: un nombre de 3 Segmento 3
4700
segmento y un desplazamiento. 4
1000
4300
(Compárese este esquema con la Segmento 2 4700
paginación, donde el usuario
especificaba solamente una única Segmento 4
dirección, que el hardware 5700
particionaba en número de página y
desplazamiento, siendo todo ello
invisible al programador).

ESPACIO DE DIRECCIONAMIENTO FÍSICO 6300


Segmento 1
6700
LÍMITE BASE 1400

Segmento 0 1400
Segmento 0
0 1000
Segmento 4 2400
1 400 6300

Segmento 1 400 4300


2
3200
1100 3200
3 Segmento 3
Segmento 3 1000 4700
4 4300
Segmento 2 4700
Segmento 2
Segmento 4
5700

ESPACIO DE DIRECCIONAMIENTO LÓGICO

ESPACIO DE DIRECCIONAMIENTO FÍSICO 6300


Segmento 1
6700
Ventajas

• El esquema de segmentación ofrece las siguientes ventajas:


• El programador puede conocer las unidades lógicas de su programa, dándoles un
tratamiento particular.
• Es posible compilar módulos separados como segmentos el enlace entre los
segmentos puede suponer hasta tanto se haga una referencia entre segmentos.
• Debido a que es posible separar los módulos se hace más fácil la modificación de
los mismos. Cambios dentro de un módulo no afecta al resto de los módulos.
Ventajas

• Es fácil el compartir segmentos.


• Es posible que los segmentos crecen dinámicamente según las
necesidades del programa en ejecución.
• Existe la posibilidad de definir segmentos que aún no existan. Así,
no se asigna memoria, sino a partir del momento que sea
necesario hacer usos del segmento. Un ejemplo de esto, serian los
arreglos cuya dimensión no se conoce hasta tanto no se comienza
a ejecutar el programa. En algunos casos, incluso podría retardar la
asignación de memoria hasta el momento en el cual se referencia
el arreglo u otra estructura de dato por primera vez.
Desventajas
• Hay un incremento en los costos de hardware y de software para
llevar a cabo la implantación, así como un mayor consumo de
recursos: memoria, tiempo de CPU, etc.
• Debido a que los segmentos tienen un tamaño variable se pueden
presentar problemas de fragmentación externas, lo que puede
ameritar un plan de reubicación de segmentos en memoria principal.
• Se complica el manejo de memoria virtual, ya que los discos
almacenan la información en bloques de tamaños fijos, mientras los
segmentos son de tamaño variable. Esto hace necesaria la existencia
de mecanismos más costosos que los existentes para paginación.
Desventajas
• Al permitir que los segmentos varían de tamaño, puede ser necesarios
planes de reubicación a nivel de los discos, si los segmentos son
devueltos a dicho dispositivo; lo que conlleva a nuevos costos.
• No se puede garantizar, que al salir un segmento de la memoria, este
pueda ser traído fácilmente de nuevo, ya que será necesario encontrar
nuevamente un área de memoria libre ajustada a su tamaño.
• La compartición de segmentos permite ahorrar memoria, pero requiere
de mecanismos adicionales da hardware y software.
• Estas desventajas tratan de ser minimizadas, bajo la técnica conocida
como Segmentación paginada.
Conclusiones
En esta sesión abordamos los algoritmos que usan los sistemas operativos
modernos para gestionar la memoria, especialmente los ligados a la administración
de memoria virtual.
Bibliografía

● FLYNN, Ida; MCHOES, Ada (2001): Sistemas Operativos. 3°


Edición. International Thomson Editores.
● TANENBAUM, Andrew (2003): Sistemas Operativos
Modernos. 2° Edición. Pearson Education
● STALLINGS, William (2001): Sistemas Operativos. 4° Edición.
Pearson Education

M. Tesen
Ing. Karla Reyes Burgos
http://kreyesburgos.blogspot.pe/p/sistemasoperativos.html
https://www.youtube.com/playlist?list=PLxuCGUo-bleFNKegswRS7D8x9nIEX4h3P

También podría gustarte