Seguramente hasta escuchado alguna vez eso de matar un proceso en Windows, o que se ha quedado bloqueado un programa. Hoy te explicamos de qué se trata y además veremos las diferencias con un subproceso, un término muy popularizado debido a los hilos de procesamiento.
En informática, un proceso se trata básicamente de un programa que entra en ejecución. Los procesos son una sucesión de instrucciones que pretenden llegar a un estado final o que persiguen realizar una tarea concreta. Lo más importante de este concepto, es de dónde sale un proceso o qué es realmente un programa y un sistema operativo.
El sistema operativo es el software básico de un ordenador, con éste, el usuario es capaz de interactuar a partir de un entorno gráfico o mediante entradas de texto en forma de instrucciones. El sistema operativo es capaz de ejecutar otros procesos dentro de sí mismo e incluso crearlos mediante código de programación y una compilación.
Por su parte, un programa es un algoritmo que genera una secuencia de instrucciones con las que podemos realizar una tarea concreta. Por supuesto los programas actuales no solo realizan una, sino muchas tareas gracias a tener muchos de estos algoritmos en su código de programación, cada uno de ellos para una función específica.
Podemos entender esto con una simple analogía de tostar el pan por la mañana:
Un proceso también se puede dividir en distintas partes para ver cómo se ejecuta en nuestro ordenador. Dentro de él tenemos lo que llamamos instrucciones, que corresponden a cada uno de los pasos que debemos hacer para completar esa tarea.
Además, para separar cada proceso, el procesador le asigna un contador de programa, para que cada uno este separado y bien diferenciado de otro que incluso puede ser igual, por ejemplo, abrir dos veces el explorador. De esta forma cada proceso se guarda en distintos registros, con distintas variables y por supuesto en distinta región de la memoria RAM.
Es en este punto, es en donde aparece el concepto de hilos de procesamiento o threads. Como sabemos, los sistemas actuales permiten ejecutar varios programas de forma simultánea, y en consecuencia, tendremos gran cantidad de procesos activos en el sistema, decimos que son multihilo. Cada proceso entonces se divide en uno o varios hilos de ejecución o subprocesos. Cada hilo, tiene sus propias instrucciones y un estado de ejecución, es decir, unos valores en los registros con los que el procesador sabe en qué fase se encuentran.
Siguiendo con el símil de tostar el pan, podríamos entender esto de la siguiente forma:
Mira este artículo para saber más acerca de qué son los hilos de un procesador y la diferencia con los núcleos
El hecho de que los ordenadores son sistemas multiproceso nos lleva a pensar que evidentemente, habrá procesos que estén relacionados unos con otros. De la misma forma, un proceso a lo mejor necesita el resultado de otro para continuar ejecutándose. Por eso los programas se dividen en subrutinas
Una tarea que tiene barias subrutinas debe esperar a que estas terminen y den un resultado para continuar la ejecución. Digamos que se mantendrá en una cola de procesos con un determinado contador parado hasta que el valor de una variable active de nuevo el proceso. Por supuesto, la idea siempre del procesador será terminar primero, el que primero empezó (first in – first out).
Siguiendo con la comparativa del pan, una subrutina puede ser la de esperar una cuenta atrás hasta que el pan esté tostado. El apartado nos mandará una señal para avisarnos de que retiremos el pan, continuando así con otro proceso.
Las formas de empezar un proceso informático serán las siguientes:
Y también se pueden terminar:
La siguiente tarea que podemos hacer es la de visualizar los procesos en el sistema operativo Windows. Esto es tarea sencilla, ya que solo debemos de pulsar con botón derecho sobre la barra de tareas y elegir la opción “Administrador de tareas”. Una segunda forma de hacer esto será pulsar la combinación de teclas “Ctrl+ Mayus + Esc”. Y una tercera será pulsar la combinación de teclas “Ctrl + Alt + Supr”.
De esta forma, sacaremos una aplicación que monitoriza tanto procesos como servicios en ejecución de programas y el sistema operativo, además de un monitor de rendimiento del hardware. De esta forma es como podremos matar o intentar matar un proceso que esté bloqueado.
En la pestaña procesos tenemos toda la lista con su actividad en tiempo real representada. Solo debemos seleccionar el que queramos eliminar y pulsar Supr.
Todavía podemos hacer un poco más, dirigiéndonos al apartado de “rendimiento” y ver la actividad de todo nuestro hardware principal. En la esquina inferior derecha, estando en el apartado “CPU”, encontraremos una lista de especificaciones del procesador. En ella, veremos representados sus núcleos y también sus hilos, threads o procesadores lógicos. En esta captura sabemos que nuestro procesador tiene 4 hilos y dos núcleos.
Y no paramos, porque ahora vamos a pulsar sobre la opción de “Abrir el monitor de recursos” para abrir una nueva aplicación que nos muestra más detalles acerca de la CPU y los procesos. Nos dirigimos al apartado de “CPU” de este monitor y veremos una lista de procesos en los que también tenemos una columna que nos muestra todos los subprocesos o hilos de cada uno de ellos.
Los procesos llevan entre nosotros desde que se crearon las primeras computadoras. Es un concepto aplicable a muchas otras áreas, pero siempre con una contante, la de realizar una serie de tareas hasta llegar a un resultado. No solo se trata de procesos digitales, hemos hecho un simil con una tarea cotidiana, y además las primeras computadoras era mecánicas y ya ejecutaban algoritmos.
Os dejamos con algunos enlaces a tutoriales que os puedan interesar:
Si quieres puntualizar alguna cuestión o tienes alguna duda al respecto, deja tu comentario en la caja.
Asus ZenWiFi BT8 es un sistema Mesh Wi-Fi 7 el cual se sitúa por debajo…
Qualcomm anuncia nuevos SoC Snapdragon X, pero no se trata de una nueva generación, sino…
NVIDIA no solo da razones teóricas, sino fundamentos en forma de ofertas de todo GeForce…