teoría de sistemas operativos memoria departamento de electrónica 2º semestre, 2003 gabriel...
TRANSCRIPT
Teoría de Sistemas OperativosMemoria
Departamento de Electrónica
2º Semestre, 2003Gabriel Astudillo Muñoz
http://www.elo.utfsm.cl/~elo321
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
2
La organización y la administración de la memoria
principal (primaria o real) es uno
de los factores mas importantes que influyen en el
diseño de los Sistemas Operativos.
Históricamente la memoria ha sido un recurso caro,
por lo que se desea optimizar su uso, aunque en la
actualidad ha bajado de precio, los programa han
aumentado su tamaño.
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
3
Modelo de Memoria
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
4
Técnicas de Administración de Memoria
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
5
La forma más simple de administrar memoria es ejecutando sólo un programa a la vez.
Cuando usuario digita un comando, el sistema operativo carga el programa correspondiente en la memoria, y lo ejecuta. Cuando el programa termina, el sistema operativo solicita un nuevo comando y carga el nuevo programa en la memoria, sobreescribiendo el anterior.
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
6
Ventajas:
• simple de implementar
Desventajas:
• No permite dividir un programa de usuario en varios procesos
• Bajo rendimiento en sistemas de tiempo compartido
• Menor utilización de recursos
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
7
Multiprogramación:
Varios procesos en memoria.
La memoria debe ser dividida en
sectores. Ejemplo
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
8
Multiprogramación:
Ejemplo:
Active - total memory active
Inactive - total memory inactive
Wired - memory that cannot be paged out
Cache - memory in the buffer cache queue
Free - free memory in the system
¿Cómo se logra mantener varios procesos en memoria?
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
9
Algunos problemas
• El código debe ser relocalizable:
ajustar las direcciones de un programa al sitio donde fue cargado, para que éste pueda ser ejecutado.
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
10
Algunos problemas
El código debe ser relocalizable:
100: add $a, 1 101: jump 110....110: load $b,$a
200: add $a, 1 201: jump 210...210: load $b, $a
eq
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
11
Algunos problemas
Un proceso no debe interferir con otro
DIR <
Límite - Base
No
Error!
+
Base
Memoria
Base
Límite
DIR
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
12
Multiprogramación con particiones fijas
Kernel
400Kb
200Kb
600Kb590450500
100
350300250210
Memoria Real
Filas independientes
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
13
Multiprogramación con particiones fijas
190550500100
Memoria Real
Fila únicaKernel
400Kb
200Kb
600Kb
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
14
Multiprogramación con particiones fijas
Se hace una mala utilización de la memoria debido a la poca flexibilidad del método.
Es complicado correr programas más grandes que el tamaño de la partición.
Se hace una mala utilización de la memoria debido a la poca flexibilidad del método.
Es complicado correr programas más grandes que el tamaño de la partición.
Desventajas .
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
15
Multiprogramación con particiones fijas
Desventajas .
Fragmentación interna.
•Ocurre cuando un proceso no ocupa toda la memoria asignada.
•El espacio libre no puede ser utilizado por ningún otro proceso.
Fragmentación interna.
•Ocurre cuando un proceso no ocupa toda la memoria asignada.
•El espacio libre no puede ser utilizado por ningún otro proceso.
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
16
Multiprogramación con particiones fijas
•Administración es relativamente simple.
•Protección entre procesos se puede realizar mediante el registro base y la longitud de la zona
•Administración es relativamente simple.
•Protección entre procesos se puede realizar mediante el registro base y la longitud de la zona
Ventajas .
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
17
Multiprogramación con particiones variables
La memoria se divide en bloques de diferente tamaño de acuerdo a las necesidades del proceso.
La memoria se divide en bloques de diferente tamaño de acuerdo a las necesidades del proceso.
Ventajas
Define bloques del tamaño requerido
termina con la fragmentación interna permite un mejor uso de la memoria
Define bloques del tamaño requerido
termina con la fragmentación interna permite un mejor uso de la memoria
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
18
Desventajas
Fragmentación externa:Fragmentación externa:
Existen 400Kb libres
Pero un proceso de 400Kb no puede ser cargado en memoria ...
Kernel100Kb
200Kb
250Kb
Memoria Real
100Kb
300Kb
Multiprogramación con particiones variables
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
19
Implementación con Listas/BitsMaps
Multiprogramación con particiones variables
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
20
Multiprogramación con particiones variables
Estrategias para la asignación de memoria
Primer Ajuste (first fit): Se asigna el primer espacioque sea mayor al tamaño deseado
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
21
Multiprogramación con particiones variables
Mejor Ajuste (best fit): Se asigna el espacio cuyo tamaño exceda en la menor cantidad al tamaño deseado.
- Requiere de una búsqueda exhaustiva. - Mayor fragmentación externa. - Tiende a llenar con trozos de memoria pequeños.
Estrategias para la asignación de memoria
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
22
Multiprogramación con particiones variables
Peor Ajuste (worst fit): Se asigna un espacio de memoria cuyo tamaño exceda en la mayor cantidad al tamaño deseado.
- Requiere de una búsqueda exhaustiva. - Genera la mayor fragmentación interna
Estrategias para la asignación de memoria
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
23
Multiprogramación con particiones variables
Compactación de memoria: Es una fusión de bloques adyacentes para formar un sólo bloque más grande.
Administración de memoria insuficiente
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
24
Multiprogramación con particiones variables
Estrategias para la asignación de memoria
Compactación de memoria:
Intro
Administración de memoria
Monoprog.
Modelo.
Multiprog.
25
Multiprogramación con particiones variables
Estrategias para la asignación de memoria
Swapping: Se puede crear un nuevo espacio de memoria eliminando uno de los procesos residentes y temporalmente enviarlos a almacenamiento secundario.