Sie sind auf Seite 1von 15

MODULO 2

ADMINISTRACIÓN DE PROCESOS

INSTITUTO TECNOLÓGICO UNIVERSITARIO


Introducción a los Sistemas Operativos
Procesos
Un proceso es, en esencia, programa en ejecución.
Puede definirse como la una unidad de procesamiento
gestionada por el SO.

El hecho de que el SO sea multitarea implica que podemos lanzar más de un programa a la vez, todos los
programas, cuya ejecución solicitan los usuarios, se ejecutan en forma de procesos.
Aunque nuestro ordenador sólo disponga de una CPU el SO se encarga de repartir el tiempo de
procesamiento de la misma para que varios procesos puedan ir realizando sus operaciones, dando la
sensación de que se están ejecutando todos a la vez.
Bloque de control de procesos (BCP)
El SO mantiene por cada proceso una serie de estructuras de información que permite identificar las
características de éste, así como los recursos que tiene asignados (descriptores de segmentos de memoria
asignados, descriptores de los archivos abiertos, descriptores de puertos de comunicación, etc.).
Una parte muy importante de estas informaciones se encuentra en el llamado bloque de control de procesos
(BCP) que contienen la información básica del proceso, entre la que cabe destacar la siguiente:
Bloque de control de procesos (BCP)
• Información de identificación: se identifica al usuario y al proceso, incluye los siguientes datos:
• Identificador del proceso
• Identificación del proceso padre en caso de existir relaciones padre-hijo
• Información sobre el usuario
• Estado del procesador: contiene el estado del procesador o su valor en el instante en que fue interrumpido
• Estado del proceso: El estado puede ser: nuevo, listo, en ejecución, en espera, detenido, etcétera.
• Contador de programa: El contador indica la dirección de la siguiente instrucción que se ejecutará para este proceso.
• Registros de CPU: Los registros incluyen acumuladores, registros índice, punteros de pila y registros de propósito general, junto con el
contador de programa, esta información de estado se debe guardar cuando ocurre una interrupción, para que el proceso pueda continuar
correctamente después.
• Información de control del proceso:
• Información de planificación y estado.
Estado del proceso - Evento por el que espera el proceso cuando está bloqueado - Prioridad del proceso - Información de planificación
• Descripción de los segmentos de memoria asignados al proceso
• Recursos asignados, tales como
Archivos abiertos (tabla de descriptores o manejadores de archivo) - Puertos de comunicación asignados.
• Punteros para estructurar los proceso en colas.
• Comunicación entre procesos.
Programa o proceso
La diferencia entre un proceso y un programa es sutil, la explicaremos con una
analogía.
“Un cocinero dispone de una receta a cocinar dentro de su cocina, que posee varios
recursos.
La receta representa el programa, el cocinero representa el procesador, los ingredientes
de la receta representan los datos de entrada. El proceso es la actividad a llevar a cabo
siguiendo la receta y añadiendo ingredientes.
Imaginemos que ingresa el hijo del cocinero, diciendo que le ha picado una abeja. El
cocinero apunta donde iba en el seguimiento de la receta (salva el estado del proceso
actual) y toma un libro de primeros auxilios para seguir las instrucciones para atender la
picadura.
En este caso se ve como el procesador conmuta de un proceso (instrucción de la receta) a
un proceso de mayor prioridad (curar la picadura) cada uno de los cuales sigue un
programa diferente, receta y libro de primeros auxilios.
Terminada la curación el cocinero continua en el punto donde dejo la receta.”

Un proceso es una actividad de algún tipo. Tiene un programa, entrada, salida y un


estado.
Un único procesador puede compartirse entre varios procesos utilizando un algoritmo
de planificación que determine cuándo hay que detener el trabajo sobre un proceso y
pasar a atender a otro diferente
Multiprogramación
La multiprogramación es una técnica que permite la ejecución
simultánea de múltiples procesos en un único procesador.
En realidad, esta técnica produce una ilusión de paralelismo, de
manera que parece que todos los procesos se están ejecutando a la
vez. Sin embargo, hay un único proceso ejecutándose en el
procesador a la vez.
El planificador de procesos es la parte del sistema operativo que se
encarga de decidir qué proceso emplea el procesador en cada
instante, por tanto, es el encargado de implementar la
multiprogramación
Creación de Procesos
Los cuatro principales sucesos que provocan la creación de nuevos procesos son:
1. La inicialización del sistema
Cuando un SO arranca, se crean típicamente varios procesos. Algunos de esos procesos son procesos de superficie (o en
primer plano), esto es, procesos que interactúan con los usuarios (humanos) y realizan trabajo para ellos. Otros son
procesos de fondo (o en segundo plano), que no están asociados con usuarios particulares, sino que tienen alguna
función específica.

2. La ejecución por parte de un proceso (en ejecución) de una llamada al sistema de creación de un nuevo
proceso.
A menudo un proceso en ejecución puede hacer llamadas al sistema para crear uno o más procesos nuevos para que le
ayuden en su trabajo.

3. La petición por parte del usuario de la creación de un nuevo proceso.


En sistemas interactivos los usuarios pueden arrancar un programa tecleando un comando o pinchando (dos veces) con
el ratón sobre un icono. Realizando cualquiera de esas acciones conseguimos que comience un nuevo proceso y se
ejecute el programa correspondiente.

4. El inicio de un trabajo en batch..


Terminación de Procesos
Los procesos deben terminar, usualmente debido a una de las siguientes causas:
1. El proceso completa su trabajo y termina (voluntariamente).
La mayoría de los procesos terminan debido a que han completado su trabajo.

2. El proceso detecta un error y termina (voluntariamente).


La segunda causa de terminación es que el proceso descubra un error fatal. Por ejemplo, si un usuario teclea el
comando.

3. El sistema detecta un error fatal del proceso y fuerza su terminación.


En La tercera causa de terminación es la aparición de un error causado por el proceso, a menudo debido a un error de
programación.

4. Otro proceso fuerza la terminación del proceso (por ejemplo en UNIX mediante la llamada al sistema kill)
La cuarta razón por la cual un proceso puede terminar, es que un proceso ejecute una llamada al sistema diciéndole al
sistema operativo que mate a algún otro proceso.
Estado de los Procesos
Todo proceso en un SO presenta un estado que indica la situación de la ejecución en que se encuentra.
Consideramos que todo proceso puede estar, como mínimo, en uno de los siguientes tres estados:
1. Activo o en Ejecución: el proceso está ejecutándose, usando el procesador. Pueden haber tantos
procesos activos como procesadores haya disponibles. Por tanto, si el sistema dispone de un único
procesador, únicamente puede haber un proceso activo a la vez.
2. Preparado: el proceso no está ejecutándose pero es candidato a pasar a estado activo. Es el planificador
el que, en base a un criterio de planificación, decide qué proceso selecciona de la lista de procesos
preparados para pasar a estado activo.
3. Bloqueado: el proceso está pendiente de un evento externo que le ha hecho bloquear, tales como una
operación de lectura/escritura, la espera de finalización de un proceso hijo, una señal o una operación
sobre un semáforo. El dispositivo/hecho externo "avisa" al S.O. cuando ha terminado la acción que
realizaba mediante una INTERRUPCIÓN, dejando el S.O. lo que está haciendo para atender a esta última.
Tras esto, el S.O. comprueba cuales son los procesos que fueron bloqueados por ese evento externo,
cambiándolos al estado de preparado.
Planificador de Procesos
El planificador de procesos es la parte del sistema operativo que se encarga de seleccionar a qué proceso se
asigna el recurso procesador y durante cuánto tiempo.
Sus funciones son:
• Llevar el control del estado de cada proceso.
• Decidir qué proceso usará el procesador y durante cuánto tiempo, para ello empleará un cierto criterio en
base al cual tomará las decisiones. Si implementa multiprogramación, deberá emplear un criterio que evite
que un proceso monopolice el procesador.
• Asignar el procesador al proceso, restableciendo el contexto de la ejecución del proceso por donde fuere. El
contexto de la ejecución se encuentra almacenado en el PCB del proceso asignado.
• Retirar el procesador al proceso, salvando el contexto de la ejecución del proceso, para poder restablecerlo
posteriormente una vez que vuelva a ser asignado. El contexto de la ejecución se almacenará en el PCB del
proceso retirado.
Conmutación de Procesos
La conmutación de procesos es la operación que consiste en retirar el procesador a un proceso para
asignárselo a otro. La conmutación se produce por cuatro razones:
1. Un proceso agota el tiempo máximo asignado al procesador, por tanto, se debe dar paso a otro proceso para
garantizar que la multiprogramación es llevada a cabo apropiadamente.
2. Un proceso está pendiente de un evento externo, por tanto, pasa a estado bloqueado haciendo uso de la llamada al
sistema bloqueante. El planificador debe asignar el procesador a otro nuevo proceso de entre los que están en estado
preparado.
3. Que termine la ejecución del proceso en cuestión.
4. Que haya una interrupción en la ejecución.
Los pasos que se siguen son los siguientes:
1. Pasar a modo privilegiado.
2. Guardar el contenido de los registros del hardware en el PCB (el llamado contexto de la ejecución).
3. Actualizar el estado del proceso en el PCB (el estado ha pasado de activo a bloqueado o preparado).
4. Si se produjo una interrupción, atenderla.
5. Seleccionar un nuevo proceso.
6. Restaurar el contexto de ejecución del nuevo proceso seleccionado. En el caso de que el nuevo proceso no hubiese estado en el
contexto de la ejecución deberá inicializarse.
7. Pasar a modo no privilegiado.
Procesos ligeros - Hilos o Threads
Un proceso ligero o threads, es un programa en
ejecución (flujo de ejecución) que comparte la imagen de
memoria y otras informaciones con otros procesos
ligeros.
Un proceso puede contener un solo flujo de ejecución o más de uno. El hilo de ejecución
primario corresponde a la función main.
Cada hilo tiene información que le es propia y que no comparte con los otros (Contador
de programa, pila, registros, estado) y los hilos de un mismo proceso comparten la
información de este (Espacio de memoria, variables globales, archivos abiertos, procesos
hijos, señales y contabilidad)
Ventajas
• Menor penalización en cuanto a conmutación. Ya que sólo se produce un salto en la ejecución de código del
proceso, no interviene el planificador de procesos.
• Dos hilos de un mismo proceso comparten memoria aprovechando mejor los recursos y eliminando los
mecanismos de comunicación necesarios para soluciones implementadas en varios procesos.
• Se puede llamar a otro hilo del mismo proceso en lugar de conmutar a otro proceso externo, ahorrando así
tiempo de conmutación asociado a la ejecución del planificador de procesos.
Planificación de Procesos
Si sólo hay una CPU disponible, es necesario hacer una elección para determinar cuál de esos procesos será el
siguiente que se ejecute.
El planificador es el módulo del SO que realiza la función de seleccionar el proceso en estado de listo que pasa
a estado de ejecución, mientras que el activador es el módulo que pone en ejecución el proceso planificado.
Los sistemas pueden incluir varios niveles de planificación de procesos :
• Planificación a largo plazo: Añade nuevos procesos al sistema tomándolos de la lista de espera, aplica a procesos
donde no importa el instante preciso en el que se ejecuten.
• Planificación a medio plazo: trata la suspensión de procesos, decide que procesos pasan a suspendido y cuáles dejan
de estar suspendidos.
• Planificación a corto plazo: selecciona el proceso en estado de listo que pasa a estado de ejecución, asigna el
procesador
Tipos de Planificaciones
• Con expulsión: El SO puede sacar a un proceso del estado de ejecución aunque este no lo solicite. Se
controla el tiempo que está en ejecución un proceso, pero requiere ejecución del SO en forma sistemática.
• Sin expulsión: un proceso conserva el procesador mientras lo desee hasta que necesite del SO un servicio
que lo bloquee. Esto minimiza el tiempo que gasta el SO en planificar y activar procesos, pero puede
suceder que un proceso monopolice el procesador.
Para realizar las funciones de planificación, el SO organiza los procesos listos en una serie de estructuras de
información que facilita la búsqueda del proceso a planificar, estas series consisten en colas de prioridad,
donde se ordenan los procesos listos para ser fácilmente encontrados.
Algoritmos de Planificaciones
• Cíclica o Round-robin: Los procesos se ordenan en forma de cola circular, utilizando una porción de tiempo
estipulada, eligiéndose para ejecución el proceso de cabecera de la cola y permaneciendo hasta que o el proceso
pase a estado bloqueado, por o consume su tiempo asignado. Cuando un proceso consumió su tiempo es
expulsado y pasa a ocupar el último lugar en la cola.
• FIFO (First In, First Out): Se ordena la cola de acuerdo al instante en que los procesos pasan al estado de listo, los
que llevan más tiempo esperando están más cerca de la cabecera, no se plantea expulsión por lo que el proceso
ejecuta hasta que finaliza o se bloquea ante una llamada al SO.
• Por prioridades: se selecciona para ejecutar el proceso en estado de listo que tenga la máxima prioridad, para
evitar que un proceso con baja prioridad no sea ejecutado, se implementa un mecanismo de envejecimiento que
va aumentando la prioridad de los procesos que llevan un determinado tiempo esperando a ser ejecutados.
Cuando hay varios procesos listos con igual prioridad se utiliza otro algoritmo para decidir entre ellos. Suele ser
con expulsión.
• Primero el trabajo más corto: se debe conocer a priori el tiempo de ejecución de los procesos, solo es aplicable a
trabajos batch repetitivos con comportamiento ya analizado. Se selecciona para ejecución al proceso listo con
menor tiempo de ejecución, este se ejecuta mientras lo desee, porque no se plantea expulsión. La desventaja es
que los procesos que requieran más tiempo pueden no llegar a ejecutarse.
• Aleatorio: se elige al azar el proceso a ejecutar.

Das könnte Ihnen auch gefallen