Un procés en segon pla és un procés informàtic que s'executa entre bastidors (és a dir, en segon pla) i sense intervenció de l'usuari. Les tasques típiques per a aquests processos inclouen el registre, la supervisió del sistema, la programació i la notificació a l'usuari.
En un sistema Windows, un procés en segon pla és o bé un programa informàtic que no crea una interfície d'usuari o bé un servei de Windows. Els primers s'inicien igual que qualsevol altre programa, per exemple, a través del menú Inici. Els serveis de Windows, en canvi, s'inicien mitjançant el Gestor de control de serveis. A Windows Vista i posteriors, s'executen en una sessió separada.
En un sistema Unix o similar a Unix, un procés o tasca en segon pla es pot identificar a més com aquell l'ID del grup de processos del qual difereix del seu ID de grup de terminals (TGID). (El TGID d'un procés és l'ID del procés del líder del grup de processos que ha obert el terminal, que normalment és l'intèrpret d'ordres d'inici de sessió. El TGID identifica el terminal de control del grup de processos.) Aquest tipus de procés no pot rebre senyals de teclat del seu terminal principal i, normalment, no enviarà sortida a aquest terminal. Aquesta definició més tècnica no distingeix entre si el procés pot rebre o no intervenció de l'usuari. Tot i que els processos en segon pla s'utilitzen normalment per a finalitats que necessiten pocs recursos, qualsevol procés es pot executar en segon pla i aquest procés es comportarà com qualsevol altre procés, amb les excepcions esmentades anteriorment.
Serveis de Windows
A la família de sistemes operatius Windows NT, un servei de Windows és un procés dedicat en segon pla. Un servei de Windows ha de complir les regles i protocols d'interfície del Gestor de control de serveis, el component responsable de gestionar els serveis de Windows.
Els serveis de Windows es poden configurar per iniciar-se quan s'inicia el sistema operatiu i per executar-se en segon pla mentre Windows s'executa. Alternativament, es poden iniciar manualment o mitjançant un esdeveniment. Els sistemes operatius Windows NT inclouen nombrosos serveis que s'executen en el context de tres comptes d'usuari: System, Network Service i Local Service. Aquests components de Windows sovint s'associen amb el procés amfitrió per a serveis de Windows: svchost.exe. Com que els serveis de Windows funcionen en el context dels seus propis comptes d'usuari dedicats, poden funcionar quan un usuari no ha iniciat la sessió.
Abans de Windows Vista, els serveis instal·lats com a "serveis interactius" podien interactuar amb l'escriptori de Windows i mostrar una interfície gràfica d'usuari. Amb Windows Vista, però, els serveis interactius van quedar obsolets i van deixar de funcionar correctament, com a resultat del Windows Service Hardening.
Els tres mètodes principals per gestionar els serveis de Windows són:
Complement Serveis per a la Consola d'administració de Microsoft sc.exe Windows PowerShell
Dimoni Un daemon és un tipus de procés en segon pla dissenyat per executar-se contínuament en segon pla, esperant que es produeixin esdeveniments o que es compleixin condicions. Quan s'inicien amb la funció daemon, els daemons es desassocien del seu terminal principal.
Treballs en segon pla a Unix Des d'una línia d'ordres d'Unix, es pot iniciar un procés en segon pla mitjançant l'operador "&". L'ordre bg pot reprendre una tasca suspesa (enviant SIGCONT) i executar-la en segon pla. L'ús de l'ordre fg també reconnectarà l'entrada estàndard al seu terminal principal, posant-lo en primer pla. L'ordre jobs llistarà tots els processos associats amb el terminal actual i es pot utilitzar per posar els processos en segon pla en primer pla.
Quan finalitza una sessió d'inici de sessió, mitjançant un tancament de sessió explícit o una desconnexió de la xarxa, tots els processos, inclosos els processos en segon pla, es tancaran per defecte per evitar que es converteixin en processos orfes. Concretament, quan l'usuari surt del procés d'inici de l'intèrpret d'ordres, com a part de l'apagada, envia un senyal de bloqueig (SIGHUP) a totes les seves tasques per finalitzar tots els processos del grup de processos corresponent. Perquè els processos continuïn executant-se, es pot no finalitzar la sessió o finalitzar-la sense finalitzar els processos. Es pot utilitzar un multiplexor de terminal per deixar una sessió en execució però desconnectar-ne un terminal virtual, deixant els processos en execució com a processos fills de la sessió; l'usuari pot tornar a connectar la sessió més tard. O bé, es pot evitar la terminació iniciant el procés mitjançant l'ordre nohup (dient al procés que ignori SIGHUP) o executant posteriorment disown amb l'ID de la tasca, que elimina la tasca de la llista de tasques completament o simplement impedeix que s'enviï SIGHUP. En aquest darrer cas, quan finalitza la sessió, els processos fills no es finalitzen, ja sigui perquè no se'ls envia SIGHUP o perquè l'ignoren, i per tant es converteixen en processos orfes, que després són adoptats pel procés init (el nucli estableix el procés init com a pare), i continuen executant-se sense sessió, ara anomenats dimonis.
Exemple En aquest exemple que s'executa en Unix, la utilitat sleep es va iniciar en segon pla. Després, l'eina ps es va executar en primer pla, on va mostrar el text següent. Ambdues es van iniciar des de l'intèrpret d'ordres. PID TT STAT TIME COMMAND 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èfons intel·ligents Moltes versions més noves dels sistemes operatius per a telèfons intel·ligents i PDA ara inclouen la possibilitat d'iniciar processos en segon pla. A causa dels límits del maquinari, els processos en segon pla als sistemes operatius mòbils sovint estan restringits a determinades tasques o nivells de consum. A Android, l'ús de la CPU per als processos en segon pla pot estar limitat al 5-10%. Les aplicacions a iOS d'Apple estan limitades a un subconjunt de funcions mentre s'executen en segon pla. Tant a iOS com a Android, els processos en segon pla, així com les aplicacions en segon pla o no utilitzades, poden ser interromputs pel sistema si utilitzen massa memòria o massa bateria.
Referències
Categoria:Ordinadors