“Conocimiento Sistemas>unix

¿Qué hace el shell ordinario mientras se ejecuta un comando?

2016/2/25
Mientras se ejecuta un comando, el shell generalmente realiza lo siguiente:

* espera: El caparazón entra en un estado de "espera". Hace una pausa de su propia ejecución y no procesa ningún otro comando desde la entrada hasta que se complete el comando en ejecución actualmente. Este es el comportamiento predeterminado para la mayoría de los comandos.

* gestión de E/S (si corresponde): El shell puede manejar la redirección de entrada y salida para el comando. Si el comando usa `<`, `>`, `>>`, `|` u otros operadores de redirección, el shell establece los descriptores de tuberías y archivos apropiados antes de iniciar el comando. Gestiona el flujo de datos entre el comando y sus entradas/salidas.

* Manejo de señales: El shell administra señales (como interrupciones, Sigint, enviada por Ctrl+C). Si se recibe una señal mientras se ejecuta un comando, el shell puede reenviar la señal al comando en ejecución o manejarla en sí misma dependiendo de su configuración y la señal específica.

* Gestión de procesos: El shell crea un nuevo proceso para que se ejecute el comando. Esto separa la ejecución del comando del shell, evitando que los bloqueos en el comando afecten el shell en sí. El caparazón maneja este proceso infantil hasta que termina.

* No hay otro procesamiento de comando: No interpreta ni ejecuta ninguna entrada adicional hasta que el comando en ejecución actualmente finalice (a menos que sea un proceso de fondo, ver más abajo).

Procesos de fondo: La excepción es cuando se ejecuta un comando en segundo plano (usando `&`). En este caso, el shell * no * espera. Imprime la ID de proceso (PID) del proceso en segundo plano e inmediatamente reanuda aceptar y procesar nuevos comandos del usuario. Sin embargo, todavía está manejando ese proceso de fondo:verificar su estado, manejo de señales y limpieza cuando termina.

En resumen, la acción central está esperando. Sin embargo, detrás de escena, hay una actividad significativa que involucra E/S, señales y gestión de procesos para garantizar la ejecución y la integración adecuadas del comando dentro del entorno del shell.

unix
¿Es correcto escribir:Adjunto se encuentra el archivo SAC del KKX634?
Cómo conectar un directo UNIX NDM
Cómo hacer un enlace simbólico en UNIX
¿Cuál es la diferencia entre echo cat y los comandos en Linux?
¿Es Shell una interfaz entre el núcleo y el usuario?
¿Qué significa SU y - en un sistema UNIX?
¿Cuál es la función de comandocom?
¿Por qué los comandos UNIX se dividen en comandos internos y externos?
Conocimiento de la computadora © http://www.ordenador.online