Está en la página 1de 16

Orlando Miguel Alvarez Alfaro A 28/Octubre/2022

Práctica 10

Tarea de la práctica 10

Administración de procesos

En este documento se responden a las 11 preguntas del documento “TAREA DE


LA PRÁCTICA 10”, así como a los 16 incisos prácticos dentro del mismo.

Preguntas introductorias

1. ¿Qué es un script en Linux? ¿Para qué sirve? ¿Cómo se crea? ¿Cómo se


ejecuta?

Se trata de una secuencia de comandos de Linux guardados en un


archivo.

Es útil para la automatización de tareas, como crear grupos de


usuarios, respaldos de archivos, o incluso para ejecutar tareas a una
hora programada.

Para crear un script, basta con crear un archivo de texto con


comandos línea por línea. Por convención, estos archivos se guardan
con la extensión .sh.

Para ejecutarlo, es necesario escribir la ruta del archivo en el shell


de Linux.
2. ¿Qué significa ejecutar un comando en segundo plano? ¿Qué en primer
plano?

Significa correr un proceso desde la terminal sin que este solicite


entrada del usuario y sin interrumpir la ejecución de otros procesos.

Por su parte, ejecutar un proceso en primer plano conlleva la


atención del usuario y se requiere esperar a que este termine para
recuperar control de la terminal.

3. ¿Para qué se utiliza el comando jobs? Muestre su ejecución y describa


brevemente la salida que produce su ejecución.

Permite interactuar con los procesos ejecutándose en el shell actual.

4. Mencione el símbolo que se utiliza para ejecutar órdenes en segundo


plano.

Se utiliza el símbolo de ampersand (&).


5. ¿Cómo cambiar un proceso en ejecución de segundo plano a primer
plano?

Se emplea el comando fg %n, donde n es el identificador de


proceso (aquel que se imprime con el comando jobs)

6. ¿Qué significa una “salida a nada”? Identifique al final de la práctica el


equivalente a este concepto. ¿Cómo se representa la salida a nada?

Se trata de la redirección de la retroalimentación de un comando al


folder /dev/null. Normalmente, la salida de un comando se
muestra en la terminal; redirigir la salida a la carpeta anterior permite
que esta no sea desplegada ni guardada en un archivo.

Para lograr esta operación, se pueden usar los comandos (al final del
archivo):

• 1>dev/null (para descartar la salida de mensajes de éxito)


• 2>dev/null (para descartar la salida de mensajes de fracaso)
• &>dev/null (para descartar ambos)

7. Para qué sirve el comando top. Con qué opción se puede mostrar
solamente los procesos de un usuario. Describa brevemente los campos
que produce la salida estándar de este comando.

Este comando nos permite ver, en formato de tabla (pues el


comando quiere decir table of processes), los procesos que se
encuentran ejecutándose en Linux en determinado momento.

Para ver los procesos de un solo usuario, se puede usar la opción -


u, para ver el usuario efectivo, o -U [ID_usuario] para especificar
el usuario de quien se desean conocer sus procesos.
A continuación, puede apreciarse un ejemplo de la ejecución de este comando.

Las primeras cinco líneas hacen referencia a múltiples tiempos de espera del
CPU, la cantidad y los estados de los procesos, así como el uso de la memoria
física y swap.

Los encabezados de las columnas de la lista de procesos son:

• PID: ID de proceso. • SHR: Cantidad de memoria


• USER: El dueño del proceso. compartida utilizada por el
• PR: Prioridad del proceso según proceso.
decide el planificador de tareas. • S: Estado del proceso.
• NI: El valor “nice” del proceso • %CPU: El porcentaje de tiempo
(una directriz para el kernel de la de CPU utilizado por el proceso
prioridad que el proceso debe desde la última actualización.
tener). • %MEM: La cantidad de memoria
• VIRT: Cantidad de memoria física utilizada.
virtual utilizada por el proceso. • TIME+: Tiempo total de CPU
• RES: Cantidad de memoria utilizado por la tarea en
residente utilizada por el centésimas de segundo.
proceso. • COMMAND: El nombre del
comando o la línea de
comandos (nombre + opciones)
8. ¿Qué es prioridad aplicada a un proceso? ¿En Linux qué valores se utilizan
para la prioridad alta y la prioridad baja?

Es la prioridad real del proceso que utiliza el kernel de Linux para


programar una tarea y saber en qué orden atenderla con respecto a
las demás.

En Linux, los valores de prioridad varían entre -100 y 39, siendo el -


100 hasta el -1 reservados para procesos con políticas de
planificación específicas, mientras que desde el 0 hasta el 39 se
tienen prioridades que pueden ser accedidas por los usuarios.

9. ¿Para qué sirven los comandos nice y renice? ¿Cuándo usar cada uno de
ellos?

Sirven para modificar el valor “niceness” (de -20 a 19) de un proceso,


que a su vez modifica la prioridad de este.

El comando nice permite iniciar un proceso con una prioridad


determinada, mientras que el comando renice permite modificar la
prioridad de un proceso que ya se está ejecutando.

10. ¿Qué comando sirve para eliminar un proceso? Describa las 2 formas de
eliminar un proceso al utilizar PID o “número de tarea”.

Se puede usar el comando pkill, bajo la siguiente sintaxis:

• kill [ID_proceso]
• kill %[numero_tarea]
11. ¿Con cuál comando se puede conocer el PID de un proceso? ¿Cómo
conocer el número de tarea de un proceso? Muestre la ejecución de
ambos.

Se puede utilizar el comando pidof


[nombre_exacto_del_proceso] para el PID.

• Si se conocen las primeras letras, se puede usar la tabulación


para el autocompletado del nombre:

• De lo contrario, se puede usar el comando pgrep,


especificando inmediatamente el nombre completo o parcial
del proceso.

Para el número de tarea, se tiene el comando jobs:


Práctica

1. A través de nano, crear y ejecutar 2 scripts de cualquiera de las siguientes


estructuras: a. if-then-else b. while c. for d. until e. case.
Si sus scripts son iguales a otro alumno, se le solicitará modificar su script
2. Crear un script con estructuras combinadas. Por ejemplo: tabla de
multiplicar en un ciclo de 10, que al teclear un valor: 1, 2, etc. realice la
multiplicación y finalice al teclear un cero.
3. Crear un script que ejecute un ciclo infinito y despliegue el mensaje “hola
mundo”

4. Ejecutar el script creado con la salida a nada y en segundo plano


5. Traerlo a primer plano

6. Detenerlo (no confundir con cancelarlo)

7. Ejecutar el script creado en primer plano y con salida a nada

8. Detenerlo
9. Ejecutarlo en segundo plano con salida a nada y cambio de prioridad de
10

10. Ejecutarlo dos veces más con salida a nada y en segundo plano el primero
con cambio de prioridad de -15 y el segundo con cambio de prioridad de
20

11. Verificar las estadísticas de ejecución (asignación de tiempo de uso del


procesador). Ejecute con la opción de mostrar solamente los procesos de
usted.
12. Asignar la más alta prioridad a la primera tarea de usted
13. Asignar la más baja prioridad a la tercera tarea de usted

14. Verificar las estadísticas de ejecución (asignación de tiempo de uso del


procesador). Mostrar solamente los procesos de usted.
15. Eliminar una tarea utilizando el pid

16. Eliminar un proceso utilizando el número de tarea


Comentario

Linux está altamente preparado para el manejo de tareas/procesos. Esta


actividad es de suma relevancia debido a que en un ambiente de servidores
existen muchos procesos de manera simultánea y es posible que alguno cause
estragos en el funcionamiento, con lo que identificar y eliminar los procesos que
tienen detenido el servidor es una habilidad crucial en un ambiente de
producción.

Bibliografía

https://www.freecodecamp.org/news/shell-scripting-crash-course-
how-to-write-bash-scripts-in-linux/

https://linuxize.com/post/how-to-run-linux-commands-in-background/

https://linuxhandbook.com/jobs-command/

https://www.linuxshelltips.com/redirect-output-to-dev-null-in-linux/

https://www.howtogeek.com/668986/how-to-use-the-linux-top-
command-and-understand-its-output/

https://medium.com/@joseagustin.barra/understanding-priority-levels-
in-linux-cd8c82eb4dd

https://medium.com/@chetaniam/a-brief-guide-to-priority-and-nice-
values-in-the-linux-ecosystem-fb39e49815e0

https://phoenixnap.com/kb/how-to-kill-a-process-in-linux

https://linuxhandbook.com/find-process-id/

También podría gustarte