Sunteți pe pagina 1din 6

GESTION DE PROCESOS

Gran parte de las acciones de un Sistema Operativo giran en torno a los procesos.

El sistema operativo permite la ejecución concurrente (intercalada) de muchos procesos en


beneficio de un tiempo de respuesta razonable y maximizando la utilización del procesador.

El sistema operativo debe asignar recursos a los procesos de acuerdo a una política y evitando
situaciones no deseables como el deadlock.

El sistema operativo ayuda en la estructuración de aplicaciones de usuario en cuestiones


relacionadas con la creación de procesos y la comunicación entre procesos.

1. CONCEPTO DE GESTION DE PROCESOS


Un proceso es la unidad de trabajo de un sistema. Un sistema consta de una colección de
procesos que se ejecutan concurrentemente, siendo algunos de ellos procesos del sistema
operativo (aquellos que ejecutan código del sistema) y el resto, procesos de usuarios (aquellos
que ejecutan código del usuario).

Un programa en ejecución es un proceso. Un proceso necesita para llevar a cabo una tarea
ciertos recursos, entre los que incluye tiempo del cpu, memoria, archivos y dispositivos de e/s.
estos recursos se proporcionan al proceso en el momento de crearlo o se le asignan mientras
se está ejecutando. Además de los diversos recursos físicos y lógicos que un proceso obtiene
pueden pasársele diversos datos de inicialización (entradas). Ejem: considere un proceso cuya
función sea la de mostrar el estado de un archivo en pantalla de un terminal, a ese proceso le
proporcionamos como entrada el nombre del archivo y el proceso ejecuta las instrucciones y
llamadas al sistema para obtener y mostrar en el terminal la información deseada, cuando el
proceso termina el sistema operativo reclama todos los recursos reutilizables.

2. ESTADOS DE UN PROCESO
A medida que se ejecuta un proceso, el proceso va cambiando de estado. El estado de un
proceso se define, en arte, según la actividad actual de dicho proceso.

Cuando un proceso se bloquea, lo hace debido a que comúnmente está esperando una
entrada que todavía no está disponible. También es posible que un proceso, que esté listo en
concepto y pueda ejecutarse, se detenga debido a que el sistema operativo ha decidido
asignar la CPU a otro proceso por cierto tiempo. En el primer caso, la suspensión está
inherente en el problema (no se puede procesar la línea de comandos del usuario sino hasta
que éste la haya escrito mediante el teclado).En el segundo caso, es un tecnicismo del sistema
(no hay suficientes CPUs como para otorgar a cada proceso su propio procesador privado). En
la figura 2-2 podemos ver un diagrama de estados que muestra los tres estados en los que se
puede encontrar un proceso:

1. En ejecución (en realidad está usando la CPU en ese instante).


2. Listo (ejecutable; se detuvo temporalmente para dejar que se ejecute otro proceso).
3. Bloqueado (no puede ejecutarse sino hasta que ocurra cierto evento externo).
1 el proceso se bloquea para recibir la
entrada

En ejecución 2 el planificador selecciona otro proceso


1 2
4 3 el planificador selecciona este proceso

4 la entrada ya está disponible


Bloqueado 3 Listo

Hay cuatro transiciones posibles entre estos tres estados. La transición 1 ocurre cuando el
sistema operativo descubre que un proceso no puede continuar justo en ese momento. La
transición 2 ocurre cuando el planificador decide que el proceso en ejecución se ha ejecutado
el tiempo suficiente y es momento de dejar que otro proceso tenga una parte del tiempo de la
CPU. La transición 3 ocurre cuando todos los demás procesos han tenido su parte del tiempo
de la CPU y es momento de que el primer proceso obtenga la CPU para ejecutarse de nuevo. El
tema de la planificación de procesos (decidir qué proceso debe ejecutarse en qué momento y
por cuánto tiempo) es importante. La transición 4 ocurre cuando se produce el evento externo
por el que un proceso estaba esperando (como la llegada de ciertos datos de entrada). Si no
hay otro proceso en ejecución en ese instante, se activa la transición 3 y el proceso empieza a
ejecutarse. En caso contrario, tal vez tenga que esperar en el estado listo por unos instantes,
hasta que la CPU esté disponible y sea su turno de utilizarla.

1. Nuevo: el proceso está siendo creado


2. En ejecución: se están ejecutando las instrucciones
3. En espera: el proceso está esperando a que se produzca un suceso (como la
terminación de una operación de e/s o la recepción de una señal
4. Preparado: el proceso está a la espera de que le asignen un procesador
5. Terminado: ha terminado la ejecución del proceso

3. TABLA DE PROCESO Y EL BLOQUE DE CONTROL DE PROCESO

- Bloque de control de procesos: cada proceso se representa en el sistema operativo


mediante el bloque de control de procesos, este contiene muchos elementos de
información asociados con un proceso especifico entre los que se incluyen:
 Estado del proceso: el estado puede ser nuevo, preparado, en ejecución, en
espera, determinado etc.
 Contador de programa: el contador indica la dirección de la siguiente instrucción
que va a ejecutar dicho proceso
 Registros de la CPU: los registros varían en cuanto a número y tipo, incluyen los
acumuladores, registros de índices, punteros de pila y registros de propósito
general además de toda la información de los indicadores de estado, esta
información de estado debe guardarse junto con el contador de programa cuando
se produce una interrupción , para que luego el proceso pueda ejecutarse
correctamente
 Información de planificación de la CPU: esta información incluye la prioridad del
proceso, los punteros a las colas de planificación y cualesquiera otros parámetros
de planificación que se requieran
 Información de gestión de memoria: incluye información acerca del valor de los
registros base y limite, las tablas de paginas o las tablas de segmentos,
dependiendo del mecanismo de gestión de memoria utilizado por el sistema
operativo
 Información contable: esta información incluye la cantidad del CPU y de tiempo
real empleados, los límites de tiempo asignados, los números de cuenta, el
numero de trabajo proceso
Estado del proceso
Numero de proceso
Contador del programa

Limites de memoria
Lista de archivos abiertos

 Información del estado de e/s: esta información incluye la lista de los dispositivos de
e/s asignados al proceso, una lista de los archivos abiertos etc.

En resumen el bloque de control de procesos sirve simplemente como repositorio de


cualquier información que pueda variar de un proceso a otro

Esencialmente el sistema operativo administra el uso que hacen los procesos de los recursos
del sistema.

Qué necesita el sistema operativo para controlar los procesos y administrar los recursos para
ellos?

- Tablas de control del sistema operativo: El sistema operativo construye y mantiene


tablas con los datos de cada entidad que administra. Básicamente los datos se
organizan en cuatro categorías: memoria, E/S, archivos y procesos.
 Tabla de Memoria: se utilizan básicamente para seguir la pista de la memoria principal
y secundaria asignada a cada proceso.
 Tabla de E/S: utilizada para administrar los dispositivos y canales relacionados con E/S.
Antes de acceder a un dispositivo es necesario conocer su estado, si hay una operación
de E/S en marcha el sistema operativo necesita saber el estado de la operación y las
direcciones de memoria utilizadas para la transferencia.
 Tabla de archivos: almacenan datos sobre la posición en memoria principal y
secundaria, estado actual y atributos.
 Tabla de procesos: contiene datos necesarios para la administración de procesos.

Las tablas antes mencionadas deben mantener alguna relación ya que memoria, dispositivos y
archivos son administrados en función de los requerimientos de los procesos. El sistema operativo
mediante asistencia del administrador o un programa de autoconfiguración tiene acceso a datos
que definan su entorno básico.

4. CREACION DE UN PROCESO
Los sistemas operativos necesitan cierta manera de crear procesos. En sistemas muy simples
(diseñados para ejecutar una sola aplicación ejem el controlador en un horno de microondas),
es posible tener presentes todos los procesos que se vayan a requerir cuando el sistema inicie.
No obstante, en los sistemas de propósito general se necesita cierta forma de crear y terminar
procesos según sea necesario durante la operación.

Un proceso puede crear otro o varios procesos nuevos mientras se ejecuta, para ello se utiliza
una llamada al sistema específica para la creación de procesos. El proceso creador se
denomina proceso padre y los nuevos procesos son los hijos de dicho proceso. Cada uno de
estos procesos nuevos puede a su vez crear otros procesos, dando lugar a un árbol de
procesos.

En general un proceso necesita ciertos recursos (tiempo de CPU, memoria, archivos,


dispositivos de e/s) para llevar a cabo sus tareas, cuando un proceso crea u subproceso dicho
subproceso puede obtener sus recursos directamente des S.O o puede estar restringido a un
subconjunto de los recursos del proceso padre, el padre puede repartir sus recursos entre sus
hijos, o puede compartir algunos recursos

Hay 4 eventos principales que provocan la creación de procesos:

1. El arranque del sistema: Generalmente, cuando se arranca un sistema operativo se crean


varios procesos. Algunos de ellos son procesos en 1er plano; es decir, procesos que
interactúan con los usuarios (humanos). Otros son procesos en 2do plano, que no están
asociados con usuarios específicos sino con una función específica. Los procesos que
permanecen en segundo plano para manejar ciertas actividades como aceptar correo
electrónico entrante, para aceptar peticiones entrantes para las páginas Web, noticias,
impresiones, etcétera, se conocen como demonios.

2. La ejecución, desde un proceso, de una llamada al sistema para creación de procesos: A


menudo, un proceso en ejecución emitirá llamadas al sistema para crear uno o más procesos
nuevos, para que le ayuden a realizar su trabajo. En especial, es útil crear procesos cuando el
trabajo a realizarse puede formular fácilmente en términos de varios procesos interactivos
relacionados entre sí, pero independientes en los demás aspectos. Por ejemplo, si se va a
obtener una gran cantidad de datos a través de una red para su posterior procesamiento,
puede ser conveniente crear un proceso para obtener los datos y colocarlos en un búfer
compartido, mientras un segundo proceso remueve los elementos de datos y los procesa. En
un multiprocesador, al permitir que cada proceso se ejecute en una CPU distinta también se
puede hacer que el trabajo se realice con mayor rapidez.

3. Una petición de usuario para crear un proceso: En los sistemas interactivos, los usuarios
pueden iniciar un programa escribiendo un comando o haciendo (doble) clic en un icono.
Cualquiera de las dos acciones inicia un proceso y ejecuta el programa seleccionado. En los
sistemas UNIX basados en comandos que ejecutan X, el nuevo proceso se hace cargo de la
ventana en la que se inició. En Microsoft Windows, cuando se inicia un proceso no tiene una
ventana, pero puede crear una (o más) y la mayoría lo hace. En ambos sistemas, los usuarios
pueden tener varias ventanas abiertas a la vez, cada una ejecutando algún proceso. Mediante
el ratón, el usuario puede seleccionar una ventana e interactuar con el proceso.

4. El inicio de un trabajo por lotes: La última situación en la que se crean los procesos se aplica
sólo a los sistemas de procesa-miento por lotes que se encuentran en las mainframes grandes.
Aquí los usuarios pueden enviar trabajos de procesamiento por lotes al sistema (posiblemente
en forma remota). Cuando el sistema operativo decide que tiene los recursos para ejecutar
otro trabajo, crea un proceso y ejecuta el siguiente trabajo de la cola de entrada.
Técnicamente, en todos estos casos, hay que hacer que un proceso existente ejecute una
llamada al sistema de creación de proceso. Ese proceso puede ser un proceso de usuario en
ejecución, un proceso del sistema invocado mediante el teclado o ratón, o un proceso del
administrador de procesamiento por lotes.
5. CAMBIO DE UN PROCESO
Las interrupciones hacen que el S.O obligue a la CPU a abandonar su tarea actual, para
ejecutar una rutina del kernel. Cuando se produce una interrupción el sistema tiene que
guardar el contexto actual del proceso que está ejecutando en la CPU, de modo que pueda
restaurar dicho contexto cuando su procesamiento concluya, suspendiendo el proceso y
reanudándolo otra vez.

Un cambio de contexto se origina en los siguientes sucesos: interrupción, Cepo, llamada al


sistema.

- Interrupción: el control se transfiere a un gestor de interrupciones y luego se salta a la


rutina del sistema operativo que se ocupa del tipo de interrupción provocada. Algunas
interrupciones:
 de reloj: el sistema operativo determina si el proceso en ejecución ha consumido su
quantum de tiempo. Si es así el proceso pasa al estado en ejecución y se itinera otro
proceso.
 de E/S: si la acción involucra varios estados que están bloqueados, estos pasan al
estado en ejecución. El sistema operativo decide si reanuda la ejecución del proceso
actualmente en ejecución o da paso a otro (en estado en ejecución) de mayor
prioridad.
 fallo de memoria: ocurre cuando el procesador descubre que una referencia a una
dirección de memoria virtual no se encuentra en memoria principal. El sistema
operativo trae el bloque a memoria principal, lo cual involucra una solicitud de E/S. Es
posible que se provoque un cambio de contexto, luego que el bloque se almacena en
memoria el proceso pasa al estado en ejecución.
- Cepo: tiene que ver con una condición de error o excepción generada dentro del
proceso en ejecución. El sistema operativo determina si el error es fatal. Si es así, el
proceso pasa al estado terminado y se produce un cambio de contexto.
- Llamada al sistema: provoca la transferencia a una rutina que es parte del kernel, lo
cual provoca, en la mayoría de los casos, que el programa usuario pase al estado
preparado.
6. CAMBIO DE MODO

La razón por la que se usan dos modos debe quedar clara. Es necesario proteger al sistema
operativo y a las estructuras de datos importantes, tales como los bloques de control de
procesos, de las inferencias de los programas de usuario. En el modo núcleo o privilegiado, el
software tiene control completo del procesador y de todas las instrucciones, registros y
memoria.

Surgen dos preguntas: ¿cómo conoce el procesador en qué modo va a ejecutar?, ¿cómo se
cambia de modo? Para la primera pregunta, hay un bit en la PSW( palabra de estado ), que
indica el modo de ejecución. El bit se cambia como respuesta a ciertos sucesos tales como una
llamada al sistema y, así, se cambia de modo.

7. RPROCESOS LIGEROS
Una clasificación según como los procesos comparten la memoria es:

Procesos Pesados: no comparten memoria. Cada uno se ejecuta en su procesador virtual. La


ventaja es que esto proporciona protección. La comunicación entre procesos se realiza
mediante pipes, mensajes, disco, etc.

Procesos Livianos: comparten memoria, no proporcionan protección y se comunican de


manera eficiente mediante la memoria

Otra clasificación tiene que ver con quién tiene el control para transferir el procesador de un
proceso a otro:

Procesos preemptive: el kernel toma la decisión de la cual es el proceso que utilizará el


procesador. Lo anterior puede ocurrir en cualquier momento.

Procesos non-preemptive: es el proceso quién toma la decisión de retornar el control del


procesador a otro proceso.

S-ar putea să vă placă și