Anda di halaman 1dari 30

INFORMÁTICA

Tema 17.- SISTEMAS OPERATIVOS.


GESTIÓN DE MEMORIA.
SITUACIÓN EN EL TEMARIO
SISTEMAS OPERATIVOS

• Tema 15: Sistemas operativos. Componentes. Estructura.


Funciones. Tipos.
• Tema 16: Sistemas operativos: Gestión de procesos.
• Tema 17: Sistemas operativos: Gestión de memoria.
• Tema 18: Sistemas operativos: Gestión de entradas/salidas.
• Tema 19: Sistemas operativos: Gestión de archivos y dispositivos.
• Tema 20: Explotación y Administración de sistemas operativos
monousuario y multiusuario.
• Tema 21: Sistemas informáticos. Estructura física y funcional.
• Tema 22: Planificación y explotación de sistemas informáticos.
Configuración. Condiciones de instalación. Medidas de seguridad.
Procedimientos de uso.
RELACIÓN CON EL CURRÍCULO
• Grado Medio SMR:
– Montaje y mantenimiento de equipos (1º curso)

• Grado Superior ASIR:


– Fundamentos de hardware (1º curso)

• Grado Superior DAM / DAW:


– Sistemas informáticos (1º curso)
ÍNDICE

1. ADMINISTRACIÓN DE LA MEMORIA.

2. MEMORIA VIRTUAL.

3. REGISTRO DE USO DE LA MEMORIA.


INTRODUCCIÓN
• S.O.: Conjunto de programas del sistema informático que controla los
recursos hardware del ordenador y sirve de base para la ejecución de
los programas de aplicación.

• S.O.: Actúa de intermediario entre el hardware y los usuarios del


mismo.

• S.O.: Formados por una serie de componentes especializados en


determinadas funciones. Capas:
– El núcleo.
– Los servicios.
– El intérprete de comandos o shell.

• Servicio de gestión de memoria: se encarga de saber qué partes de la


memoria están libres y ocupadas, asignarlas a los procesos y liberarlas
cuando los procesos ya no las necesitan.
1. ADMINISTRACIÓN DE LA MEMORIA

• Para poder procesar un programa en un ordenador es necesario


que previamente, tanto él como los datos que maneja estén
cargados en la memoria principal. Para ello necesitaremos
mantener dichos programas simultáneamente en memoria, es
decir deberán compartir la memoria.
• En el funcionamiento de un ordenador, la memoria principal es un
recurso central ya que tanto el procesador como los dispositivos
de e/s acceden a ella para leer y/o grabar la información que
manejan.
JERARQUÍA DE MEMORIA
GESTIÓN DE MEMORIA
La Gestión de memoria consiste en la asignación de una memoria
física de capacidad limitada a los distintos procesos que la soliciten,
pues solo si los procesos tienen asignada una parte de la memoria
pueden pasar a estados activos y entrar en ejecución.

Asimismo, la gestión de memoria tiene que poner fuera de memoria a


los procesos temporalmente inactivos para dejar espacio a otros
procesos.

Funciones de la gestión de memoria:


- Determinar cómo, a qué proceso y en que orden se debe asignar la
memoria.
- Determinar que procesos han de abandonar la memoria y en que
orden.
- Llevar el control de las posiciones asignadas y libres.
- Evitar accesos indebidos.
LOS PROCESOS Y LA MEMORIA

• A cada proceso se le asigna un espacio de


direcciones lógicas en el que reside el proceso y
las llamadas al sistema para tener acceso directo
a los recursos del sistema.
• Este espacio de memoria es igual al máximo que
el S.O. instalado en el equipo sea capaz de
gestionar.
• Al exceder el tamaño de la memoria el S.O.
emplea técnicas de memoria virtual y de gestión
de memoria.
MONOPROGRAMACIÓN
• Un proceso ocupa un lugar fijo en la memoria.
• El proceso ocupará una serie de direcciones físicas en el
almacenamiento permanente y una serie de direcciones
lógicas en la memoria.
MULTIPROGRAMACIÓN
• La memoria se divide en zonas y se asigna a
distintos procesos.
• Técnicas:
– Particiones estáticas.
– Particiones dinámicas.
– Segmentación.
– Paginación.
– Memoria virtual.
PARTICIONES ESTÁTICAS
• La memoria se divide en espacios de tamaño
fijo.
• Cuando un proceso debe escribirse en
memoria se escoge una partición libre en la
que quepa.
• Puede existir una cola de procesos aspirantes
por cada partición o bien una única cola para
todos los procesos.
PARTICIONES DINÁMICAS
• La memoria se divide en espacios de tamaño
variable.
• La memoria está, inicialmente,
completamente disponible para almacenar un
proceso de cualquier tamaño (siempre que
sea inferior al propio tamaño de la memoria).
• Cuando un proceso necesita memoria, se
busca un “hueco” en el que pueda alojarse.
• Variante: Sistema de los asociados (división
por mitades de todos los espacios).
FRAGMENTACIÓN
• Fragmentación interna: desperdicio de memoria que le sobra a
un proceso.
– Ejemplo: Si nuestro sistema posee tres particiones de 14k, 10k y 6k,
un programa de 11 k se deberá cargar en la primera partición
desaprovechando durando su ejecución 3k.

• Fragmentación externa: zona de memoria no asignadas por no


existir procesos del tamaño necesario.
– Ejemplo: Si en el mismo ejemplo suponemos ocupadas las
particiones de 14k y 10k y existen trabajos de 7k, 8k y 9k
esperando, nos encontraremos con una partición inutilizable aún
habiendo necesidad de memoria.
PAGINACIÓN
• Consiste en dividir la RAM en zonas iguales llamadas marcos, y
los programas en partes del mismo tamaño denominadas
páginas.

• Cuando se carga un proceso lo que se hace es ubicarlo en


memoria y asignarle un nº máximo de bloques de memoria.

• Cuando se ejecuta un proceso, si se desea acceder a una parte


del mismo que no está cargada en memoria interna, se busca en
la zona de memoria virtual y se carga en la memoria interna.

• Una vez alcanzado el nº máximo de espacios de memoria


interna utilizados por el proceso se descargan a memoria virtual
las partes de la memoria que no se estén utilizando.
TABLA DE PÁGINAS
• Mediante la tabla de páginas, la CPU asigna las
direcciones físicas de los marcos a las páginas
en las que se ha dividido el programa.
• La asignación de marcos no tiene que ser
necesariamente consecutiva (un proceso se
puede ubicar en la RAM en marcos no
contiguos).
• La paginación es pues una técnica de
reasignación dinámica.
HIPERPAGINACIÓN
• Este fenómeno ocurre cuando el nº de zonas de memoria
asignadas a un proceso desciende por debajo del mínimo
necesario.

• Cualquier proceso que no cuente con suficiente espacio de


memoria provocará errores de página muy frecuentemente.

• Si se reemplazan partes del programa que están activas


estaremos sustituyendo una parte del proceso que casi de
inmediato se volverá a necesitar.

• Se dice que un sistema se encuentra en hiperpaginación (o


thrashing) si utiliza más tiempo paginando que ejecutando.
SEGMENTACIÓN
• Técnica similar a la paginación que permite definir los bloques
de memoria de tamaño variable.

• Cada segmento puede variar desde 0 hasta el máximo


permitido, pudiendo tener diferente longitud con respecto a los
demás. La longitud de un segmento puede variar según las
necesidades del programa.

• Esta técnica permite reducir la fragmentación interna, ya que se


asigna a cada programa la cantidad de memoria que requiere.

• La carga de programa en memoria exige la búsqueda de los


huecos adecuados a sus segmentos intentando ajustar lo más
posible.
SISTEMAS COMBINADOS

• Algunos sistemas utilizan una técnica de paginación


segmentada: consiste en segmentar la tabla de páginas
adecuándola al tamaño del programa.

• Otros utilizan la segmentación paginada: En lugar de tratar un


segmento como una unidad contigua, este puede dividirse en
páginas. Cada segmento puede ser descrito por su propia tabla
de páginas. Los segmentos son usualmente múltiplos de páginas
en tamaño, y no es necesario que todas las páginas se
encuentren en memoria principal a la vez.
2. MEMORIA VIRTUAL
• Consiste en la reserva de espacio de
intercambio con la memoria dentro del
almacenamiento permanente.
• El SO emplea algoritmos de reemplazo en el
caso de que una parte de un proceso deba
estar en memoria y no se encuentre allí: para
conseguirlo debe escoger qué trozo de
memoria debe ser reemplazado.
REEMPLAZAMIENTO

1. Encontrar la página solicitada en el almacenamiento


secundario.
2. Encontrar un marco libre, y si existe utilizarlo.
3. Si no hay un marco libre utilizar un “algoritmo de
reemplazamiento” para seleccionar la página a reemplazar.
4. Salvar la página reemplazada en el almacenamiento
secundario actualizando las tablas que correspondan.
5. Llevar la página solicitada al marco libre y actualizar la tabla
que corresponda.
ALGORITMOS DE REEMPLAZO DE
PÁGINAS
• La situación optima sería poder prever que páginas serán
pedida, lo cual es imposible, pero podemos prever en cierta
medida el comportamiento del sistema partiendo de la
experiencia del pasado, viendo las necesidades que han ido
teniendo los procesos.

• Los algoritmos que se han ideado para controlar el


reemplazamiento serán mas o menos eficientes en función de
dos factores:
– Número de fallos de página que provoca, es decir, numero de
veces en que no se encuentra en memoria la página solicitada.
– Coste de su utilización, es decir, la sobrecarga que se produce en
el sistema al utilizar dicho algoritmo.
ALGORITMO FIFO

• A cada página se le asocia el tiempo que ha permanecido


en memoria de modo que, cuando se tiene que sustituir
una página, se elige la que lleva más tiempo en memoria.

• Cuando hay que sustituir una página, se elige la primera


de la cola y la que se trae se inserta al final de la cola.
ALGORITMO LRU

• Este algoritmo asocia a cada página la última vez que se


utilizó, de modo que cuando una página debe ser
sustituida, se elige aquella que no ha sido utilizada durante
un periodo de tiempo mayor.

• Favorece a las páginas que se usan con mayor frecuencia.


ALGORITMO DE 2ª OPORTUNIDAD

• Es una modificación del algoritmo FIFO. Se asocia a cada


página un bit de referencia, que se pone a 1 en el
momento en que se referencia la página.

• El algoritmo se basa en el examen del bit de referencia de


las páginas seleccionadas para sustituir. Si su bit de
referencia es cero, se sustituye la página. En caso de que
sea 1, se pone a 0 y se pasa al final de la cola, obteniendo
así una segunda oportunidad.
ALGORITMO ÓPTIMO

• Consiste en reemplazar la página que tardará más tiempo


en referenciarse.

• Este algoritmo garantiza la menor tasa de fallos de página,


pero no es fácilmente implementable.
OTROS ALGORITMOS

Algoritmo LFU (Menos frecuentemente usada)

Algoritmo MFU (Más frecuentemente usada)

La elección del algoritmo adecuado es básico, ya que puede


suceder que el tiempo de intercambio de página crezca
indefinidamente y por ello se tenga poco tiempo de CPU
para ejecutar los programas.
3. REGISTRO DE USO DE LA MEMORIA

• Mapa de bits.
– Un bit por cada zona de memoria (que indique si
está libre u ocupada).

• Listas enlazadas.
– Lista con un nodo por cada zona y un indicador en
el mismo sobre su estado de ocupación.
ALGORITMOS DE ASIGNACIÓN DE
MEMORIA

• Primer ajuste.
– Variante: Siguiente ajuste.

• Mejor ajuste.

• Peor ajuste.
CONCLUSIÓN

• Todos los programas que se han de ejecutar tienen que


estar en memoria.
• La memoria es un recurso fundamental que el SO debe
repartir entre los procesos candidatos a ejecución.
• La memoria tiene un espacio de almacenamiento
limitado y los SO modernos utilizan esquemas de
memoria virtual utilizando una zona de intercambio en
el almacenamiento permanente.
– El SO debe gestionar las demandas de memoria asignando sitio y , en su
caso, reemplazando zonas de memoria por otras necesarias en un instante
determinado.

Anda mungkin juga menyukai