miércoles, 29 de octubre de 2014

PROCESOS EN LOS SISTEMAS OPERATIVOS


CONSEPTO:
Un proceso no es mas que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros y las variables. Conceptualmente cada unos de estos procesos tiene su propia CPU virtual. Desde luego, en la realidad la verdadera CPU conmuta de un proceso a otro. Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por: Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
Programas.- Colección de instrucciones que el procesador interpreta y ejecuta, se almacenan en sistemas no
volátiles necesitando ser cargados en memoria principal para poder ser ejecutados, se considera un ente
estático.

Procesos.-Programa en ejecución, el sistema operativo les asigna recursos, Se consideran un ente dinámico.
El proceso es una abstracción creada por el SO, que se compone de:

Código de Programa: sección texto

Contexto de Ejecución: PC, registros del procesador y una pila para invocación de procedimientos

Sección de Datos, que contiene variables globales

Recursos del sistema.


Características:
Permite modularizar y aislar errores de programas durante su ejecución

Soporta concurrencia de actividades, lo que permite un mejor aprovechamiento de los recursos

Denominaremos como procesos tanto a los trabajos (jobs) en sistemas de lotes, como a las tareas (task)en sistemas de tiempo compartido.


Modelo:
La diferencia entre un programa (conjunto de instrucciones) y un proceso (instrucciones ejecutándose) es obvia y crucial para entender el funcionamiento de los SO.


ESTADOS:
El estado de un proceso puede plasmarse como un grafico el cual asemeja una maquina virtual, así  por ejemplo sea la siguiente figura que especifica el estatus de un proceso:




TRANCICIONES:

Nuevo–>Listo
Al crearse un proceso pasa inmediatamente al estado listo.
Listo–>Ejecutando
En el estado de listo, el proceso solo espera para que se le asigne un procesador para ejecutar.
Ejecutando–>Listo
Ante una interrupción que se generé, el proceso puede perder el recurso procesador y pasar al estado de listo
Ejecutando–>Bloqueado
A medida que el proceso ejecuta instrucciones realiza pedidos en distintos componentes (ej.: genera un pedido de E/S).

Bloqueado–>Listo
Una vez que ocurre el evento que el proceso estaba esperando en la cola de espera, el proceso es puesto nuevamente en la cola de procesos listos.
Ejecutando->Terminado
Cuando el proceso ejecuta su última instrucción pasa al estado terminado.



Procesos Ligeros (Hilos o Hebras):
El concepto de proceso es más complejo y sutil que el presentado hasta ahora. Engloba dos conceptos separados y potencialmente independientes: uno relativo a la propiedad de recursos y otro que hace referencia a la ejecución.
Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y, de tanto en tanto, se le puede asignar otros recursos como dispositivos de E/S o ficheros.
Unidad a la que se le asigna el procesador: Un proceso es un flujo de ejecución (una traza) a través de uno o más programas. Esta ejecución se entremezcla con la de otros procesos. De tal forma, que un proceso tiene un estado (en ejecución, listo, etc).


TODOS LOS PROCESOS LIGEROS DE UN MISMO PROCESO COMPARTEN LA INFORMACIÓN DEL MISMO. EN CONCRETO, COMPARTEN:

       Espacio de memoria.
       Variables globales.
       Archivos abiertos.
       Procesos hijos.
       Temporizadores.
       Señales y semáforos.
       Contabilidad.

No hay comentarios.:

Publicar un comentario