stringtranslate.com

Proceso en segundo plano

Un proceso en segundo plano es un proceso informático que se ejecuta en segundo plano y sin intervención del usuario. [1] Las tareas típicas de estos procesos incluyen el registro, la supervisión del sistema, la programación [2] y la notificación al usuario. [3]

En un sistema Windows , un proceso en segundo plano es un programa informático que no crea una interfaz de usuario o un servicio de Windows . Los primeros se inician como cualquier otro programa, por ejemplo, a través del menú Inicio . Los servicios de Windows, por otro lado, se inician mediante el Administrador de control de servicios . En Windows Vista y versiones posteriores, se ejecutan en una sesión independiente . [ cita requerida ]

En un sistema Unix o similar a Unix , un proceso o trabajo en segundo plano puede identificarse además como uno cuyo ID de grupo de procesos difiere de su ID de grupo de terminal (TGID). (El TGID de un proceso es el ID de proceso del líder del grupo de procesos que abrió la terminal, que normalmente es el shell de inicio de sesión. El TGID identifica la terminal de control del grupo de procesos). Este tipo de proceso no puede recibir señales del teclado de su terminal principal y normalmente no enviará salida a esa terminal. [4] Esta definición más técnica no distingue entre si el proceso puede recibir o no la intervención del usuario. Aunque los procesos en segundo plano se utilizan normalmente para fines que necesitan pocos recursos, cualquier proceso puede ejecutarse en segundo plano y dicho proceso se comportará como cualquier otro proceso, con las excepciones indicadas anteriormente. [1]

Servicios de Windows

En la familia de sistemas operativos Windows NT , un servicio de Windows es un proceso en segundo plano dedicado. [5] Un servicio de Windows debe cumplir con las reglas de interfaz y los protocolos del Administrador de control de servicios , el componente responsable de administrar los servicios de Windows. [6]

Los servicios de Windows se pueden configurar para que se inicien cuando se inicia el sistema operativo y para que se ejecuten en segundo plano mientras Windows esté en ejecución. Alternativamente, se pueden iniciar manualmente o mediante un evento. Los sistemas operativos Windows NT incluyen numerosos servicios que se ejecutan en el contexto de tres cuentas de usuario : System, Network Servicey Local Service. Estos componentes de Windows suelen estar asociados con el proceso host para servicios de Windows: svchost.exe . Dado que los servicios de Windows funcionan en el contexto de sus propias cuentas de usuario dedicadas, pueden funcionar cuando un usuario no ha iniciado sesión.

Antes de Windows Vista , los servicios instalados como "servicios interactivos" podían interactuar con el escritorio de Windows y mostrar una interfaz gráfica de usuario . Sin embargo, con Windows Vista, los servicios interactivos quedaron obsoletos y dejaron de funcionar correctamente, como resultado del endurecimiento de servicios de Windows . [7] [8]

Los tres medios principales para administrar los servicios de Windows son:

  1. Complemento de servicios para Microsoft Management Console
  2. sc.exe
  3. Windows PowerShell

Demonio

Un daemon es un tipo de proceso en segundo plano diseñado para ejecutarse continuamente en segundo plano, esperando que ocurran eventos o se cumplan condiciones. [9] Cuando se inician con la función daemon , los daemons se disocian de su terminal principal. [10]

Trabajos en segundo plano en Unix

Desde una línea de comandos de Unix, se puede iniciar un proceso en segundo plano utilizando el operador "&". El comando bg puede reanudar un trabajo suspendido (enviando SIGCONT ), ejecutándolo en segundo plano. El uso del comando fg también reconectará la entrada estándar a su terminal principal, llevándola al primer plano. El comando jobs enumerará todos los procesos asociados con el terminal actual y se puede utilizar para traer procesos en segundo plano al primer plano. [4] [11]

Cuando una sesión de inicio de sesión finaliza, mediante un cierre de sesión explícito o una desconexión de la red, todos los procesos, incluidos los procesos en segundo plano, se terminarán de forma predeterminada para evitar que se conviertan en procesos huérfanos . Concretamente, cuando el usuario sale del proceso de shell de lanzamiento, como parte del apagado envía una señal de suspensión ( SIGHUP ) a todos sus trabajos , para terminar todos los procesos en el grupo de procesos correspondiente . Para que los procesos sigan ejecutándose, uno puede no terminar la sesión o terminar la sesión sin terminar los procesos. Se puede utilizar un multiplexor de terminal para dejar una sesión en ejecución pero separar un terminal virtual de ella, dejando los procesos ejecutándose como procesos secundarios de la sesión; el usuario puede volver a adjuntar la sesión más tarde. O bien, se puede evitar la terminación iniciando el proceso mediante el comando nohup (que le indica al proceso que ignore SIGHUP), o ejecutándolo posteriormente disowncon el id de trabajo, que elimina el trabajo de la lista de trabajos por completo o simplemente evita que se envíe SIGHUP. En este último caso cuando la sesión termina, los procesos hijos no son terminados, ya sea porque no se les envía SIGHUP o porque lo ignoran, y por lo tanto se convierten en procesos huérfanos, que luego son adoptados por el proceso init (el núcleo establece el proceso init como su padre), y continúan ejecutándose sin sesión, ahora llamados daemons .

Ejemplo

En este ejemplo ejecutado en Unix , la utilidad sleep se ejecutó en segundo plano. Luego, la herramienta ps se ejecutó en primer plano, donde generó el texto que se muestra a continuación. Ambos se ejecutaron desde el shell. [12]

 COMANDO DE TIEMPO PID  TT  STAT 54659 10 S 0 :00.06 su ( zsh ) 54703 10 IN 0 :00.00 - sleep 1000 54852 10 R+ 0 :00.00 - ps -U botty -axd                     

Teléfonos inteligentes

Muchas versiones más nuevas de los sistemas operativos de teléfonos inteligentes y PDA ahora incluyen la capacidad de iniciar procesos en segundo plano. Debido a los límites de hardware, los procesos en segundo plano en los sistemas operativos móviles a menudo están restringidos a ciertas tareas o niveles de consumo. En Android , el uso de CPU para procesos en segundo plano puede estar limitado al 5-10%. [13] Las aplicaciones en iOS de Apple están limitadas a un subconjunto de funciones mientras se ejecutan en segundo plano. [3] Tanto en iOS como en Android, el sistema puede eliminar los procesos en segundo plano si están utilizando demasiada memoria. [3] [13]

Véase también

Referencias

  1. ^ ab "¿Qué es un sistema operativo? Procesos". El tutorial de Linux. Archivado desde el original el 15 de agosto de 2020. Consultado el 14 de noviembre de 2010 .
  2. ^ Michele Cyran (diciembre de 1993). Oracle Database Concepts, 10g Release 1. Oracle Corporation. B10743-01. Archivado desde el original el 2 de marzo de 2013. Consultado el 12 de noviembre de 2010 .
  3. ^ abc Jesus Diaz (8 de abril de 2010). «Cómo funciona la multitarea en el nuevo iPhone OS 4.0». Gizmodo. Archivado desde el original el 2 de noviembre de 2010. Consultado el 14 de noviembre de 2010 .
  4. ^ ab GNU Bash Reference Manual, Edición 4.1, Job Control Basics. Free Software Foundation, Inc. 23 de diciembre de 2009. Archivado desde el original el 3 de diciembre de 2010. Consultado el 10 de noviembre de 2010 .
  5. ^ "Descripción general de los servicios". Microsoft TechNet . Microsoft . Consultado el 29 de marzo de 2013 .
  6. ^ "Servicios". Microsoft Developer Network . Microsoft . Consultado el 29 de marzo de 2013 .
  7. ^ "Nuevos Elevation PowerToys para Windows Vista". Revista TechNet . Microsoft . Junio ​​de 2008. Consultado el 21 de junio de 2013. El servicio CmdAsSystem está configurado como interactivo y su compatibilidad está en desuso. Es posible que el servicio no funcione correctamente. El problema es que este script intenta crear e iniciar un servicio interactivo. Los servicios interactivos no funcionarán correctamente debido al aislamiento de la sesión 0 en Windows Vista.
  8. ^ "Servicios en Windows". MSDN . Microsoft . 18 de octubre de 2010 . Consultado el 21 de junio de 2013 .
  9. ^ Eric S. Raymond (1 de octubre de 2004). The Jargon File, versión 4.4.8, «daemon». Archivado desde el original el 3 de noviembre de 2010. Consultado el 10 de noviembre de 2010 .
  10. ^ raf (12 de junio de 2010). Manual del usuario de Linux, «daemon». Archivado desde el original el 21 de octubre de 2010. Consultado el 10 de noviembre de 2010 .
  11. ^ Åke Nordlund (7 de febrero de 2007). «Procesos en segundo plano en Unix/Linux». Archivado desde el original el 13 de febrero de 2012. Consultado el 10 de noviembre de 2010 .
  12. ^ "POSIX "ps"". IEEE Std 1003.1, edición 2004 .
  13. ^ por Matt Buchanan (29 de abril de 2010). "Giz explica: cómo funciona la multitarea en un teléfono". Gizmodo. Archivado desde el original el 17 de octubre de 2010. Consultado el 14 de noviembre de 2010 .