Funcția timp-utilitate
Paradigma TUF/UA a fost creată inițial pentru a răspunde anumitor nevoi de programare bazate pe timp și QoS a aplicațiilor pentru diverse aplicații militare pentru care conceptele și practicile tradiționale de timp real nu sunt suficient de expresive (de exemplu, pentru sistemele critice din punct de vedere al timpului care nu au termene limită) și rezistente (de exemplu, pentru sistemele supuse la supraîncărcări de rutină). O clasă de exemplu de astfel de aplicații este apărarea împotriva rachetelor balistice (în mod teoretic).
Subiectiv, numeroase variații ale modelului TUF original, ale modelului de sistem al paradigmei TUF/UA și, prin urmare, ale tehnicilor de programare, au fost studiate în literatura academică – de ex,-și aplicate în contexte civile.
Câteva exemple din acestea din urmă includ: sisteme ciberfizice, inteligență artificială, sisteme multi-robot, programarea dronelor, roboți autonomi, transferuri de date inteligente de la vehicule la cloud, controlul proceselor industriale, sisteme de tranzacții, calcul de înaltă performanță, sisteme cloud, clustere eterogene, calcul orientat pe servicii, rețele și gestionarea memoriei pentru mașini reale și virtuale. Un exemplu de oțelărie este descris pe scurt în introducerea tezei de doctorat a lui Clark. Informațiile despre orice instanțe comerciale sau militare ale paradigmei pot fi inaccesibile publicului (brevetate sau, respectiv, clasificate).
TUF-urile și interpretările lor de utilitate (semantica), scările și valorile lor sunt derivate din cunoștințele specifice domeniului de activitate. O interpretare frecventă din punct de vedere istoric a utilității este importanța relativă a acțiunilor. A fost conceput un cadru pentru atribuirea a priori a unor valori de utilitate statice supuse unor constrângeri puternice asupra modelelor de sistem, dar cercetările și dezvoltările ulterioare (ca și cele anterioare) în materie de TUF/UA au preferat să depindă de exploatarea specificității aplicațiilor în loc să încerce să creeze cadre mai generale. Cu toate acestea, astfel de cadre și instrumente rămân un subiect de cercetare important.
Potrivit convenției tradiționale, o TUF este o funcție concavă, inclusiv cele liniare. A se vedea reprezentarea unor exemple de TUF-uri.
Documentațiile TUF/UA din literatura de cercetare, cu câteva excepții, de exemplu, sunt numai pentru TUF-uri liniare sau liniare pe bucăți (inclusiv cele convenționale bazate pe termene limită), deoarece acestea sunt mai ușor de specificat și de programat. În multe cazuri, TUF-urile sunt doar monoton descrescătoare.
O funcție constantă reprezintă o utilitate a unei acțiuni care nu este legată de timpul de finalizare a acțiunii – de exemplu, importanța relativă constantă a acțiunii. Acest lucru permite ca atât acțiunile dependente de timp, cât și cele independente de timp să fie programate în mod coerent.
O TUF are un timp critic global, după care utilitatea sa nu crește. Dacă o TUF nu scade niciodată, timpul său critic global este primul moment în care este atinsă utilitatea sa maximă. O TUF constantă are un timp critic arbitrar în scopul programării – cum ar fi timpul de lansare a acțiunii sau timpul de terminare a TUF. Momentul critic global poate fi urmat de momente critice locale – de exemplu, să luăm în considerare un TUF care are o secvență de pași descendenți, poate pentru a aproxima o curbă descendentă lină.
Valorile utilității TUF sunt de obicei fie numere întregi, fie numere raționale.
Utilitatea TUF poate include valori negative. (Un TUF care are valori negative în intervalul său nu este neapărat eliminat din considerare pentru planificare sau anulat în timpul funcționării sale – această decizie depinde de algoritmul de planificare.)
Un termen limită convențional (d) reprezentat ca un TUF este un caz special – un TUF cu pas descendent care are o penalizare unitară (de ex, având valori de utilitate 1 înainte și 0 după timpul său critic).
Mai general, un TUF permite ca funcțiile de pas descendent (și ascendent) să aibă orice utilități înainte și după timpul critic.
Târzierea reprezentată ca un TUF este un caz special a cărui utilitate diferită de zero este funcția liniară C – d, unde C este timpul de finalizare a acțiunii – fie actual, așteptat sau estimat. Mai general, un TUF permite ca promptitudinea și întârzierea diferită de zero să fie neliniare – de exemplu, întârzierea crescândă poate duce la o utilitate descrescătoare neliniară, cum ar fi în cazul detectării unei amenințări.
Astfel, TUF-urile oferă o generalizare bogată a constrângerilor tradiționale privind timpul de finalizare a acțiunii în calculul în timp real.
Alternativ, paradigma TUF/UA poate fi utilizată pentru a folosi punctualitatea în ceea ce privește timpul critic global ca mijloc pentru un scop de acumulare a utilității – de ex, calitatea serviciului (QoS) la nivel de aplicație – în loc ca punctualitatea în sine să fie un scop în sine (a se vedea mai jos).
Un TUF (forma și valorile sale) poate fi adaptat în mod dinamic de către o aplicație sau de către mediul său operațional, independent pentru orice acțiune care se află în prezent fie în așteptare, fie în funcțiune.
Aceste adaptări au loc în mod obișnuit la evenimente discrete – de ex, la o schimbare a modului de funcționare a aplicației, cum ar fi pentru fazele de zbor ale rachetelor balistice.
Alternativ, aceste adaptări pot avea loc în mod continuu, cum ar fi pentru acțiunile ale căror durate operaționale și TUF-uri sunt funcții specifice aplicației, în funcție de momentul în care aceste acțiuni sunt fie eliberate, fie încep să funcționeze. Duratele de funcționare pot crește sau scădea sau ambele și pot fi nemonotone. Acest caz continuu se numește programare în funcție de timp. Programarea în funcție de timp a fost introdusă pentru (dar nu se limitează la) anumite aplicații militare în timp real, cum ar fi sistemele de urmărire radar.
.