EngelsFransSpaans

Ad


OnWorks-favicon

basl2cB - Online in de cloud

Voer basl2cB uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht basl2cB die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


basl2c - converteert een BASL-code (BAtch Scheduling Language) naar een C-plannercode.

KORTE INHOUD


basl2c [-d] [-l lexerDebugFile] [-p parserDebugFile] [-y symtabDebugFile] [-s
semanticDebugFile] [-g codegenDebugFile] [-c cFile] baslFile

PRODUCTBESCHRIJVING


basl2c is de BASL naar C-compiler die een tussencode produceert die in een
reguliere C-compiler, en gekoppeld aan de PBS-bibliotheken om de planner uitvoerbaar te maken.
Basl2c neemt als invoer a baslBestand, een programma geschreven in Batch Scheduling
Taal, met de hoofdplanningscode. Basl2c converteert vervolgens de BASL-constructen
in het bestand in C-instructies, en het voegt ook aanvullende code toe om de PBS te produceren
broncode van de planner. Standaard wordt de resulterende C-code in het bestand geschreven
pbs_sched.c.

De volledige padnaam naar het resulterende C-bestand moet worden opgegeven in het SCHD_CODE
variabele in local.mk voordat de BASL-planner wordt gecompileerd om de pbs_sched
uitvoerbaar.

OPTIES


-d Drukt aanvullende foutopsporingsberichten af ​​naar de lexer (zie -l optie), parser (zie -p
optie), symbooltabel (zie -y optie), semantische analysator (zie -s optie) en code
generator (zie -g optie).

-l lexerDebugFile
lexerDebugFile is de naam van een bestand dat in de gegenereerde foutopsporingsberichten moet worden geschreven
tijdens het scannen naar tokens.

-p parserDebugFile
parserDebugFile is de naam van een bestand dat in de gegenereerde foutopsporingsberichten moet worden geschreven
terwijl je tokens op een bruikbare manier samenstelt.

-ysymtabDebugFile
symtabDebugFile is de naam van een bestand dat in de bijbehorende foutopsporingsberichten moet worden geschreven
de symbolentabel.

-s semantischDebugFile
semantischDebugFile is de naam van een bestand dat in de foutopsporingsberichten moet worden geschreven
gegenereerd tijdens het controleren of variabelen en operatoren worden gebruikt in a
consistente manier.

-g codegenDebugFile
codegenDebugFile is de naam van een bestand dat in de gegenereerde foutopsporingsberichten moet worden geschreven
tijdens het converteren van BASL-instructies naar C-instructies.

-c cBestand
cBestand is de naam van een bestand waarin de gegenereerde C-code wordt geschreven.

MAIN STRUCTUUR


De basisstructuur van een plannercode geschreven in BASL is als volgt:
nul or meer FUNCTIES definities
nul or meer globaal VARIABELE VERKLARINGEN
nul or meer toewijzing verklaringen (naar initialiseren globaal variabelen)
schema_main()
{
een or meer VARIABELE VERKLARINGEN

nul or meer STATEN
}

Bijvoorbeeld
% hoe sched.basl
Int som(Int a, Int b)
{
Int s;
s = a + b;
geeft terug);
}
Int klodder;
schema_main()
{
Int c;

a = 3;
b = 4;
c = som(een, B);
afdrukken(c);
glob = 5;
afdrukken(bol);
}

schema_main() is de functie die wordt aangeroepen bij elke planningsiteratie.

FUNCTIES


Om een ​​functie te definiëren die in volgende functies kan worden aangeroepen, is de syntaxis:

Retourtype functienaam ( GEGEVENSTYPE1 IDENTIFICATIE1,
GEGEVENSTYPE2 IDENTIFICATIE2, ... )
{
een or meer VARIABELE VERKLARINGEN

nul or meer STATEN
}

Bijvoorbeeld
Leegte printStuff(Dagvandeweek dow, Datum Tijd t, Draad str,
Maat zz, C-knooppunt cn)
{
afdrukken(duw);
afdrukken(t);
afdrukken(str);
afdrukken(grootte);
afdrukken(cn);
}

Geldige functie Retourtype zijn: Void, Int, Float, Dayofweek, DateTime, String, Size,
Server, wachtrij, taak, CNode, server instellen, wachtrij instellen, taak instellen, CNode instellen.

Geldige gegevenstypen ( GEGEVENSTYPE1, GEGEVENSTYPE2, ... ) voor de parameter-ID's zijn: Int,
Float, Dayofweek, DateTime, String, Size, Server, Que, Job, CNode, Server instellen, Que instellen,
Taak instellen, CNode instellen, bereik Int, bereik zwevend, bereik Dayofweek, bereik DateTime, bereikgrootte,
Fun Int, Fun Float, Fun Void, Fun Dayofweek, Fun DateTime, Fun String, Fun Size, Fun
Server, Leuke wachtrij, Leuke taak, Leuke CNode, Leuke set Server, Leuke set wachtrij, Leuke set taak, Leuke set
C-knooppunt. Deze gegevenstypen worden in het volgende onderwerp besproken.

Functies worden aangeroepen met hun naam en hun argumenten, zoals in:

afdrukkenStuff( MA, (5|1|1997@14:32:00), "gepland begint",
30 GB, knooppunt );

basl2c zal feitelijk een voorvoegsel "basl_" toevoegen aan de functienaam die door de planner wordt gegeven
writer om de kans op naamconflicten te minimaliseren, die kan ontstaan ​​wanneer de resulterende C-code is
gekoppeld aan de PBS- en BASL-bibliotheken. Als je bijvoorbeeld kijkt naar de gegenereerde C-code voor
afdrukkenStuff, je zult zien,

basl_printStuff( MON, (5|1|1997@14:32:00),
"sched begint", 30gb, knooppunt);

Net als in C moeten alle functieaanroepen vooraf zijn gedefinieerd. De BASL-compiler zal dat wel doen
controleer of de argumenten in de functieaanroep exact overeenkomen (in termen van
typen) met de parameters in de functiedefinitie.

Er bestaan ​​twee soorten functies in BASL: door de gebruiker gedefinieerde functies en vooraf gedefinieerde functies.
Door de gebruiker gedefinieerde functies zijn functies waarvoor de plannerschrijver een definitie heeft gegeven,
terwijl vooraf gedefinieerde functies functies zijn die onmiddellijk kunnen worden aangeroepen zonder dat dit nodig is
het definiëren. Voor een lijst met vooraf gedefinieerde functies, zie paragraaf over VOORGEDEFINIEERD FUNCTIES .

VARIABELE VERKLARINGEN


Net als in C moeten alle variabelen in een BASL-code vóór gebruik expliciet worden gedeclareerd. Die
variabelen die buiten een functie worden gedeclareerd, worden globale variabelen genoemd, while
variabelen die binnen een functiebody worden gedeclareerd, worden lokale variabelen genoemd. Globaal
variabelen zijn overal binnen de BASL-code bruikbaar, terwijl lokale variabelen leesbaar zijn
alleen binnen de functie van waaruit ze zijn gedeclareerd.

De syntaxis van een variabelendeclaratie is:

DATA TYPE IDENTIFICATIE ;

WAAR DATA TYPE kan zijn: Int, Float, Dayofweek, DateTime, String, Size, Server, Que, Job,
CNode, Server instellen, Wachtrij instellen, Taak instellen, CNode instellen, Bereik Int, Bereik zwevend, Bereik Dag van de week,
Bereik DateTime, bereikgrootte.

GEGEVENS TYPE


Leegte gebruikt voor functies die geen waarde retourneren.

Int ondertekend, hele getallen gegeven in grondtal 10.

Voorbeeldconstanten:
5, +1, -3, SUCCES (=1), FOUT (=0), WAAR (=1), ONWAAR (=0)

Vlotter reële getallen die in de vertaalde C-code als dubbels worden weergegeven.
Monsterconstanten: 4.3, +1.2, -2.6

Dag van de week
constante waarden: SUN, MON, TUE, WED, THU, FRI, SAT, intern weergegeven als
constanten met gehele getallen, waarbij SUN=0, MON=1, enzovoort.

Datum Tijd
specificeer in een van de 3 formaten:

[1] (m|d|y) waarbij 1 <= m <= 12, 1 <= d <= 31, 0 <= y, bijv. (4|4|1997);

[2] (uu:mm:ss) waarbij 0 <= uu <= 23, 0 <= mm <= 59, 0 <= ss <= 61, bijv.
(12:01:00);

[3] (m|d|y@hh:mm:ss), ex. (4|4|1997@12:01:00)
Tijdens het vergelijken van datums/tijden wordt 'nu'-tijd vervangen door de tijd
gedeelte wordt niet gegeven (formaat [1]); de "nu"-datum wordt vervangen als de
datumgedeelte wordt niet gegeven (formaat [2]). Ook het volledige jaardeel moet
worden vermeld (dwz 1997 in plaats van 97) in data om dubbelzinnigheid te voorkomen.

Draad Een string staat tussen aanhalingstekens (") en kan alles bevatten, behalve een andere
aanhalingstekens, een nieuwe regel en haakjes links en rechts.
Voorbeeldconstanten: "een voorbeeldreeks", NULLSTR

Maat formaat: waarbij het achtervoegsel een vermenigvuldiger is van de vorm:
:

vermenigvuldiger eenheid (bytes or woorden)
=================== =====================
k,m,g,t,p,K,M,G,T,P b,B,w,W

waarbij k=K=1024, m=M=1,048,576, g=G=1,073,741,824, t=T=1,099,511,627,776,
p=P=1,125,899,906,842,624, b=B=1, en de woordgrootte w=W is lokaal gedefinieerd (dwz 4
bytes in een 32-bits machine).

Bij het werken met operanden van twee groottes met verschillende achtervoegsels, wordt het achtervoegsel van
de "lagere" van de twee zal het resulterende achtervoegsel zijn. Bijvoorbeeld,
10mb + 10gb = 10250mb
Voorbeeldconstanten: -1b, 2w, 1kb, 2mw, +3gb, 4tw, 6Pb

RANGE Int

formaat: (lage Int-waarde, hoge Int-waarde)
waarbij lage Int-waarde <= hoge Int-waarde. Steekproefconstante: (1,3)

RANGE Vlotter

formaat: (lage Float-waarde, hoge Float-waarde)
waarbij lage waarde <= hoge waarde. Monsterconstante: (2.3, 4.6)

RANGE Dag van de week

formaat: (vroegere dag, latere dag)
waarbij eerdere dag <= latere dag. Steekproefconstante: (WO, VRI)

RANGE Datum Tijd

formaat: (eerdere datum/tijd, latere datum/tijd)
waarbij eerdere datum/tijd <= latere datum/tijd.
OPMERKING: als het bereik alleen tijdgedeelten bevat en eerdere tijd "verschijnt".
wees > latere tijd zoals in "((18:0:0), (6:0:0))", en vervolgens tijdens datum/tijd
vergelijkingen wordt de "latere" tijd met één dag aangepast, zodat dit wel het geval is
ziet eruit als: "( ( @18:0:0), ( @6:0:0) )"

Voorbeeldconstanten:
((4|4|1997), (4|10|1997)), ((12:01:00), (12:30:00)), ((4|4|1997@12:01:00),
(4|10|1997@12:30:00))

RANGE Maat

formaat: (klein formaat, hoog formaat)
waarbij lage maat <= hoge maat. Voorbeeldconstanten: (23 GB, 50 GB)

server Wordt rechtstreeks toegewezen aan het PBS-serverobject. A server beheert er één of meerdere Dat voorwerpen.
Monsterconstante: NOSERVER

C-knooppunt voor een rekenknooppunt dat bestaat uit een enkele OS-image, een gedeeld geheugen en een set
van cpu. CNode voert 1 PBS MOM uit.
Monsterconstante: NOCNODE

Dat Wordt rechtstreeks toegewezen aan het PBS-wachtrijobject. A Dat object spoelt een of meer Jobomschrijving:
voorwerpen.
Monsterconstante: NOQUE

Jobomschrijving: Wordt rechtstreeks gekoppeld aan het PBS-taakobject. A Jobomschrijving: object heeft enkele attributen en
benodigde bronnen.
Steekproefconstante: NOJOB

Zet de server
lijst met serverobjecten.
Voorbeeldconstante: EMPTYSETSERVER

Zet de C-knooppunt
lijst met CNode-objecten.
Voorbeeldconstante: EMPTYSETCNODE

Zet de Dat lijst met Que-objecten.
Monsterconstante: EMPTYSETQUE

Zet de Jobomschrijving: lijst met taakobjecten.
Voorbeeldconstante: EMPTYSETJOB

BASL-GEDEFINIEERD CONSTANTEN


Dit zijn constanten die niet kunnen worden gebruikt voor het benoemen van een ID (zie het volgende onderwerp). Deze
staan ​​altijd in hoofdletters.

GEGEVENS TYPE BASL-GEDEFINIEERD CONSTANTE
=================== =============================================
Dag van de week ZON, MA, DIN, WO, DO, VRIJ, ZA

Int SUCCES, MISLUKKING, ONWAAR, WAAR, SYNCRUN, ASYNCRUN,
VERWIJDEREN, OPNIEUW, UITSTEL, UITGAVE, SIGNAAL,
WIJZIGATTR, WIJZIGT, SERVER_ACTIEF,
SERVER_IDLE, SERVER_SCHED, SERVER_TERM,
SERVER_TERMDELAY, QTYPE_E, QTYPE_R,
SCHED_DISABLED, SCHED_ENABLED, DOORVOER,
IN DE WACHTRIJ, GEHOUDEN, AAN HET WACHTEN, RENNEN, VERLATEN,
CNODE_OFFLINE, CNODE_DOWN, CNODE_FREE,
CNODE_RESERVE, CNODE_INUSE_EXCLUSIVE,
CNODE_INUSE_SHARED, CNODE_TIMESHARED,
CNODE_CLUSTER, CNODE_UNKNOWN, OP_EQ, OP_NEQ,
OP_LE, OP_LT, OP_GE, OP_GT, OP_MAX, OP_MIN,
ASC, DESC

server NOSERVER
Zet de server LEGESETSERVER

C-knooppunt NOCNODE
Zet de C-knooppunt LEGESETCNODE

Dat NOQUE
Zet de Dat LEGE SETQUE

Jobomschrijving: GEEN BAAN
Zet de Jobomschrijving: LEGE SETJOB

Draad NULLSTR

IDENTIFICATIE


Identificatiegegevens (gebruikt voor namen van variabelen en functienamen) hebben een alfanumeriek formaat, met
het speciale onderstrepingsteken (_) is toegestaan. Momenteel kan BASL alleen identificatiegegevens verwerken
met een lengte tot 80 tekens. Ook kunt u de door BASL gedefinieerde constantenamen niet gebruiken voor
het benoemen van een identificatie.

STATEN


In BASL(2), kunt u een enkele instructie laten eindigen met een puntkomma, of een groep daarvan
verklaringen (ook wel samengestelde verklaring of blok genoemd) gescheiden door '{' en '}'. Het verschil
soorten uitspraken die in een BASL-code kunnen voorkomen zijn:

1. expressieverklaring
Expressie-instructies hebben de volgende vorm:

uitdrukken ;

WAAR uitdrukken kan zijn:

a) Rekenkundige uitdrukkingen

lexpr + heruitgave (toevoegen)
lexpr - heruitgave (aftrekken)
lexpr * heruitgave (vermenigvuldigen)
lexpr / heruitgave (verdeling)
lexpr % heruitgave (module or rest)

OPMERKING: Optellen, aftrekken, vermenigvuldigen, delen en resteren
is alleen toegestaan ​​voor de juiste typen en als links en rechts
expressies zijn van consistente typen. Onderstaande tabel illustreert wat
typen zijn consistent tussen de verschillende operators:

Voor +:

lexpr heruitgave
============ ============
Int or Vlotter Int or Vlotter
Maat Maat
Draad Draad

Voor -, *, /:

lexpr heruitgave
============ ============
Int or Vlotter Int or Vlotter
Maat Maat

Voor %:

lexpr heruitgave
============ ============
Int or Vlotter Int or Vlotter

Hier volgen enkele voorbeelden van uitspraken over rekenkundige uitdrukkingen:
Int i1;
Int i2;
Vlotter f1;
Vlotter f2;
Maat sz1;
Maat sz2;
Draad str1;
Draad str2;

i1 + i2;
f1 - i2;
sz1 * sz2 * 2b;
sz1 / 1024b;

str1 = "basl";
str2 = " koel";

// de volgend is a snaar aaneenschakeling
// operatie verkregen in de draad:
// "basl koel"
str1 + str2;

i1 % 10;

b) Unaire uitdrukkingen

+ expr // positief - vermenigvuldigt by 1 an
// uitdrukking dat is
// of Int, Vlot, or
// Maat type dan:

-uitdr // negatief - vermenigvuldigt by -1 an
// uitdrukking dat is
// of Int, Vlot, or
// Maat type dan:

! expr // niet - bekeerlingen a niet nul uitdrukken
// waarde in 0, en a
// nul uitdrukken waarde in 1
// WAAR uitdrukken type dan: Dan moet je be
// of type dan: Int or Vlotter

Enkele voorbeelden van unaire expressies:
Int i;

+ 3;
-(i + 4);
!i;

c) Logische uitdrukkingen

lexpr EQ heruitgave
lexpr NEQ heruitgave
lexpr LT heruitgave
lexpr LE heruitgave
lexpr GT heruitgave
lexpr GE heruitgave
lexpr EN heruitgave
lexpr OR heruitgave

lexpr en heruitgave moeten typen hebben die onderling consistent zijn, zoals weergegeven
in de volgende tabel:

lterminal-uitdr rterminal-uitdr
============== ==============
Int or Vlotter Int or Vlotter
Dag van de week Dag van de week
Datum Tijd Datum Tijd
Draad Draad
Maat Maat
server server
Dat Dat
Jobomschrijving: Jobomschrijving:
C-knooppunt C-knooppunt
Zet de server Zet de server
Zet de Dat Zet de Dat
Zet de Jobomschrijving: Zet de Jobomschrijving:
Zet de C-knooppunt Zet de C-knooppunt

Voor EN, OR exploitanten, de lexpr, heruitgave consistente typen zijn Int of
Vlot.

Enkele voorbeelden van logische expressies:

i1 EQ i2;
i1 NEQ f2;
dow1 LE dow2;
d1 LT d2;
str1 GT str2;
sz1 GE sz2;

d) Expressies na de operator
Dit zijn uitdrukkingen die slechts een snelkoppeling naar een toewijzing zijn
statements.

IDENTIFICATIE++; // identificator=identificatie+1
IDENTIFICATIE--; // identifier=identificatie-1

IDENTIFICATIE moet van het type Int of Float zijn.

Voorbeeld:
Int i;
Vlotter f;

i ++;
F--;

e) Functie oproep

functienaam ( arg1 ,arg2 ... , argN )

WAAR arg1, ..., argN kan elke constante of variabele zijn. Dat kun je niet hebben
een andere functieaanroep als argument.
Voorbeeld:
Leegte afdrukken a) {
afdrukken(a);
}

pr(5);

Er zijn bepaalde vooraf gedefinieerde functies die een plannerschrijver kan gebruiken
roept automatisch zijn/haar BASL-code in zonder dat deze hoeft te worden gedefinieerd.
Deze functies worden hulpfuncties (of helper) genoemd
functies) en ze worden besproken onder VOORGEDEFINIEERD FUNCTIES topic.

f) Constanten
Enkele geldige constante-uitdrukkingen worden hieronder gegeven:
5;
+ 1.2;
ZON;
MAAND;
DI;
WO;
DO;
VR;
ZA;
(4|4|1997);
(12:01:00);
(4|4|1997@12:01:00);
"prachtig";
-1b;
SYNCRUN;
ASYNCRUN;
VERWIJDEREN;
HERHALING;
UITSTEL;
UITGAVE;
SIGNAAL;
WIJZIGATTR;
WIJZIGT;
(1, 3);
(2.3, 4.6);
(WO, VR);
((4|4|1997), (4|10|1997));
((12:01:00), (12:30:00));
((4|4|1997@12:01:00), (4|10|1997@12:30:00));
(23 GB, 50 GB);
NOSERVER;
NOCNODE;
NOQUE;
GEEN BAAN;
LEGESETSERVER;
LEGESETCNODE;
LEGE SETQUE;
LEGESETJOB;
NULLSTR;
SUCCES;
MISLUKKING;
SERVER_ACTIEF;
SERVER_IDLE;
SERVER_SCHED;
SERVER_TERM;
SERVER_TERMDELAY;
QTYPE_E;
QTYPE_R;
SCHED_DISABLED;
SCHED_ENABLED;
ONWAAR;
WAAR;
DOORVOER;
IN WACHTRIJ;
GEHOUDEN;
AAN HET WACHTEN;
RENNEN;
VERLATEN;
CNODE_OFFLINE;
CNODE_DOWN;
CNODE_FREE;
CNODE_RESERVE;
CNODE_INUSE_EXCLUSIVE;
CNODE_INUSE_SHARED;
CNODE_TIMESHARED;
CNODE_CLUSTER;
CNODE_UNKNOWN;
OP_EQ;
OP_NEQ;
OP_LE;
OP_LT;
OP_GE;
OP_GT;
OP_MAX;
OP_MIN;

g) Identificatie

Voorbeeld:
Int ik;

i;

2. Opdrachtverklaring

IDENTIFICATIE = uitdrukken ;

IDENTIFICATIE en uitdrukken moeten typen hebben die onderling consistent zijn
geïllustreerd in de volgende tabel:

identificatie uitdrukken
=============== ===============
Int Int, Vlotter
Vlotter Int, Vlotter
Dag van de week Dag van de week
Datum Tijd Datum Tijd
Draad Draad
Maat Maat
Dat Dat
Jobomschrijving: Jobomschrijving:
C-knooppunt C-knooppunt
server server
Dag van de week Dag van de week
Datum Tijd Datum Tijd
Zet de server Zet de server
Zet de Dat Zet de Dat
Zet de Jobomschrijving: Zet de Jobomschrijving:
Zet de C-knooppunt Zet de C-knooppunt
RANGE Int RANGE Int
RANGE Vlotter RANGE Vlotter
RANGE Dag van de week RANGE Dag van de week
RANGE Datum Tijd RANGE Datum Tijd
RANGE Maat RANGE Maat

3. als...anders verklaring
Het formaat van een if-instructie is vergelijkbaar met dat in C, met de begrenzing
"{" en "}" altijd aanwezig:

als( uitdrukken ) {
nul or meer (True) STATEN
}

als( uitdrukken ) {
nul or meer (True) STATEN
} anders {
nul or meer (vals) STATEN
}

De uitdrukken 's type moet Int of Float zijn, en na evaluatie of dit het geval is
waarde niet nul is, worden de ware instructies uitgevoerd. Op de seconde
vorm, als de uitdrukken evalueert naar nul, waarna de valse uitspraken worden uitgevoerd.

Een voorbeeld if verklaringen vindt u hieronder:

if (2 * x )
{
y = y + 3;
afdrukken(y);
}

if (2 * x ) {
y = y + 3;
} anders {
als( 3 * x ) {
y = 4;
} anders {
y = 5;
}
}

4. For lus verklaring
Het formaat van een for-instructie is als volgt:

voor( begin; test; actie ) {
nul or meer STATEN
}

Net als in C, For voert eerst uit begin , evalueert vervolgens de proef voorwaarde
om te zien of er een waarde wordt geretourneerd die niet nul is. Als dit het geval is, zal de For uitspraken zijn
uitgevoerd. Na de For uitspraken worden dan uitgevoerd actie wordt geëvalueerd,
en dan controleert hij de proef opnieuw op dezelfde manier als voorheen.
begin en actie kan een eenvoudige toewijzingsexpressie of een post-operator zijn
expressie. proef is een logische/relationele uitdrukking. Een voorbeeld voor
verklaringen worden als volgt gegeven:

For (i = 0; i LT 3 ; i = i + 1)
{
afdrukken(ik);
}

For (i = 0; i LT 2 * x; ik++)
{
if (x GT 3)
{
y = 99;
} anders
{
x = 73;
}
}

5. foreach lus verklaring
Deze verklaring wordt voornamelijk gebruikt voor het achtereenvolgens ophalen van elk element van
a Gegevenstype instellen: Server instellen, CNode instellen, Taak instellen, Wachtrij instellen. De syntaxis is:

foreach ( IDENTIFICATIE1 in IDENTIFICATIE2 ) {
nul or meer STATEN
}

waarbij de volgende combinaties van typen voor de identificatiegegevens zijn toegestaan:

IDENTIFICATIE1 IDENTIFICATIE2
=========== ===========
server Zet de server
Dat Zet de Dat
Jobomschrijving: Zet de Jobomschrijving:
C-knooppunt Zet de C-knooppunt

Voorbeeld:
server s;
Dat q;
Jobomschrijving: j;
C-knooppunt c;

Zet de server ss;
Zet de Dat vierkante;
Zet de Jobomschrijving: sj;
Zet de C-knooppunt sc;

voorelk(en in ss){
afdrukken(en);
}
foreach (q in vierkante){
afdrukken(q);
}
foreach(j in sj){
afdrukken(j);
}
voorelk (c in sc){
afdrukken(c);
}

6. en lus verklaring
De syntaxis van een while-lus is:

en ( uitdrukken ) {
nul or meer STATEN
}

WAAR uitdrukken moet van het type Int of Float zijn. Als uitdrukken niet nul is, dan de nul
of meer STATEN worden geëxecuteerd en uitdrukken wordt opnieuw geëvalueerd.

Voorbeeld:
Int i;
i = 3;
terwijl ik) {
als( i EQ 0 ) {
print("breek on i = 1");
te breken;
}
i--;
}

7. schakelaar verklaring
De switch-instructie is een meervoudige beslissing die test of een
De waarde van de identifier komt overeen met een van een aantal waarden en vertakt zich naar a
groep uitspraken dienovereenkomstig.
De syntaxis voor een switch-instructie is:

schakelaar ( IDENTIFICATIE ) {
geval constante-expr :
{
nul or meer STATEN
}
geval constante-expr :
{
nul or meer STATEN
}
...
geval in constant-bereikOrSet-expr :
{
nul or meer STATEN
}
geval in IDENTIFIER-bereikOrSettype :
{
nul or meer STATEN
}
verzuim :
{
nul or meer STATEN
}
}

WAAR constante-expr is een uitdrukken van het type Int, Float, Dayofweek, DateTime,
Grootte, Tekenreeks, Server, Wachtrij, Taak of CNode. constant-bereikOrSet-expr en
IDENTIFIER-bereikOrSettype kan van het type Set Server, Set CNode, Set Que, Set zijn
Taak, Bereik Int, Bereik zwevend, Bereik Dag van de week, Bereik DatumTijd of Bereikgrootte.

IDENTIFICATIE kan niet van het type Leegte zijn. IDENTIFICATIE 's type moet consistent zijn
Met constante-expr 'S, constant-bereikOrSet-expr 'S, en IDENTIFICATIE-
bereikOfSettype 's type zoals geïllustreerd in de volgende tabel:
IDENTIFICATIE constant bereik-expr, IDENTIFIER-bereiktype
=========== =========================================
server Zet de server
Dat Zet de Dat
Jobomschrijving: Zet de Jobomschrijving:
C-knooppunt Zet de C-knooppunt
Int RANGE Int
Vlotter RANGE Vlotter
Dag van de week RANGE Dag van de week
Datum Tijd RANGE Datum Tijd
Maat RANGE Maat

Als een case-expressie overeenkomt met de IDENTIFICATIE 's waarde, en vervolgens de overeenkomstige
blok met instructies wordt uitgevoerd. Anders dan in C valt de uitvoering NIET
door naar de volgende casusverklaring. De reden hiervoor is dat basl2c wil
vertaal dit schakelaar statement in if-elseif-else constructie. De zaak
met het label standaard wordt uitgevoerd als aan geen van de andere gevallen is voldaan. De
verzuim is optioneel; als het er niet is, en als geen van de gevallen overeenkomt, nee
actie plaatsvindt.

Voorbeeld:
Dag van de week dom;

schakelaar(dow)
{
geval MON:
{
afdrukken("geval MA");
}
geval TUE:
{
afdrukken("geval DIN");
}
geval Wo:
{
afdrukken("geval WO");
}
geval DO:
{
afdrukken("geval DO");
}
geval VR:
{
afdrukken("geval VR");
}
geval ZA:
{
afdrukken("geval ZA");
}
geval ZON:
{
afdrukken("geval ZON");
}
default:
{
afdrukken("geval in gebreke gebleven");
}
}

Int a;
RANGE Int Ri;
ri = (10, 12);
schakelaar(a)
{
geval in (1,5):
{
afdrukken("geval 1,5");
}
geval in (6,9):
{
afdrukken("geval 6,9");
}
geval in Ri:
{
afdrukken("geval ri");
}
}

8. print verklaring
De Print-instructie kan worden afgedrukt om de waarde van elk ervan te overtreffen identificatie
or constante van het type Int, Float, Dayofweek, DateTime, String, Size, Que, Job,
CNode, Server, Bereik Int, Bereik Float, Bereik Dagvandeweek, Bereik DatumTijd,
Bereikgrootte.
De syntaxis is als volgt:

print ( IDENTIFICATIE );
print ( constante );

Voorbeeld:
Datum Tijd dt;
C-knooppunt cn;

dt = (4|4|1997@12:13:36);
cn = AllNodesLocalHostGet();

afdrukken(dt);
afdrukken(cn);

Gebruik voor Set-typen foreach om elk element te doorlopen en af ​​te drukken zoals in:

server s;
Zet de server ss;

ss = AllServersGet();

voorelk(en in ss) {
afdrukken(en);
}

9. vervolg verklaring

voortzetten ;

De voortzetten verklaring moet zijn ingeroepen binnen a voor, voor, en
en lus. Het zorgt ervoor dat de volgende iteratie van de omsluitende lus begint.

10. break-verklaring

breken ;

De breken verklaring moet zijn ingeroepen binnen a voor, voor, en en
lus. Het biedt een vroege uitgang uit de omringende lus.

11. retourverklaring

retour(IDENTIFICATIE) ;
retour (constant) ;
opbrengst() ;

De return-instructie geeft de waarde (indien aanwezig) die moet worden geretourneerd door a
functie. Het type dat wordt geretourneerd door IDENTIFICATIE en constante moet overeenkomen met de
het retourtype van de aanroepende functie. constante toegestane typen zijn allesbehalve
Set- en bereiktypen. Het laatste formaat, opbrengst() wordt meestal binnen a genoemd
functie die geen enkele waarde retourneert (zoals schema_main() ).

12. exit-verklaring

uitgang(constante);

WAAR constante is van het type Int. Als u dit aanroept, wordt de planner beëindigd.

13. Commentaarverklaring
Dit zijn uitspraken voorafgegaan door "//" en worden door de BASL genegeerd
compiler.

// dit lijn is genegeerd
Int i; // snaar volgend de schuine strepen is genegeerd

ONDERNEMER VOORRANG EN ASSOCIATIVITEIT


De volgende tabel toont de verschillende niveaus van operatorprioriteit en associativiteit die zijn gedefinieerd
in de BASL-taal. De operatoren worden weergegeven in volgorde van afnemende prioriteit. De
Hoe hoger de prioriteit van een operator, hoe eerder deze wordt uitgevoerd. De volgorde waarin de
operatoren op hetzelfde niveau worden uitgevoerd, hangt af van de associativiteit: links betekent de
operators worden van links naar rechts gezien, terwijl rechts betekent dat ze van rechts naar links worden gezien.

Operator Associativiteit
======================================= =============
! ++ -- + (unair plus) - (unair minus) rechts
* / % links
+ - links
LT LE GT GE links
EQ NEQ links
EN links
OR links
= rechts

VOORGEDEFINIEERD FUNCTIES


In BASL(2), een server gegevenstype wordt rechtstreeks toegewezen aan een batchserverobject. Op dezelfde manier, C-knooppunt
is voor moeder/resmoeder, Jobomschrijving: is een batchtaak, en Dat is een batchwachtrij. Echter niet allemaal
attributen van de PBS-objecten zijn toegankelijk vanuit BASL. Slechts een subset van attributen,
degenen die zinvol leken in de context van een planner, worden beschikbaar gemaakt, en
waarden voor deze attributen zijn toegankelijk door de volgende vooraf gedefinieerde functies aan te roepen:
ook wel assist/helper-functies genoemd.

(1) Servergerelateerde functies

Zet de server AllServersGet(ongeldig)
Retourneert de lijst met servers die zijn opgegeven in het configuratiebestand voor
waarop de planner-schrijver wil dat het systeem periodiek controleert
status, wachtrijen en taakinformatie. Zien pbs__gepland__basl(8 miljard) voor een
discussie over het formaat van het configuratiebestand.
LET OP: Deze functie moet van binnenuit worden aangeroepen schema_main() so
dat bij elke planningsiteratie het meest up-to-date is Zet de server
structuur wordt teruggegeven.

server AllServersLocalHostGet(ongeldig)
Retourneert het Server-object dat de lokale host vertegenwoordigt. niet-ingestelde waarde:
NOSERVER. Dit is een eenvoudige functie die kan worden aangeroepen voor niet-clusteromgevingen
waar slechts één serverhost bestaat.
LET OP: Deze functie moet van binnenuit worden aangeroepen schema_main() (of van
binnen de functie aangeroepen door sched_main) zodat bij elke planning
iteratie, de meest up-to-date server structuur wordt teruggegeven.

Draad ServerInetAddrGet(Server s)
Retourneert de naam voor server-s. niet-ingestelde waarde: NULLSTR

Draad ServerDefQueGet(Server s)
Retourneert het kenmerk default_queue van Server s. niet-ingestelde waarde: NULLSTR

Int ServerStateGet(Server s)
Retourneert het server_state attribuut van Server s.

Winstwaarde:
SERVER_ACTIVE, SERVER_IDLE, SERVER_SCHED, SERVER_TERM,
SERVER_TERMDELAY, -1 (niet-ingestelde waarde)

Int ServerMaxRunJobsGet(Server s)
Retourneert het max_running-kenmerk van Server s. uitschakelwaarde: 0

Int ServerMaxRunJobsPerUserGet(Server s)
Retourneert het kenmerk max_user_run van Server s. uitschakelwaarde: 0

Int ServerMaxRunJobsPerGroupGet(Server s)
Retourneert het kenmerk max_group_run van Server s. uitschakelwaarde: 0

Zet de Dat ServerQueuesGet(Server s)
Retourneert een lijst met wachtrijen die worden beheerd door Server s.

Zet de Jobomschrijving: ServerJobsGet(Server s)
Retourneert een lijst met taken die worden beheerd door Servers. Voor het verkrijgen van een subset hiervan
lijst, zie QueJobsGet().

Int ServerIntResAvailGet(Server s, Draad naam)
Retourneert de waarde naar de resource die is opgegeven in naam die beschikbaar is voor banen
beheerd door deze server (Server bronnen_beschikbaar.naam attribuut). Bel dit
functie voor bronnen met waarden van het type Int. Voorbeeldbron
namen zijn: cput, pcput, walltime, mppt, pmppt, nice, procs, mppe, ncpus,
pncpus, nodect, srfs_assist, mta,..., mth. Voor een beschrijving hiervan
resourcenamen, zie pbs_resources_irix5(7B), pbs_resources_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_server_attributen(7B), pbs_resources_irix6(7B),
pbs_resources_linux(7B).

Voorbeeld:
Int cpuBeschikbaar;
// terugkeer de # of cpu's momenteel Beschikbaar in
// de server
cpuBeschikbaar = ServerIntResAvailGet(server, "ncpus");

Maat ServerSizeResAvailGet(Server s, Draad naam)
Retourneert de waarde naar de resource die is opgegeven in naam die beschikbaar is voor banen
beheerd door deze server (Server bronnen_beschikbaar.naam attribuut). Bel dit
functie voor resources met waarden van het type Grootte. Voorbeeldbron
namen zijn: bestand, mem, pmem, werkset, pf, ppf, srfs_tmp, srfs_wrk,
srfs_big, srfs_fast, sds, psds. Voor een beschrijving van deze bronnen
namen, zie pbs_resources_irix5(7B), pbs_resources_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_server_attributen(7B), pbs_resources_irix6(7B),
pbs_resources_linux(7B).

Voorbeeld:
Maat memAvail;
// terugkeer de bedragen of Beschikbaar geheugen in
// de server
memBeschikbaar = ServerSizeResAvailGet(server, "me");

Draad ServerStringResAvailGet(Server s, Draad naam)
Retourneert de waarde naar de resource die is opgegeven in naam die beschikbaar is voor banen
beheerd door deze server (Server bronnen_beschikbaar.naam attribuut). Bel dit
functie voor bronnen met waarden van het type String. Steekproef
resourcenamen zijn: knooppunten, boog, neednodes. Voor een beschrijving hiervan
resourcenamen, zie pbs_resources_irix5(7B), pbs_resources_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_server_attributen(7B), pbs_resources_irix6(7B),
pbs_resources_linux(7B).

Voorbeeld:
Draad type;
// terugkeer de architectuur (of os type) of
// de server
type dan: = ServerStringResAvailGet(server, "boog");

Int ServerIntResAssignGet(Server s, Draad naam)
Retourneert de waarde naar de resource die is opgegeven in naam waaraan wordt toegewezen
lopende taken (Server resources_toegewezen.naam attribuut). Bel dit
functie voor bronnen met waarden van het type Int. Voorbeeldbron
namen zijn: cput, pcput, walltime, mppt, pmppt, nice, procs, mppe, ncpus,
pncpus, nodect, srfs_assist, mta,..., mth. Voor een beschrijving hiervan
resourcenamen, zie pbs_resources_irix5(7B), pbs_resources_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_server_attributen(7B), pbs_resources_irix6(7B),
pbs_resources_linux(7B).

Voorbeeld:
Int cpuAssn;
// terugkeer de # of cpu's momenteel toegewezen in
// de server
cpuAssn = ServerIntResAssignGet(server, "ncpus");

Maat ServerSizeResAssignGet(Server s, Draad naam)
Retourneert de waarde naar de resource die is opgegeven in naam waaraan wordt toegewezen
lopende taken (Server resources_toegewezen.naam attribuut). Bel dit
functie voor resources met waarden van het type Grootte. Voorbeeldbron
namen zijn: bestand, mem, pmem, werkset, pf, ppf, srfs_tmp, srfs_wrk,
srfs_big, srfs_fast, sds, psds. Voor een beschrijving van deze bronnen
namen, zie pbs_resources_irix5(7B), pbs_resources_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_server_attributen(7B), pbs_resources_irix6(7B),
pbs_resources_linux(7B).

Voorbeeld:
Maat sdsAssn;
// terugkeer de bedragen of sds ruimte momenteel toegewezen
// in de server
sdsAssn = ServerSizeResAssignGet(server, "sds");

Draad ServerStringResAssignGet(Server s, Draad naam)
Retourneert de waarde naar de resource die is opgegeven in naam waaraan wordt toegewezen
lopende taken (Server resources_toegewezen.naam attribuut). Bel dit
functie voor bronnen met waarden van het type String. Steekproef
resourcenamen zijn: knooppunten, boog, neednodes. Voor een beschrijving hiervan
resourcenamen, zie pbs_resources_irix5(7B), pbs_resources_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_server_attributen(7B), pbs_resources_irix6(7B),
pbs_resources_linux(7B).

Zet de C-knooppunt ServerNodesGet(Server s)
Retourneert de set knooppunten die worden beheerd door server-s. niet-ingestelde waarde: EMPTYSETCNODE.
OPMERKING: Normaal gesproken kunt u de volgende functies aanroepen voor de geretourneerde knooppunten
door deze aanroep: CNodeStateGet(), CNodePropertiesGet() en CNodeTypeGet().

Int ServerNodesQuery(Server s, Draad specificaties)
Stuurt een verzoek naar de opgegeven server om de beschikbaarheid op te vragen
middelen gespecificeerd in spec. Op dit moment de enige hulpbron
Toegestane specificatie is er een die betrekking heeft op "knooppunten" en kan van de
formaat "nodes", "nodes=" of "nodes= ". De resultaten van de zoekopdracht kunnen zijn
toegankelijk door de volgende functies aan te roepen: ServerNodesNumAvailGet(),
ServerNodesNumAllocGet(), ServerNodesNumRsvdGet(),
ServerNodesNumDownGet().
OPMERKING: Dit is een verpakking voor de pbs_resquery(3B) serverfunctie.

Winstwaarde:
SUCCES, FOUT

Int ServerNodesNumAvailGet(Server s)
Retourneert het aantal beschikbare knooppunten voor de knooppunten die worden beheerd door de opgegeven
server, of zoals weergegeven door de meest recente zoekopdracht gespecificeerd door
ServerNodesQuery(). Als de retourwaarde nul is, betekent dit dat
een aantal knooppunten die momenteel nodig zijn om aan de specificatie te voldoen
ServerNodesQuery() zijn momenteel niet beschikbaar. Het verzoek is misschien voldaan
op een later tijdstip. Als het resultaat negatief is, is er geen combinatie bekend
knooppunten kunnen aan de specificatie voldoen.

Int ServerNodesNumAllocGet(Server s)
Retourneert het aantal knooppunten dat is toegewezen aan de knooppunten die worden beheerd door de opgegeven knooppunten
server, of zoals weergegeven door de meest recente zoekopdracht gespecificeerd door
ServerNodesQuery().

Int ServerNodesNumRsvdGet(Server s)
Retourneert het aantal knooppunten dat is gereserveerd voor de knooppunten die worden beheerd door de opgegeven knooppunten
server, of zoals weergegeven door de meest recente zoekopdracht gespecificeerd door
ServerNodesQuery().

Int ServerNodesNumDownGet(Server s)
Retourneert het aantal knooppunten dat wordt beheerd door de opgegeven knooppunten
server, of zoals weergegeven door de meest recente zoekopdracht gespecificeerd door
ServerNodesQuery().

Int ServerNodesReserve(Server s, String spec.,Int residu)
Stuurt een verzoek naar de opgegeven server om de bronnen te reserveren
gespecificeerd in spec. Een waarde van 0 voor woonachtig betekent dat dit is voor het doen van a
nieuwe reservering. Anders vertegenwoordigt het nummer een bestaand nummer
(gedeeltelijke) reservering. Momenteel zijn hiervoor middelen gereserveerd woonachtig wil
worden vrijgegeven en de volledige reservering zal opnieuw worden geprobeerd. Bij de
de huidige tijd zijn de enige middelen die kunnen worden gespecificeerd
"knooppunten". Het moet worden gespecificeerd als knooppunten=specificatie WAAR
specificatie is wat een gebruiker opgeeft in de argumentenlijst van de optie -l
voor knooppunten, zie qsub (1B).
OPMERKING: Dit is een verpakking voor de pbs_resreserve(3B) serverfunctie.

Winstwaarde:
een referentienummer voor een succesvolle of gedeeltelijk succesvolle
reservering, of FOUT

Int ServerNodesRelease(Server s, Int residu)
Hierdoor worden de met het referentienummer gereserveerde bronnen vrijgegeven of vrijgegeven
gespecificeerd in woonachtig.
OPMERKING: Dit is een verpakking voor de pbs_rescrelease(3B) serverfunctie.

Winstwaarde:
SUCCES, of FOUT

(2) Que-gerelateerde functies:

Draad QueNaamGet( Dat dat )
Retourneert de naam van Que que. niet-ingestelde waarde: NULLSTR

Int QueTypeGet( Dat dat )
Retourneert het kenmerk wachtrij_type van Que que.
Retourwaarde: QTYPE_E (uitvoering), QTYPE_R (routing), -1 (niet ingesteld
waarde)

Int QueNumJobsGet( Dat dat )
Retourneert het aantal banen in Que que. uitschakelwaarde: 0

Int QueMaxRunJobsGet( Dat dat )
Retourneert het max_running-kenmerk van Que que. uitschakelwaarde: 0

Int QueMaxRunJobsPerGebruikerGet( Dat dat )
Retourneert het kenmerk max_user_run van Que que. uitschakelwaarde: 0

Int QueMaxRunJobsPerGroupGet( Dat dat )
Retourneert het kenmerk max_group_run van Que que. uitschakelwaarde: 0

Int QuePrioriteitGet( Dat dat )
Retourneert het prioriteitskenmerk van Que que. uitschakelwaarde: 0

Int QueStateGet( Dat dat )
Retourneert het gestarte attribuut van Que que - de selectie voor taakuitvoering
status van de wachtrij: SCHED_DISABLED, SCHED_ENABLED. niet-ingestelde waarde:
SCHED_DISABLED

Zet de Jobomschrijving: QueJobsGet( Dat dat )
Retourneert de lijst met taken die zich momenteel in de wachtrij bevinden.

Int QueIntResAvailGet(Que q, Draad naam)
Retourneert de waarde naar de resource die is opgegeven in naam dat is beschikbaar voor
taken die vanaf deze q (Que bronnen_beschikbaar.naam attribuut).
Roep deze functie aan voor resources met waarden van het type Int.
Voorbeelden van resourcenamen zijn: cput, pcput, walltime, mppt, pmppt, nice,
procs, mppe, ncpus, pncpus, nodect, srfs_assist, mta,..., mth. Voor een
beschrijving van deze bronnamen, zie pbs_resources_irix5(7B),
pbs_resources_sp2(7B), pbs_resources_sunos4(7B),
pbs_resources_unicos8(7B), pbs_server_attributen(7B),
pbs_resources_irix6(7B), pbs_resources_linux(7B).

Maat QueSizeResAvailGet(Que q, Draad naam)
Retourneert de waarde naar de resource die is opgegeven in naam dat is beschikbaar voor
taken die vanaf deze q (Que bronnen_beschikbaar.naam attribuut).
Roep deze functie aan voor resources met waarden van het type Grootte.
Voorbeelden van resourcenamen zijn: file, mem, pmem,workingset, pf, ppf,
srfs_tmp, srfs_wrk, srfs_big, srfs_fast, sds, psds. Voor een beschrijving
van deze bronnamen, zie pbs_resources_irix5(7B),
pbs_resources_sp2(7B), pbs_resources_sunos4(7B),
pbs_resources_unicos8(7B), pbs_server_attributen(7B),
pbs_resources_irix6(7B), pbs_resources_linux(7B).

Draad QueStringResAvailGet(Que q, Draad naam)
Retourneert de waarde naar de resource die is opgegeven in naam dat is beschikbaar voor
taken die vanaf deze q (Que bronnen_beschikbaar.naam attribuut).
Roep deze functie aan voor resources met waarden van het type String.
Voorbeelden van resourcenamen zijn: knooppunten, boog, neednodes. Voor een beschrijving
van deze bronnamen, zie pbs_resources_irix5(7B),
pbs_resources_sp2(7B), pbs_resources_sunos4(7B),
pbs_resources_unicos8(7B), pbs_server_attributen(7B),
pbs_resources_irix6(7B), pbs_resources_linux(7B).

Int QueIntResAssignGet(Que q, Draad naam)
Retourneert de waarde naar de resource die is opgegeven in naam waaraan wordt toegewezen
taken die vanuit deze wachtrij worden uitgevoerd (Que resources_toegewezen.naam attribuut).
Roep deze functie aan voor resources met waarden van het type Int.
Voorbeelden van resourcenamen zijn: cput, pcput, walltime, mppt, pmppt, nice,
procs, mppe, ncpus, pncpus, nodect, srfs_assist, mta,..., mth. Voor een
beschrijving van deze bronnamen, zie pbs_resources_irix5(7B),
pbs_resources_sp2(7B), pbs_resources_sunos4(7B),
pbs_resources_unicos8(7B), pbs_server_attributen(7B),
pbs_resources_irix6(7B), pbs_resources_linux(7B).

Maat QueSizeResAssignGet(Que q, Draad naam)
Retourneert de waarde naar de resource die is opgegeven in naam waaraan wordt toegewezen
taken die vanaf deze q (Que resources_toegewezen.naam attribuut).
Roep deze functie aan voor resources met waarden van het type Grootte.
Voorbeelden van resourcenamen zijn: file, mem, pmem,workingset, pf, ppf,
srfs_tmp, srfs_wrk, srfs_big, srfs_fast, sds, psds. Voor een beschrijving
van deze bronnamen, zie pbs_resources_irix5(7B),
pbs_resources_sp2(7B), pbs_resources_sunos4(7B),
pbs_resources_unicos8(7B), pbs_server_attributen(7B),
pbs_resources_irix6(7B), pbs_resources_linux(7B).

Draad QueStringResAssignGet(Que q, Draad naam)
Retourneert de waarde naar de resource die is opgegeven in naam waaraan wordt toegewezen
taken die vanaf deze q (Que resources_toegewezen.naam attribuut).
Roep deze functie aan voor resources met waarden van het type String.
Voorbeelden van resourcenamen zijn: knooppunten, boog, neednodes. Voor een beschrijving
van deze bronnamen, zie pbs_resources_irix5(7B),
pbs_resources_sp2(7B), pbs_resources_sunos4(7B),
pbs_resources_unicos8(7B), pbs_server_attributen(7B),
pbs_resources_irix6(7B), pbs_resources_linux(7B).

(3) Werkgerelateerde functies

Draad TaakIdGet( Jobomschrijving: baan )
Retourneert de taak-ID van de taak. niet-ingestelde waarde: NULLSTR

Draad TaaknaamGet( Jobomschrijving: baan )
Retourneert het kenmerk Job_Name van de taaktaak. niet-ingestelde waarde: NULLSTR

Draad JobEigenaarNaamGet( Jobomschrijving: baan )
Retourneert het kenmerk Job_Owner van de taaktaak. niet-ingestelde waarde: NULLSTR

Draad JobEffectiveUserNameGet( Jobomschrijving: job)
Retourneert het euser-kenmerk van de taaktaak.

Draad JobEffectiveGroupNameGet(Job job)
Retourneert het egroup-kenmerk van de taaktaak. niet-ingestelde waarde: NULLSTR

Int JobStateGet ( Jobomschrijving: baan )
Retourneert het kenmerk job_state van Job job.

Winstwaarde:
TRANSIT, IN WACHTRIJ, GEHOUDEN, WACHTEN, RUNNING, EXITING, -1 (uitgeschakeld
waarde)

Int TaakPrioriteitGet( Jobomschrijving: baan )
Retourneert het prioriteitskenmerk van de taaktaak. uitschakelwaarde: 0

Int JobHerhaalVlagGet( Jobomschrijving: baan )
Retourneert het heruitvoerbare attribuut van de taaktaak.
Retourwaarde: FALSE, TRUE, -1 (niet-ingestelde waarde)

Int JobInteractiveVlagGet( Jobomschrijving: baan )
Retourneert een interactief attribuut van de taaktaak.
Retourwaarde: FALSE, TRUE. niet-ingestelde waarde: FALSE

Datum Tijd JobDateTimeCreatedGet(Job job)
Retourneert het ctime-kenmerk van Job job. niet-ingestelde waarde:
(0|0|0@-1:-1:-1)

Draad TaakE-mailAddrGet( Jobomschrijving: baan )
Retourneert het kenmerk Mail_Users van de taaktaak. niet-ingestelde waarde: NULLSTR

Draad JobStageinFilesGet( Jobomschrijving: baan )
Retourneert het stagein-kenmerk van Job job. niet-ingestelde waarde: NULLSTR

Draad JobStageoutBestandenGet( Jobomschrijving: baan )
Retourneert het stageout-kenmerk van de taak. niet-ingestelde waarde: NULLSTR

Int JobIntResReqGet(Job baan, Draad naam)
Retourneert de waarde naar de resource die is opgegeven in naam zoals vereist door de
baan (baan Bron_Lijst.naam attribuut). Roep deze functie aan voor
resources met waarden van het type Int. Voorbeelden van resourcenamen
zijn: cput, pcput, walltime, mppt, pmppt, nice, procs, mppe, ncpus,
pncpus, nodect, srfs_assist, mta,..., mth. Voor een beschrijving hiervan
resourcenamen, zie pbs_resources_irix5(7B), pbs_resources_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_server_attributen(7B), pbs_resources_irix6(7B),
pbs_resources_linux(7B).

Voorbeeld:
Int cputReq;
// Retourneren de put vereiste of de baan
cputReq = JobIntResReqGet(taak, "cput");

Maat JobSizeResReqGet(Job baan, Draad naam)
Retourneert de waarde naar de resource die is opgegeven in naam zoals vereist door de
baan (baan Bron_Lijst.naam attribuut). Roep deze functie aan voor
bronnen met waarden van het type Grootte. Voorbeelden van resourcenamen
zijn: bestand, mem, pmem, werkset, pf, ppf, srfs_tmp, srfs_wrk,
srfs_big, srfs_fast, sds, psds. Voor een beschrijving van deze bronnen
namen, zie pbs_resources_irix5(7B), pbs_resources_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_server_attributen(7B), pbs_resources_irix6(7B),
pbs_resources_linux(7B).

Voorbeeld:
Maat memReq;
// Retourneren de geheugen vereiste of de baan
memReq = JobSizeResReqGet(taak, "me");

Draad JobStringResReqGet(Job baan, Draad naam)
Retourneert de waarde naar de resource die is opgegeven in naam zoals vereist door de
baan (baan Bron_Lijst.naam attribuut). Roep deze functie aan voor
bronnen met waarden van het type String. Voorbeelden van resourcenamen
zijn: knooppunten, boog, behoeftenknooppunten. Voor een beschrijving van deze bronnen
namen, zie pbs_resources_irix5(7B), pbs_resources_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_server_attributen(7B), pbs_resources_irix6(7B),
pbs_resources_linux(7B).

Voorbeeld:
Draad knooppunten;
// Retourneren de knooppunten vereiste eigendom of
// de baan
knooppunten = JobStringResReqGet(taak, "knooppunten");

Int JobIntResUseGet(Job baan, Draad naam)
Retourneert de waarde naar de resource die is opgegeven in naam gebruikt door de baan (Job
bronnen_gebruikt.naam attribuut). Roep deze functie aan voor resources met
waarden van het type Int. Voorbeelden van resourcenamen zijn: cput, pcput,
walltime, mppt, pmppt, leuk, procs, mppe, ncpus, pncpus, nodect,
srfs_assist, mta,..., mnd. Voor een beschrijving van deze bronnamen,
zien pbs_resources_irix5(7B), pbs_resources_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_server_attributen(7B), pbs_resources_irix6(7B),
pbs_resources_linux(7B).

Voorbeeld:
Int walltGebruik;
// Retourneren de bedragen of muurtijd gebruikt by
// de baan
walltGebruik = JobIntResUseGet(taak, "muurtijd");

Maat JobSizeResUseGet(Job baan, Draad naam)
Retourneert de waarde naar de resource die is opgegeven in naam gebruikt door de baan (Job
bronnen_gebruikt.naam attribuut). Roep deze functie aan voor resources met
waarden van het type Grootte. Voorbeelden van resourcenamen zijn: file, mem,
pmem, werkset, pf, ppf, srfs_tmp, srfs_wrk, srfs_big, srfs_fast,
sds, psds. Zie voor een beschrijving van deze resourcenamen
pbs_resources_irix5(7B), pbs_resources_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_server_attributen(7B), pbs_resources_irix6(7B),
pbs_resources_linux(7B).

Voorbeeld:
Maat srfsGebruik;
// Retourneren de bedragen of srfs_snel gebruikt by
// de baan
srfsGebruik = JobSizeResUseGet(taak, "srfs_fast");

Draad JobStringResUseGet(Job baan, Draad naam)
Retourneert de waarde naar de resource die is opgegeven in naam gebruikt door de baan (Job
bronnen_gebruikt.naam attribuut). Roep deze functie aan voor resources met
waarden van het type String. Voorbeelden van resourcenamen zijn: knooppunten,
boog, behoefteknopen. Zie voor een beschrijving van deze resourcenamen
pbs_resources_irix5(7B), pbs_resources_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_server_attributen(7B), pbs_resources_irix6(7B),
pbs_resources_linux(7B).

(4) CNode-gerelateerde functies

Zet de C-knooppunt AllNodesGet(ongeldig)
Retourneert een lijst met knooppunten die worden beheerd door de server die op de
lokale gastheer. Dit kunnen ook de knooppunten zijn die zijn opgegeven
in het plannerconfiguratiebestand waarvoor de plannerschrijver
wil dat het systeem periodiek controleert op informatie zoals status,
bezit, enzovoort. Zien pbs_sched_basl(8 miljard) voor een bespreking van
configuratie bestandsformaat.
LET OP: Deze functie moet van binnenuit worden aangeroepen schema_main() so
dat bij elke planningsiteratie het meest up-to-date is Zet de C-knooppunt
structuur wordt teruggegeven. Roep dit niet aan vanuit een opdrachtverklaring
bedoeld om een ​​globale variabele te initialiseren, zoals de instructie alleen zal doen
een keer gebeld worden.

C-knooppunt AllNodesLocalHostGet(ongeldig)
Retourneert het CNode-object dat de lokale host vertegenwoordigt. Dit is een
eenvoudige functie om niet-geclusterde systemen op te roepen met slechts 1 CNode
bestaat. niet-ingestelde waarde: NOCNODE
LET OP: Deze functie moet van binnenuit worden aangeroepen schema_main() (of
vanuit functies aangeroepen door sched_main) zodat at every
planningsiteratie, de meest up-to-date C-knooppunt structuur is
teruggekeerd. Roep dit niet aan vanuit een opdrachtverklaring die daarvoor bedoeld is
initialiseer een globale variabele, aangezien de instructie alleen wordt aangeroepen
een keer.

Draad CNodeNaamGet(CNode knooppunt)
Retourneert de unieke (officiële) naam van het knooppunt (dat wil zeggen ResMom-hostnaam
in een 1 moeder/knooppuntmodel). Dit retourneert dezelfde string die was
opgegeven in het configuratiebestand. niet-ingestelde waarde: NULLSTR

Draad CNodeOsGet(CNode knooppunt)
Retourneert de besturingssysteemarchitectuur van het knooppunt (dwz "irix5", "sp2"). uitgeschakeld
waarde: NULLSTR

Int CNodeStateGet( C-knooppunt knooppunt )
Retourneert de status van het knooppunt.

Winstwaarde:
CNODE_OFFLINE, CNODE_DOWN, CNODE_FREE, CNODE_RESERVE,
CNODE_INUSE_EXCLUSIVE, CNODE_INUSE_SHARED, CNODE_UNKNOWN

Int CNodeTypeGet( C-knooppunt knooppunt )
Retourneert het type van het knooppunt.

Winstwaarde:
CNODE_TIMESHARED, CNODE_CLUSTER, CNODE_UNKNOWN

Draad CNodePropertiesGet(CNode knooppunt)
Retourneert de door komma's gescheiden lijst met andere namen waaronder het knooppunt bekend is
(eigenschappen, andere netwerknaam). Bijvoorbeeld,
"babbage.OpenPBS.org" is misschien de naam van het knooppunt, maar het kan ook bekend zijn
via "babbage1, babbage2". niet-ingestelde waarde: NULLSTR

Draad CNodeVendorGet(CNode knooppunt)
Retourneert de naam van de leverancier voor de hardware van de machine (bijv
"sgi", "ibm"). niet-ingestelde waarde: NULLSTR

Int CNodeNumCpusGet(CNode knooppunt)
Retourneert het aantal processors dat aan het knooppunt is gekoppeld. niet-ingestelde waarde:
-1

Maat CNodeMemTotaalGet( C-knooppunt knooppunt, Draad type dan: )
Retourneert het totale geheugen van type dan: voor het knooppunt. type dan: is willekeurig
tekenreeks die de plannerschrijver in de planner definieert
configuratiebestand. uitschakelwaarde: -1b
Voorbeeld:
// krijgen totaal Fysiek geheugen
CNodeMemTotalGet(knooppunt, "echt")
// krijgen totaal virtueel geheugen
CNodeMemTotalGet(knooppunt, "virtueel")

Maat CNodeMemAvailGet( C-knooppunt knooppunt, Draad type dan: )
Retourneert het beschikbare geheugen van type dan: voor het knooppunt. type dan: is willekeurig
tekenreeks die de plannerschrijver in de planner definieert
configuratiebestand. uitschakelwaarde: -1b
Voorbeeldoproepen zijn dus:
// krijgen Beschikbaar Fysiek geheugen
CNodeMemAvailGet(knooppunt, "echt")
// krijgen Beschikbaar virtueel geheugen
CNodeMemAvailGet(knooppunt, "virtueel")

Int CNodeIdletimeGet( C-knooppunt knooppunt )
Retourneert het aantal seconden waarin geen toetsaanslag of muisbeweging heeft plaatsgevonden
vindt plaats op elke terminal die op het knooppunt is aangesloten. uitschakelwaarde: -1

Vlotter CNodeLoadAveGet( C-knooppunt knooppunt )
Retourneert het belastinggemiddelde van het knooppunt voor alle CPU's. uitschakelwaarde: -1.0

Int CNodeCpuPercentIdleGet( C-knooppunt knooppunt )
Retourneert het percentage inactieve tijd dat alle processors van het knooppunt hebben
heb ervaren.

Int CNodeCpuPercentSysGet( C-knooppunt knooppunt )
Retourneert het tijdspercentage dat alle processors van het knooppunt hebben
besteed aan het uitvoeren van kernelcode.

Int CNodeCpuPercentUserGet( C-knooppunt knooppunt )
Retourneert het tijdspercentage dat alle processors van het knooppunt hebben
besteed aan het uitvoeren van de gebruikerscode.

Int CNodeCpuPercentGuestGet( C-knooppunt knooppunt )
Retourneert het tijdspercentage dat alle processors van het knooppunt hebben
besteed aan het draaien van een gastbesturingssysteem.

Int CNodeNetwerkBwGet( C-knooppunt knooppunt, Draad type dan: )
Retourneert de bandbreedte van het netwerk van het knooppunt type dan: in bytes/seconde.
type dan: wordt gedefinieerd door de plannerschrijver in de planner
configuratiebestand. uitschakelwaarde: -1
Enkele voorbeeldgesprekken zijn:
CNodeNetwerkBwGet( knooppunt, "hippi" );
CNodeNetwerkBwGet( knooppunt, "fddi" );

Maat CNodeDiskSpaceTotalGet(CNode knooppunt, Draad naam)
Retourneert de totale ruimte van het knooppunt op de schijf geïdentificeerd door naam WAAR naam
is de apparaatnaam die willekeurig is gedefinieerd door de plannerschrijver in het
configuratiebestand van de planner. uitschakelwaarde: -1b
Voorbeeld:
CNodeDiskSpaceTotaalGet( knooppunt, "/kras2" );

Maat CNodeDiskSpaceAvailGet(CNode knooppunt, Draad naam)
Retourneert de beschikbare ruimte van het knooppunt op de schijf geïdentificeerd door naam WAAR
naam wordt willekeurig gedefinieerd door de plannerschrijver in de planner
configuratiebestand. uitschakelwaarde: -1b
Voorbeeld:
CNodeDiskSpaceAvailGet( knooppunt, "/kras1" );

Maat CNodeDiskSpaceReservedGet(CNode knooppunt, Draad naam)
Retourneert de gereserveerde schijfruimte van het knooppunt (gebruikersquota?), geïdentificeerd door
naam WAAR naam wordt willekeurig gedefinieerd door de plannerschrijver in het
configuratiebestand van de planner. uitschakelwaarde: -1b
Voorbeeld:
CNodeDiskSpaceReservedGet( knooppunt, "/kras1" );

Int CNodeDiskInBwGet( C-knooppunt knooppunt, Draad naam )
Retourneert de schrijfbandbreedte (bytes/sec) van de geïdentificeerde schijf van het knooppunt
by naam . uitschakelwaarde: -1
Voorbeeld:
CNodeDiskInBwGet( knooppunt, "/snel" );

Int CNodeDiskOutBwGet( C-knooppunt knooppunt, Draad naam )
Retourneert de leesbandbreedte (bytes/sec) van de schijf van het knooppunt geïdentificeerd door
naam . uitschakelwaarde: -1
Voorbeeld:
CNodeDiskOutBwGet( knooppunt, "/groot" );

Maat CNodeSwapSpaceTotaalGet( C-knooppunt knooppunt, Draad naam )
Retourneert de totale ruimte van het knooppunt op de swap geïdentificeerd door naam WAAR naam
wordt willekeurig gedefinieerd door de plannerschrijver in de planner
configuratiebestand. uitschakelwaarde: -1b
Voorbeeld:
CNodeSwapSpaceTotaalGet( knooppunt, "primair" );

Maat CNodeSwapSpaceAvailGet( C-knooppunt knooppunt, Draad naam )
Retourneert de beschikbare ruimte van het knooppunt op de swap geïdentificeerd door naam WAAR naam
is de apparaatnaam die willekeurig is gedefinieerd door de plannerschrijver in het
configuratiebestand van de planner. uitschakelwaarde: -1b
Voorbeeld:
CNodeSwapSpaceAvailGet( knooppunt, "ondergeschikt" );

Int CNodeSwapInBwGet( C-knooppunt knooppunt, Draad naam )
Retourneert de swapin-snelheid van het swap-apparaat van het knooppunt, geïdentificeerd door naam.
Voorbeeld:
CNodeSwapInBwGet(knooppunt, "ondergeschikt");

Int CNodeSwapOutBwGet( C-knooppunt knooppunt, Draad naam )
Retourneert de swapout-snelheid van het swap-apparaat van het knooppunt, geïdentificeerd door
naam. uitschakelwaarde: -1
Voorbeeld:
CNodeSwapOutBwGet(knooppunt, "primaire");

Maat CNodeTapeSpaceTotaalGet( C-knooppunt knooppunt, Draad naam )
Retourneert de totale ruimte op de tape van het knooppunt, geïdentificeerd door naam WAAR naam
wordt willekeurig gedefinieerd door de plannerschrijver in de planner
configuratiebestand. uitschakelwaarde: -1b
Voorbeeld:
CNodeTapeSpaceTotalGet(knooppunt, "4 mm");

Maat CNodeTapeSpaceAvailGet( C-knooppunt knooppunt, Draad naam )
Retourneert de beschikbare ruimte van het knooppunt op de tape, geïdentificeerd door naam WAAR
naam wordt willekeurig gedefinieerd door de plannerschrijver in de planner
configuratiebestand. uitschakelwaarde: -1b
Voorbeeld:
CNodeTapeSpaceAvailGet(knooppunt, "8 mm");

Int CNodeTapeInBwGet( C-knooppunt knooppunt, Draad naam )
Retourneert de schrijfbandbreedte (bytes/sec) van de geïdentificeerde tape van het knooppunt
by naam . uitschakelwaarde: -1
Voorbeeld:
CNodeTapeInBwGet( knooppunt, "4mm" );

Int CNodeTapeOutBwGet( C-knooppunt knooppunt, Draad naam )
Retourneert de leesbandbreedte (bytes/sec) van de geïdentificeerde tape van het knooppunt
by naam . uitschakelwaarde: -1
Voorbeeld:
CNodeTapeOutBwGet( knooppunt, "8mm" );

Maat CNodeSrfsRuimteTotaalGet( C-knooppunt knooppunt, Draad naam )
Retourneert de totale ruimte van het knooppunt op het srfs-apparaat geïdentificeerd door naam
WAAR naam wordt willekeurig gedefinieerd door de plannerschrijver in het
configuratiebestand van de planner. uitschakelwaarde: -1b
Voorbeeld:
CNodeSrfsSpaceTotalGet(knooppunt, "/snel");

Maat CNodeSrfsSpaceAvailGet( C-knooppunt knooppunt, Draad naam )
Retourneert de beschikbare ruimte van het knooppunt op het srfs-apparaat geïdentificeerd door naam
WAAR naam wordt in sommige gevallen willekeurig gedefinieerd door de planner-schrijver
configuratiebestand. uitschakelwaarde: -1b
Voorbeeld:
CNodeSrfsSpaceAvailGet( knooppunt, "/groot" );

Maat CNodeSrfsSpaceReservedGet(CNode knooppunt, Draad naam)
Retourneert de totale hoeveelheid gereserveerde ruimte van het knooppunt op het srfs-apparaat
geïdentificeerd door naam WAAR naam wordt willekeurig gedefinieerd door de planner
writer in het configuratiebestand van de planner. uitschakelwaarde: -1b
Voorbeeld:
CNodeSrfsSpaceReservedGet( knooppunt, "/snel" );

Int CNodeSrfsInBwGet( C-knooppunt knooppunt, Draad naam )
Retourneert de schrijfbandbreedte (bytes/sec) van het srfs-apparaat van het knooppunt
geïdentificeerd door naam . uitschakelwaarde: -1
Voorbeeld:
CNodeSrfsInBwGet(knooppunt, "/fast" );

Int CNodeSrfsOutBwGet( C-knooppunt knooppunt, Draad naam )
Retourneert de leesbandbreedte (bytes/sec) van het srfs-apparaat van het knooppunt
geïdentificeerd door naam . uitschakelwaarde: -1
Voorbeeld:
CNodeSrfsOutBwGet(knooppunt, "/big" );

(5) Diverse functies

Datum Tijd datumtijdGet()
krijgt de huidige datum/tijd.

Int datetimeToSecs(DatumTijd dt)
retourneert het aantal seconden sinds tijdperk (begin van UNIX-tijd -
00:00:00, 1 januari 1970) voor de opgegeven datum/tijd dt.

Int JobActie( Jobomschrijving: baan, Int actie, Draad param )
voert actie on baan met een param gespecificeerd afhankelijk van de
actie. actie kan zijn: SYNCRUN, ASYNCRUN, VERWIJDEREN, HERHALEN, HOLD,
RELEASE, SIGNAL, MODIFYATTR, MODIFYRES waarbij:
Actie Omschrijving
=============== ==========================
SYNCRUN loopt de baan synchroon,
betekenis de Bellen naar
TaakActie() wil Slechts
terugkeer wanneer de baan heeft
gestart lopend or wanneer
an fout heeft geweest
tegengekomen.
Param waarde:
naam of gastheer(en) naar lopen
baan onder.

ASYNCRUN loopt de baan asynchroon,
betekenis de Bellen naar
TaakActie() wil terugkeer
per direct as binnenkort as
de lopen te vragen is
gevalideerd by de PBS server,
en niet nodig wanneer
de baan heeft gestart
uitvoering.
Param waarde:
naam of gastheer(en) naar lopen
baan onder.

VERWIJDEREN verwijdert de baan.
Param waarde:
"delvertraging=<# of seconden>"
- vertraging # of seconden
tussen de verzending
of SIGTERM en SIGKILL
naar de baan vaardigheden
het krijgen van geschrapt.

HERUN herhalingen de lopend baan,
welke gaat terminating
de Sessie leider of de
baan en terugkerende de baan
naar de de wachtrij staat.

HOLD plaatsen een or meer houdt
on de baan.
Param waarde:
"u", "O", "S", "u", "os",
"uos"
- type dan: of houdt naar plaats
on functie: gebruiker), ander),
systeem).

RELEASE verwijdert or releases
houdt geplaatst on banen.
Param waarde:
"u", "O", "S", "u", "os",
"uos"
- type dan: of houdt naar verwijderen
oppompen van functie: gebruiker), ander),
systeem).

SIGNAAL verzendt a signaal naar de
uitvoeren baan.
Param waarde:
"HUP", "SIGHUP",...

WIJZIGATTR wijzigt de gespecificeerd
attribuut of de baan naar
de gegeven waarde, wanneer
de kenmerk_naam is
!= "Bronnenlijst" or
"bronnen_gebruikt".
Param waarde:
"attrib_name=waarde"

WIJZIGT wijzigt de baan
Resource_Lijst
attribuut gegeven de
hernaam en de
res_waarde:
Resource_List.res_name=
res_waarde
Param waarde:
"res_name=res_val"
param waarde hangt af van de actie. Geef NULLSTR op als er geen waarde voor is
deze parameter is gewenst.
Retourwaarde: SUCCES of FAIL.
OPMERKING: Niet herkend actie wordt genegeerd.
Voorbeeld:
// lopen Jobomschrijving: j synchroon
JobActie(j, SYNCRUN, NULLSTR);

// lopen Jobomschrijving: j asynchroon on gastheer "db"
JobActie(j, ASYNCRUN, "db");

// verwijderen Jobomschrijving: j
JobActie(j, VERWIJDEREN, NULLSTR);

// verwijderen Jobomschrijving: j Met a vertraging of 5 secs
// tussen de verzending of SIGTERM en
// SIGKILL
JobActie(j, VERWIJDEREN, "delvertraging=5");

// herhaling Jobomschrijving: j
JobActie(j, OPNIEUW, NULLSTR);

// plaats a gebruiker) houden on Jobomschrijving: j
JobActie(j, UITSTEL, "u");

// plaats an ander) houden on Jobomschrijving: j
JobActie(j, UITSTEL, "O");

// plaats a systeem) houden on Jobomschrijving: j
JobActie(j, UITSTEL, "S");

// plaats a verzuim houden (U) on Jobomschrijving: j
JobActie(j, UITSTEL, NULLSTR);

// los gebruiker) houden oppompen van Jobomschrijving: j
JobActie(j, UITGAVE, "u");

// los ander) houden oppompen van Jobomschrijving: j
JobActie(j, UITGAVE, "O");

// los systeem) houden oppompen van Jobomschrijving: j
JobActie(j, UITGAVE, "S");

// los verzuim houden (U) oppompen van Jobomschrijving: j
JobActie(j, UITGAVE, NULLSTR);

// sturen ZUCHT signaal naar Jobomschrijving: j
JobActie(j, SIGNAAL, "SIGHUP");

// -update de commentaar attribuut of Jobomschrijving:
// j naar "a bericht".
// De param formaat is: attribuutnaam=nieuwe_waarde
// Raadplegen PBS documentatie For a lijst of baan
// attribuut namen dat wel be gespecificeerd.
JobActie(j, WIJZIGATTR, "commentaar=een bericht");
// -update de Resource_List.cput attribuut of Jobomschrijving:
// j naar 3600 seconden.
// De param formaat is: bron_naam=nieuwe_waarde
// Bekijk pbs_bronnen* man pagina For a lijst of
// bron_namen dat wel be gespecificeerd.
JobActie(j, WIJZIGT, "cput=3600");

QueJobFind(Que que, leuk Int funk, Int reanimatie,Int waarde);

QueJobFind(Que que, leuk Draad funk, Int reanimatie, String waarde);

QueJobFind(Que que, leuk Datum Tijd funk, Int cpr, DatumTijd waarde);

QueJobFind(Que que, leuk Maat funk, Int cpr, maat waarde);

WAAR cpr is een van: OP_EQ, OP_NEQ, OP_LE, OP_LT, OP_GE, OP_GT. func
is een functie waarvan het ENIGE argument van het type Taak is. Jobomschrijving: is de terugkeer
type.

Beschrijving: Van toepassing func voor elke baan in dat , en de eerste terugsturen
baan die voldoet aan de logische vergelijking: functie(baan) cpr waarde

Voorbeeld:

Maat JobVirtualMemAvailGet(Job job)
{
Maat maat;

sz = JobSizeResReqGet(taak, "me");
retour(sz);
}
Int JobWallTimeReqGet(Job job)
{
Int muur;

muur = JobIntResReqGet(taak, "muurtijd");
retour(muur);
}

Int JobCpuTimeUsedGet(Job job)
{
Int invoer;

put = JobIntResUseGet(taak, "cput");
retour(cput);
}

Dat findQueByName(Set Dat wachtrijen, Draad qnaam)
{
Dat q;

foreach (q in wachtrijen) {
als( QueNaamGet(q) EQ qnaam ) {
retour(q);
}
}
retour(NOQUE);
}
schema_main()
{
server s;
Dat dat;
Zet de Dat vierkante;

// krijgen lokaal server
s = AllServersLocalHostGet();

// krijgen de rok of de server s
sq = ServerQueuesGet(s);

// krijgen de queue genoemd "snel" oppompen van de
// lokaal server
dat = zoekQueByName( vierkante, "snel" );

// VIND DE PLEK DIE PERFECT VOOR JOU IS de 1 baan waarvan muurtijd vereiste
// is == 300:
QueJobFind(que, JobWallTimeReqGet, OP_EQ, 300);

// VIND DE PLEK DIE PERFECT VOOR JOU IS de 1 baan waarvan email adres naar
// de hoogte over ons baan activiteit != "bayucan":
QueJobFind(que, VacatureE-mailadresAddrGet, OP_NEQ,
"bayucan");

// VIND DE PLEK DIE PERFECT VOOR JOU IS de 1 baan dat was aangemaakt na
// or on 3 / 3 / 1997:
QueJobFind(que, TaakDatumTijdGecreëerdGet, OP_GE,
(3|3|1997));

// VIND DE PLEK DIE PERFECT VOOR JOU IS de 1 baan dat was aangemaakt na
// 3:3:44:
QueJobFind(que, TaakDatumTijdGecreëerdGet, OP_GT,
(3:3:44));

// VIND DE PLEK DIE PERFECT VOOR JOU IS de 1 baan dat was aangemaakt na
// 3:3:44 on 3 / 3 / 1997:
QueJobFind(que, TaakDatumTijdGecreëerdGet, OP_GT,
(3|3|1997@3:3:44));

// VIND DE PLEK DIE PERFECT VOOR JOU IS de 1 baan waarvan cpu niet de tijd of gebruikt < 1600:
QueJobFind(que, JobCpuTimeUsedGet, OP_LT, 1600);

// VIND DE PLEK DIE PERFECT VOOR JOU IS de 1 baan waarvan virtueel geheugen
// vereiste <= 300mb:
QueJobFind(que, BaanVirtueelMemBeschikbaarGet, OP_LE,
300mb);
}

Jobomschrijving: QueJobFind( Dat que, Leuk Int leuk, Int reanimatie)

Jobomschrijving: QueJobFind( Dat que, Leuk Draad leuk, Int reanimatie)

Jobomschrijving: QueJobFind( Dat que, Leuk Datum Tijd leuk, Int reanimatie)

Jobomschrijving: QueJobFind( Dat que, Leuk Maat leuk, Int reanimatie)

WAAR cpr kan een van de volgende zijn: OP_MAX, OP_MIN, func is een
functie waarvan het enige argument van het type Taak is.

Beschrijving: Retourneert de taak met de gevonden maximum- of minimumwaarde
functie(baan) zoals het op elke baan wordt toegepast dat .

Voorbeeld:
Int JobCpuTimeReqGet(Job job)
{
Int invoer;

put = JobIntResReqGet(taak, "cput");
retour(cput);
}
schema_main()
{
Dat dat;
Jobomschrijving: functie;

// VIND DE PLEK DIE PERFECT VOOR JOU IS de Jobomschrijving: Met de hoogst cpu niet de tijd of
// vereiste:
baan = QueJobFind(que, JobCpuTimeReqGet, OP_MAX);

// VIND DE PLEK DIE PERFECT VOOR JOU IS de Jobomschrijving: Met de minimum cpu niet de tijd of
// vereiste:
baan = QueJobFind(que, JobCpuTimeReqGet, OP_MIN);
}

Dat QueFilter (Que que, leuk Int funk, Int reanimatie,Int waarde)

Dat QueFilter (Que que, leuk Draad funk, Int reanimatie, String waarde)

Dat QueFilter (Que que, leuk Datum Tijd funk, Int cpr, Datum waarde)

Dat QueFilter (Que que, leuk Maat funk, Int cpr, maat waarde)

WAAR cpr kan een van de volgende zijn: OP_EQ, OP_NEQ, OP_LE, OP_LT,
OP_GE, OP_GT, func is een functie waarvan het enige argument van het type Taak is.

Beschrijving: Van toepassing func voor elke baan in dat , en retourneert een nieuwe wachtrij
met alle taken die aan de vergelijkingsvoorwaarde voldoen:
functie(baan) cpr waarde

Voorbeeld:
Int JobWallTimeReqGet(Job job)
{
Int muur;

muur = JobIntResReqGet(taak, "muurtijd");
retour(muur);
}
schema_main()
{
Dat dat;
Dat nieuwq;

// Retourneren a nieuwe dat bevattende allen vacatures in "dat"
// Met a muurtijd vereiste == 300:
nieuwq = QueFilter(que, JobWallTimeReqGet, OP_EQ, 300);

// Retourneren a nieuwe dat bevattende allen vacatures in "dat"
// Met an email adres != "bayucan":
nieuwq = QueFilter(que, VacatureE-mailadresAddrGet, OP_NEQ, "bayucan");

// Retourneren a nieuwe dat bevattende allen vacatures in "dat"
// aangemaakt na or on 3 / 3 / 1997:
nieuwq = QueFilter(que, TaakDatumTijdGecreëerdGet, OP_GE,
(3|3|1997));

// Retourneren a nieuwe dat bevattende allen vacatures in "dat"
// aangemaakt na 3:3:44:
nieuwq = QueFilter(que, TaakDatumTijdGecreëerdGet, OP_GT,
(3:3:44));

// Retourneren a nieuwe dat bevattende allen vacatures in "dat"
// aangemaakt na 3:3:44 on 3 / 3 / 1997:
nieuwq = QueFilter(que, TaakDatumTijdGecreëerdGet, OP_GT,
(3|3|1997@3:3:44));

// NOTITIE: De origineel "dat" is niet gewijzigd
// dan ook.
}

Int Sorteren(Instellen Jobomschrijving: s, Leuk Int key, Int order)

Int Sorteren(Instellen Jobomschrijving: s, Leuk Draad key, Int order)

Int Sorteren(Instellen Jobomschrijving: s, Leuk Vlotter key, Int order)

Int Sorteren(Instellen Jobomschrijving: s, Leuk Datum Tijd key, Int order)

Int Sorteren(Instellen Jobomschrijving: s, Leuk Maat key, Int order)

WAAR s de reeks taken die u wilt sorteren. sleutel is de sorteersleutel die a is
functie waarvan het enige argument van het type Taak is, bestellen is de sortering
volgorde: ASC, DESC.

Beschrijving: sorteert de elementen van s , in ASCending of
AFDAALENDE volgorde van waarden die zijn geretourneerd door de sleutel Functioneert als
toegepast op elk lid van de reeks banen. De s voorwerp wordt gewijzigd
met deze oproep. Dit retourneert SUCCES of FOUT, afhankelijk van de uitkomst van
het soort.

Voorbeelden:
Maat JobMemReqGet(Job job)
{
Maat mij;

Lid = JobSizeResReqGet(taak, "me");
terugkeer(mij);
}

schema_main()
{
server meester;

Zet de Jobomschrijving: banen;

Int bestellen;

// krijgen lokaal server
meester = AllServersLocalHostGet();

vacatures = ServerJobsGet(meester);
Sorteren(banen, TaakPrioriteitKrijgen, ASC);
Sorteren(banen, JobIdGet, DESC);
bestellen = ASC;
Sorteren(banen, TaakDatumTijdGecreëerdGet, volgorde);
bestellen = BESCHRIJVING;
Sorteren(banen, JobMemReqGet, volgorde);
}

Int Sorteren(Instellen Dat s, Leuk Int key, Int order)

Int Sorteren(Instellen Dat s, Leuk Draad key, Int order)

Int Sorteren(Instellen Dat s, Leuk Vlotter key, Int order)

Int Sorteren(Instellen Dat s, Leuk Datum Tijd key, Int order)

Int Sorteren(Instellen Dat s, Leuk Maat key, Int order)

WAAR s de reeks wachtrijen die moeten worden gesorteerd. sleutel is de sorteersleutel die a is
functie waarvan het enige argument van het Que-type is, bestellen is de sortering
volgorde: ASC, DESC.

Beschrijving: sorteert de elementen van s , in ASCending of
AFDAALENDE volgorde van waarden die zijn geretourneerd door de sleutel Functioneert als
toegepast op elk lid van de reeks wachtrijen. De s voorwerp is
gewijzigd met deze oproep. Dit retourneert SUCCES of FOUT, afhankelijk van
uitkomst van dit soort.

Voorbeelden:
Maat QueMemAvailGet(Que dat)
{
Maat mij;

Lid = QueSizeResAvailGet(que, "me");
terugkeer(mij);
}

schema_main()
{
server meester;

Zet de Dat vragen;
Int bestellen;

// krijgen lokaal server
meester = AllServersLocalHostGet();

vragen = ServerwachtrijenGet(meester);
Sorteer(vragen, WachtrijPrioriteitGet, ASC);
Sorteer(vragen, QueNaamGet, ASC);
bestellen = BESCHRIJVING;
Sorteer(vragen, QueMemBeschikbaarGet, volgorde);
}

Int Sorteren(Instellen server s, Leuk Int key, Int order)

Int Sorteren(Instellen server s, Leuk Draad key, Int order)

Int Sorteren(Instellen server s, Leuk Vlotter key, Int order)

Int Sorteren(Instellen server s, Leuk Datum Tijd key, Int order)

Int Sorteren(Instellen server s, Leuk Maat key, Int order)

WAAR s de set servers die moet worden gesorteerd. sleutel is de sorteersleutel die is
een functie waarvan het enige argument van het servertype is, bestellen is de
sorteervolgorde: ASC, DESC.

Beschrijving: sorteert de elementen van s , in ASCending of
AFDAALENDE volgorde van waarden die zijn geretourneerd door de sleutel Functioneert als
toegepast op elk lid van de set servers. De s voorwerp is
gewijzigd met deze oproep. Dit retourneert SUCCES of FOUT, afhankelijk van
uitkomst van dit soort.

Voorbeelden:
Maat ServerMemAvailGet(Server serv)
{
Maat mij;

Lid = ServerSizeResAvailGet(serv, "me");
terugkeer(mij);
}

schema_main()
{
Zet de server server;

Int bestellen;

Int ret;

server = AllServersGet();

roten = Sorteren(sserver, ServerMaxRunJobsGet, ASC);
Sorteren(sserver, ServerInetAddrGet, ASC);

bestellen = BESCHRIJVING;
Sorteren(sserver, ServerMemBeschikbaarGet, volgorde);
}

Int Sorteren(Instellen C-knooppunt s, Leuk Int key, Int order)

Int Sorteren(Instellen C-knooppunt s, Leuk Draad key, Int order)

Int Sorteren(Instellen C-knooppunt s, Leuk Vlotter key, Int order)

Int Sorteren(Instellen C-knooppunt s, Leuk Datum Tijd key, Int order)

Int Sorteren(Instellen C-knooppunt s, Leuk Maat key, Int order)

WAAR s de reeks knooppunten die moeten worden gesorteerd. sleutel is de sorteersleutel die a is
functie waarvan het enige argument van het type CNode is, bestellen is de sortering
volgorde: ASC, DESC.

Beschrijving: sorteert de elementen van s , in ASCending of
AFDAALENDE volgorde van waarden die zijn geretourneerd door de sleutel Functioneert als
toegepast op elk lid van de reeks knooppunten. De s voorwerp is
gewijzigd met deze oproep. Dit retourneert SUCCES of FOUT, afhankelijk van
uitkomst van dit soort.

Voorbeelden:
Maat CNodeMijnMemAvailGet(CNode cn)
{
Maat mij;

Lid = CNodeMemAvailGet(cn, "virtueel");
terugkeer(mij);
}

schema_main()
{
Zet de C-knooppunt snode;

Int bestellen;

scnode = AllNodesGet();

Sorteren(snode, CNodeIdletimeGet, ASC);
Sorteren(snode, CNodenaamGet, ASC);
bestellen = BESCHRIJVING;
Sorteren(snode, CNodeMijnMemBeschikbaarGet, volgorde);
}

CNode..Get() FUNCTIES


De retourwaarden van de CNode..Get()-functies die in de vorige sectie zijn besproken, zijn
verkregen door het verzenden van resourcequery's naar de MOM van de CNode bij elke planningsiteratie.
Bijvoorbeeld CNodeLoadAveGet(knooppunt) zal de waarde retourneren die van sommigen is verkregen
resource> query (dit kan de string "loadave" zijn) zoals verzonden naar de MOM van het knooppunt. De
" -> CNode..Get()"-toewijzingen worden intern tot stand gebracht, maar dat kan ook zo zijn
gewijzigde of meer toewijzingen kunnen worden toegevoegd via het plannerconfiguratiebestand. De configuratie
dossier wordt besproken pbs_sched_basl(8B).
Reeds vastgestelde toewijzingen worden hieronder gegeven:

Voor alle architecturen:

CNode..Get() daadwerkelijk Bellen gastheer hulpbron
======================== =============
CNodeOsGet(knooppunt) boog
CNodeLoadAveGet(knooppunt) laden
CNodeIdletimeGet(knooppunt) inactieve tijd

Gebruik basl2cB online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

Linux-commando's

Ad