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