2. Administración de las memorias
Es el acto de gestionar la memoria
de un dispositivo informático. El proceso de asignación
de memoria a los programas que la solicitan.
La gestión de la memoria principal de una
computadora es una tarea de suma importancia
para el funcionamiento de la misma.
3. Mono-programación sin intercambio o
paginación
Dividen los programas en pequeñas partes o páginas.
Del mismo modo, la memoria es dividida
en trozos del mismo tamaño que las páginas
llamados marcos de página. De esta forma, la cantidad
de memoria desperdiciada por un proceso es el final
de su última página, lo que minimiza
la fragmentación interna y evita la externa.
4. Multi-programación con particiones fijas.
Divide la memoria en varias particiones de
tamaño fijo y cada partición contiene un proceso.
Está limitado por el número de particiones.
Cualquier espacio que no sea utilizado por
una tarea se pierde. El Sistema Operativo
conserva una tabla en la que indica
que partes de la memoria están disponibles y cuales ocupadas.
5. Multiprogramación
Es una técnica por la que dos o más
procesos pueden alojarse en la memoria
principal y ser ejecutados concurrentemente por el procesador o CPU.
La ejecución de los procesos se va solapando
en el tiempo a tal velocidad, que causa
la impresión de realizarse en paralelo
Se trata de un paralelismo simulado, dado
que la CPU sólo puede trabajar con un proceso cada vez.
6. Swapping
Es mover un proceso o parte de él
temporalmente desde la memoria principal a un dispositivo secundario
de almacenamiento para luego devolverlo a la memoria principal.
La memoria de apoyo debiera ser rápida y de tamaño suficiente
para almacenar las copias de imágenes de memoria de los procesos
también debe proporcionar acceso directo a estas imágenes.
El disco duro es usualmente quien funciona como memoria de apoyo.
7. Administración de la memoria con mapas bits
La memoria se divide en unidades de asignación
tal vez sólo de unas cuantas palabras o quizá de varios kilobytes
A cada unidad de asignación corresponde un
bit del mapa de bits, que es 0 si la unidad está
libre y 1 si está ocupada (o viceversa).
8. Multi-programación con particiones
variables
Cada proceso ocupa tanto espacio como necesite
pero no puede superar el espacio disponible de memoria.
La partición de un trabajo es su propio tamaño
ya que no hay límites fijos de memoria.
Se dan esquemas de asignación contigua dado
que un programa debe ocupar posiciones
adyacentes de almacenamiento.
Los procesos que terminan dejan espacios
disponibles de memoria principal llamados agujeros.
9. First-fit.
Asignar el primer hoyo que sea suficientemente grande como para contener al proceso.
Best-fit.
Asignar el menor hoyo en el que el proceso quepa.
Worst-fit.
Asignar el mayor hoyo.
10. Administración de la memoria con listas
ligadas
Cuando un proceso termina o se pasa a disco
si quedan dos hoyos juntos, se funden en
un solo segmento. Si la lista se
mantiene ordenada por dirección, podemos usar uno
de los siguientes algoritmos para escoger un
hoyo donde poner un nuevo proceso.
12. Memoria Virtual en el Sistema Operativo.
Es una técnica que permite la ejecución
de procesos sin que éstos tengan que
ser cargados completamente en la memoria.
La idea es que el tamaño combinado
de la pila, programa y datos puede
exceder la memoria física disponible para ello.
13. Paginación
La paginación es una estrategia de organización
de la memoria física que consiste en dividir
la memoria en porciones de igual tamaño.
A dichas porciones se las conoce como páginas
físicas o marcos. La división de la memoria
en páginas facilita la gestión de la memoria física.
14. Segmentación
La segmentación es una técnica de gestión de memoria
que pretende acercarse más al punto de vista del usuario.
Los programas se desarrollan, generalmente, en
torno a un núcleo central (principal) desde el
que se bifurca a otras partes (rutinas) o se
accede a zonas de datos (tablas, pilas, etc).