Sei sulla pagina 1di 8

Conceptos Básicos

de Memoria
Ing. Luis Antonio Esquivel Vieyra
Introducción
• Una parte esencial de la ejecución de un sistema
operativo es el manejo de memoria, esto define
directamente el aprovechamiento directo de los
recursos disponibles en nuestro ordenador.

• La parte del sistema operativo que administra (parte


de) la jerarquía de memoria se conoce como
administrador de memoria. Su trabajo es administrar la
memoria con eficiencia: llevar el registro de cuáles
partes de la memoria están en uso, asignar memoria a
los procesos cuando la necesiten y desasignarla
cuando terminen.
Introducción
Entre sus funciones están:

• Control de que partes de la memoria están utilizadas o libres.

• Asignar memoria a procesos y liberarla cuando terminan.

• Administrar intercambio entre memoria y disco (Memoria Virtual)

Las herramientas básicas de la gestión de memoria son la paginación y la segmentación. En


la  paginación, cada proceso se divide en páginas de tamaño constante y relativamente
pequeño.  La segmentación  permite el uso de partes de tamaño variable.  También    es  
posible combinar la segmentación y la paginación en un único esquema de gestión de
memoria.

En un sistema monoprogramado, la memoria principal se divide en dos partes: una parte


para el sistema operativo (monitor residente, núcleo) y otra parte para el programa que se
ejecuta en ese instante. En un sistema multiprogramado, la parte de “usuario” de la memoria
debe subdividirse aún más para hacer sitio a varios procesos. La tarea de subdivisión la lleva
a cabo dinámicamente el sistema operativo y se conoce como gestión de memoria.
Introducción

• En un sistema multiprogramado resulta vital una


gestión efectiva de la memoria. Si sólo hay unos
pocos procesos en memoria, entonces la mayor
parte del tiempo estarán esperando a la E/S y el
procesador estará desocupado. Por ello, hace
falta repartir eficientemente la memoria para
meter tantos procesos como sea posible.
Administración de Memoria
contigua simple
En la “asignación contigua” cada programa ocupa un bloque contiguo y sencillo de
localizaciones de almacenamiento.

En la “asignación no contigua” un programa se divide en varios bloques o “segmentos”


que pueden almacenarse en direcciones que no tienen que ser necesariamente
adyacentes, por lo que es más compleja pero más eficiente que la asignación continua.

El tamaño de los programas está limitado por la cantidad de memoria principal, pero se
puede superar este límite con técnicas de “recubrimientos”, con las siguientes
características:

• Si una sección particular del programa ya no es necesaria, se carga otra


sección desde el almacenamiento secundario ocupando las áreas de memoria liberadas
por la sección que ya no se necesita.

• La administración manual por programa del recubrimiento es complicada y


dificulta el desarrollo y el mantenimiento.
Administración de
Memoria particional
• En la mayoría de los esquemas de gestión de memoria, se puede suponer
que el sistema operativo ocupa una parte fija de la memoria principal y el
resto de la memoria está disponible para ser usado por varios procesos.

• El esquema más sencillo de gestión de la memoria disponible es dividirla


en particiones con límites fijos. Las particiones pueden ser del mismo o de
distinto tamaño, pero generalmente serán de distinto tamaño.

• Si las particiones son del mismo tamaño, la ubicación de un proceso en la


memoria es trivial, ya que mientras haya una partición libre, puede
cargarse un proceso en esa partición. Cuando todas las particiones están
ocupadas por procesos que no están listos para ejecutarse, uno de esos
procesos debe sacarse y hacer sitio para un nuevo proceso.

• Si las particiones son de distinto tamaño, hay dos maneras posibles de


asignar los procesos a las particiones:
• La forma más simple es asignar cada proceso a la partición más pequeña en la que quepa,
es decir, solo en la que mejor se adapte, para lo cual es preciso conocer la cantidad máxima de
memoria, que necesitaría cada uno de los procesos y realmente esta información no siempre se
conocerá. En este caso, será necesaria una cola de planificación para cada partición, que albergue
los procesos listos para ejecutarse, cuyo destino es esa partición. La ventaja de este enfoque es que
los procesos están siempre asignados de forma que se minimiza la memoria desaprovechada dentro
de cada partición.Este enfoque que parece óptimo desde el punto de vista de una partición
individual, no lo es, desde el punto de vista del sistema global, ya que si tenemos particiones grandes
y los procesos que van llegando son todos pequeños, las colas de las particiones grandes
permanecerán sin usar, incluso aunque algún proceso más pequeño pudiera haber sido asignado a
las mismas.

• Una solución mejor sería emplear una sola cola para todos los procesos y cuando se va a
cargar un proceso en memoria principal, se selecciona la partición más pequeña disponible que
pueda albergar al proceso. Si todas las particiones están ocupadas, se debe tomar una decisión de
intercambio y puede darse preferencia al intercambio de la partición más pequeña, que pueda
contener el proceso entrante. También es posible considerar otros factores, tales como, prioridades y
preferencia para descargar procesos bloqueados antes que procesos listos.

El uso de particiones de distinto tamaño proporciona cierto grado de flexibilidad a las particiones fijas,
además, ambos tipos de esquema de partición fija son relativamente simples y exigen un software del
sistema operativo sencillo y una sobrecarga de procesamiento mínima.

El particionamiento fijo consiste en la asignación estática de la memoria particionada, que es una


forma de hacer posible la multiprogramación, dividiendo la memoria física disponible en varias
particiones, cada una de las cuales puede ser asignada a diferentes procesos.

Dependiendo de cómo y cuándo son creadas y modificadas esas particiones, el particionamiento de


la memoria, puede ser estático o dinámico.
Actividad I (Primer Parcial)
• Favor de Investigar como administraba la memoria
el sistema operativo MS-DOS en sus diferentes
versiones, desde la 1 a la 6.22 e ilustrar si hubo
diferencias significativas en cada una de ellas.
Favor de escribir los resultados de su investigación
en su libreta, tomarle una foto y subirlo a la
plataforma. No se aceptarán trabajos de Copy
Paste en Word o cualquier otro programa. Tome
nota de lo más importante en su libreta ya que la
actividad integradora abarca un resumen de todos
los temas que veremos en el parcial.

Potrebbero piacerti anche