QUE ES UN PROCESO?
El concepto central de cualquier Sistema Operativo es el de proceso: una abstracción de un programa en ejecución también llamada tarea.
El emplazamiento del control de un procedimiento que está siendo ejecutado. Aquello que se manifiesta por la existencia en el Sistema Operativo de un bloque de control de proceso.
BLOQUE DE CONTROL DE PROCESO (BCP).
El sistema operativo mantiene una tabla de procesos con todos los BPC de procesos.
- Esta tabla de procesos se construye con una estructura estática que tiene un determinado número de BPC. Todos del mismo tamaño.
- Todo el software ejecutable, inclusive el Sistema Operativo, se organiza en varios procesos secuenciales o procesos.
- Un proceso incluye al programa en ejecución y a los valores activos del contador, registros y variables del mismo.
- Conceptualmente cada proceso tiene su propia cpu virtual.
- Si
la cpu alterna entre los procesos, la velocidad a la que ejecuta un
proceso no será uniforme, por lo que es necesario aclarar lo siguiente:
- Que los procesos no deben programarse con hipótesis implícitas acerca del tiempo.
- Que
normalmente la mayoría de los procesos no son afectados por la
multiprogramación subyacente de la cpu o las velocidades relativas de
procesos distintos.
- Un proceso es una actividad de un cierto tipo, que tiene un programa, entrada, salida y estado.
- Un solo procesador puede ser compartido entre varios procesos con cierto “algoritmo de planificación” , el cual determina cuándo detener el trabajo en un proceso y dar servicio a otro distinto
MULTITAREA
Podemos clasificar los sistemas de la siguiente forma:
MONOPROCESO
Según el número de procesos que se puede ejecutar simultáneamente:
MULTIPROCESO
Según el número de usuarios que se puede ejecutar simultáneamente:
· Mono-usuario
· Multiusuario.
Conceptos de la Multitarea
1. Alternancia en los procesos de fases de E/S y de procesamiento.
2. Paralelismo real entre E/S y procesador.
3. Memoria principal capaz de almacenar varios procesos.
1.- Alternancia en los procesos de fases de E/S y de procesamiento.
En un sistema multitarea es importante tener más de un proceso activo y cargado en memoria principal.
2.- Paralelismo real entre E/S y procesador.
Los
procesos ligeros permiten que un proceso aproveche mas el procesador,
es decir, ejecute más deprisa. La base del paralelismo consiste
mientras que un proceso ligero esta bloqueado otro puede ejecutarse.
3.- Memoria principal capaz de almacenar varios procesos.
El
sistema operativo con el apoyo del hardware de gestión de memoria del
procesador debe repartir el almacenamiento existente proporcionando un
espacio de memoria independiente para cada proceso.
Ventajas de la Multitarea
§ Facilita la programación. Permite dividir las aplicaciones en varios procesos, lo que beneficia a su modularidad.
§ Permite prestar un buen servicio.
§ Aprovecha los tiempos muertos que los procesos pasan esperando a que se completen sus operaciones de E/S.
§ Aumenta el uso del CPU.
Estados del proceso
· Cada proceso es una entidad independiente pero frecuentemente debe interactuar con otros procesos.
· Los procesos pueden bloquearse en su ejecución porque:
· Desde el punto de vista lógico no puede continuar porque espera datos que aún no están disponibles.
· El Sistema Operativo asignó la cpu a otro proceso.
· Los estados que puede tener un proceso son
· En ejecución: utiliza la cpu en el instante dado.
· Listo: ejecutable, se detiene en forma temporal para que se ejecute otro proceso.
· Bloqueado: no se puede ejecutar debido a la ocurrencia de algún evento externo.
· Hay otros estados de los procesos, pero inicialmente se tratarán estos tres.
· Por sencillez, se considera un sistema con una sola CPU, aunque no es difícil la extensión a múltiples procesadores.
· Solamente puede haber un proceso en ejecución a la vez, pero pueden existir varios listos y varios pueden estar bloqueados.
· La
lista de procesos bloqueados normalmente no está ordenada; los procesos
no se desbloquean (es decir, no pasan a ser procesos listos) en orden
de prioridad, sino que lo hacen en el orden de ocurrencia de los
eventos que están esperando.
· Durante
su existencia un proceso pasa por una serie de estados discretos,
siendo varias las circunstancias que pueden hacer que el mismo cambie
de estado.
· Debido a ello se puede establecer una:
· “Lista de Listos” para los procesos “listos”
· Una “Lista de Bloqueados” para los “bloqueados”.
· La “Lista de Listos” se mantiene en orden prioritario y la “Lista de Bloqueados” está desordenada, ya que los procesos se desbloquean en el orden en que tienen lugar los eventos que están esperando.
· Al admitirse un trabajo en el sistema se crea un proceso equivalente y es insertado en la última parte de la “Lista de Listos”.
· La asignación de la cpu al primer proceso de la “Lista de Listos” se denomina “Despacho”, que es ejecutado por una entidad del Sistema Operativo llamada “Despachador”.
· El “Bloqueo”
es la única transición de estado iniciada por el propio proceso del
usuario, puesto que las otras transiciones son iniciadas por entidades
ajenas al proceso.