Está en la página 1de 19

Hola de nuevo. Completaste cuatro módulos y quedan dos más.

Gran trabajo hasta


ahora.
En la última lección, aprendimos a particionar
y configurar discos con sistemas de archivos para comenzar a almacenar archivos.
También vimos en profundidad los detalles de los sistemas de archivos,
incluso conocimos herramientas para reparar sistemas de archivos y discos corruptos.
En esta lección, vamos a hablar de procesos.
Los procesos juegan un papel importante en nuestra experiencia de usuarios de
computadoras.
Después de todo, ¿para qué usar una computadora si no puedes usar algún programa?
Con cada vez más procesos ejecutándose en nuestra computadora,
tenemos que idear formas de mejorar nuestros recursos de hardware.
Prepárate, porque vamos a ir al grano con los procesos.
Hablaremos de cómo leer la salida de un proceso
y vamos a aprender a rastrear nuestros recursos.
¡En sus marcas, listos, vamos!

En una lección anterior, aprendimos que los programas


son las aplicaciones que podemos ejecutar, como el navegador web Chrome.
Los procesos son programas que se ejecutan.
Podemos tener muchos procesos en ejecución para el mismo programa, como podemos
tener
muchas ventanas de Chrome que se abren a la vez o películas que se reproducen con un
solo programa.
Cuando iniciamos un proceso,
estamos ejecutando un programa.
Y recuerda, un programa es solo software.
Para calcular la información que contiene nuestro software,
necesitamos darle recursos para que se pueda ejecutar.
Cuando los procesos se ejecutan,
ocupan recursos de hardware, como CPU y RAM.
Por suerte, las computadoras de hoy son lo suficientemente poderosas
para manejar los procesos que utilizamos en nuestras actividades diarias,
como navegar por la web, ver películas, etc.
Pero, a veces, esto no es suficiente.
A veces, un proceso toma más recursos de los que se supone.
A veces, los procesos no responden
y congelan nuestro sistema, lo que hace que toda nuestra computadora deje de
responder.
Bueno, vamos a hablar de por qué sucede esto
y cómo podemos solucionarlo en las próximas lecciones.
Pero antes de que podamos hablar de gestionar procesos,
tenemos que entender cómo funcionan.
Cuando abres una aplicación, como un procesador de textos,
estás iniciando un proceso.
A esos procesos se les asocia algo llamado ID de proceso
que permite identificarlos con exclusividad de otros procesos.
Nuestra computadora ve que el proceso necesita recursos de hardware para ejecutarse.
Por lo tanto, nuestro kernel toma decisiones para averiguar qué recursos otorgarle.
Entonces, en un abrir y cerrar de ojos,
nuestra computadora inicia un procesador de textos
y ya está listo para empezar a trabajar.
Esto sucede para cada proceso que inicies tú mismo,
y para cada proceso que ni siquiera sabes quién está ejecutando.
Además de los procesos visibles que iniciamos,
como nuestro reproductor de música o el procesador de textos,
también hay procesos no tan visibles en ejecución.
Se los conoce como procesos en segundo plano,
a veces llamados "procesos daemon".
Los procesos en segundo plano son procesos que, valga la redundancia, se ejecutan en
segundo plano.
En realidad no los vemos
ni interactuamos con ellos,
pero nuestro sistema los necesita para funcionar.
Incluyen procesos como programación de recursos,
registro, gestión de redes y más.
Cuando observemos todos los procesos que se ejecutan en nuestro sistema,
verás de lo que estoy hablando.
En el próximo par de lecciones,
hablaremos de cómo se crean y finalizan los procesos.
Luego, podemos comenzar a profundizar en los detalles de la gestión de procesos.
La gestión de procesos es una habilidad fundamental en el soporte de TI.
A menudo te encontrarás solucionando problemas con aplicaciones congeladas,
aplicaciones lentas, etc.

La forma en que se crean y detienen los procesos


difiere según el sistema operativo que utilices.
Primero, veamos cómo Windows hace las cosas.
Cuando Windows arranca o se inicia,
el primer modo de usuario no kernel que se inicia es el subsistema del administrador de
sesiones, o smss.exe.
El proceso smss.exe se encarga de configurar algunas cosas para que el SO funcione.
A continuación, inicia el proceso de acceso, denominado winlogon.exe,
junto con el subsistema de tiempo de ejecución cliente/servidor, llamado csrss.exe,
que maneja la ejecución de la GUI de Windows y la consola de línea de comandos.
En la siguiente lección, hablaremos sobre un proceso llamado init
que Linux usa como primer proceso.
Podrías verte tentado a pensar en el smss.exe como un equivalente de Windows de init.
No caigas en esa trampa.
Cuando se trata de mecanismos de creación de procesos, todos son bastante diferentes.
En Windows, cada nuevo proceso que se crea
necesita un proceso principal para indicarle al sistema operativo que se debe crear un
nuevo proceso.
El proceso secundario hereda algunas cosas de aquel, como variables y configuraciones,
a lo que podemos referirnos colectivamente como un entorno.
Esto le da al proceso secundario un muy buen comienzo,
pero después del paso de creación inicial,
el proceso secundario se las arregla por su cuenta.
A diferencia de Linux, los procesos de Windows pueden operar independientemente de
sus antecesores.
Para ver cómo funciona esto, vamos a nuestro propio proceso.
Primero, iniciemos el proceso de PowerShell para obtener un símbolo del sistema de
Windows.
Desde allí, podemos escribir notepad.exe para crear un nuevo proceso
para el Bloc de notas. Por ahora, todo bien.
El proceso principal es PowerShell,
y el secundario es la aplicación Bloc de notas.
¿Qué sucede si eliminamos el proceso principal haciendo clic en el botón "X"?
El Bloc de notas sigue funcionando felizmente aunque el proceso que lo creó haya
finalizado.
Los procesos secundarios están en su propio mundo.
Hacer clic en la X es solo una forma de detener la ejecución de un proceso en Windows,
pero como es de esperar,
hay otras formas de detener procesos.
Puedes usar un comando del símbolo del sistema invocando la utilidad taskkill.
"taskkill" puede encontrar y detener un proceso de varias maneras.
Una de las formas más comunes es usar un número de identificación
conocido como ID de proceso, o PID, para indicarle a taskkill qué proceso deseas
detener.
Una forma de hacerlo es volver a terminar el Bloc de notas
especificando el PID mediante taskkill /pid y luego el número PID:
taskkill /pid, este es el ID de proceso del Bloc de notas.
¡Eso es!
Esto enviará la señal de finalización al proceso identificado por el PID,
que en nuestro caso viene a ser el Bloc de Notas.
Esto es útil, ¿pero cómo obtenemos ese PID en primer lugar? Me alegra que lo
preguntes.
Hablaremos sobre cómo localizar y ver procesos
y sobre más información detallada de procesos en una próxima lección.

En Linux, los procesos tienen una relación principal/secundario.


Esto significa que cada proceso que inicias viene de otro proceso.
Veamos este comando.
El comando less sería el proceso principal de nuestro proceso grep.
Si todos los procesos provienen de otro proceso,
debe haber un proceso inicial que comenzó todo esto, ¿verdad?
Sí lo hay. Cuando enciendes tu computadora,
el kernel crea un proceso llamado init, que tiene PID igual a 1.
Init pone en marcha otros procesos que necesitamos para que nuestra computadora
funcione.
Hay muchos más matices en la creación de procesos, pero quería presentar
el concepto de proceso principal, ya que lo verás cuando empecemos a gestionar
procesos.
¿Y qué ocurre cuando hemos terminado con nuestros procesos?
Cuando tus procesos completan su tarea, en general, finalizarán automáticamente.
Una vez que un proceso finaliza, devolverá todos los recursos
que estaba usando al kernel, para que puedan ser utilizados para otro proceso.
También puedes finalizar un proceso manualmente.
Vamos a analizar cómo hacerlo en una próxima lección.
Mi nombre es Jessica Thera
y soy ingeniera de sistemas en la organización de confiabilidad de sitios.
[MÚSICA]
Había estado hablando con una de mis mentores, y le dije
que me encantaría tener un trabajo ese verano,
me encantaría trabajar con computadoras.
Y ella dijo: "Bueno, sabes, tengo esta oportunidad, pero no estamos seguros
de que estás preparada para ello porque eres un poco joven e inexperta.
Le rogué bastante, ella se arriesgó
y me quedé con esto desde que tenía 15 años hasta que entré en la universidad.
La primera vez que me enfrenté al desafío de resolver problemas
fue probablemente cuando tuvimos nuestra primera computadora y la rompí.
Estaba sentada en la computadora, me sentía inspirada por una película que vi
y decidí que quería ser una joven hacker
y entonces ejecuté algunas líneas de comando
y provoqué una pantalla azul, la muerte de la computadora.
Me asusté y traté de averiguar qué podía hacer
para revertir lo que acababa de hacer, y no había manera de salvarla.
Soy primera generación nacida en los Estados Unidos. Mi familia es de Haití.
Toda mi vida, mis padres y todos a mi alrededor siempre me preguntaban
qué me gustaría ser cuando creciera.
Sinceramente, realmente no sabía lo que quería ser hasta que empecé
a juguetear con las computadoras y finalmente descubrí que me encantaba.
Básicamente, pensé
que tenía que haber un trabajo que pudiera hacer con las computadoras.
Cuando decidí que quería ejercer una profesión en tecnología y computación,
nadie entendió de qué estaba hablando.
Cuando vienes de una familia de inmigrantes, todo el mundo habla de ser médico
o abogado o profesor.
Si no eres una de esas tres cosas, no lo estás haciendo bien.
Pero ahora ya no piensan así, creen que soy un dios.
[RISA]

Vida de un proceso
Cuestionario Práctico30 minutos • 30 min

Envía tu tarea

Recibe la calificación

Para Aprobar 80 % o más

Tu calificación

100 %

Conservaremos tu puntaje más alto.


Vida de un proceso
Cuestionario Práctico • 30 min

¡Felicitaciones! ¡Aprobaste!
Calificación recibida 100 %
Para Aprobar 80 % o más

Vida de un proceso
Puntos totales 1

1.

Pregunta 1

Verdadero o falso: los procesos de Windows pueden operar en forma independiente a


sus procesos principales.

1 / 1 punto

VERDADERO

FALSO

Correcto

¡Buen trabajo! A diferencia de Linux, después de que se crea un proceso secundario en


Windows y hereda el entorno de su proceso principal, este puede terminarse y el
proceso secundario seguirá en ejecución.

Transcripción interactiva: para habilitar el modo de transcripción básico,


presiona la tecla de escape

Puedes navegar a través de la transcripción usando la pestaña. Para guardar una nota
para una sección de texto, presiona CTRL + S. Para expandir tu selección, puedes usar
CTRL + la tecla de flecha. Puedes contratar tu selección usando Shift + CTRL + tecla
de flecha. Para los lectores de pantalla que no son compatibles con el uso de teclas de
flecha para accesos directos, puedes reemplazarlos con las teclas H J K L. Algunos
lectores de pantalla pueden requerir el uso de CTRL junto con la tecla alt.

Puede parecer que estamos empezando a sentirnos abrumados.


Demos un paso atrás y pensemos qué son los procesos
y qué representan en el contexto de un sistema operativo.
Puedes imaginar los procesos como programas en movimiento.
Piensa en todo el código para tu navegador de Internet.
Reside allí, en tu disco duro, en silencio, esperando que llegue su momento de brillar.
Una vez que lo inicias,
el sistema operativo toma ese código en reposo
y lo convierte en una aplicación en funcionamiento que responde.
En otras palabras, se convierte en un proceso.
Todo el tiempo interactúas con los procesos de inicio y detención en las computadoras,
aunque el SO, por lo general, se ocupa de todo eso detrás de escena.
Al aprender sobre los procesos,
estás husmeando en el funcionamiento real de los sistemas operativos.
Este conocimiento es fascinante y poderoso,
en especial cuando un experto en soporte de TI lo aplica para resolver problemas.
Ten todo esto en cuenta mientras vemos
cómo podemos develar el misterio aún más.
A continuación, conoceremos las diferentes formas en que puedes investigar
qué procesos se están ejecutando
en una computadora con Windows y más métodos de interacción con ellos.
En el sistema operativo Windows,
el administrador de tareas, o taskmgr.exe, es un método para obtener información de
procesos.
Puedes abrirlo con la combinación de teclas Ctrl-Mayús.-Esc
o localizarlo con el menú Inicio.
Si haces clic en la pestaña Processes (Procesos),
deberías ver una lista de los procesos que está ejecutando el usuario actual
junto con algunos de los procesos a nivel de sistema que el usuario puede ver.
La información sobre cada proceso se divide en columnas en el administrador de tareas.
El administrador de tareas te indica la aplicación o imagen que el proceso está
ejecutando
junto con el usuario que lo inició y los recursos de CPU o memoria que está utilizando.
Para terminar un proceso,
puedes seleccionar cualquiera de las filas del proceso
y hacer clic en el botón End Task (Finalizar proceso), en la esquina inferior derecha.
Podemos demostrar esto iniciando otro proceso notepad.exe desde la línea de
comandos,
luego pasamos al Administrador de tareas,
seleccionamos el proceso notepad.exe y lo finalizamos.
Ya tengo el Bloc de notas abierto, así que voy a hacer clic en él, clic en End Task
(Finalizar proceso).
En una lección anterior,
hablamos de iniciar y finalizar procesos de Windows.
¿Recuerdas que usamos el comando taskkill para detener
un proceso por su número de identificación o PID?
Entonces, ¿cómo obtenemos ese número PID?
Mientras estés en el Administrador de tareas,
puedes hacer clic en la opción de menú Details (Detalles) y aquí,
puedes ver mucha información que el Administrador de tareas muestra,
incluido el PID.
También puedes ver esta información desde el símbolo del sistema y desde PowerShell.
Desde el símbolo del sistema,
puedes usar la utilidad llamada TaskList para mostrar todos los procesos en ejecución.
Desde un indicador de PowerShell,
puedes usar un cmdlet llamado Get-Process para hacer lo mismo.
Hay muchas maneras de obtener información de procesos del sistema operativo
Windows.
Incluimos vínculos a la documentación de TaskList
y Get-Process en la lectura complementaria
en caso de que desees profundizar en cualquiera de estas herramientas.

Muy bien, ahora hablemos sobre cómo ver los procesos que se ejecutan en nuestro
sistema en Linux.
Usaremos el comando ps. Sigamos adelante,
ejecutémoslo con el indicador -x y veamos qué ocurre.
Esto te muestra una instantánea de los procesos actualmente en ejecución en tu sistema.
Al principio, la salida de ps puede resultar abrumadora,
pero no te preocupes, te enseñaremos a leerla.
Vamos a empezar de derecha a izquierda, aquí.
P-I-D o PID
es el ID del proceso. Recuerda que los procesos obtienen un ID exclusivo cuando se
inician.
TTY, este es el terminal asociado al proceso.
No hablaremos de este campo,
pero puedes leer más sobre esto en las man pages vinculadas justo después de este
video.
STAT, este es el estado del proceso.
Si ves una R aquí significa que el proceso está en ejecución o esperando para ejecutarse.
Otro estado común que verás es T, para "detenido",
lo que significa que un proceso fue suspendido.
Otro que podrías ver es una S, para "sueño interrumpible",
es decir, la tarea está esperando que se complete un evento antes de reanudarse.
Puedes leer más sobre los otros tipos de estados de proceso en las man pages.
TIME: este es el tiempo total de CPU que duró el proceso.
Y por último, COMMAND: este es el nombre del comando que estamos ejecutando.
Bien, ahora vamos a ingresar al modo difícil.
Ejecuta este comando, ps -ef.
El indicador "e" se utiliza para obtener todos los procesos, incluso los ejecutados por
otros usuarios.
El indicador -f significa "full" y te muestra todos los detalles sobre un proceso.
Mira eso, tenemos más procesos y aún más detalles de procesos.
Vamos a analizarlo.
UID es el ID de usuario de la persona que inició el proceso.
PID es el ID de proceso y PPID es el ID del proceso principal
que analizamos en la lección anterior, cuando iniciamos el proceso.
C es el número de procesos secundarios que tiene este proceso.
STIME es la hora de inicio del proceso.
TTY es el terminal asociado al proceso.
TIME es el tiempo total de CPU que duró el proceso.
y CMD o "command" es el nombre del comando que estamos ejecutando.
¿Y si quisiéramos buscar algo a través de esta salida?
Está muy desordenada en este momento.
¿Se te ocurre una manera en que podamos ver si un proceso se está ejecutando?
Correcto,
con el comando grep. Te dije que lo íbamos a usar todo el tiempo.
Esto nos dará una lista de procesos que tienen el nombre Chrome en ellos.
Hay otra manera de ver información del proceso,
recuerda que, en Linux, todo tiene un archivo, incluso los procesos.
Para ver los archivos que corresponden a los procesos podemos mirar
en el directorio /proc.
Hay muchos directorios aquí para cada proceso en ejecución.
Si miraras dentro de uno de los subdirectorios, te dará mucha más información
acerca del proceso.
Veamos un archivo de proceso de muestra para PID 1805.
Esto nos dice mucha más información sobre estados de proceso que lo que vimos en PS.
Si bien es interesante mirar el directorio /proc,
no es muy práctico cuando necesitamos solucionar problemas con los procesos.
Por ahora, quedémonos con el comando ps -ef para ver la información del proceso.
Como ves, podemos aprender mucho sobre los procesos que se ejecutan
en nuestra máquina con solo teclear un poco.
En una próxima lección, hablaremos sobre cómo usar la información del proceso para
nuestro beneficio
cuando tenemos que averiguar qué procesos están ocupando demasiados recursos.
Por ahora, siéntete libre de aprender un poco más sobre los procesos que estás
ejecutando.
Te estaré esperando en el siguiente video.

En Linux, hay muchas señales que podemos enviar a los procesos.


Estas señales están marcadas con nombres que comienzan con sig.
¿Recuerdas la señal sigint
de la que hablamos antes?
Puedes usar sigint para interrumpir el proceso
y la acción predeterminada de esta señal es finalizar el proceso que está interrumpiendo.
Esto también es cierto para Linux.
Puedes enviar una señal sigint a través de la combinación de teclas Ctrl + C.
Veámoslo en acción.
Voy a hacer lo mismo que hicimos en Windows, iniciar un programa, como sudo
parted.
Podemos ver que ahora estamos en la herramienta parted.
Vamos a interrumpirla y a indicar que queremos anular el proceso
con la combinación de teclas Ctrl + C.
Ahora, podemos ver que el proceso se cerró y estamos de vuelta en nuestra shell.
Pudimos interrumpir nuestro proceso a mitad de camino y finalizarlo.
Perfecto. Hay muchas señales que se usan en Linux.
Hablaremos de las más comunes en las próximas lecciones.
Imagina que estás empezando un videojuego que se toma su tiempo para procesar
sus gráficos.
Decides que no quieres jugar más,
lo que te deja con algunas opciones.
Puedes esperar a que termine de cargar y luego salir del juego desde el menú
o puedes interrumpir el proceso por completo, diciéndole que anule a nivel del sistema.
Este es solo un ejemplo de un momento en el que, tal vez, te gustaría
cerrar un proceso antes de que se complete al 100%.
Para indicarle a un proceso que se anule a nivel del sistema, usamos algo llamado señal.
Una señal es una forma de decirle un proceso que algo acaba de ocurrir.
Puedes generar una señal con caracteres especiales en tu teclado
y a través de otros procesos y software.
Una de las señales más comunes con las que te encontrarás se llama SIGINT,
que significa "interrupción de la señal".
Puedes enviar esta señal a un proceso en ejecución con la combinación de teclas Ctrl +
C.
Digamos que inicias la herramienta DiskPart que vimos cuando analizamos
el formateo de particiones.
Solo voy a abrir el símbolo del sistema y luego iniciar DiskPart.
Si decides que, en verdad, no quieres formatear ningún disco,
puedes mantener presionada la tecla Ctrl
y presiona C al mismo tiempo para enviar la señal SIGINT al proceso DiskPart.
Verás que se cierra la ventana en donde DiskPart se ejecutaba
y el proceso termina.
Hay algunas otras señales de Windows que los procesos pueden enviar y recibir.
Pero, a diferencia de Linux, no hay una manera fácil
para que un usuario final emita comandos de señales arbitrarias.
Si te interesa aprender más sobre las señales de Windows,
consulta el vínculo de referencia sobre señales en la lectura complementaria.

En lecciones anteriores, hablamos de procesos.


Vimos algunos ejemplos de cómo manipularlos con señales.
Vamos a ampliar esa idea, gestión de procesos,
viendo algunas de las cosas que puedes hacer para manipular procesos.
En Windows, vimos programas como el Administrador de tareas,
comandos de PowerShell como el proceso Get-Desk
y la utilidad de cierre de tareas, por nombrar algunos.
También vimos cómo enviar una señal a un procesador en ejecución a través de Ctrl +
C,
pero hay otra herramienta de gestión de procesos de la que no hemos hablado,
que te permite hacer cosas como reiniciar o incluso poner procesos en pausa.
Esta herramienta se llama Explorador de procesos.
El Explorador de procesos es una utilidad que Microsoft creó para permitir que
especialistas en soporte de TI,
administradores de sistemas y otros usuarios miren los procesos en ejecución.
Aunque no viene incorporada en el sistema operativo Windows,
se puede descargar desde el sitio web de Microsoft
que vinculé en la lectura complementaria, justo después de este video.
Una vez descargado e iniciado el Explorador de procesos,
aparecerá una vista de los procesos actualmente activos en el panel de la ventana
superior.
También verás una lista de los archivos
que un proceso seleccionado utiliza en el panel de la ventana inferior.
Esto puede ser muy útil si necesitas averiguar qué procesos usan un determinado
archivo
o si deseas obtener información sobre qué está haciendo exactamente el proceso y cómo
funciona.
Puedes buscar un proceso fácilmente en el Explorador de procesos, ya sea presionando
Control F
o haciendo clic en el botón con los binoculares.
Sigamos adelante y hagamos una búsqueda del proceso notepad que abrimos
anteriormente.
Deberías ver C\Windows\System32\notepad.exe
listado como uno de los resultados de búsqueda.
Si ves algo que dice notepad.exe.mui, no te preocupes.
MUI significa "interfaz de usuario multilingüe"
y contiene un paquete de características para admitir diferentes idiomas.
De todos modos, una vez que localices el proceso notepad.exe,
observa cómo está anidado bajo el proceso command.exe en la interfaz de usuario.
Esto indica que es un proceso secundario de command.exe.
Si haces clic derecho en el proceso notepad.exe,
aparecerá una lista de las diferentes opciones que puedes usar para administrar el
proceso.
Presta atención a las que dicen Kill Process (Terminar proceso),
Kill Process Tree (Terminar árbol de procesos), Restart (Reiniciar) y Suspend
(Suspender).
Kill Process (Terminar proceso) es lo que su nombre sugiere.
Dile adiós al Bloc de notas. Kill Process Tree (Terminar árbol de procesos) hace un
poquito más.
Terminará el proceso y todos sus descendientes.
Por lo tanto, cualquier proceso secundario que se inicie allí será detenido.
No anda con rodeos.
Restart (Reiniciar) es otra opción interesante.
Tal vez adivines lo que hace solo por su nombre.
Detendrá el proceso y lo volverá a iniciar.
Vamos a hacer eso con el proceso notepad.exe.
Empezamos desde command.exe.
Interesante.
Después de reiniciar,
notepad.exe ya no aparece como proceso secundario de command.exe.
¿Qué pasa? Bueno, si vas a buscar notepad.exe de nuevo,
podremos ver que se reinició como proceso secundario de procexp.exe.
Este es el nombre del proceso para el Explorador de procesos.
Esto tiene sentido ya que el Explorador de procesos
fue el proceso a cargo de iniciarlo nuevamente una vez que lo finalizamos.
Pero ¿y la opción Suspend (Suspender)?
En lugar de terminar un proceso,
puedes usar esta opción para suspenderlo y posiblemente continuarlo más adelante.
Si hacemos clic derecho, suspendemos el proceso,
eso lo veremos en la columna CPU
de la salida del Explorador de procesos.
Aparece la palabra "suspended" (suspendido).
Mientras un proceso está suspendido,
no consume los recursos que ocupaba cuando estaba activo.
Podemos volver a iniciarlo haciendo clic derecho y seleccionando la opción Resume
(Reanudar).
El Explorador de procesos puede hacer mucho,
y, en una próxima lección,
vamos a estudiar la información de monitoreo que nos puede brindar.
Sin embargo, no entraremos en los detalles de todas sus funciones.
Si eres curioso, puedes consultar la documentación en el sitio web de Microsoft.
Te dejaremos un vínculo en la lectura complementaria.

Vamos a hablar sobre cómo usar señales para administrar procesos en Linux.
En primer lugar, finalizar procesos.
Podemos finalizar un proceso usando el comando kill.
Puede sonar un poco morboso,
pero es así en el cruel mundo de la finalización de procesos.
El comando kill sin ningún indicador envía una señal de finalización o SIGTERM.
Esto terminará el proceso,
pero le dará algo de tiempo para liberar los recursos que estaba usando.
Si no le das al proceso la oportunidad de limpiar algunos de los archivos con los que
estaba trabajando,
podría causar la corrupción del archivo.
Voy a mantener abierta una ventana de proceso para que puedas ver
cómo nuestros procesos se ven afectados cuando ejecutamos estos comandos.
Entonces, para finalizar un proceso, usaremos el comando kill
junto con el PID del proceso que queremos finalizar.
Sigamos adelante y terminemos este proceso de Firefox.
Y si observamos la ventana de procesos,
podemos ver que el proceso ya no se está ejecutando.
La otra señal que podrías ver aparecer de vez en cuando es la señal SIGKILL.
Esto terminará tu proceso con un montón de disparos metafóricos.
Usar un SIGTERM es como decirle a tu proceso:
''Hola, proceso, no necesito que te completes ahora mismo.
¿Podrías dejar de hacer lo que estás haciendo?''.
Y usar SIGKILL es, básicamente, decirle a tu proceso:
"Muy bien, es hora de morir".
La señal hace todo lo posible para asegurarse de que tu proceso
finalice por completo, y lo terminará sin darle tiempo para que limpie.
Para enviar una señal SIGKILL,
puedes agregarle al comando kill el indicador -KILL para SIGKILL.
Abramos Firefox una vez más.
Entonces: kill -KILL 10392,
y ahora puedes ver que el proceso de Firefox fue eliminado.
Estas son las dos formas más comunes de finalizar un proceso.
Pero es importante señalar que kill -KILL
se usa como último recurso para terminar un proceso.
Como no hace ninguna limpieza,
podrías terminar haciéndoles a tus archivos más mal que bien.
Supongamos que tenías un proceso en ejecución que no querías finalizar,
quizás solo ponerlo en pausa.
Puedes hacerlo enviando la señal SIGTSTP, que significa "detención de terminal",
la que pondrá tu proceso en estado suspendido.
Para enviar esto, puedes usar el comando kill con el indicador -TSTP.
Voy a ejecutar ps -x para que puedas ver el estado de los procesos.
Solo vamos a poner este proceso en estado suspendido.
Entonces: kill -TSTP.
Ahora puedes ver que el proceso 10754 está en estado suspendido.
También puedes enviar la señal SIGTSTP usando la combinación de teclado Control +
Z.
Para reanudar la ejecución del proceso,
puedes utilizar SIGCONT, que significa "continuar la señal".
Vamos a ver la tabla de procesos de nuevo.
Voy a seguir adelante y a usar ese comando en este proceso.
Ahora, si vuelvo a ver el proceso,
el estado del proceso pasó de una T a una S.
SIGTERM, SIGKILL, y SIGSTP son algunas
de las señales más comunes que verás cuando trabajes con procesos en Linux.
Ahora que comprendes estas señales,
usémoslas para que nos ayuden a aprovechar mejor los recursos de hardware.

Procesos de gestión
Puntos totales 2

1.

Pregunta 1

¿Cuál de las siguientes herramientas pueden ayudarte a reunir información sobre los
procesos que se ejecutan en un sistema operativo Windows?

1 / 1 punto

El Administrador de tareas

La utilidad TaskList desde un símbolo del sistema

El comando Get-Process de un indicador de PowerShell

Todas las anteriores

Correcto

¡Buen trabajo! Todas estas herramientas pueden ayudarte a reunir información sobre los
procesos que se ejecutan en un sistema operativo Windows.
2.

Pregunta 2

Si reinicias un proceso mediante la herramienta Explorador de procesos, ¿cuál será su


nuevo proceso principal?

1 / 1 punto

cmd.exe

Explorador de procesos

windows.exe

mamaypapa.exe

Correcto

¡Lo lograste! Dado que el Explorador de procesos es el proceso que comenzó el


reinicio, tiene sentido que sea el nuevo proceso principal.

Hiciste un gran trabajo y estamos por terminar este módulo.


Ahora que dedicamos todo este tiempo a aprender sobre procesos,
cómo leerlos y cómo administrarlos,
¿vamos a usar estas nuevas habilidades alguna vez?
Bueno, casi todo el tiempo.
Pero en una función de soporte de TI,
la gestión de los procesos es más útil cuando los procesos se vuelven un poco
ingobernables.
Nuestros sistemas suelen tener algunas formas bastante buenas
de supervisar procesos y nos dicen qué procesos pueden estar teniendo problemas.
En Windows, la forma más común de ver rápidamente
lo que hacen los recursos del sistema es mediante la herramienta Monitor de recursos.
Puedes encontrarla en un par de lugares,
pero la iniciaremos desde el menú Inicio.
Una vez que se abre, verás cinco pestañas de información.
Una es un resumen de todos los recursos en el sistema.
Cada una de las otras pestañas muestra información
sobre un recurso particular del sistema.
También notarás que el Monitor de recursos muestra información del proceso
junto con datos sobre los recursos que el proceso está consumiendo.
Puedes obtener esta información de rendimiento
en una presentación un poco menos detallada del Explorador de procesos.
Selecciona el proceso que te interesa,
haz clic derecho y elige Properties (Propiedades).
A partir de ahí, selecciona la pestaña Performance graph (Gráfico de rendimiento).
Puedes ver rápidamente
la memoria actual de la CPU indicada por bytes privados y la actividad del disco
indicada por E/S.
¿Pero cómo podemos obtener esta información desde la línea de comandos? Me alegra
que lo preguntes.
Hay varias formas de obtener esta información desde la línea de comandos,
pero nos enfocaremos en una que se basa en PowerShell, nuestra amiga Get-Process.
Sabemos que si ejecutamos Get-Process sin opciones ni indicadores,
obtenemos información de proceso
para cada proceso en ejecución en el sistema.
Si revisas los encabezados de las columnas al inicio de la salida,
verás cosas como los valores de NPM(K) en esta columna,
que representan la cantidad de memoria no paginada que utiliza el proceso.
Y la K representa la unidad, kB.
Puedes consultar en la documentación de Microsoft
un resumen completo de cada columna, en la próxima lectura complementaria.
Esto es útil pero es mucha información.
Puede ser realmente útil filtrar para quedarnos con los datos que nos interesan.
Supongamos que solo querías mostrar los tres procesos principales que más usan la
CPU.
Podrías escribir este comando.
Get-Process | Sort CPU -descending
| Select -first 3 -Property ID,
ProcessName,CPU.
Y así,
sabemos cuáles son los tres procesos que más consumen CPU en el sistema.
Este comando puede ser un poco difícil de entender,
vamos a revisarlo paso a paso.
Primero, invocamos al cmdlet Get-Process
para obtener toda esa información de procesos del sistema operativo.
Luego, usamos la barra vertical para conectar la salida de ese comando con el comando
Sort.
Tal vez recuerdes las barras verticales de algunos ejemplos de Linux anteriores.
Ordenamos la salida de Get-Process
por valores descendientes de la columna CPU para poner los números más grandes
primero.
Luego, canalizamos esa información al comando Select.
Con Select, seleccionamos las primeras tres filas
de la salida de Sort y solo tomamos el ID de propiedad,
el nombre y la cantidad de CPU para ver.
Ahora que conoces un poco la línea de comandos
y las herramientas gráficas que Windows proporciona para investigar el uso de recursos,
veamos cómo Linux supervisa sus recursos.

Un comando útil para averiguar cómo se ve la utilización de tu sistema en tiempo real


es el comando top.
"top" nos muestra los procesos principales que utilizan la mayoría de los recursos en
nuestra máquina.
También obtenemos una instantánea rápida de las tareas totales en ejecución o inactivas,
uso de CPU, uso de memoria y mucho más.
Uno de los lugares más comunes para verificar al usar el comando top son estos campos
aquí,
%CPU y %MEM.
Esto muestra el uso de CPU y de memoria
que ocupa una sola tarea. Para salir del comando top,
solo presiona la tecla "q" (salir).
Una situación común que podrías encontrar
es cuando la computadora de un usuario funciona un poco lenta.
Podría ser por muchas razones,
pero una de los más comunes es el uso excesivo de recursos de hardware.
Si top te muestra que una determinada tarea está ocupando una gran cantidad de
memoria o CPU,
deberías investigar qué está haciendo el proceso.
Incluso puedes finalizar el proceso para que devuelva los recursos que estaba usando.
Otra herramienta útil para la utilización de recursos es el comando uptime.
Este comando muestra información sobre la hora actual,
cuánto tiempo estuvo en funcionamiento tu sistema,
cuántos usuarios accedieron
y cuál es el promedio de carga de tu máquina.
Desde aquí, podemos ver que la hora actual es 16:43, o 4:43,
nuestro sistema estuvo funcionando durante cinco horas y ocho minutos,
y tenemos un usuario que accedió a él.
La ruta de la que queremos hablar aquí es el promedio de carga del sistema.
Esto muestra la carga promedio de CPU en intervalos
de 1, 5 y 15 minutos.
Los promedios de carga son una métrica interesante para leer.
Se vuelven utilísimos cuando necesitas ver
cómo funciona tu máquina durante un cierto período de tiempo.
Veremos los promedios de carga aquí,
pero deberás leer sobre ellos en la próxima lectura complementaria.
Otro comando que puedes usar para administrar procesos es el comando lsof.
Supongamos que tienes una unidad USB conectada a tu máquina,
estás trabajando con algunos de los archivos en la máquina,
entonces, cuando vas a expulsar la unidad USB,
aparece un error que te dice:
"Dispositivo o recurso ocupado".
Ya comprobaste que ninguno de los archivos en la unidad USB está en uso
ni abierto en alguna parte, o eso crees.
Con el comando lsof,
no tienes que preguntártelo.
Lista los archivos abiertos y qué procesos los están usando.
Este comando es genial para rastrear
esos procesos molestos que mantienen archivos abiertos.
Lo último que quiero señalar
sobre utilización del hardware es que puedes supervisarlo por separado de los procesos.
Si solo quisieras ver cómo funcionan tu CPU o tu memoria,
podrías usar varios comandos para verificar su salida.
Ver esto en una sola máquina no es inmediatamente útil,
pero tal vez, en el futuro,
si administras un inventario de máquinas,
es posible que pienses en supervisar
el uso de hardware para todas tus máquinas a la vez.
No analizaremos cómo hacerlo,
pero puedes ver más sobre esto en la lectura complementaria.
Hiciste un gran trabajo en este módulo.
Aprendiste mucho sobre cómo leer información de los procesos y administrarlos,
algo que será fundamental que conozcas cuando resuelvas problemas
como especialista en soporte de TI.
Las próximas evaluaciones pondrán a prueba tu nuevo conocimiento de gestión de
procesos.
Redobles de tambor, por favor.
Pasamos a la última lección de este curso.
Abarcará algunas de las herramientas esenciales que se utilizan en la función
de especialista en soporte de TI.

Utilización del proceso


Puntos totales 5

1.

Pregunta 1

¿Cuál de los siguientes comandos de PowerShell te dirán qué proceso en tu sistema


utiliza la mayoría de los recursos de la CPU?

1 / 1 punto

Get-Process | Sort CPU -descending | Select -first 1 -Property ID, ProcessName, CPU

Get-Process | Sort RAM -descending | Select -first 1 -Property ID, ProcessName, CPU

cpu_usage.exe | top -1

Correcto
¡Bravo! Ese comando es la solución ideal. Filtrará la salida del comando Get-Process
para determinar el usuario principal del recurso de CPU y otorgar su ID de proceso,
nombre y la cantidad de CPU utilizada.

2.

Pregunta 2

Si tienes una computadora lenta, ¿cuáles son algunas de las causas que podrían provocar
esto?

1 / 1 punto

Uso intensivo de la CPU

Correcto

¡Lo lograste! Una computadora lenta podría indicar muchas cosas, pero es siempre
conveniente comprobar primero cómo se utilizan tus recursos.

Mucha actividad de E/S

Correcto

¡Lo lograste! Una computadora lenta podría indicar muchas cosas, pero es siempre
conveniente comprobar primero cómo se utilizan tus recursos.

Uso intensivo de la memoria RAM

Correcto

¡Lo lograste! Una computadora lenta podría indicar muchas cosas, pero es siempre
conveniente comprobar primero cómo se utilizan tus recursos.

Demasiados procesos en ejecución

Correcto

¡Lo lograste! Una computadora lenta podría indicar muchas cosas, pero es siempre
conveniente comprobar primero cómo se utilizan tus recursos.
3.

Pregunta 3

En una máquina Linux, ¿qué comando puedes usar para finalizar de forma segura un
proceso con un PID de 342?

1 / 1 punto

kill 342

kill -KILL 342

kill -TSTP 342

kill -CONT 342

Correcto

¡Buen trabajo! Para finalizar un proceso de forma segura, envía la señal SIGTERM.

4.

Pregunta 4

En una máquina Linux, ¿qué comando puedes usar para terminar totalmente un proceso
con un PID de 342?

1 / 1 punto

kill 342

kill -KILL 342

kill -TSTP 342


kill -CONT 342

Correcto

¡Acertaste! Para terminar un proceso, usa la señal SIGKILL.

5.

Pregunta 5

En un equipo Linux, ¿qué comando puedes usar para suspender un proceso con un PID
de 342?

1 / 1 punto

kill 342

kill -KILL 342

kill -TSTP 342

kill -CONT 342

Correcto

¡Buen trabajo! Para detener o suspender un proceso en ejecución, envía la señal


SIGTSTP.

También podría gustarte