PROCESOS DE WINDOWS Y LINUX

Si querés saber qué procesos se están ejecutando en este momento en tu equipo, basta con el Administrador de tareas de Windows, pulsando las teclas Ctrl + Alt + Supr y la opción correspondiente.

Hay un proceso del sistema muy conocido por los usuarios de Windows, se trata del famoso svchost.exe. Según Microsoft, svchost.exe es el nombre genérico de un proceso anfitrión para servicios que se ejecutan a través de librerías enlazadas dinámicamente. Hace tiempo que la compañía migró las funciones de los servicios de Windows a ficheros DLL en lugar de EXE. Pero, como no se puede ejecutar un archivo DLL directamente en Windows, tiene que ser cargado con un ejecutable, y precisamente svchost.exe fue ese archivo.

Normalmente hay varias instancias de “svchost” corriendo simultáneamente. No es adecuado ejecutar todos los servicios desde una única, ya que un fallo en la misma haría que todos los servicios asociados se colgasen. De ahí que sea conveniente utilizar un proceso svchost.exe para cada servicio. Por eso tienes tantos procesos iguales en el administrador de tareas.

Entre estos procesos mencionados anteriormente, también te puedes encontrar con otros que a simple vista tal vez no te suenen, pero que son igualmente importantes. Algunos ejemplos:

  • dwm.exe – Este proceso corresponde a uno de los componentes de Windows más importantes a nivel visual, el llamado Desktop Windows Manager. Se trata del gestor de composición que ofrece la capacidad de que disfrutemos de esos bonitos efectos estéticos como ventanas transparentes, miniaturas en vivo en la barra de tareas o el intercambiador de tareas Flip3D (Windows 7), que se activa al pulsar la combinación de teclas Windows + Tabulador (Tab). En Windows 8 tenemos la combinación Alt + Tab.
  • ctfmon.exe – Este proceso controla la entrada de usuario alternativa y la barra de idiomas de Office. De este modo, podremos manejar nuestro ordenador a través de la voz o de un puntero y una tableta gráfica, además de caracteres mediante el teclado virtual.
  • rundll32.exe o rundll.exe – Como no hay una forma directa de ejecutar ficheros DLL, este proceso se encarga de ejecutar las funcionalidades que se almacenan en archivos DLL compartidos. Este ejecutable es una parte válida de Windows, por lo que no representa un problema en la mayoría de las ocasiones.
  • wuauclt.exe – Es el actualizador de Windows y funciona en segundo plano. Descarga parches y los instala siempre y cuando lo tengas configurado para que detecte automáticamente actualizaciones y las instale por ti.
  • Wmpnscfg.exe – Windows Media Player puede compartir contenidos multimedia entre ordenadores de la misma red y también con la XBOX 360. Este proceso comparte la biblioteca multimedia incluso aunque no esté abierta. Si sacas provecho de esta funcionalidad estás ante una de las grandes características de Windows.
  • csrss.exe – Conocido como «Client/Server Runtime Subsystem» es un componente que proporciona el modo usuario del subsistema de Windows y que se complementa con win32.sys, que se encarga de la parte que se ejecuta en modo núcleo. Este proceso no debe detenerse bajo ningún concepto, ya que dependen de él las ventanas de consola, la creación y borrado de hilos, y de algunas porciones del entorno virtual de MS-DOS.
  • mdm.exe – Forma parte de Visual Studio .Net (Entorno de desarrollo para crear aplicaciones, sitios y aplicaciones web, así como servicios web en cualquier entorno que soporte la plataforma .NET).
  • services.exe – Es el proceso que controla y gestiona los servicios de Windows.
  • justched.exe – ¿Usas Java? Porque este proceso es el planificador de actualizaciones de Java, que malgasta memoria continuamente para comprobar si tienes Java actualizado a la última versión. Para desactivar la comprobación de actualizaciones de Java, ves al Panel de control y busca Java, al ejecutarlo saldrá el Panel de control de Java. Ahí verás la pestaña Update en la que podrás desactivar la casilla Check for Updates Automatically. Importante: Antes de hacerlo comprueba que tienes la última versión de Java y recuerda comprobar manualmente si existen actualizaciones disponibles.

LLAMADAS AL SISTEMA

PROCESOS EN LINUX, ADMINISTRACION Y CONTROL

Los procesos en Linux (o en cualquier sistema operativo) son programas que están en ejecución y se identifican mediante el PID.

El PID (Process Identificator) es el número que se le asigna a un proceso cuando se inicia. Son números crecientes y los procesos que se terminan y luego se vuelven a iniciar van a tener un PID diferente. Por ejemplo, el PID número 1 se le asigna a por norma general a init que es el primer proceso que inicia el sistema al ser arrancado.

Para visualizar todos los procesos en Linux con información detallada del sistema, se escribe en la terminal ps aux y se ven los procesos en uso de Linux

Para ser más precisos se puede buscar un determinado proceso con el que queramos dar, por ejemplo buscar el proceso SSH y se usaría el comando ps aux | grep ssh.

Para ver los procesos en Linux de un usuario podemos escribir en la terminal ps -u root.

Los procesos pueden ejecutar otros procesos (procesos hijos). Los procesos hijos contienen su propio PID pero a su vez también contienen otro campo llamado PPID (Parent Process Identificator) que es el proceso padre al que pertenece el proceso.

Todos los procesos en Linux tienen su proceso padre excepto el proceso 0 que es el que ejecuta el inicio del sistema (PID 1).

Para ver el PPID de los distintos procesos, se inserta en la terminal ps –ef

 

ESTADOS DE UN PROCESO

Los procesos durante su ejecución pasan por distintos estados, algunos de ellos:

  • S (sleeping) el proceso está en espera.
  • R (running) el proceso está en ejecución.
  • T (stop) el proceso se encuentra parado.
  • D proceso que se encuentra bloqueado a la espera de un recurso.
  • Z (zombie) es un proceso que se encuentra en estado zombie, es decir, que es un proceso que ha finalizado pero que su proceso padre sigue en ejecución y no se ha “dado cuenta” de la circunstancia de su proceso hijo.

 

Procesos en primer y segundo plano

Los procesos en Linux que se ejecutan en primer plano mantienen la terminal ocupada y eso a veces es un incoveniente. El proceso que se ejecuta en segundo plano libera la terminal para poder ejecutar otros procesos. Un ejemplo para ver esto:

  1. Escribir en la terminal sleep 100 y para
  2. Lo mandamos parar y para ello usamos las teclas CNTRL+Z
  3. Seguidamente escribimos en la terminal jobs y veremos en la terminal el proceso parado.

Si se quiere retomar este proceso, tendríamos dos opciones, lanzarlo en primer plano:
fg %1

O mandarlo a ejecución en segundo plano:
bg %1

El %1 equivale a el número de proceso de la lista que nos muestra jobs, por ejemplo en este caso [1].
Si lo que se quiere es, por ejemplo, parar el proceso se usaría:
kill -9 %1
Que equivale como he dicho anteriormente a pulsar CNTRL+Z.

Deja un comentario