Sistema operativo: procesos
Proceso
Un proceso es básicamente un programa en ejecución. La ejecución de un proceso debe progresar de forma secuencial.
Un proceso se define como una entidad que representa la unidad básica de trabajo a implementar en el sistema.
Para decirlo en términos simples, escribimos nuestros programas de computadora en un archivo de texto y cuando ejecutamos este programa, se convierte en un proceso que realiza todas las tareas mencionadas en el programa.
Cuando un programa se carga en la memoria y se convierte en un proceso, se puede dividir en cuatro secciones: pila, montón, texto y datos. La siguiente imagen muestra un diseño simplificado de un proceso dentro de la memoria principal:
SN | Descripción de Componente |
---|---|
1 | Stack La pila de procesos contiene los datos temporales como parámetros de método / función, dirección de retorno y variables locales. |
2 | Heap Se trata de memoria asignada dinámicamente a un proceso durante su tiempo de ejecución. |
3 | Text Esto incluye la actividad actual representada por el valor de Program Counter y el contenido de los registros del procesador. |
4 | Data Esta sección contiene las variables globales y estáticas. |
Programa
Un programa es un fragmento de código que puede ser una sola línea o millones de líneas. Un programa informático generalmente lo escribe un programador informático en un lenguaje de programación. Por ejemplo, aquí hay un programa simple escrito en lenguaje de programación C:
#include <stdio.h>
int main() {
printf("Hello, World! \n");
return 0;
}
Un programa de computadora es una colección de instrucciones que realiza una tarea específica cuando la ejecuta una computadora. Cuando comparamos un programa con un proceso, podemos concluir que un proceso es una instancia dinámica de un programa de computadora.
Una parte de un programa de computadora que realiza una tarea bien definida se conoce como algorithm. Una colección de programas de computadora, bibliotecas y datos relacionados se conoce comosoftware.
Ciclo de vida del proceso
Cuando un proceso se ejecuta, pasa por diferentes estados. Estas etapas pueden diferir en diferentes sistemas operativos y los nombres de estos estados tampoco están estandarizados.
En general, un proceso puede tener uno de los siguientes cinco estados a la vez.
SN | Estado y descripción |
---|---|
1 | Start Este es el estado inicial cuando se inicia / crea un proceso por primera vez. |
2 | Ready El proceso está esperando ser asignado a un procesador. Los procesos listos están esperando que el sistema operativo les asigne el procesador para que puedan ejecutarse. El proceso puede entrar en este estado despuésStart estado o mientras lo ejecuta pero interrumpido por el programador para asignar CPU a algún otro proceso. |
3 | Running Una vez que el programador del sistema operativo ha asignado el proceso a un procesador, el estado del proceso se establece en ejecución y el procesador ejecuta sus instrucciones. |
4 | Waiting El proceso pasa al estado de espera si necesita esperar un recurso, como esperar la entrada del usuario o esperar a que un archivo esté disponible. |
5 | Terminated or Exit Una vez que el proceso finaliza su ejecución, o es terminado por el sistema operativo, se mueve al estado terminado donde espera ser eliminado de la memoria principal. |
Bloque de control de proceso (PCB)
Un bloque de control de procesos es una estructura de datos mantenida por el sistema operativo para cada proceso. La PCB se identifica mediante un ID de proceso entero (PID). Una PCB mantiene toda la información necesaria para realizar un seguimiento de un proceso como se enumera a continuación en la tabla:
SN | Información y descripción |
---|---|
1 | Process State El estado actual del proceso, es decir, si está listo, en ejecución, en espera o lo que sea. |
2 | Process privileges Esto es necesario para permitir / no permitir el acceso a los recursos del sistema. |
3 | Process ID Identificación única para cada uno de los procesos en el sistema operativo. |
4 | Pointer Un puntero al proceso principal. |
5 | Program Counter El contador de programa es un puntero a la dirección de la siguiente instrucción que se ejecutará para este proceso. |
6 | CPU registers Varios registros de CPU donde el proceso debe almacenarse para su ejecución para el estado de ejecución. |
7 | CPU Scheduling Information Prioridad del proceso y otra información de programación que se requiere para programar el proceso. |
8 | Memory management information Esto incluye la información de la tabla de páginas, límites de memoria, tabla de segmentos según la memoria utilizada por el sistema operativo. |
9 | Accounting information Esto incluye la cantidad de CPU utilizada para la ejecución del proceso, límites de tiempo, ID de ejecución, etc. |
10 | IO status information Esto incluye una lista de dispositivos de E / S asignados al proceso. |
La arquitectura de una PCB depende completamente del sistema operativo y puede contener información diferente en diferentes sistemas operativos. Aquí hay un diagrama simplificado de una PCB:
La PCB se mantiene durante un proceso durante toda su vida útil y se elimina una vez que finaliza el proceso.