Está en la página 1de 19

3.

Gestión de
Memoria
Facultad de Ciencias de la Ingeniería
Ingeniería Informática y Ciencias de la
Computación

Ing. Jonathan Carrillo


Quito, Enero 2018

Operating System Concepts – 9th Edit9on Silberschatz, Galvin and Gagne ©2013
Contenido
 Memoria Principal
 Memoria Virtual

Operating System Concepts – 9th Edition 1.2 Silberschatz, Galvin and Gagne ©2013
Introducción

 Las memorias se utilizan para retener los bits y representar


programas, datos o cualquier otra entidad operable en un
computador.
 Los seres humanos tenemos dos tipos de memoria: una transitoria
(memoria a corto plazo) y otra fija (memoria de larga duración) que
se mantiene inalterable atendiendo a actividades imprescindibles y
no modificables.
 De igual manera los computadores tienen estos tipos básicos de
almacenamiento, y constituyen lo que se denomina memoria
principal o interna. Una inalterable (ROM) y otra modificable (RAM)

Operating System Concepts – 9th Edition 1.3 Silberschatz, Galvin and Gagne ©2013
Introducción

 Una computadora tiene un monto limitado de memoria, el cual


debe ser distribuido a todos los programas y procesos.
 El kernel esta a cargo de colocar estos recursos de memoria. El
kernel implementa sistemas de memoria virtual, lo cual le permite
ejecutar más programas en memoria que el sistema posee
físicamente.

Modelo de pirámide de un Sistema Operativo


Operating System Concepts – 9th Edition 1.4 Silberschatz, Galvin and Gagne ©2013
Introducción

 Para poder aprovechar los distintos tipos de memoria es necesario


un conjunto de mecanismos, así como su respectiva
implementación. Estos mecanismos deben considerar las
necesidades del sistema de información para que la atención a los
procesos se mantenga con un buen nivel de desempeño

Operating System Concepts – 9th Edition 1.5 Silberschatz, Galvin and Gagne ©2013
Introducción

 Storage Systems

ALMACENAMIENTO
VOLATIL
ALMACENAMIENTO
PRIMARIO

solid state drive

SSHD

ALMACENAMIENTO
ALMACENAMIENTO
SECUNDARIO O

NO VOLATIL
EN CONEXION

ALMACENAMIENTO
TERCIARIO O
SIN CONEXION

Operating System Concepts – 9th Edition 1.6 Silberschatz, Galvin and Gagne ©2013
Funciones y operaciones del administrador de memoria

Espacio de direccionamiento*
 La gestión de memoria está íntimamente ligada a la gestión de
procesos, ambas tienen el fin de permitir que el ordenador puede
ejecutar los procesos en modo de multitarea.
 Todos los programas a ejecutar deben cargarse a la memoria del
sistema antes de ser utilizados, es decir, el sistema operativo debe
administrar la memoria para permitir que varios procesos la
compartan.
 La memoria está estructurada como un arreglo direccionable de
bytes. Esto es, al solicitar el contenido de una dirección específica
de memoria, el hardware entregará un byte (8 bits), y no menos.
 Un procesador que soporta un espacio de direccionamiento de 16
bits puede referirse directamente a hasta 65,536 bytes (64KB).
Estos procesadores fueron comunes en las décadas de 1970 y
1980—Los más conocidos incluyen al Intel 8080 y 8085, Zilog Z80,
MOS 6502 y 6510, y Motorola 6800.

* Para que los programas informáticos guarden y recuperen los datos almacenados, cada unidad de datos
debe tener una dirección en la que pueda localizarse individualmente, o bien el programa no podrá
encontrar y manipular los datos.

Operating System Concepts – 9th Edition 1.7 Silberschatz, Galvin and Gagne ©2013
Funciones y operaciones del administrador de memoria

Espacio de direccionamiento
 Hoy en día, los procesadores dominantes son de 32 o 64 bits. En
el caso de los procesadores de 32 bits, sus registros pueden
referenciar hasta 4,294,967,296 bytes (4GB) de RAM, que está ya
dentro de los parámetros de lo esperable hoy en día.
 Un procesador de 64 bits podría direccionar hasta
18,446,744,073,709,551,616 bytes (16 Exabytes). Los
procesadores comercialmente hoy en día no ofrecen esta
capacidad de direccionamiento principalmente por un criterio
económico: Al resultar tan poco probable que exista un sistema
con estas capacidades, los chips actuales están limitados entre
240 y 248 bits — 1 y 256 terabytes. Esta restricción debe seguir
teniendo sentido económico por muchos años aún.

Operating System Concepts – 9th Edition 1.8 Silberschatz, Galvin and Gagne ©2013
Funciones y operaciones del administrador de memoria

 En los primeros sistemas de tipo monoproceso era suficiente con


permitir que los programas usaran la totalidad de la memoria
disponible del modo que les resultara más conveniente.
 Sin embargo, conforme se pasó al modelo de multitarea, esta
estrategia no resultó viable debido a las “colisiones de memoria”
que producían los distintos programas al intentar cargar elementos
distintos en las mismas posiciones de memoria*, propiciando
estados inconsistentes.
 Debido a esa situación, se impuso construir mecanismos por los
cuales los programas pudieran usar solo una parte de la
memoria, sin intervenir en la ejecución de los demás. De este
modo, la administración de memoria comenzó como el esquema
por el cual los procesos pueden solicitar rangos de memoria y
recibir las asignaciones con diversos mecanismos de protección.

*Para que un programa no pueda ocupar el espacio de memoria de otro programa se


denominado protección de memoria.

Operating System Concepts – 9th Edition 1.9 Silberschatz, Galvin and Gagne ©2013
Funciones y operaciones del administrador de memoria

Hardware: de la unidad de manejo de memoria (MMU)


 En los sistemas multitarea (dos o más programas ejecutándose),
se vio la necesidad de tener más de un programa cargado en
memoria.
 Esto conlleva que el sistema operativo junto con información del
programa a ejecutar debe resolver cómo ubicar los programas
en la memoria física disponible.
 El responsable del manejo de los accesos a la memoria por parte
de la CPU y de la abstracción de un espacio virtualmente ilimitado
para realizar sus operaciones (incluso cuando la memoria real es
mucho menor a la solicitada)en la MMU.

Operating System Concepts – 9th Edition 1.10 Silberschatz, Galvin and Gagne ©2013
Funciones y operaciones del administrador de memoria

Hardware: de la unidad de manejo de memoria (MMU)

Entre las funciones de la MMU se encuentran la traducción de las direcciones


lógicas (o virtuales) a direcciones físicas (o reales), la protección de la
memoria y el control de la memoria caché

Operating System Concepts – 9th Edition 1.11 Silberschatz, Galvin and Gagne ©2013
Funciones y operaciones del administrador de memoria

La memoria caché
 Cuando el procesador solicita el contenido de una dirección de
memoria y esta no está aún disponible, tiene que detener su
ejecución (stall) hasta que los datos estén disponibles.
 El CPU no puede, a diferencia del sistema operativo, “congelar”
todo y guardar el estado para atender a otro proceso: Para el
procesador, la lista de instrucciones a ejecutar es estrictamente
secuencial, y todo tiempo que requiere esperar a una transferencia
de datos es tiempo perdido.
 La respuesta para reducir esa espera es la memoria caché.
Esta es una memoria de alta velocidad, situada entre la memoria
principal y el procesador propiamente, que guarda copias de las
páginas que van siendo accesadas
 Cuando el procesador solicita al hardware determinada dirección
de memoria, el hardware no sólo transfiere a la memoria caché el
byte o palabra solicitado, sino que transfiere un bloque o página
completo.

Operating System Concepts – 9th Edition 1.12 Silberschatz, Galvin and Gagne ©2013
Funciones y operaciones del administrador de memoria

Memoria Virtual
 La paginación de memoria dividen los procesos en pequeñas
partes lógicas denominadas páginas.
 Del mismo modo, la memoria es dividida en trozos del mismo
tamaño que las páginas llamados marcos de página (frames).
 Para ofrecer a los procesos mayor espacio en memoria del que
existe físicamente, el sistema emplea espacio en almacenamiento
secundario (típicamente, disco duro), a través de un esquema de
intercambio (swap) guardando y trayendo páginas enteras.

Operating System Concepts – 9th Edition 1.13 Silberschatz, Galvin and Gagne ©2013
Funciones y operaciones del administrador de memoria

Memoria Virtual

Operating System Concepts – 9th Edition 1.14 Silberschatz, Galvin and Gagne ©2013
Funciones y operaciones del administrador de memoria

Memoria Virtual

Proceso Swap de memoria

Operating System Concepts – 9th Edition 1.15 Silberschatz, Galvin and Gagne ©2013
Funciones y operaciones del administrador de memoria

Memoria Virtual
 La Segmentación de memoria dividen los procesos en pequeñas
partes o páginas.
 Cuando un sistema operativo inicia un proceso, no se limita a
volcar el archivo ejecutable a memoria, sino que tiene que
proporcionar la estructura para que éste vaya guardando la
información de estado relativa a su ejecución.

Espacio de libres Espacio de memoria que se emplea para la asignación dinámica de


memoria durante la ejecución del proceso. Este espacio se ubica por encima de la sección
de datos, y crece hacia arriba. Cuando el programa es escrito en lenguajes que requieren
manejo dinámico manual de la memoria (como C), esta área es la que se maneja a través
de las llamadas de la familia de malloc y free.

Operating System Concepts – 9th Edition 1.16 Silberschatz, Galvin and Gagne ©2013
Funciones y operaciones del administrador de memoria

Memoria Virtual
Segmentación: El espacio en memoria de un proceso

Operating System Concepts – 9th Edition 1.17 Silberschatz, Galvin and Gagne ©2013
Funciones y operaciones del administrador de memoria

Sistemas híbridos
 Desde el diseño del sistema operativo Mutlics (Multiplexed
Information and Computing Service) se planteó combinar las
virtudes de la segmentación con las de la paginación.
 La mayoría de los sistemas que emplean Internet usan tanto la
paginación como la segmentación. Se trata de dispositivos
móviles basados en procesadores de la familia ARMv7-A. ARM, los
cuales dominan más de 90% del mercado de procesadores móviles
y son muy eficientes en lo que se refiere al consumo de energía
 Para dispositivos móviles también tienen versiones para uso de
segmentación pura, para aplicaciones de tiempo real, y sin
protección de memoria, para aplicaciones embebidas de propósito
particular.
 Otra de las implementaciones que goza de gran popularidad es la
empleada por los procesadores Intel de la familia x86, ya que
estos han logrado mantener la compatibilidad desde sus modelos
286 hasta los actuales procesadores de 64 bits de la serie i (i3 a i7).

Operating System Concepts – 9th Edition 1.18 Silberschatz, Galvin and Gagne ©2013
Funciones y operaciones del administrador de memoria

Comandos Linux
 free –m
 Como root para liberar memoria:
sync && echo 3 > /proc/sys/vm/drop_caches
 cat /proc/meminfo
 cat /proc/meminfo | grep MemFree
 vmstat –s

Operating System Concepts – 9th Edition 1.19 Silberschatz, Galvin and Gagne ©2013

También podría gustarte