Está en la página 1de 31

UT4: PROCESOS Y MEMORIA

VIRTUAL
SISTEMAS OPERATIVOS MONOPUESTO
ÍNDICE

1. Gestión de procesos.

2. Estados y transiciones.

3. Algoritmos de planificación.

4. Gestión de memoria.

5. Memoria virtual.
▪ Paginación.
▪ Segmentación.
▪ Swapping.
1. Gestión de procesos.
 Un proceso se puede definir como un programa en ejecución.

 Dependiendo del sistema operativo utilizado también se denomina


tarea, flujo de control, hilos o threads.

 Características de los procesos:


 Para ejecutarse es necesario que:
◆ Esté almacenado obligatoriamente en RAM.
◆ Tenga asignados todos los recursos que necesite.
 Cada proceso está protegido del resto de procesos.
 Pueden pertenecer al usuario o al sistema.
◆ Usuario: recursos hardware limitados.
◆ Sistema: acceso a cualquier recurso hardware.
1. Gestión de procesos.
 ¿Qué ocurre cuando un programa se convierte en proceso?
 Sus instrucciones se almacenan en memoria.
 Se asocia una estructura de datos denominada Bloque de
Control de Proceso (BCP).
▪ Única para cada proceso.
▪ Identifica el proceso frente a todos los demás.
▪ Controla la correcta ejecución del proceso.

PID Identificador ÚNICO del proceso


BCP del un proceso

Estado del proceso (Ejecución, Preparado o


ESTADO
Bloqueado)
PRIORIDAD Prioridad del proceso
REGISTROS Estado de los registros
OTRA INFORMACIÓN
2. Estados y transiciones.
 Una vez que un programa se ha lanzado y se ha convertido en proceso, puede
atravesar varias fases o estados hasta que termina o finaliza.

 Estados de los procesos:


 En ejecución: el procesador está ejecutando instrucciones y tiene concedido el
tiempo de uso de la CPU en un instante concreto.
 Preparado, en espera o listo: un proceso está preparado para ser ejecutado,
esto es, está esperando turno para poder utilizar su intervalo de tiempo.
 Bloqueado: el proceso está retenido, está bloqueado debido a diferentes
causas. Por ejemplo, dos procesos que utilizan el mismo fichero de datos
(software); dos procesos que necesitan utilizar la misma unidad de CD/DVD para
cargar determinados datos (hardware).

 Cuando se lanza no se ejecuta directamente, pasa a una cola de procesos


preparados (RAM).

 Los cambios de estado en los que se puede encontrar un proceso se denominan


transiciones.
2. Estados y transiciones.

Transiciones entre los diferentes estados


2. Estados y transiciones.

 Transición A: cuando el proceso necesita algún recurso para


seguir ejecutándose (dato, señal, etc.).

 Transición B: cuando el proceso ha finalizado su tiempo de


ejecución de CPU, pero no ha terminado.

 Transición C: al proceso preparado se le asigna un tiempo de


ejecución en la CPU.

 Transición D: el proceso recibe una señal que estaba


esperando para ponerse a la cola de preparados.
2. Estados y transiciones.

Cambio de contexto
3. Algoritmos de planificación.
 La planificación o gestión de procesos es una función
fundamental de los sistemas operativos.
 Consiste en determinar el orden en el que va a entrar a
ejecutarse los procesos a la CPU.
 El orden lo determina el planificador.
 Indicando los procesos que deben ejecutarse.
 El estado al que pasa el proceso.

 Especialmente en sistemas operativos multiproceso o en


sistemas operativos en red, siempre y cuando se ejecuten
varios procesos en el mismo equipo, la CPU se encarga de
asignar tiempos de ejecución a cada proceso según el tipo de
algoritmo y la prioridad de cada proceso.
3. Algoritmos de planificación.

 La elección del algoritmo se hace teniendo en cuenta varios


objetivos:
 Eficacia del uso del procesador.
 Rendimiento del sistema operativo.
 Procesos completados por unidad temporal.
 Tiempo de espera de un proceso.
 Tiempo de respuesta de un evento.

 Los diferentes tiempos permiten evaluar los algoritmos para


el grado de cumplimiento de los objetivos anteriores.
3. Algoritmos de planificación.

 Tiempo de retorno (TR): tiempo que tarda en completar su


ejecución un proceso, desde que llega hasta que termina.

 Tiempo de espera (TE): tiempo total que pasa un proceso en la cola


de preparados o listos.

 Tiempo medio de espera (TME): tiempo medio que tarda un


proceso en ejecutarse, la suma de todos los tiempos de espera de
todos los procesos dividido entre el número de procesos.

 Según el algoritmo utilizado, los procesos implicados esperarán


más o menos tiempo para ejecutarse completamente, y por tanto,
terminarán de ejecutarse antes o después..
3. Algoritmos de planificación.

Algoritmo FIFO (First In First Out) o FCFS (First Come First Serve)

 El primero que entra, el primero que sale. Primero en llegar,


primero en servirse.

¿Cómo funciona?
 Al primer proceso que llega se le asignan los ciclos de reloj que
necesita para ejecutarse completamente y terminar.
 A continuación, se ejecuta el siguiente proceso que hay en la cola
de preparados.
 Así sucesivamente hasta terminar con todos los procesos que hay
en la cola.
 Es apropiativo ya que permite que un proceso se adueñe de la CPU.
Ver diagrama en fichero AlgoritmosPlanificacion.pdf
3. Algoritmos de planificación.
Algoritmo SJF (Short Job First) o STR (Short Time Remainder)
 Primero el trabajo más corto.

 Asigna la ejecución a los procesos que necesitan menos tiempo


para ejecutarse.

¿Cómo funciona?
 Se está ejecutando un proceso y llega otro, éste va a la cola de
preparados.
 El proceso terminará su ejecución, y se elegirá entre la cola de
procesos preparados aquel cuyo tiempo sea más corto.
 Es un algoritmo apropiativo.
Ver diagrama en fichero AlgoritmosPlanificacion.pdf
3. Algoritmos de planificación.
Algoritmo SRTF (Shortest RemainingTime First)
 Asignación de CPU en función del proceso que le quede menos
ciclos de reloj para terminar.
¿Cómo funciona?
 Cuando llega un nuevo proceso, el planificador estima los ciclos que
le quedan al proceso en ejecución, y a los procesos que están en la
cola de preparados.
 Se elige al que menos ciclos le queden para terminar.
 Si estaba en la cola, se expulsa el que está en ejecución, y pasa el
nuevo a ejecutarse.
 En caso de empate, se usa FIFO.
 Es un algoritmo no apropiativo.
Ver diagrama en fichero AlgoritmosPlanificacion.pdf
3. Algoritmos de planificación.
Algoritmo por Prioridades
 Asignación de la CPU en función de la prioridad del proceso.

 Existen dos tipos, expulsivo y no expulsivo.

¿Cómo funciona?
Cuando llega un proceso, se evalúa su prioridad:
 Expulsivo: tiene en cuenta la prioridad del nuevo proceso, si es más
alta, expulsa el proceso que está en ejecución, y pasa a ejecutarse el
de mayor prioridad.
 No expulsivo: cuando en proceso que está en ejecución termina, el
planificador evalúa la prioridad de la cola de procesos preparados,
se elige aquel que tenga la prioridad más alta.
Ver diagrama en fichero AlgoritmosPlanificacion.pdf
3. Algoritmos de planificación.
Algoritmo Round Robin o de Rueda
 Asigna rotativamente los tiempos de ejecución a los procesos.

¿Cómo funciona?
 A cada proceso que llega se le asigna un quantum de tiempo.
 Cuando el proceso pasa a la ejecución, y agota ese quantum de
tiempo, el proceso tiene que abandonar la ejecución, pasando a la
cola de preparados, si no ha terminado, o finalizando la ejecución si
ha terminado.
 La selección de procesos en la cola de preparados se realiza
mediante FIFO.
 Es un algoritmo no apropiativo.
Ver diagrama en fichero AlgoritmosPlanificacion.pdf
4. Gestión de memoria.

 El cargador es el módulo del sistema operativo responsable de


cargar los procesos en memoria.

 El administrador de memoria es el módulo del sistema operativo


que administra la memoria. Sus funciones son:
 Controlar la partes de memoria utilizadas y libres.
 Reservar espacios de memoria para nuevos procesos.
 Liberar el espacio de los procesos que han terminado.
 Intercambio de datos entre memoria y disco duro.

 Necesitamos disponer de varios procesos en memoria de forma


simultánea, para sacar más partido al sistema operativo.
4. Gestión de memoria.

 Cada proceso tiene que usar su propio espacio de memoria,


sin afectar al espacio de otros procesos.

 Si se asigna a cada proceso zonas contiguas de memoria, se


divide la memoria en:
 Particiones fijas.
 Particiones variables.
4. Gestión de memoria.

Particiones Fijas.
 Las particiones no pueden variar el tamaño una vez creadas.

 No tienen por qué ser todas del mismo tamaño.

 Se crean cuando se carga el sistema operativo en memoria


RAM.

 El problema de las particiones fijas es la selección adecuada


de sus tamaños.

 Puede derivar en un desaprovechamiento de la memoria, ya


que se produce fragmentación interna y externa.
4. Gestión de memoria.
Fragmentación Interna

 El proceso es menor que la partición y no hace uso de ella


totalmente. Sistema operativo 64 KB 0x0000
Proceso C 128 KB

Proceso C
Partición de 250 KB – Proceso C 130 KB =
120 KB de fragmentación interna
Proceso B 250 KB

Proceso A 128 KB

Partición de 64 KB 0xFFFF
4. Gestión de memoria.

Fragmentación Externa

 La partición es muy pequeña para cualquier proceso que esté


esperando Sistema operativo 64 KB 0x0000
Proceso A 512 KB

Proceso D 272 KB Hueco libre 256 KB

¡No puede!
Proceso C 128 KB

Fragmentación externa 256 + 64 = 320 KB Hueco libre 64 KB 0xFFFF


4. Gestión de memoria.
Particiones Variables
 Las particiones pueden ser redimensionadas siempre que el
espacio libre sea contiguo.
 No hay fragmentación interna:
 El proceso ocupa la parte de memoria que necesita.
 El resto se asigna a otra partición o se crea una nueva.

 Hay fragmentación externa.

 Solución: permitir que los procesos utilicen memoria no


contigua.
 Dividiendo el proceso en partes.
 Aprovechar todo el conjunto de particiones libres.
5. Memoria virtual.
 Técnica de gestión de memoria que permite al sistema
operativo dar al software de usuario un espacio de
direcciones mayor que la memoria real.
 Si el programa a ejecutar es demasiado grande para ser
cargado en su totalidad en memoria RAM, ¿qué ocurre?
 Sólo se carga en memoria RAM la parte del programa que se
está ejecutando.
 El resto del programa se queda en el disco duro.

 Para el usuario da la sensación que el programa está por


completo en memoria RAM.
5. Memoria virtual.
5. Memoria virtual.

 Si cargamos muchos procesos, el sistema operativo trabaja más


lento.

 El intercambio entre RAM y disco duro es frecuente.

 Sistema operativos Windows:


 Recomendable asignar como mínimo 200 MB.
 Como máximo 1.5 x Cantidad RAM instalada.

 Sistemas operativos Linux:


 Máximo 2GB
 Se asigna al instalar el sistema operativo, creando la partición swap.
5.1. Paginación.
 Técnica que usa el redireccionamiento dinámico para transformar direcciones
lógicas a físicas.

 Utiliza la técnica de particiones fijas.

 Consiste en:
 Dividir la memoria RAM en zonas iguales llamadas frames. (Física)
 Dividir los procesos en partes del mismo tamaño llamadas páginas. (Lógica)

 Para cargar un programa en memoria el sistema operativo buscará en memoria


física los frames libres.

 ¿Dónde lo buscará? En la tabla de páginas.

 La CPU asigna direcciones físicas, no tienen por qué ser consecutivas, a las
páginas.
5.1. Paginación.
Ejemplo:

 Un proceso se divide en 5 páginas (00, 01, 02, 03, 04).

 A cada página (lógica) se le asigna un frame (física).

 Para la asignación se usa una tabla de páginas.


 Se construye cuando se carga el proceso.
 Hay tantas entradas como páginas tenga el proceso.

 Cada dirección lógica tiene dos campos:


 Uno para el acceso a la página en la tabla de páginas.
 Otro para desplazamientos en la memoria RAM.

 La CPU indica como dirección lógica 003 7FF.


 Acceso a la 4ª página donde está la dirección del frame 102.
 Ubicado en este frame, desplazamos 7EE posiciones.
5.1. Paginación.
5.2. Segmentación.

 Técnica similar a la paginación.

 Permite definir los bloques de memoria de tamaño variable


denominados segmentos.

 Cada segmento puede variar de cero hasta tamaño máximo,


tiene tamaños distintos según las necesidades del programa.

 La diferencia con la técnica de paginación es que utiliza la


técnica de particiones variables.

 El uso de una técnica u otra, paginación y/o segmentación,


depende del sistema operativo y del hardware.
5.3. Swapping.
 Cuando varios usuarios están ejecutando procesos en un mismo ordenador,
éstos tienen que estar almacenados en RAM.

 Según el estado en el que se encuentre el proceso de cada usuario


(bloqueados, suspendidos, espera de una operación de e/s, etc.), la memoria
se irá liberando de su proceso y pasará a la zona de swap mediante la técnica
llamada swap-out. (De RAM a disco duro)

 De esta forma, la memoria interna o principal queda liberada para que en ella
se pueda almacenar otro proceso del mismo usuario o de otro.

 Esta zona de intercambio o swap se usa en sistemas operativos UNIX/Linux.


 Se define el tamaño cuando se instala el sistema operativo.
 El tamaño recomendable es:
 Hasta 1GB de RAM la SWAP debería tener un tamaño igual al de la RAM.
 Entre 2GB y 4GB de RAM el tamaño de la SWAP debería ser la mitad de la
memoria RAM.
 Para equipos con más de 4GB de RAM la SWAP debería tener un tamaño
máximo de 2GB
5. Memoria virtual.
Conclusiones:
Paginación y segmentación.
 Usa un fichero de intercambio pagefile.sys.
 Puede ser que el disco duro esté lleno→ imposible gestión del
espacio de intercambio.
 Sistemas operativos Windows.

Swapping.
 Normalmente se dedica un dispositivo o partición independiente en
el disco duro.
 Más fácil la gestión del espacio de intercambio, ya que este espacio
siempre estará disponible para el intercambio de programas con
RAM.
 Sistemas operativos UNIX/Linux.

También podría gustarte