Existe el termino CONCURRENCIA, que se refiere en el contexto de los procesos y los procesadores a la capacidad que tiene un procesador de atender uno o muchos procesos simultaneamente.
No debemos confundir la palabra Concurrencia que es atender muchos procesos simultaneamente con el Paralelismo que es atender muchos procesos en el mismo instante, para lo cual se precisa de multiples procesadores.
Entonces para que se atiendan multiples procesos de forma concurrente (simultanea), debe existir un administrador de procesos el cual es encargado de alistar los procesos para ser procesados por el procesador, asignarles un cuantum de tiempo especifico a cada proceso, verificar que se cumpla este cuantum de tiempo, colocar en espera el proceso cuando ha cumplido su cuantum de tiempo y verificar cando se ha concluido un proceso. En resumen el administrador de procesos es el encargado de seleccionar el proceso de turno para que sea ejecutado por el CPU.
Proceso
Ahora que hablamos sobre procesos, se entiende como un proceso a la ejecucion de un programa o aplicacion, estos procesos son alojados en la memoria antes de ser atendidos por el CPU, existen dos tipos de procesos, el primero son los procesos del kernel que se ejecutan en modo privilegiado, y el segundo timpo de procesos que son los de usuario, estos se ejecutan sin privilegios.
Programa o Aplicacion
Un programa es una coleccion de codigos guardada en el disco duro o en una unidad de almacenamiento, este programa se convierte en proceso cuando es ejecutado por el procesador.
Analogia de diferencia entre programa y proceso:
- Programa: Receta de cocina
- Proceso: Cocinar esa receta.
- Programa: Recorrido de un viaje.
- Proceso: Viajar.
- Programa: Libro
- Proceso: Leer el libro.
Para que un procesador sea capaz de ejecutar procesos concurrentemente (rimultaneamente), es necesario que asigne estados a cada uno de los procesos, los estados existentes que pueden tomar los procesos son:
Creado = Created
Listo = Ready
En Ejecucion = Running
Suspendido = Waiting
Terminado = Terminated
PCB = Process Control Block
El sistema operativo, encargado de la gestion de procesos. Crea una estructura para cada proceso que quiere ser atendido por el CPU, a esta estructura se le llama BLOQUE DE CONTROL DEL PROCESO, en ella se almacena:
- El identificador del proceso
- El estado (Creado, Listo, Ejecutando, Esperando o Terminado).
- El cuantum de tiempo
- Con tador del proceso.
- Valor del registro de CPU
- Ubicacion y espacio utilizado en la memoria
- Recursos asignados al proceso
- Estadisticas del proceso.
- Datos del propietario del proceso
- Permisos del proceso.
- Señales pendientes de ser atendidas.
Cuando un proceso quiere hacer presencia y que sea considerado por el administrador de procesos es necesario que cuente con su estructura PCB y cuando el proceso ha terminado la estructura PCB asociada es eliminada para dejar libre el registro y que un nuevo proceso pueda hacer uso de este espacio.
Listas existentes dentro del Administrador de Procesos:
- Lista de Procesos, es una estructura circular donde estan todos los procesos listados, con su apuntador a su descriptor.
- Lista de Procesos Listos, es la estructura que contiene los descriptores de los procesos que estan listos para ser ejecutados, estos son procesos candidatos para ser atendidos por el CPU.
- Listado de Procesos en Espera, es la estructura que contiene los descriptores de procesos que han sido interrumpidos o que estan en espera de una señal.
No hay comentarios:
Publicar un comentario