Sie sind auf Seite 1von 5

Implantación de Sistemas Operativos. 1º ASIR.

Curso 2018/19

B1 - GESTIÓN DE PROCESOS

1 Introducción 1
2 Programas y procesos 1
3 Tipos de procesos 2
4 El modelo de procesos 3
5 Planificación de procesos 4
5.1 Algoritmos de planificación 4
5.1.1 FIFO- El primero que llega se atiende primero 4
5.1.2 STF – Elegir al proceso mas corto 5
5.1.3 RR - Carrusel o Round-Robin 5
5.1.4 Planificación por prioridad 5
5.1.5 Planificación por reparto equitativo 5
5.1.6 Múltiples colas 5

1 INTRODUCCIÓN
En un sistema con multiprogramación, el sistema operativo debe repartir los recursos
disponibles entre los distintos programas activos en el sistema, de manera que cada programa
ejecute como si tuviera su propio ordenador (es decir, el objetivo consiste en que un programa
se ejecute como si fuese el único que utiliza la máquina).
La ejecución concurrente de programas permite un uso más eficiente del procesador, ya
que casi siempre tendrá cosas que hacer, proporciona un mejor servicio a múltiples usuarios,
puesto que se puede intercalar la ejecución de actividades de distintos usuarios, y posibilita el
desarrollo de aplicaciones paralelas con múltiples flujos de ejecución, que en algunos casos
pueden conducir a una solución más adecuada y eficiente que la obtenida usando un programa
secuencial.

2 PROGRAMAS Y PROCESOS
El procesador es el elemento del ordenador que ejecuta los programas. La parte del
programa que está en ejecución se denomina proceso, es decir, un proceso es una instancia
de un programa en ejecución. A su vez, un programa en ejecución puede generar varios
procesos. Es importante diferenciar entre proceso y programa:
 Programa: Lista de instrucciones. Ente pasivo. Se almacena en ficheros.
 Proceso: Ejecución de un programa. Ente activo. La ejecución de un programa
requiere que éste se cargue, previamente, en memoria.
El sistema operativo crea y mantiene para cada proceso una serie de estructuras de
información que permiten identificar sus características y los recursos asignados. Es el Bloque
de Control de Proceso. (BCP, o PCB en ingles). En el BCP se mantiene como mínimo los
siguientes datos:
• Identificador del proceso - PID: Número único para el proceso
• Instante de creación del proceso
• Usuario creador del proceso
• Prioridad del proceso
• Estado del proceso
• Ubicacion en memoria
• Recurso utilizados(ficheros abiertos, puertos de conexion
• Estadísticas (Uso de la CPU, disco, memoria asignada).

-1-
Implantación de Sistemas Operativos. 1º ASIR. Curso 2018/19

El proceso es la principal abstracción creada por el sistema operativo, alrededor de la


cual se articula toda su funcionalidad. Esta abstracción permite la ejecución segura y eficiente
de múltiples actividades concurrentes sobre un único computador, lo que redunda en un uso
más eficiente del mismo y en un mejor servicio a los usuarios.
El proceso es la unidad de trabajo del procesador. En un momento dado existen
múltiples procesos ejecutándose concurrentemente en el ordenador. Existen procesos del SO
(ejecutan código de sistema) y de usuarios (ejecutan código de usuario).
Un proceso necesita varios recursos: tiempo de procesador, memoria, archivos y
dispositivos de E/S. Estos recursos se deben asignar al crear el proceso o durante su ejecución
y se liberan al término del proceso.
El SO es responsable de las siguientes actividades:
 Crear y eliminar procesos.
 Suspender y reanudar la ejecución de los procesos.
 Proporcionar mecanismos para la comunicación de procesos.
 Proporcionar mecanismos para la sincronización de procesos.
 Proporcionar mecanismos para le manejo de bloqueos mutuos, deadlock.

3 TIPOS DE PROCESOS
Los procesos se clasifican en dos tipos, dependiendo de la función que realizan:
 Procesos de sistema; también son llamados procesos de núcleo, ya que son los
procesos asociados a las funciones que realiza el micronúcleo en los sistemas
operativos modernos. Son los procesos más importantes, por lo que se ejecutan con el

-2-
Implantación de Sistemas Operativos. 1º ASIR. Curso 2018/19

mayor nivel de prioridad, con lo que consiguen el uso del procesador siempre que lo
necesitan.
 Procesos de usuario; son todos aquellos procesos que no son procesos de sistema.
No se corresponden únicamente con los programas que ejecuta directamente el
usuario, sino también cualquier otro programa que se ejecute en el sistema, incluso
programas asociados al sistema operativo que no alcanzan la categoría de procesos
del sistema.

4 EL MODELO DE PROCESOS
Un proceso pasa por una serie de estados. Varios eventos pueden ocasionar que un
proceso cambie de estado.
Se dice que un proceso se está en estado de ejecución, si tiene asignado el
procesador. Se dice que un proceso está en estado preparado si está preparado para utilizar
el procesador en caso de estar disponible. Un proceso está en estado bloqueado si está
esperando que suceda algún evento para poder proseguir su ejecución.
Solamente puede haber un proceso en ejecución a la vez, pero puede haber varios
preparados y varios pueden estar bloqueados. Así pues, se forma una lista de procesos
preparados y otras de procesos bloqueados. La lista de procesos preparados se ordena por
prioridad, de manera que el siguiente proceso que use el procesador será el primero de la lista.
La lista de procesos bloqueados normalmente no está ordenada; los procesos se desbloquean
cuando ocurren los eventos que están esperando.
Para evitar que un proceso monopolice el procesador, el sistema operativo permite que
se ejecute un proceso durante un intervalo de tiempo específico denominado quantum. Si el
proceso no libera voluntariamente el procesador antes de que expire el quantum, el sistema
operativo echa del procesador al proceso (lo pasa al estado preparado), y procede a ejecutar el
siguiente de los procesos de la cola de preparados (pasándolo al estado en ejecución).
Los estados en los que puede estar un proceso son:
 Nuevo; recién creado por el SO.
 En ejecución; el proceso está actualmente usando el procesador. En un sistema
habrá tantos procesos en este estado como procesadores.
 Bloqueado; el proceso no puede continuar debido a que está a la espera de que se
produzca un determinado evento. Por ejemplo, el proceso puede estar esperando que
se termine una operación de entrada/salida. El proceso se habrá quedado parado en
la rutina de tratamiento de un evento.
 Preparado (listo para ejecutar); el proceso podría estar en ejecución pero no tiene un
procesador asignado en estos momentos. Por ejemplo, el proceso se habrá quedado
parado en la rutina de tratamiento de un evento.
 Terminado; no ejecutará más instrucciones.
A continuación mostramos el diagrama de transición de estados:

-3-
Implantación de Sistemas Operativos. 1º ASIR. Curso 2018/19

Por ejemplo, si utilizamos un editor de textos, el estado normal variará entre ejecución
(cuando el editor tenga asignado el uso del procesador) o preparado (cuando el planificador
haya asignado el uso del editor a otro proceso). Si realizamos la operación de abrir un fichero,
el editor pasa al estado bloqueado, debido a que está esperando a que se termine una
operación de entrada/salida (a que se termine de abrir el fichero). Al terminar la operación de
estrada/salida, el editor pasa al estado preparado, lo que indica que puede seguir ejecutándose
normalmente.

Video: https://www.youtube.com/watch?v=jxGnKR3JoOw

5 PLANIFICACIÓN DE PROCESOS
La planificación abarca la decisión del proceso que entrará en ejecución
inmediatamente de la cola de preparados cuando el procesador queda libre. El encargado de
realizar esta tarea se llama algoritmo de planificación. Los objetivos de este algoritmo son:
 Justicia; asegurarse de que todos los procesos tengan su turno de procesador. Debe
evitar que los procesos con más prioridad acaparen al procesador provocando que los
procesos de menor prioridad no se ejecuten nunca (es lo que se denomina inanición).
 Eficiencia; debe mantener ocupado el procesador todo el tiempo.
Para lograr estos objetivos el SO podrá expulsar del procesador al proceso en ejecución y
llevarlo a estado de preparado para que otro proceso pueda ejecutarse.
Un proceso expulsado y en estado de preparado se reiniciará en el mismo contexto/estado
donde se detuvo, para ello el SO:
• Guarda el contexto/estado del proceso que estaba ejecutándose en el PCB.
• Carga el contexto/estado del proceso que entra al procesador.
A esto es lo que llamamos Cambio de Contexto

5.1 Algoritmos de planificación


Veamos algunos de los algoritmos de planificación:

5.1.1 FIFO- El primero que llega se atiende primero


También denominado FIFO (First In First Out) o FCFS (First Come First Server).
Consiste en atender a los procesos en estricto orden de llegada a la cola de preparados. Cada
proceso se ejecuta hasta que termina o hasta que se bloquea en una llamada de E/S. Llegado
este caso se selecciona el proceso que más tiempo lleva en la cola.

-4-
Implantación de Sistemas Operativos. 1º ASIR. Curso 2018/19

Este algoritmo no es válido para la ejecución de procesos interactivos, ya que para que
las peticiones de un usuario fueran atendidas tendría que esperar a que finalizaran todas las
operaciones anteriores.

5.1.2 STF – Elegir al proceso mas corto


STF (Shortest Task First) o SJF (Shortest Job First).
Prioridad a los procesos cortos a la hora de elegir. No expulsivo. A Igual Duración se usa FIFO.
Tiene el problema de que los procesos largos pueden no ejecutarse nunca.
Existe la versión expulsiva de STF y es el SRTF (Short Remaining Time First) -
Planificación por Prioridad al Tiempo Restante más Corto

5.1.3 RR - Carrusel o Round-Robin


Este algoritmo asigna a cada proceso un tiempo de ejecución predefinido muy corto
(quantum). El proceso se ejecuta hasta que termina su tarea, hasta que se bloquea en una
llamada de E/S o hasta que termina su quantum. Llegado este caso se selecciona el proceso
que más tiempo lleva en la cola.
Es importante determinar correctamente el tamaño de quantum. Si el quantum es
grande, los tiempos de respuesta en operaciones interactivas pueden no ser satisfactorios
(parecido a FIFO). Si es pequeño, el procesador puede gastar demasiado tiempo en cambiar
de un proceso a otro, con lo que perderíamos tiempo de ejecución efectivo.

5.1.4 Planificación por prioridad


En este caso a cada proceso se le asigna una prioridad. El procesador siempre se
asigna al proceso de mayor prioridad de la cola de preparados.
Hay muchas formas de asignar prioridades, por ejemplo, asignar más prioridad a los
procesos de sistema que a los procesos de usuario.
Para evitar que los procesos de baja prioridad no se ejecuten nunca (inanición), se
puede ir variando la prioridad, aumentando la de aquellos que hayan usado poco tiempo el
procesador y disminuyendo la de los que lo han usado mucho tiempo. En este caso tenemos
prioridades dinámicas, y en el contrario prioridades estáticas.

5.1.5 Planificación por reparto equitativo


Este tipo se aplica a los sistemas multiusuario. El sistema ha de repartir los recursos
procurando que cada usuario tenga una porción equitativa del sistema, de forma que se
asignen menos recursos al usuario que haya echo mayor uso del sistema y viceversa.

5.1.6 Múltiples colas


Consiste en tener varias colas, que agrupan los procesos según el tipo (sistema,
usuario, …). Cada cola se planifica con el algoritmo más adecuado al tipo.
Por ejemplo, si tenemos una cola para los procesos del sistema y otra cola para los
procesos de usuario, para gestionar la primera cola el algoritmo podría ser FIFO, y para
gestionar la segunda podría ser round-robin.

-5-

Das könnte Ihnen auch gefallen