Está en la página 1de 19

Unidad 6: Gestión de procesos

ÍNDICE

1.Concepto de proceso
1. El bloque de control de procesos
2. Estados de un proceso
3. Hilos
4. Servicios
2.Algoritmos de planificación de procesos
1. Planificación FIFO
2. Planificación SJF
3. Planificación SRT
4. Planificación por Prioridades
5. Round Robin
3.Gestión de procesos en Linux
4.Gestión de procesos en Windows
Concepto de proceso

Un proceso es un programa en ejecución que necesita


recursos para poder ejecutarse: memoria, dispositivos de E/S,
la CPU, etc.
Cada vez que un programa se convierte en un proceso se carga en memoria RAM:

Parte del BCP: Se crea una estructura de datos única para este proceso que
va a servir al SO para identificar y controlar su correcta ejecución. Se denomina
Bloque de Control de Procesos (BCP).

Parte de código: Se le asigna un “trozo” de memoria principal que se va a


dividir en partes. En la primera de ellas se va a cargar el código del programa.
Se denomina segmento de código.

 Parte de datos: parte de memoria perteneciente al proceso que se usará para


guardar datos.

 Parte segmento de pila: parte de memoria perteneciente al proceso que se


usará para ejecutar el proceso y para comunicarse con otros procesos.
Concepto de proceso

Memoria RAM Memoria RAM


Proceso A Bloque Control de Proceso
Espacio para Código

Espacio para Datos

Espacio para Pila


Proceso B Bloque Control de Proceso
Código

Datos

Pila

Espacio libre Espacio libre


Bloque de control de procesos

El gestor de procesos necesita una serie de datos para mantener toda la


información asociada a cada proceso. Esta estructura se denominada bloque de
control de procesos (BCP).
Existe por tanto un BCP por cada uno de los procesos que están cargados en
memoria. Este bloque consta de múltiples elementos, entre los que destacan:

Identificador único del proceso (PID): este identificador se establece durante la


fase de creación del proceso. Es único para cada proceso, normalmente un número.

Prioridad del proceso: Prioridad asignada por el SO en función del tipo de proceso
aunque podrá ser cambiada por el administrador del sistema.

Estado del proceso. Por ej. listo, en espera, bloqueado.

Información de estado del sistema de E/S: los dispositivos de E/S asignados al


proceso, la lista de archivos abiertos, el directorio actual y el directorio raíz.

Identificadores de usuario (UID): Indica el usuario que ha creado el proceso y que


va determinar los privilegios del proceso y quien podrá mandarle señales.
Bloque de control de procesos: Linux
Bloque de control de procesos:Windows
Multiprogramación

En los primeros ordenadores solo se cargaba un proceso en memoria


y la cpu se dedicaba exclusivamente a ejecutar dicho proceso.
Se observó que con esta forma de trabajar la cpu estaba mucho
tiempo parada, sobre todo cuando el proceso tenia que realizar
operaciones E/S, durante la cual la CPU estaba prácticamente
inactiva.

Para optimizar el uso de la CPU surgió la idea de que en esos


momentos se ejecutara otro programa, apareciendo el concepto de la
multiprogramación.

El objetivo de la multiprogramación es maximizar el uso del


procesador. Para conseguirlo se cargan varios programas en
memoria simultáneamente que van a competir por ejecutarse lo
antes posible en la CPU. El gestor de procesos es la parte del SO
encargada de elegir un proceso de entre los cargados en
memoria.
Estados de un proceso
Cuando en un sistema existe la multiprogramación a medida que un proceso
se va ejecutando puede pasa por una serie de estados. Una de las principales
funciones del SO será la de controlar el estado de todos los procesos existentes
en el sistema.
Los distintos estados por los que va a pasar un proceso son:
Nuevo: Es el primer estado de un proceso. Ocurre cuando el gestor de procesos
esta creando todas las estructuras del proceso.
Listo: Una vez que se crea el proceso este puede empezar a ejecutarse pero solo
se empezará a ejecutarse cuando el SO lo decida.
Ejecución: El procesador está ejecutando las instrucciones del proceso. A este
estado sólo se llega desde el estado Listo.
Bloqueado: Cuando un proceso se está ejecutando es posible que necesite recibir
una señal, un dato o esperar que algo acabe (una operación de E/S). En este punto
el proceso no está en condiciones de ejecutarse, está detenido esperando por algo.
Una vez llega la respuesta, pasa de nuevo al estado de Listo.
Terminado: El proceso ha finalizado y el gestor de recursos libera todos los
recursos que tenía asignados.
Estados de un proceso
Hilos y Servicios

Los hilos de ejecución (thread) son básicamente tareas que puede


ejecutarse a la vez. Estas tareas se denominan hilos cuando ejecutan el
código de un mismo proceso (también se llaman subprocesos) y permiten a
este proceso ejecutar varias tareas a la vez.
Por ejemplo: Editar concurrentemente varios documentos de Word.

Servicios: Los procesos pueden ejecutarse en primer plano (interactuando con los
usuarios) o en segundo plano (realizan funciones específicas sin interactuar con los
usuarios). Estos últimos se llaman demonios o servicios.

Algunos de los servicios son del sistema, se levantan de forma automática cuando
arranca el sistema operativo y van a estar en ejecución constantemente atendiendo
a programas o usuarios.

Los administradores del sistemas podrán iniciar, detener, reanudar, pausar, etc. los
servicios, pero algunos de ellos, los servicios del sistema, deberán siempre estar en
Ejecución.
Planificación de procesos

En un sistema moderno existe multitud de procesos cargados en


memoria todos ellos compitiendo por el uso de la CPU para ser
ejecutados.

El sistema operativo decide qué proceso puede utilizar la CPU en


cada momento y cuando tiene que dejar de utilizarla para que otro
proceso la pueda utilizar. La parte del sistema operativo que realiza
esta planificación es el planificador de procesos.

Los sistemas operativos implementan diferentes algoritmos


y políticas de planificación de procesos para que el sistema
sea lo mas eficiente posible

¿Cómo valoramos si una política o algoritmo es mejor o


peor que otra?
Planificación de procesos

Para determinar si un algoritmo de planificación es mejor o


peor se tienen en cuenta los siguientes parámetros:
 Utilización de CPU: % de tiempo que la CPU está ocupada
 Tiempo de retorno: tiempo transcurrido entre la llegada de un
proceso y su finalización
 Tiempo de espera: tiempo que un proceso permanece en la cola de
preparados
 Tiempo de respuesta: tiempo que un proceso bloqueado tarda en
entrar en CPU, desde que ocurre el evento que lo bloquea

El mejor algoritmo será aquel que maximiza el uso del


procesador, y minimiza los tiempos de retorno, espera y
respuesta.
Algoritmo de planificación FCFS

En la planificación FIFO (First In First Out) o FCSC (First Come First


Served) los procesos son atendidos según llegan a la cola de
preparados. Es el algoritmo más simple, ya que cuando se crea un
proceso, se sitúa en la cola de preparados, al final.
Cuando el procesador queda libre, el planificador coge el proceso
situado en la cabecera de la cola.
Características
No expropiativo y no usa prioridades.
Muy sencillo de implementar y ejecutar para el SO pero poco
eficiente.
Tiempo medio variable en función de la llegada de los
procesos.
Malo si hay un proceso largo que llega pronto: el resto de los
procesos esperan mucho (tiempo de espera alto).
Algoritmo de planificación FCFS primero en llegar
expropiativo

Ejemplo: En un sistema se han creado 3 procesos con los siguientes datos:

Se tiene que determinar cual es el


tiempo de espera, y el tiempo de
retorno

Para realizar el ejercicio se hace un diagrama de Grantt


Planificación SJF

En la planificación SJF (Short Job First), cuya traducción sería el


trabajo más corto primero, los procesos son elegidos en función del
tiempo estimado en que terminarán.
Se eligen primero aquellos cuyo tiempo estimado de finalización sea
menor, es decir, se ejecuta primero el proceso mas corto que este en
la cola de preparados. Si hay dos procesos que tienen la misma
duración prevista, se elige al primero que haya llegado.

Características
SFJ es No expropiativo y no usa prioridades. El proceso abandona
voluntariamente la CPU.
Malo para procesos largos.
Lo realmente complicado de la planificación SJF es estimar el
tiempo que tardará en finalizar un proceso, para ello se hace uso del
comportamiento en el pasado del proceso
Algoritmo de planificación SJF mas corto primero
expropiativo

Ejemplo: En un sistema se han creado 3 procesos con los siguientes datos:

Se tiene que determinar cual es el


tiempo de espera, y el tiempo de
retorno

Para realizar el ejercicio se hace un diagrama de Grantt


Algoritmo de planificación SRTF prioridad no expropiativo

Es una versión expulsiva del anterior: El proceso en CPU es


desalojado si llega a la cola un proceso con duración más corta.
Ejemplo: En un sistema se han creado 3 procesos con los siguientes datos:
Se tiene que determinar cual es el
tiempo de espera, y el tiempo de
retorno
Para realizar el ejercicio se hace un diagrama de Grantt
Planificación por Prioridades

Cada proceso tiene una prioridad de modo que entra en la CPU aquel que
tiene mayor prioridad.

La prioridad de los procesos la suele marcar el SO, aunque también puede


ser fijada por el usuario.

Este algoritmo de planificación por prioridades puede ser:


Expropiativo: Si durante la ejecución de un proceso llega otro con
una prioridad mayor, el proceso en ejecución es expulsado y se asigna
la CPU al nuevo.
No expropiativo: Una vez que un proceso toma el control del
procesador no puede ser expulsado.

El gran problema de este algoritmo es que puede ser que los procesos con
menos prioridad no se lleguen a ejecutar. Esto se suele solucionar
aumentando la prioridad de los procesos que mas tiempo llevan
esperando.
Algoritmo de planificación Round-Robin

Es una versión del algoritmo FCFS o FIFO, todos los procesos cuando van llegando
se ponen a la cola, y cuando utilizan la CPU lo hacen durante un Quantum de
tiempo y luego se vuelve a poner a la cola
Ejemplo: En un sistema se han creado 3 procesos con los siguientes datos,
Quantum 2:
Se tiene que determinar cual es el
tiempo de espera, y el tiempo de
retorno

También podría gustarte