Está en la página 1de 4

Universidad Mariano Gálvez de Guatemala

Facultad de Ingeniería en Sistemas de la


Información
Sistemas Operativos I
Inga. Emma Gabriela Luna López

Gestión de Memoria en Sistemas Multi


Programados

Álvaro Alejandro Jerónimo Solís


1290-18-8726

La Antigua Guatemala 23 de Octubre de 2021


Para que un proceso pueda ejecutarse debe estar ubicado en la memoria
principal del ordenador. Una parte del sistema operativo se va a encargar de
gestionar la memoria principal, de forma que los procesos puedan residir en la
memoria sin conflictos. La gestión de la memoria implica varias tareas, una de
ellas es llevar un registro de qué zonas están libres (es decir, no están siendo
utilizadas por ningún proceso), y qué zonas están ocupadas por qué procesos.

Gestión de la memoria en los sistemas Multi Programados

En un sistema de multiprogramación la memoria debe ser compartida por


varios procesos de cara a obtener una mayor utilización de los recursos del
ordenador. Esto provoca que la gestión de la memoria se complique
sustancialmente. En primer lugar, hay que llevar un recuento de las zonas de
memoria ocupadas por los procesos. Así, cuando un nuevo proceso entre en la
memoria se le asignará una zona que estaba libre. Otro problema a resolver
viene dado por el hecho de que en el momento de escribir un programa no se
sabe en qué zona de memoria se ubicará, siendo posible que durante la vida
de un proceso éste cambie varias veces de emplazamiento. Habrá que tener
en cuenta, también, la protección de las zonas de memoria ocupadas por los
procesos, se máxime en sistemas multiusuario donde los procesos pueden
pertenecer a distintos usuarios.

Administración en sistemas Multiprogramados.

 Es deseable que haya varios procesos en memoria para su ejecución


concurrente.
 Se debe compartir la memoria entre varios procesos que esperan
asignación de la misma.
 Esquemas de asignación de memoria:

Primer esquema de asignación de memoria: Particiones

 La memoria está dividida de antemano en espacios (Particiones).


 Un proceso necesita ejecutarse -> Se le asigna uno de dichos
 Espacios (Partición).
 Cada partición puede contener un único proceso.

Particiones Fijas: en donde se encuentran particiones de igual tamaño, en


donde:

 Nivel de multiprogramación limitado por número de particiones.


 Hay una cola con procesos que quieren utilizar memoria y ejecutarse.
 Hay una tabla para indicar particiones ocupadas y libres.
• Particiones Variables: en donde su funcionamiento:

– Inicialmente: Toda la memoria (salvo partición del S.O.) está disponible para
procesos.

– Llega un proceso:

 Se introduce en un espacio libre y el espacio no ocupado se convierte en


uno nuevo.
 Libera su zona de memoria.
 Se convierte en un espacio.
 Dicho espacio se fusiona con los adyacentes.
 Y se conserva una tabla de partes de memoria ocupada y libre de la cola
de entrada de procesos en memoria.

Un ejemplo es cuando los procesos se cargan en memoria, para así


competir con la CPU y al terminar liberar memoria.

– Intercambio (swapping): En un sistema con particiones estáticas el número


de procesos con posibilidades de estar en estado listo viene determinado por el
número de particiones, y en uno de particiones dinámicas por el tamaño de la
memoria principal y el tamaño de los procesos, ya que en ambos métodos un
proceso permanece en una partición hasta que finaliza.

La razón por la que se aumenta el número de procesos con posibilidades de


tener instrucciones en memoria principal es porque cuanto mayor sea este
número, es menos probable que se dé la circunstancia de que todos estén
bloqueados y, por lo tanto, es menor la posibilidad de que la CPU permanezca
inactiva.

– Paginación: (solución a fragmentación externa)

 Permite que la memoria de un proceso no sea contigua.


 Hay una distinción entre direcciones lógicas y físicas.
 La memoria física la dividimos en bloques de tamaño fijo: marcos.

– La memoria lógica:

 La dividimos en bloques llamados: páginas de igual tamaño que el


marco.
 Las páginas de un proceso se cargan en los marcos de la memoria
principal que estén disponibles:

Finalmente tenemos “trozos” del proceso donde la memoria está disponible.

– Segmentación:

El espacio de direcciones lógicas se compone de un conjunto de segmentos:


Cada uno tiene un nombre y una longitud.

Para el usuario las direcciones especifican el nombre del segmento y el


desplazamiento dentro de él.

 El nombre del segmento se numera <número segmento,


desplazamiento>

– Por ejemplo el procesador Intel 8086 usa segmentación, en donde los


programas se separan en:

 Segmento de Código.
 Segmento de Datos.
 Segmento de Pila.

Creando una división lógica del proceso en diferentes segmentos.

– Segmentación paginada:

La Memoria lógica está dividida en bloque llamados segmentos que contienen


las regiones de un proceso.

 Dirección lógica=<nº segmento, desplazamiento>=<S,d>


 Los segmento están divididos en páginas de igual tamaño que los
marcos
 Las páginas de un proceso se cargan en marcos de la memoria
principal.
 Cada segmento tiene asociada una tabla de páginas
 Se usa un registro límite y base de la tabla de páginas para cada
segmento

También podría gustarte