Un proceso es una instancia de un programa en ejecución. No se interpreta como el programa completo. Si durante el proceso se intentara ejecutar todo el programa al mismo tiempo, tendría que cargar toda la información del este a la memoria principal y posiblemente saturaría la capacidad de la misma, con poca posibilidad de ejecutar otros programas de manera “simultánea” haciendo al sistema menos eficiente y alargando los tiempos de espera.
Los procesos se pueden encontrar en 5 diferentes estados, dependiendo de la etapa de su desarrollo en la que ser encuentren:
Nuevo
Se crea un nuevo proceso para ejecutar un programa.
Listo
El sistema operativo mueve a un proceso de nuevo a listo cuando éste se encuentre preparado para ejecutar el nuevo proceso. Normalmente el sistema limita la cantidad de procesos que pueden estar en este estado, dependiendo de la capacidad de la memoria principal, de este modo se asegura de mantener un rendimiento aceptable.
Ejecutando
Se ejecuta el proceso y el sistema operativo selecciona uno de los que ser encuentren listos utilizando el algoritmo planificador.
Saliente
Se pasa a este estado una vez que se finaliza la ejecución de proceso actual, ya sea porque el proceso indica que ha terminado o por que se tuvo que abortar por alguna razón.
Bloqueado
Un proceso bloqueado se pone en este estado cuando durante su ejecución solicita alguna acción que va a tardar en dar una respuesta, por lo que tiene que esperar, y con tal de no perder el tiempo y maximizar la utilización de recursos, se pone temporalmente en pausa hasta que se reciba la señal esperada y pase una vez más al estado de "listo" y pueda seguir ejecutándose.
La traza de un proceso se trata de un listado de todas las instrucciones que se vana ejecutar durante un proceso, organizado de manera secuencial. UN bloque de Control de Proceso (BCP) es aquel que permite recabar y almacenar la información necesaria del proceso para que ser pueda pausar y una vez que el sistema regrese a ejecutarlo puede continuar dónde se quedó, lo que es de vital importancia en un sistema multiprogramado pues es común que se pausen los procesos para ejecutar otros y sin este bloque se tendría que empezar de cero.
Los procesos agilizan la asignación de los recursos a cada proceso, determinando cuál o cuáles son los que están disponibles para ejecutarse y los que todavía no. De la misma manera, ayuda a mantener un control de la cantidad de procesos y las relaciones entre estos con ciertos eventos, de manera que puede seccionar quiénes están esperando tal o cuál evento específico.
n
Es más rápido crear un hilo que crear todo un proceso, aproximadamente diez veces más rápido. Se finaliza primero un hilo que un proceso. Es más rápido intercalar entre dos hilos dentro de un mismo proceso. Los hilos hacen que se mejore la comunicación entre diferentes programas que se están ejecutando. Los hilos de un mismo proceso, al compartir memoria y archivos, se pueden comunicar entre ellos sin necesitar invocar un núcleo.
Ayudan a simplificar la estructura de programas que realizan varias funciones diferentes.
Trabajo en primer y segundo planos
Mientras un hilo realiza una tarea, otro ejecuta una diferente, lo que puede hacer pensar al usuario que un proceso es más veloz, cuando en realidad se está ejecutando el siguiente proceso sin que haya terminado el primero.
Procesamiento asíncrono
Se puede crear un hilo que realice una actividad independiente del proceso que se está realizando, siendo planificado directamente por el sistema operativo y sin tener que agregar líneas de código al programa principal.
No hay comentarios:
Publicar un comentario