Saltar al contenido

¿Cuál es la diferencia entre un trabajo y un proceso?

Sé libre de compartir nuestro espacio y códigos en tus redes sociales, ayúdanos a aumentar nuestra comunidad.

Un proceso es cualquier programa en ejecución con su propio espacio de direcciones.

Un trabajo es un concepto utilizado por el shell: cualquier programa que inicie de forma interactiva y que no se separe (es decir, que no sea un demonio) es un trabajo. Si está ejecutando un programa interactivo, puede presionar controlZ para suspenderlo. Luego puede volver a iniciarlo en primer plano (usando fg) o en segundo plano (usando bg).

Mientras el programa está suspendido o ejecutándose en segundo plano, puede iniciar otro programa; entonces tendría dos trabajos ejecutándose. También puede iniciar un programa ejecutándose en segundo plano agregando un “&” como este: program &. Ese programa se convertiría en un trabajo de fondo. Para enumerar todos los trabajos que está ejecutando, puede usar jobs.

Para obtener más información sobre trabajos, consulte esta sección de la página man de bash.

UNIX tiene conceptos separados “proceso”, “grupo de procesos” y “sesión”.

Cada shell que obtiene al iniciar sesión se convierte en el líder de su propia sesión y grupo de procesos nuevos, y establece el grupo de procesos de control de la terminal para sí mismo.

El shell crea un grupo de procesos dentro de la sesión actual para cada “trabajo” que inicia y coloca cada proceso que inicia en el grupo de procesos apropiado. Por ejemplo, ls | head es una tubería de dos procesos, que el shell considera un solo trabajo, y pertenecerá a un solo grupo de procesos nuevo.

Un proceso es una (colección de) subprocesos de ejecución y otro contexto, como el espacio de direcciones y la tabla de descriptores de archivos. Un proceso puede iniciar otros procesos; estos nuevos procesos pertenecerán al mismo grupo de procesos que el principal, a menos que se tomen otras medidas. Cada proceso también puede tener una “terminal de control”, que comienza igual que su padre.

El shell tiene el concepto de trabajos “en primer plano” y trabajos “en segundo plano”. Los trabajos en primer plano son grupos de procesos con control del terminal y los trabajos en segundo plano son grupos de procesos sin control del terminal.

Cada terminal tiene un grupo de procesos en primer plano. Al llevar un trabajo al primer plano, el shell lo establece como el grupo de procesos de primer plano de la terminal; al poner un trabajo en segundo plano, el shell establece el grupo de procesos de primer plano de la terminal en otro grupo de procesos o en sí mismo.

Los procesos pueden leer y escribir en su terminal de control si están en el grupo de procesos de primer plano. De lo contrario, reciben SIGTTIN y SIGTTOU señales en los intentos de leer y escribir en el terminal, respectivamente. Por defecto, estas señales suspenden el proceso, aunque la mayoría de los shells enmascaran SIGTTOU para que un trabajo en segundo plano pueda escribir en el terminal sin interrupciones.

Sección de Reseñas y Valoraciones

Agradecemos que desees amparar nuestro ensayo dejando un comentario y dejando una puntuación te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *