Tasca (informàtica)
- En informàtica, una tasca és una unitat d'execució o una unitat de treball. El terme és ambigu; Els termes alternatius precisos inclouen procés, procés lleuger, fil (per a l'execució), pas, sol·licitud o consulta (per al treball). Al diagrama adjacent, hi ha cues de treball entrant per fer i treball acabat sortint, i un grup de fils de fils per dur a terme aquest treball. Les unitats de treball o els fils que realitzen el treball es poden anomenar "tasques", i aquests es poden referir respectivament com a sol·licituds/respostes/fils, tasques entrants/tasques completades/fils (com es mostra), o sol·licituds/ respostes/tasques.
Terminologia
[modifica]- En el sentit de "unitat d'execució", en alguns sistemes operatius, una tasca és sinònim de procés, i en altres amb un fil. En l'execució no interactiva (processament per lots), una tasca és una unitat d'execució dins d'un treball,[1][2] amb la tasca en si mateixa normalment un procés. El terme " multitasca " es refereix principalment al sentit del processament: múltiples tasques que s'executen al mateix temps, però té matisos del sentit del treball de múltiples tasques que s'estan realitzant al mateix temps.
En el sentit de "unitat de treball", en un treball (que significa "peça de treball única") una tasca pot correspondre a un sol pas (el pas en si, no la seva execució), mentre que en el processament per lots les tasques individuals poden corresponen a un sol pas de processament d'un sol article en un lot, o a un sol pas de processament de tots els articles del lot. En els sistemes en línia, les tasques solen correspondre a una sol·licitud única (en arquitectures de sol·licitud-resposta) o una consulta (en recuperació d'informació), ja sigui una única etapa de gestió o la gestió de tot el sistema.
Exemples
[modifica]En el llenguatge de programació Java, aquests dos conceptes (unitat de treball i unitat d'execució) es combinen quan es treballa directament amb fils, però es distingeixen clarament al marc d'executors:
"Quan treballes directament amb fils, un Thread serveix tant com a unitat de treball com com a mecanisme per executar-lo. En el marc executor, la unitat de treball i el mecanisme d'execució estan separats. L'abstracció clau és la unitat de treball, que s'anomena tasca. »
Terminologia d'IBM
[modifica]L'ús del terme per part d'IBM ha estat influent, tot i que subratllant l'ambigüitat del terme, en la terminologia d'IBM, "tasca" té desenes de significats específics, incloent:
- Unitat de treball que representa un dels passos d'un procés.
- Unitat de treball que s'ha d'aconseguir mitjançant un dispositiu o procés.
- Un procés i els procediments que executen el procés.
- Conjunt d'accions dissenyades per aconseguir un resultat determinat. Una tasca es realitza en un conjunt d'objectius en un calendari específic.
- Una unitat de càlcul. En un treball paral·lel, dues o més tasques concurrents treballen juntes mitjançant el pas de missatges i la memòria compartida. Tot i que és habitual assignar una tasca per processador físic o lògic, els termes "tasca" i "processador" no són intercanviables.
- Activitat que té valor comercial, és iniciada per un usuari i realitzada per programari.
Nucli Linux
[modifica]El terme tasca s'utilitza al nucli de Linux (almenys des de la v2.6.13,[3] fins a la v4.8 [4]) per referir-se a una unitat d'execució, que pot compartir diversos recursos del sistema amb altres tasques del sistema. sistema. Depenent del nivell de compartició, la tasca es pot considerar com un fil o procés convencional. Les tasques es posen en funcionament mitjançant la crida al sistema clone()
,[5] on un usuari pot especificar el nivell desitjat de compartició de recursos.
Referències
[modifica]- ↑ «What is task? - Definition from WhatIs.com» (en anglès). WhatIs.com. [Consulta: 11 juny 2015].
- ↑ «What are computer processes?» (en anglès). liutilities.com. [Consulta: 11 juny 2015].
- ↑ «
include/linux/sched.h
» (en anglès). GitHub.com. Linus Torvalds, 29-08-2005. - ↑ «
include/linux/sched.h
» (en anglès). GitHub.com. Linus Torvalds, 03-10-2016. - ↑ Linux Programmer's Manual, 17-07-2016 [Consulta: 6 novembre 2016].