100% encontró este documento útil (1 voto)
74 vistas51 páginas

Ut 3: Sistemas Operativos. Gestión de Recursos

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
74 vistas51 páginas

Ut 3: Sistemas Operativos. Gestión de Recursos

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UT 3: Sistemas operativos.

Gestión de recursos
UT 3: SISTEMAS OPERATIVOS. GESTIÓN
DE RECURSOS

SISTEMAS OPERATIVOS MONOPUESTO


ÍNDICE

GESTIÓN DEL TIEMPO DE CPU – Índice 1


GESTIÓN DEL ESPACIO EN RAM – Índice 2
GESTIÓN DE DISPOSITIVOS DE E/S
GESTIÓN DATOS E INFORMACIÓN

UT 3: Sistemas operativos. Gestión de recursos


Sistemas operativos. Gestión de recursos

Los recursos que gestiona un sistema


operativo son:

 procesador
 memoria
 dispositivos de entrada/salida
 datos e información

UT 3: Sistemas operativos. Gestión de recursos


GESTIONAR PROCESOS Y PROCESADOR
Un proceso o tarea, se puede definir como un programa en ejecución junto con el
entorno asociado a él (registros, variables, etc.)

Cuando hablamos de gestionar los procesos y el procesador, básicamente nos


referimos a repartir el tiempo de CPU entre los distintos programas que se están
ejecutando en la computadora, de manera que se obtenga un rendimiento óptimo
del sistema informático, para ello el sistema operativo debe encargarse de:
– Crear y eliminar procesos.
– Suspender y reanudar la ejecución de los procesos (asignar y quitar la CPU a
los distintos procesos).
– Proporcionar mecanismos de sincronización y comunicación de procesos para
evitar problemas derivado de la concurrencia.

UT 3: Sistemas operativos. Gestión de recursos


GESTIÓN MEMORIA
La función principal de un ordenador es la de ejecutar programas pero para poder llevar a cabo tal función esos programas,
junto con los datos que necesitan y/o generan deben ser cargados en memoria principal. Sabemos que el ordenador cuenta
con la memoria central o principal (memoria RAM), pero esta es limitada y, en grandes sistemas, insuficiente.

Se podría considerar que en el caso del procesador se realiza un reparto en el tiempo, mientras que en el de la memoria se
trata de un reparto en el espacio.
En general, la gestión de la memoria es sencilla en sistemas operativos monoproceso. En los sistemas multitarea o
multiproceso es más complejo, porque se necesita disponer de varios procesos residentes simultáneamente en memoria.
Estudiaremos como gestionar óptimamente esa memoria para conseguir un buen rendimiento de nuestro sistema
informático. El sistema operativo deberá encargarse de:
– Repartir la memoria entre todos los procesos que se están ejecutando.
Proceso: Programa en ejecución junto con el entorno asociado a él (registros, variables, etc.)
– Llevar un registro de las partes de memoria que se están utilizando y las que no.
– Reservar espacio de memoria a los procesos.
– Liberar el espacio de memoria de los procesos que han finalizado.
– Gestionar el intercambio de datos de memoria y disco, cuando los procesos sean tan grandes que no quepan de una
sola ven en memoria.
– Control de acceso a zonas de memoria no permitidas.

UT 3: Sistemas operativos. Gestión de recursos


GESTIONAR PERIFÉRICOS
CONTROLADOR E/S
Los sistemas operativos incluyen controladores genéricos para manejar los periféricos.

Estos controladores de E/S son los que se van a encargar de manejar los diferentes

periféricos:

– Gestiona la comunicación de los periféricos y la CPU.

– Traduce las órdenes de alto nivel a bajo nivel que entiende el periférico.

– Controla los errores, etc.

UT 3: Sistemas operativos. Gestión de recursos


GESTIONAR FICHEROS O ARCHIVOS
• La parte del sistemas operativo
que se encarga de la gestión de
ficheros recibe el nombre de
Sistema de Ficheros.
– Gestiona el espacio que se le debe
asignar a un fichero.

– Guarda las propiedades de un


fichero: fecha creación, fecha
modificación, atributos…

– Gestiona las operaciones que se


realizan con ficheros: Creación
,escritura, lectura, borrado.

UT 3: Sistemas operativos. Gestión de recursos


ÍNDICE 1 – GESTIÓN CPU
1. PROCESOS Y FLUJOS
2. HEBRAS Y ESTADOS DE LOS PROCESOS
3. BLOQUE DE CONTROL DEL PROCESO
4. ESTADOS DE LOS PROCESOS – MODELO DE 3 ESTADOS
5. TRANSICIÓN ENTRE ESTADOS DE UN PROCESO – MODELO DE 3 ESTADOS
6. CARGADOR, PLANIFICADOR Y DESPACHADOR
7. ALGORITMOS DE PLANIFICACIÓN
No apropiativos:
FCFS
SJN
PRIORIDAD NO APROPIATIVA
Apropiativos
ROUND ROBIN
SRT
PRIORIDAD APROPIATIVA

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

1. Procesos y flujos

Un PROCESO es un programa en ejecución.

Se debe tener muy presente que un proceso asocia programa


+ actividad.

– Un programa es una lista de instrucciones escritas en un


papel, un fichero en disquete, disco duro (ejemplo todo
programa ejecutable con extensión *.exe).

– Pues bien, cuando este programa se está ejecutando se


convierte en proceso.

– Se habla de procesos, flujos de control, tareas, etc,


todos estos términos hacer referencia a lo mismo, a un
programa en ejecución

Podemos ver los procesos que se están ejecutando en nuestra


máquina en el Administrador de tareas de Windows: Ctrl+Alt+Supr
-> Administrador de Tareas -> Procesos

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

2. Hebras de un proceso

Una hebra o hilo de ejecución es un subproceso de un proceso que consume recursos propios pero

que depende del proceso padre que lo ha ejecutado. Las hebras permiten mejorar el rendimiento y

eficacia de los sistemas operativos. Para comprender mejor el concepto veamos un ejemplo:

Si ejecutamos el procesador de textos Microsoft Word con un solo documento abierto, el programa

Word convertido en proceso estará ejecutándose en un único espacio de memoria, tendrá acceso a

determinados archivos (galería de imágenes, fuentes, etc.) y tendrá acceso al hardware (impresora,

disquetera, etc.). En definitiva, este proceso, de momento tiene un hilo.

Si en esta situación, sin cerrar el programa, abrimos un nuevo documento, Word no se vuelve a

cargar como proceso. Simplemente el programa Word, convertido en proceso, tendrá dos hebras o

hilos de ejecución diferentes, de tal forma que el proceso sigue siendo el mismo (el original). Word

se está ejecutando una sola vez y el resto de documentos de texto que abramos en esa misma sesión

de trabajo, no serán procesos propiamente dichos, sino hilos o hebras del proceso principal, que es

el propio procesador de textos Microsoft Word.

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

Cuando más de un proceso se ejecuta de forma concurrente en el sistema, TODOS


necesitan que el Sistema Operativo les proporcione los recursos necesarios (tiempo de
CPU, espacio en memoria, dispositivos de E/S…). El Sistema Operativo junto con la
Unidad de Central de Proceso (UCP ó CPU) se encarga de asignar estos recursos en un
orden adecuado y atendiendo a unas prioridades.

Cada vez que un programa se convierte en proceso, es decir, cada vez que se está
ejecutando un programa, además de ser ubicadas en memoria las instrucciones que lo
componen y sus datos asociados, a dicho proceso se le asocia una estructura de datos.
Esta estructura de datos, que es única para cada proceso, identifica al proceso respecto
de los demás y sirve para controlar su correcta ejecución. A esta estructura de datos se
le denomina BLOQUE DE CONTROL DEL PROCESO

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

3. Bloque de Control del Proceso (BCP)

El Bloque de Control de Proceso (BCP) (o Descriptor de Proceso) comprende la información


que siempre está en la memoria principal durante la existencia del proceso. El BCP contiene
la información relativa a un proceso que requiere el sistema operativo para gestionarlo. En la
siguiente figura se puede ver un ejemplo con algunos datos típicos que suelen tener:

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

Información contenida en el Bloque de Control de Proceso:

1. IDENTIFICADOR DE PROCESO: A cada proceso, dependiendo del sistema operativo, se le asigna un código de
identificador del proceso PID (process identification). Suele ser un número que el propio sistema operativo asigna
cuando se crea el proceso. También puede añadirse el identificativo del proceso padre (PPID). Cada proceso que se
lanza a ejecución, en la mayoría de los casos , depende de otro proceso denominado proceso padre. Así, al nuevo
proceso, se le denomina proceso hijo.

2. PRIORIDAD: Esta prioridad es asignada de forma automática por el sistema operativo, concretamente por el
Planificador y dependerá de las políticas o algoritmos de planificación que se estén utilizando.

3. ESTADO: Pueden darse diferentes modelos de estados, modelos basados en tres en cinco o en siete estados. En un
modelo básico un proceso puede pasar por tres posibles estados: Ejecución, preparado y bloqueado.

4. UBICACIÓN EN MEMORIA: Dirección de memoria en la que se carga el proceso.

5. RECURSOS UTILIZADOS: Cada proceso tiene que tener a su disposición determinados recursos hardware y algunos

recursos software para poder ejecutarse (recursos de la impresora, archivos del disco duro, archivos del CD-

ROM/DVD-ROM…). Estos recursos se pondrán a disposición del proceso en el mismo momento en el que éste

empieza a ejecutarse. La asignación de estos recursos la realizará el sistema operativo.

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

4. Estados de un proceso – Modelo de 3 estados

Básicamente los estados posibles de un proceso

son:
Ejecución: El proceso está actualmente en ejecución.

Listo, en espera o preparado: El proceso está listo

para ser ejecutado, es decir, está esperando turno

para poder utilizar su intervalo de tiempo de CPU.

Bloqueado: El proceso está retenido, sin posibilidad

de entrar en ejecución. Las causas de ese bloqueo

pueden ser múltiples, por ejemplo:

- Un proceso (proceso A) necesita una unidad de DVD

para cargar determinados datos, y la unidad está

siendo utilizada por otro proceso (proceso B), el

proceso A se bloqueará hasta que la unidad esté libre

para poder ser utilizada.

- Dos procesos utilizan el mismo fichero de datos, etc.

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

5. Transición entre estados de un proceso – Modelo de 3 estados

Una vez que un programa se ha lanzado y se ha convertido en proceso, puede atravesar varias fases o estados hasta
que finaliza o termina.

Cuando un proceso se lanza, nunca se ejecuta directamente, sino que se coloca en la cola de procesos en el estado
listo o preparados. Cuando la CPU le asigna su tiempo, el proceso pasa de preparado a ejecución.

Los procesos pasan de un estado a otro dando lugar a cuatro transiciones diferentes:

 La transición A ocurre cuando un proceso no puede continuar


ejecutándose por algún motivo, por ejemplo por necesitar datos
que no están disponibles.

 La transición B sucede cuando un proceso ha consumido


el tiempo de CPU asignado para su ejecución y tiene que
dejar libre la CPU para el siguiente proceso.

 La transición C tiene lugar cuando a un proceso que está en


espera de le asigna tiempo de CPU para que pase a ejecutarse.

 La transición D se produce cuando sucede el evento que el


proceso estaba esperando, por ejemplo, los datos que
estaba esperando ya están disponibles.

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

Interpreta los siguientes esquemas en los que se lanzan a ejecución tres procesos:
CASO A)

CASO B)

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

6. CARGADOR, PLANIFICADOR Y DESPACHADOR


Para ejecutar un proceso, introducimos en el indicador de comandos (shell en UNIX, [Link] en
DOS) el nombre de un fichero ejecutable o hacemos doble clic sobre el icono que representa a un
programa ejecutable ([Link], [Link],…), en ese momento se carga un proceso del propio Sistema
Operativo, que llamaremos CARGADOR, el cual prepara el programa para ser lanzado a ejecución. Las
funciones del cargador son las siguientes:
 Se crea el BCP
 Se inserta el BCP en la tabla de bloques de control de procesos del sistema
 Se carga el proceso en la memoria virtual
 Cuando ya tiene todos los recursos asignados (menos la CPU) se pone el campo de estado del
BCP a listo y se coloca el proceso en la cola de procesos listos para hacer uso de la CPU.

Se denomina PLANIFICADOR, es el proceso del sistema operativo que se encarga de gestionar la cola de
procesos listos, es decir, es a aquella parte del SO encargada de determinar qué proceso pasará al estado
de ejecución de entre todos los procesos que están en estado listo.
El planificador utiliza diferentes algoritmos de planificación dependiendo del sistema operativo, que
permitirán al sistema operativo decidir que proceso es el que va a pasar a ser ejecutado.

El DESPACHADOR o ACTIVADOR (dispatcher) es el módulo que pone en ejecución el proceso planificado


(proceso seleccionado por el planificador). Para ello deberá también salvar la información relativa al
proceso que abandona la CPU.

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

7. Algoritmos de planificación

Los algoritmos de planificación sirven para decidir qué proceso de entre los que se
encuentran en estado de “listo” se ejecutará en la CPU (pasará a estado de “ejecución”).

Se clasifican en:

 NO APROPIATIVOS o NO EXPULSIVO: Si una vez que se le otorga la CPU a un proceso, ya no se


le puede retirar hasta que finalice su ejecución.

 APROPIATIVOS o EXPULSIVO: Durante la ejecución de un proceso, el sistema operativo puede


recuperar el control de la CPU y decidir si debe dejar que el proceso actual continúe
ejecutándose, o sí, por el contrario, ha llegado el momento de suspender su ejecución y ceder
el uso de la CPU a otro proceso.

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

ALGORITMOS DE PLANIFICACIÓN

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

ALGORITMOS DE PLANIFICACIÓN
En todos los algoritmos de planificación habrá que rellenar la siguiente tabla:

Nombre Instante de Tiempo de Instante de Tiempo de Tiempo de Índice de


del llegada ejecución finalización servicio o espera servicio
proceso (T) (tf) retorno te (Eficiencia)
(ti)
tret (te=tret-T) I
(tret=tf-ti) (I=T/tret)

Medias
Las celdas rayadas y sombreadas representan información que tiene que derivarse del enunciado del
problema. A veces se añade otra columna con la prioridad del proceso.
Es muy importante calcular la media del tiempo de servicio (tret), del tiempo de espera (te) y del índice
de servicio (eficiencia) (I).
ALGORITMO MEJOR 
- Menor tiempo medio de servicio o retorno.
- Menor tiempo medio de espera.
- Mayor eficiencia.

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

FCFS (First Come First Served)


Consiste en atender a los procesos por estricto orden de llegada a la cola de listos. Cada proceso se
ejecuta hasta que termina (el método es no apropiativo), llegado este momento se selecciona el
proceso que más tiempo lleva en la cola de procesos listos. Veamos un ejemplo:

PROCESO Instante de llegada ( ti ) Tiempo de cpu (T)


A 0 3
B 2 1
C 3 2
D 4 1

0 1 2 3 4 5 6 7

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

FCFS (First Come First Served)


Instante de Tiempo de Instante de Tiempo de retorno Tiempo de Eficiencia
llegada CPU finalización espera
PROCESO (tret) (I)
(ti) (T) (tF) (te)

A 0 3 3 3 0 1

B 2 1 4 2 1 ½

C 3 2 6 3 1 2/3

D 4 1 7 3 2 1/3

MEDIAS 2.75 1 0.625

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

SJF (Shortest Job First)


Se ejecuta siempre el proceso que requiera menor tiempo de CPU. Si existe más de un proceso con el
mismo tiempo de CPU, y además ese tiempo es el menor de todos, se aplicará el algoritmo FCFS para
romper el empate y decidir de esa manera a que proceso se le asigna la CPU. Al tratarse de un
algoritmo no apropiativo, una vez que un proceso comienza a ejecutarse continuará hasta que finalice.

PROCESO Instante de llegada ( ti ) Tiempo de cpu (T)


A 0 3
B 2 1
C 3 2
D 4 1

A
0 1 2 3 4 5 6 7

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

SJF (Shortest Job First)


Instante de Tiempo de Instante de Tiempo de retorno Tiempo de Eficiencia
llegada CPU finalización espera
PROCESO (tret) (I)
(ti) (T) (tF) (te)

A 0 3 3 3 0 1

B 2 1 4 2 1 ½

C 3 2 7 4 2 2/4

D 4 1 5 1 0 1

MEDIAS 2.5 0.75 0.75

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

Prioridad no Apropiativa
En este tipo de algoritmos se asigna una prioridad numérica a cada proceso y el proceso de mayor
prioridad es el que se ejecuta.
Cuando un proceso empieza a ejecutarse no abandonará la CPU hasta que no finalice su ejecución.
(Algoritmo no apropiativo).
PROCESO Prioridad Instante de llegada ( ti ) Tiempo de cpu (T)
A 2 0 3
B 1 2 1
C 3 3 2
D 2 4 1

A
0 1 2 3 4 5 6 7

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

Prioridad no Apropiativa

PROCESO Prioridad Instante de Tiempo de Instante de Tiempo de Tiempo de Eficiencia


llegada CPU finalización retorno espera
(I)
(ti) (T) (tF) (tret) (te)

A 2 0 3 3 3 0 1

B 1 2 1 7 5 4 1/5

C 3 3 2 5 2 0 1

D 2 4 1 6 2 1 ½

MEDIAS 3 1.25 0.675

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

Round Robin (RR)


A los procesos se les asigna un tiempo de ejecución (quantum) si transcurrido ese quantum no han terminado,
el proceso que se estaba ejecutando pasa a la cola de procesos listos y pasa a ejecución el primer proceso que
haya llegado a la cola de procesos preparados.
La selección entre los procesos se realiza mediante una cola FIFO.
Si en un mismo instante te tiempo se produce la llegada de un proceso nuevo y la finalización del quantum del
proceso que se está ejecutando, si este aun no ha finalizado su tiempo de ejecución, se colocará de nuevo en la
cola de procesos listos pero después del proceso que acaba de llegar.

PROCESO Instante de llegada ( ti ) Tiempo de cpu (T)


A 0 3
B 2 1
C 3 2
D 4 1

A
0 1 2 3 4 5 6 7

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

Round Robin (RR)


Instante de Tiempo de Instante de Tiempo de retorno Tiempo de Eficiencia
llegada CPU finalización espera
PROCESO (tret) (I)
(ti) (T) (tF) (te)

A 0 3 4 4 1 ¾

B 2 1 3 1 0 1

C 3 2 6 3 1 2/3

D 4 1 7 3 2 1/3

MEDIAS 2.75 1 0.687

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

SRT
Es la versión apropiativa del método SJF. Se ejecuta el proceso con menor tiempo de CPU. La diferencia
con el método SJF radica en que, si durante la ejecución de un proceso, llega otro con menor tiempo de
ejecución, el proceso que está en ejecución abandona la CPU y entra en ella el nuevo proceso.

PROCESO Instante de llegada ( ti ) Tiempo de cpu (T)


A 0 3
B 2 1
C 3 2
D 4 1

A
0 1 2 3 4 5 6 7

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

SRT
Instante de Tiempo Instante de Tiempo de retorno Tiempo de Eficiencia (I)
llegada de CPU finalización espera
PROCESO (tret)
(ti) (T) (tF) (te)

A 0 3 3 3 0 1

B 2 1 4 2 1 ½

C 3 2 7 4 2 ½

D 4 1 5 1 0 1

MEDIAS 2.5 0.75 0.75

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

Prioridad Apropiativa
Al igual que el algoritmo “Prioridad no Apropiativa”, en este tipo de algoritmos se asigna una prioridad
numérica a cada proceso y el proceso de mayor prioridad es el que se ejecuta.
La diferencia está en que si cuando se está ejecutando un proceso llega otro más prioritario el primer
proceso abandona la CPU y pasa a ejecutarse el nuevo proceso más prioritario. (Algoritmo apropiativo)

PROCESO Prioridad Instante de llegada ( ti ) Tiempo de cpu (T)


A 2 0 3
B 1 2 1
C 3 3 2
D 2 4 1

A
0 1 2 3 4 5 6 7

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

Prioridad Apropiativa
PROCESO Prioridad Instante de Tiempo Instante de Tiempo de Tiempo Eficiencia
llegada de CPU finalización retorno de
(I)
espera
(ti) (T) (tF) (tret)
(te)
A 2 0 3 3 3 0 1

B 1 2 1 7 5 4 1/5

C 3 3 2 5 2 0 1

D 2 4 1 6 2 1 ½

MEDIAS 3 1.25 0.675

UT 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

COMPARATIVA ENTRE LOS DISTINTOS ALGORITMOS DE PLANIFICACIÓN PARA ESTE CASO:

Algoritmo

Características
FCFS SJF [Link] RR SRT P.A

Tiempo
medio de
2.75 2.5 3 2.75 2.5 3
Servicio
(tret)

Tiempo
medio de 1 0.75 1.25 1 0.75 1.25
Espera (te)

Eficiencia
0.625 0.75 0.675 0.687 0.75 0.675
media (I)

4º  1º  3º  2º  1º  3º 

UT 3: Sistemas operativos. Gestión de recursos


ÍNDICE 2 – GESTIÓN RAM
1. EVOLUCIÓN EN LA GESTIÓN DE LA MEMORIA RAM
2. TÉCNICAS PARA LA GESTIÓN DE LA MEMORIA
3. ADMINISTRADOR DE MEMORIA
4. REUBICACIÓN DE PROCESOS
Direcciones de memoria (físicas y lógicas). Reubicación. Unidad de manejo de
memoria (MMU)
5. MEMORIA VIRTUAL PAGINADA, MEMORIA VIRTUAL SEGMENTADA, MEMORIA VIRTUAL
EN SISTEMAS COMBINADOS
[Link] Virtual Paginada
Fallo de página y reemplazo de página
Algoritmos de reemplazo de páginas:
a) FIFO, la primera en entrar, primera en salir.
b) LRU, la usada menos recientemente
c) ÓPTIMO
5.2. Memoria Virtual segmentada
5.3. Memoria Virtual, sistemas combinados
6. PROGRAMAS REUBICABLES, RESIDENTES Y REUTILIZABLES

UD 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

1.- EVOLUCIÓN EN LA GESTIÓN DE LA MEMORIA RAM

Inicialmente para poder ejecutar un programa este debía estar cargado completamente en memoria
principal y en posiciones de memoria contiguas. Esto suponía un gran inconveniente, en primer lugar
porque la capacidad de la memoria RAM era bastante limitada y en segundo lugar porque el tamaño
de los programas que se iban diseñando era cada vez mayor. (asignación de memoria completa y
contigua)

Se adoptaron técnicas tales como dividir el programa en partes. Esta tarea de dividir el programa era
realizada por el propio programador, lo que suponía un coste y esfuerzo añadido a su labor de
programación, además de perjudicar el desarrollo de los programas. Los programas se cargaban de
forma completa en memoria pero no necesariamente en zonas de memoria contiguas. (asignación de
memoria completa y no contigua)

El tamaño del software que utilizaban los ordenadores crecía más rápidamente que el tamaño de la
ram que implementaban los equipos, que los programas se cargaran totalmente en memoria ya no
era factible, se diseña entonces un método conocido como memoria virtual, esta técnica considera
parte del espacio del disco duro como si se tratase de memoria RAM, de manera que cuando
ejecutamos un programa solo está cargado en memoria RAM la parte del programa que en realidad se
está ejecutando en ese instante, mientras que el resto permanecerá en disco, para su posterior
utilización, si fuera necesario. La labor de dividir los programas en partes no la realizan los
programadores, sino que los sistemas operativos serán los encargados de realizarla de forma
transparente al programador y al usuario. (asignación de memoria no completa y no contigua)

UD 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

2.- TÉCNICAS PARA LA GESTIÓN DE LA MEMORIA

asignación de memoria completa y contigua


Particiones fijas
Particiones de igual tamaño
Particiones de distinto tamaño
Particiones variables

asignación de memoria completa y no contigua


Paginación
Segmentación
Sistemas combinados

asignación de memoria no completa y no contigua


Memoria Virtual Paginada
Memoria Virtual segmentada
Memoria Virtual con sistemas combinados

UD 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

Esta última forma de gestionar la memoria es la que utilizan los sistemas operativos
actuales.

 En sistemas Microsoft, la forma de implementarlo es como acabamos de


describir, reservando una parte del disco duro. La parte del disco duro que se
utilizará para tal fin recibe le nombre de archivo de paginación. Concretamente
es recomendable asignar un tamaño mínimo de 1.5 veces la RAM y máximo de 3
veces la RAM para el archivo.

 En sistemas Unix y Linux, se utiliza una unidad específica, conocida como


partición swap o área de intercambio, que se utilizará como memoria virtual. El
tamaño de la partición deberá ser:
En equipos con memoria RAM de hasta 1 Giga la SWAP deberá tener el
mismo tamaño que la RAM
Entre 2 y 4 Gigas, la SWAP debería ser la mitad de grande que la RAM
Con más de 4 Gigas no se deberían sobrepasarse los 2 Gigas de SWAP

UD 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

2. ADMINISTRADOR DE MEMORIA
En sistemas operativos monousuario y monoproceso la gestión de la memoria era
sencilla, las memorias tenían poca capacidad y sólo se reservaba una parte de ella
para el sistema operativo, es resto era para cargar el programa que se ejecutaba.
Con la aparición de los sistemas operativos multiusuario y multitarea, la gestión se
convierte en una de las funciones más importantes del sistema operativo.

Administrador de memoria
Es la parte del sistema operativo que administra la memoria. Su labor consiste en:
 Llevar un registro de las partes de memoria que se estén utilizando y de aquellas
que están libres.
 Asignar espacio en memoria a los procesos cuando éstos la necesiten y liberarla
cuando terminen.
 Administrar el intercambio entre la memoria principal y la secundaria en los casos
en los que la memoria principal no le pueda dar capacidad a todos los procesos
que tienen necesidad de ella.
 Proteger los espacios de memoria de un proceso.
 Controlar el acceso a zonas de memoria no permitidas

UD 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

3. REUBICACIÓN
Direcciones de memoria (físicas y lógicas). Reubicación. Unidad de manejo de
memoria (MMU).
Debemos disponer de un método para identificar el lugar donde guardamos los
datos en la memoria, es decir, de unas direcciones de memoria.
Debido a que la memoria se encuentra compartida por varios procesos, que
deben ser cargados y descargados continuamente, y que no utilizan siempre el
mismo espacio de memoria, ha sido necesario crear un sistema de reubicación.
Para entender cómo funciona este proceso es necesario diferenciar entre estos
dos conceptos:
Dirección física: Se refiere a la posición real que ocupa un dato en la memoria
principal. Y al conjunto de estas direcciones se le denomina espacio de direcciones
físicas o reales.
Dirección lógica: Es una dirección generada por la CPU. Al conjunto de estas
direcciones se le denomina espacio de direcciones lógicas o relativas.
La reubicación consiste en la localización de programas en la memoria. Para ello
debemos saber traducir las direcciones lógicas en físicas. Esta función la realizará
la Unidad de Manejo de la Memoria (MMU). La MMU forma parte del procesador
y su misión es traducir las direcciones lógicas emitidas por los procesos en
direcciones físicas.
UD 3: Sistemas operativos. Gestión de recursos
03 Gestión de los recursos de un sistema operativo

UD 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

4. MEMORIA VIRTUAL PAGINADA, MEMORIA VIRTUAL SEGMENTADA,


MEMORIA VIRTUAL EN SISTEMAS COMBINADOS
4.1. Memoria Virtual Paginada
La paginación, es una técnica de gestión de la memoria que consiste en dividir la memoria interna o RAM en zonas iguales,
llamadas marcos o tramas, y los programas en partes de idéntico tamaño, denominadas páginas.

Las páginas de los programas se cargan en cualesquiera marcos de página que haya disponibles en ese momento.

Para cada proceso activo, se define una tabla de páginas, que se construye en tiempo de carga del proceso. La tabla de páginas
de un proceso nos indica los marcos de página de la memoria principal en los que están cargadas cada una de las páginas en las
que se ha dividido el proceso. Además la tabla de páginas almacena una serie de bits que proporcionan información relevante
sobre cada una de las páginas (bit de ausencia/presencia, bit de modificación, etc. Las tablas de páginas de los procesos que
están en ejecución deben estar almacenadas en ram.

La tabla de mapa de memoria consiste en una única tabla del sistema que se utiliza para conocer el estado de cada marco de
página, es decir, si está ocupado o disponible, con objeto de asignarlos cuando algún proceso requiera memoria. El número de
entradas de esta tabla corresponde al número de marcos de página en los que ha sido dividida la memoria principal.

En paginación cada dirección lógica que genera el sistema se divide en:


<nº de página, desplazamiento dentro de la página>
El nº de página se usa como índice en la tabla de páginas.
El desplazamiento nos sitúa en la posición exacta dentro de la página.

Para convertir las direcciones lógicas a físicas, la MMU utiliza la tabla de páginas del proceso:

dirección física = (nº de marco * tamaño de página) + desplazamiento

La paginación produce cierta fragmentación interna de la memoria.

UD 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

page 6
page 7

UD 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

Fallo de página y reemplazo de página:

Con memoria virtual sólo se van cargando en memoria física las páginas que se van a
utilizar. Puede ocurrir que se deseen ejecutar páginas que no tengan asociados
marcos en memoria física (es decir, no están cargadas en ram), produciéndose lo que
se conoce como un fallo de página. En estos casos, el sistema deberá buscar marcos
libres y asignárselos. Es posible que el sistema no posea marcos libres, en tal caso el
sistema operativo cogerá una página que no esté empleando en ese momento y la
llevará a disco; una vez liberado el marco este podrá ser ocupado por la página que
originó el fallo de página. Se lleva a cabo un intercambiando las páginas entre
memoria principal y disco duro.

UD 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

Algoritmos de reemplazo de páginas:

Al ocurrir el fallo de página:

1. Se localiza la página demandada en el disco.


2. Se busca un marco libre (en la tabla de marcos libres) en el que alojarla.
3. En el caso de encontrarlo se utiliza y en el caso de que no existan marcos libre el
sistema operativo deberá elegir una página para retirarla de la memoria y usar el
espacio que esta deja libre para la página que acaba de ser referenciada. Existen
diferentes algoritmos para determinar la página que debe ser desalojada de
memoria, a continuación veremos algunos de estos.
4. La víctima elegida se transfiere a disco, actualizando la tabla de páginas del
proceso al que pertenece.
5. A continuación se traslada la página que ha sido referenciada a memoria,
cargándola en el marco que ha quedado libre, se actualiza la tabla de páginas y la
tabla de marcos.
6. Se reanuda la ejecución.

Algunos de los criterios o algoritmos utilizados por los Sistemas Operativos para
decidir qué página es la que va a ser reemplazada se describen a continuación:
UD 3: Sistemas operativos. Gestión de recursos
03 Gestión de los recursos de un sistema operativo

FIFO, la primera en entrar, primera en salir. Este algoritmo hace víctima a la página
que haya sido cargada primero en memoria, es decir aquella que lleve más tiempo
cargada en RAM. es fácil de implementar, justo e imparcial, pero no eficiente.

LRU, la usada menos recientemente. Escoge la página que hace más tiempo que no
se referencia. Necesita de una búsqueda exhaustiva.

ÓPTIMO, hace víctima a la página que más tiempo va a tardar en ser referenciada o
que nunca se va a referenciar. Este algoritmo debe de tener el menor índice de fallo de
páginas de todos los algoritmos, desafortunadamente, es fácil en teoría, pero
prácticamente imposible de implementar, dado que requiere conocer las necesidades
futuras del sistema. Puede resultar muy útil para estudios de comparación.

UD 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

Ejemplos de algoritmos de reemplazo de páginas:

Ejemplo FIFO (la primera página en entrar es la primera en salir):

Tenemos la siguiente cadena de referencias a páginas y un sistema con cuatro marcos. ¿Cómo
actuará el sistema operativo si usa el algoritmo FIFO para el reemplazo de páginas? ¿Cuántos
fallos de página tendremos?
0 1 2 3 4 5 3 4 1 6 7 8 7 8 9 7 8 9 5 4 0

Solución:
Referencias 0 1 2 3 4 5 3 4 1 6 7 8 7 8 9 7 8 9 5 4 0
Marco 0 0 0 0 0 4 4 4 4 4 4 7 7 7 7 7 7 7 7 7 4 4

Marco 1 1 1 1 1 5 5 5 5 5 5 8 8 8 8 8 8 8 8 8 0

Marco 2 2 2 2 2 2 2 1 1 1 1 1 1 9 9 9 9 9 9 9

Marco 3 3 3 3 3 3 3 6 6 6 6 6 6 6 6 6 5 5 5

Fallo o Hit F F F F F F H H F F F F H H F H H H F F F

Una vez terminado el proceso, contamos con 14 fallos de página y 7 hits.

UD 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

Ejemplos de algoritmos de reemplazo de páginas:

Ejemplo LRU (la usada menos recientemente):

Tenemos la siguiente cadena de referencias a páginas y un sistema con cuatro marcos. ¿Cómo
actuará el sistema operativo si usa el algoritmo LRU para el reemplazo de páginas? ¿Cuántos
fallos de página tendremos?
0 1 2 3 4 5 3 4 1 6 7 8 7 8 9 7 8 9 5 4 0

Solución:
Referencias 0 1 2 3 4 5 3 4 1 6 7 8 7 8 9 7 8 9 5 4 0

Marco 0 0 0 0 0 4 4 4 4 4 4 4 8 8 8 8 8 8 8 8 8 0

arco 1 1 1 1 1 5 5 5 5 6 6 6 6 6 6 6 6 6 5 5 5

Marco 2 2 2 2 2 2 2 1 1 1 1 1 1 9 9 9 9 9 9 9

Marco 3 3 3 3 3 3 3 3 7 7 7 7 7 7 7 7 7 4 4

Fallo o Hit F F F F F F H H F F F F H H F H H H F F F

Una vez terminado el proceso, contamos con 14 fallos de página y 7 hits.

UD 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

Ejemplos de algoritmos de reemplazo de páginas:

Ejemplo ÓPTIMO (la primera página en entrar es la primera en salir):

Tenemos la siguiente cadena de referencias a páginas y un sistema con cuatro marcos. ¿Cómo
actuará el sistema operativo si usa el algoritmo ÓPTIMO para el reemplazo de páginas?
¿Cuántos fallos de página tendremos?
0 1 2 3 4 5 3 4 1 6 7 8 7 8 9 7 8 9 5 4 0

Solución:
Unidad de tiempo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Referencias 0 1 2 3 4 5 3 4 1 6 7 8 7 8 9 7 8 9 5 4 0
Marco 0 0 0 0 0 O 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 4

Marco 1 1 1 1 1 1 1 1 1 6 6 8 8 8 8 8 8 8 8 8 8

Marco 2 2 2 4 4 4 4 4 4 4 4 4 4 9 9 9 9 9 9 9

Marco 3 3 3 3 3 3 3 3 7 7 7 7 7 7 7 7 7 7 0

Fallo o Hit F F F F F F H H H F F F H H F H H H H F F

Una vez terminado el proceso, contamos con 12 fallos de página y 9 hits.

UD 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

4.2. Memoria Virtual segmentada


La segmentación, es una técnica de gestión de la memoria en la que los programas se dividen en un conjunto de segmentos. No es
necesario que todos los segmentos tengan la misma longitud, aunque existe una longitud máxima de segmento.

Cuando un programa de usuario es compilado y ensamblado, se construyen los distintos segmentos que reflejan el programa, que
variarán en número y longitud según las necesidades del programa. Cuando se procede a la carga en memoria del programa, se
numeran los distintos segmentos, que se cargan en las zonas de memoria principal disponibles, creando la llamada tabla de
segmentos, que contiene para cada segmento la primera dirección física ocupada por el segmento y la longitud del segmento.
Además la tabla contendrá una serie de bits adicionales con información relevante sobre cada uno de los segmentos del proceso.

Para conocer qué zonas de memoria principal están libres se utiliza una lista de huecos libres.

En segmentación cada dirección lógica que genera el sistema se divide en:


<nº de segmento, desplazamiento dentro del segmento>
El nº de segmento se usa como índice en la tabla de segmentos.
El desplazamiento nos sitúa en la posición exacta dentro del segmento.

Para convertir las direcciones físicas a lógicas,


la MMU utiliza la tabla de segmentos del proceso:

dirección física = base del segmento + desplazamiento

La segmentación produce fragmentación externa de la memoria.

base - dirección física donde reside el inicio del segmento en


memoria ram
longitud - longitud del segmento

UD 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

4.3. Memoria Virtual, sistemas combinados

La paginación y la segmentación puras son técnicas de gestión de la memoria bastante


efectivas, aunque los sistemas operativos también implementan esquemas combinados, es
decir, combinan la paginación y la segmentación. Por tanto, nos podemos encontrar con la
paginación segmentada (menos frecuente), así como la segmentación paginada.

En la paginación segmentada, las tablas de páginas de los procesos se dividen en segmentos,


mientras que en la segmentación paginada cada segmento se divide en páginas, por lo que
cada segmento tiene su propia tabla de páginas. En esta última técnica, como decimos más
frecuente, un proceso se divide en segmentos. Cada segmento se vuelve a dividir en varias
páginas de tamaño fijo, que tienen la misma longitud que un marco de memoria principal. Si el
segmento tiene menor longitud que la página, el segmento ocupará sólo una página. De esta
manera, asociada con cada proceso existe una tabla de segmentos y varias tablas de páginas,
una por cada segmento.

Las direcciones tienen tres componentes: (s,p,d), donde la primera indica el numero del
segmento, la segunda el numero de la pagina dentro del segmento y la tercera el
desplazamiento dentro de la pagina.

UD 3: Sistemas operativos. Gestión de recursos


03 Gestión de los recursos de un sistema operativo

5. PROGRAMAS REUBICABLES, RESIDENTES Y REUTILIZABLES

Programas Reubicables
Son aquellos que, una vez cargados en RAM para ejecutarse, pueden variar de
situación, ya que la parte de RAM que ocupan puede ser necesaria para ubicar otro
proceso.

Programas Residentes
Son aquellos programas que, una vez cargados en memoria, permanecerán en ella
hasta que se apague el ordenador. No cambian su ubicación en ningún momento.
Suelen ser programas de antivirus, de monotorización, etc. Los más comunes son los
llamados centinelas, que incorporan los antivirus para que analicen continuamente lo
que se almacena en memoria.

Programas Reutilizables
Son programas que normalmente son utilizados por varios usuarios en memoria. Con
ello se consigue un mejor aprovechamiento de la memoria.

UD 3: Sistemas operativos. Gestión de recursos

También podría gustarte