Programa vs Proceso: Un proceso es un programa en ejecución. Por ejemplo, cuando escribimos un programa en C o C++ y lo compilamos, el compilador crea código binario. El código original y el código binario son ambos programas. Cuando realmente ejecutamos el código binario, se convierte en un proceso.
Un proceso es una entidad ‘activa’ en lugar de un programa, que se considera una entidad ‘pasiva’. Un solo programa puede crear muchos procesos cuando se ejecuta varias veces; por ejemplo, cuando abrimos un archivo .exe o binario varias veces, comienzan varias instancias (se crean varios procesos).
¿Cómo se ve un proceso en la memoria?
Sección de texto : un proceso, a veces conocido como la sección de texto, también incluye la actividad actual representada por el valor de la
Contador de programas .
Pila : la pila contiene datos temporales, como parámetros de función, direcciones de retorno y variables locales.
Sección de datos : Contiene la variable global.
Sección de almacenamiento dinámico : memoria asignada dinámicamente para procesar durante su tiempo de ejecución.
Consulte esto para obtener más detalles sobre las secciones.
Atributos o Características de un Proceso: Un proceso tiene los siguientes atributos.
1. Process Id: A unique identifier assigned by the operating system 2. Process State: Can be ready, running, etc. 3. CPU registers: Like the Program Counter (CPU registers must be saved and restored when a process is swapped in and out of CPU) 4. Accounts information: Amount of CPU used for process execution, time limits, execution ID etc 5. I/O status information: For example, devices allocated to the process, open files, etc 6. CPU scheduling information: For example, Priority (Different processes may have different priorities, for example a shorter process assigned high priority in the shortest job first scheduling)
Todos los atributos anteriores de un proceso también se conocen como el contexto del proceso . Cada proceso tiene su propio bloque de control de procesos (PCB), es decir, cada proceso tendrá un PCB único. Todos los atributos anteriores son parte del PCB.
Estados del proceso: un proceso se encuentra en uno de los siguientes estados:
1. New: Newly Created Process (or) being-created process. 2. Ready: After creation process moves to Ready state, i.e. the process is ready for execution. 3. Run: Currently running process in CPU (only one process at a time can be under execution in a single processor). 4. Wait (or Block): When a process requests I/O access. 5. Complete (or Terminated): The process completed its execution. 6. Suspended Ready: When the ready queue becomes full, some processes are moved to suspended ready state 7. Suspended Block: When waiting queue becomes full.
Cambio de contexto: el proceso de guardar el contexto de un proceso y cargar el contexto de otro proceso se conoce como cambio de contexto. En términos simples, es como cargar y descargar el proceso desde el estado en ejecución al estado listo.
¿Cuándo ocurre el cambio de contexto?
1. Cuando un proceso de alta prioridad llega a un estado listo (es decir, con mayor prioridad que el proceso en ejecución)
2. Se produce una interrupción
3. Cambio de modo de usuario y kernel (aunque no es necesario)
4. Se utiliza la programación de CPU preventiva.
Cambio de contexto frente a cambio de modo: un cambio de modo ocurre cuando se cambia el nivel de privilegio de la CPU, por ejemplo, cuando se realiza una llamada al sistema o se produce una falla. El núcleo funciona más en un modo privilegiado que en una tarea de usuario estándar. Si un proceso de usuario quiere acceder a cosas a las que solo puede acceder el kernel, debe ocurrir un cambio de modo. No es necesario cambiar el proceso que se está ejecutando actualmente durante un cambio de modo.
Normalmente se produce un cambio de modo para que se produzca un cambio de contexto de proceso. Solo el kernel puede causar un cambio de contexto.
Procesos vinculados a la CPU frente a procesos vinculados a E/S: un proceso vinculado a la CPU requiere más tiempo de CPU o pasa más tiempo en estado de ejecución.
Un proceso vinculado a E/S requiere más tiempo de E/S y menos tiempo de CPU. Un proceso vinculado a E/S pasa más tiempo en el estado de espera.
Ejercicio:
1. ¿Cuál de los siguientes no necesariamente debe guardarse en un cambio de contexto entre procesos? (GATE-CS-2000)
(A) Registros de propósito general
(B) Búfer de conversión de búsqueda
(C) Contador de programa
(D) Todo lo anterior
Respuesta (B)
Explicación: en un cambio de contexto de proceso, el estado del primer proceso debe guardarse de alguna manera, de modo que cuando el planificador vuelva a la ejecución del primer proceso, pueda restaurar este estado y continuar. El estado del proceso incluye todos los registros que puede estar utilizando el proceso, especialmente el contador del programa, más cualquier otro dato específico del sistema operativo que pueda ser necesario. Un búfer de búsqueda de traducción (TLB) es un caché de CPU que el hardware de administración de memoria utiliza para mejorar la velocidad de traducción de direcciones virtuales. Una TLB tiene un número fijo de ranuras que contienen entradas de la tabla de páginas, que asignan direcciones virtuales a direcciones físicas. En un cambio de contexto, algunas entradas de TLB pueden volverse inválidas, ya que la asignación de virtual a físico es diferente. La estrategia más simple para lidiar con esto es vaciar completamente el TLB.
2. El tiempo necesario para cambiar entre los modos de ejecución de usuario y kernel es t1, mientras que el tiempo necesario para cambiar entre dos procesos es t2. ¿Cual de los siguientes es verdadero? (GATE-CS-2011)
(A) t1 > t2
(B) t1 = t2
(C) t1 < t2
(D) no se puede decir nada sobre la relación entre t1 y t2.
Respuesta: (C)
Explicación: El cambio de proceso implica un cambio de modo. El cambio de contexto solo puede ocurrir en modo kernel.
Cuestionario sobre gestión de procesos
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA