АнглийскийФранцузскийИспанский

Ad


Значок OnWorks

basl2cB - Интернет в облаке

Запустите basl2cB в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда basl2cB, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


basl2c - преобразует код BASL (язык планирования BAtch) в код планировщика C.

СИНТАКСИС


basl2c [-d] [-l файл отладки лексера] [-p файл отладки синтаксического анализа] [-y файл отладки символа] [-s
semanticDebugFile] [-g codegenDebugFile] [-c cFile] baslFile

ОПИСАНИЕ


базл2с это компилятор BASL в C, который производит промежуточный код, который может быть передан в
обычный компилятор C и связан с библиотеками PBS для создания исполняемого файла планировщика.
Basl2c принимает в качестве входных данных baslFile, которая представляет собой программу, написанную на языке BAtch Scheduling
Язык, содержащий основной код расписания. Затем Basl2c преобразует конструкции BASL
в файле в операторы C, а также добавляет дополнительный код для создания PBS
исходный код планировщика. По умолчанию результирующий код C записывается в файл
pbs_sched.c.

Полный путь к результирующему файлу C - это то, что необходимо указать в SCHD_CODE
переменной в local.mk перед компиляцией планировщика BASL для создания pbs_sched
исполняемый файл.

ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ


-d Выводит дополнительные отладочные сообщения в лексер (см. параметр -l), синтаксический анализатор (см. -p
option), таблица символов (см. параметр -y), семантический анализатор (см. параметр -s) и код
генератор (см. параметр -g).

-l лексерОтладочныйФайл
лексердебагфиле это имя файла для записи в сгенерированные отладочные сообщения
при сканировании токенов.

-p парсерDebugFile
синтаксический анализаторDebugFile это имя файла для записи в сгенерированные отладочные сообщения
при сборке токенов удобным способом.

-y symtabDebugFile
symtabDebugFile это имя файла для записи в отладочные сообщения, связанные с
таблица символов.

-s семантический файл отладки
семантикдебугфиле это имя файла для записи в отладочные сообщения
генерируется при проверке, чтобы убедиться, что переменные и операторы используются в
последовательный способ.

-g codegenDebugFile
CodegenDebugFile это имя файла для записи в сгенерированные отладочные сообщения
при преобразовании операторов BASL в операторы C.

-c cФайл
cФайл - это имя файла, в который записывается сгенерированный код C.

ГЛАВНАЯ СТРУКТУРА


Базовая структура кода планировщика, написанного на BASL, выглядит следующим образом:
нуль or БОЛЕЕ ФУНКЦИИ Определения
нуль or БОЛЕЕ Глобальный ПЕРЕМЕННЫЕ ЗАЯВЛЕНИЯ
нуль or БОЛЕЕ назначение отчетность инициализировать Глобальный переменные)
sched_main ()
{
one or БОЛЕЕ ПЕРЕМЕННЫЕ ЗАЯВЛЕНИЯ

нуль or БОЛЕЕ ОТЧЕТНОСТЬ
}

Например,
% кошка расписание.basl
Int сумма (Int a, Int b)
{
Int s;
s = a + b;
возврат (ы);
}
Int шарик;
sched_main ()
{
Int c;

a = 3;
b = 4;
c = сумма (а, б);
печать (с);
земной шар = 5;
печать (шарик);
}

sched_main () - это функция, которая вызывается на каждой итерации планирования.

ФУНКЦИИ


Чтобы определить функцию, которая может быть вызвана в последующих функциях, используйте следующий синтаксис:

Тип возврата имя-функции ( ТИП ДАННЫХ1 ИДЕНТИФИКАТОР1,
ТИП ДАННЫХ2 ИДЕНТИФИКАТОР2, ... )
{
one or БОЛЕЕ ПЕРЕМЕННЫЕ ЗАЯВЛЕНИЯ

нуль or БОЛЕЕ ОТЧЕТНОСТЬ
}

Например,
Void printStuff (Dayofweek Доу DateTime t, строка ул,
Размер сз, CNode сп)
{
печать (доу);
печать (т);
печать (стр.);
печать (sz);
печать (сп);
}

Действительная функция Тип возврата являются: Void, Int, Float, Dayofweek, DateTime, String, Size,
Сервер, Очередь, Задание, CNode, Установить сервер, Установить очередь, Установить задание, Установить CNode.

Допустимые типы данных ( ТИП ДАННЫХ1, ТИП ДАННЫХ2, ... ) для идентификаторов параметров: Int,
Плавающее число, день недели, дата и время, строка, размер, сервер, очередь, задание, CNode, установка сервера, установка очереди,
Установить задание, установить CNode, диапазон Int, диапазон с плавающей запятой, диапазон Dayofweek, диапазон DateTime, размер диапазона,
Fun Int, Fun Float, Fun Void, Fun Dayofweek, Fun DateTime, Fun String, Fun Size, Fun
Сервер, очередь развлечений, задание весело, CNode развлечения, сервер набора развлечений, очередь набора развлечений, задание набора развлечений, набор развлечений
CNode. Эти типы данных будут обсуждаться в следующем разделе.

Функции вызываются по их имени и аргументам, как в:

printStuff ( ПН, (5|1|1997@14:32:00), "расписание начинается ",
30гб, узел );

базл2с фактически добавит префикс "basl_" к имени функции, заданному планировщиком
Writer, чтобы свести к минимуму вероятность столкновения имен, которое может произойти, если результирующий код C
связаны с библиотеками PBS, BASL. Например, если вы посмотрите на сгенерированный код C для
распечатать материал, вы бы увидели,

basl_printStuff( MON, (5|1|1997@14:32:00),
"начало расписания", 30gb, узел);

Как и в C, все вызовы функций должны быть определены заранее. Компилятор BASL будет
убедитесь, что аргументы в вызове функции точно совпадают (с точки зрения
types) с параметрами в определении функции.

В BASL существует два вида функций: пользовательские функции и предопределенные функции.
Пользовательские функции - это те функции, для которых разработчик планировщика дал определение,
в то время как предопределенные функции - это те, которые могут быть вызваны немедленно без необходимости
определяя это. Список предопределенных функций см. В разделе ПРЕДНАЗНАЧЕН ФУНКЦИИ .

ПЕРЕМЕННЫЕ ЗАЯВЛЕНИЯ


Как и в C, все переменные в коде BASL должны быть явно объявлены перед использованием. Те
переменные, объявленные вне какой-либо функции, называются глобальными переменными, а
переменные, объявленные в теле функции, называются локальными переменными. Глобальный
переменные можно использовать в любом месте кода BASL, в то время как локальные переменные доступны для чтения.
только внутри функции, из которой они были объявлены.

Синтаксис объявления переменной:

ТИП ДАННЫХ ИДЕНТИФИКАТОР ;

в котором ТИП ДАННЫХ может быть: Int, Float, Dayofweek, DateTime, String, Size, Server, Que, Job,
CNode, Установить сервер, Установить очередь, Установить задание, Установить CNode, Диапазон Int, Диапазон с плавающей запятой, Диапазон дня недели,
Диапазон DateTime, Размер диапазона.

ДАННЫЕ ТИП


Void используется для функций, которые не возвращают значение.

Int со знаком, целые числа даны по основанию 10.

Примеры констант:
5, +1, -3, УСПЕХ (= 1), НЕИСПРАВНОСТЬ (= 0), ИСТИНА (= 1), ЛОЖЬ (= 0)

Поплавок действительные числа, которые представлены как двойные в переведенном коде C.
Константы выборки: 4.3, +1.2, -2.6

День недели
постоянные значения: SUN, MON, TUE, WED, THU, FRI, SAT, внутренне представлены как
целочисленные константы с SUN = 0, MON = 1 и т. д.

DateTime
укажите в одном из 3-х форматов:

[1] (m | d | y), где 1 <= m <= 12, 1 <= d <= 31, 0 <= y, пр. (4 | 4 | 1997);

[2] (чч: мм: сс), где 0 <= чч <= 23, 0 <= мм <= 59, 0 <= сс <= 61, например.
(12:01:00);

[3] (m|d|y@hh:mm:ss), ex. (4|4|1997@12:01:00)
При сравнении даты / времени время "сейчас" заменяется, если время
часть не указана (формат [1]); дата "сейчас" заменяется, если
часть даты не указана (формат [2]). Кроме того, полная годовая часть должна
быть дано (например, 1997 вместо 97) в датах, чтобы избежать двусмысленности.

строка Строка заключена в кавычки (") и может содержать что угодно, кроме другого
цитата, перевод строки, а также левая и правая круглые скобки.
Примеры констант: «образец строки», NULLSTR

Размер формат: где суффикс - множитель вида:
:

множитель Ед. изм (байты or слова)
=================== =====================
к, м, г, т, п, к, м, г, т, п б, б, ш, ж

где 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, а размер слова w = W определяется локально (т. е. 4
байтов на 32-битной машине).

При работе с операндами двух размеров с разными суффиксами суффикс
"нижний" из двух будет результирующим суффиксом. Например,
10 МБ + 10 ГБ = 10250 МБ
Примеры констант: -1b, 2w, 1kb, 2mw, + 3gb, 4tw, 6Pb

Диапазон Int

формат: (низкое значение Int, высокое значение Int)
где низкое значение Int <= высокое значение Int. Константа выборки: (1,3)

Диапазон Поплавок

формат: (низкое значение с плавающей запятой, высокое значение с плавающей запятой)
где низкое значение <= высокое значение. Константа выборки: (2.3, 4.6)

Диапазон День недели

формат: (раньше, позже)
где более ранний день <= более поздний день. Константа выборки: (WED, FRI)

Диапазон DateTime

формат: (более ранняя дата / время, более поздняя дата / время)
где более ранняя дата / время <= более поздняя дата / время.
ПРИМЕЧАНИЕ: если диапазон содержит только отрезки времени, и более раннее время "появляется" для
быть> более позднее время, как в "((18: 0: 0), (6: 0: 0))", затем в течение даты / времени
сравнений, «позднее» время будет скорректировано на один день, чтобы
выглядит как: "( ( @ 18: 0: 0), ( @ 6: 0: 0)) "

Примеры констант:
((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 ГБ, 50 ГБ)

сервер Сопоставляется непосредственно с серверным объектом PBS. А сервер управляет одним или несколькими Что объекты.
Пример константы: NOSERVER

CNode для вычислительного узла, состоящего из одного образа ОС, общей памяти и набора
процессора. CNode запускает 1 PBS MOM.
Пример константы: NOCNODE

Что Сопоставляется непосредственно с объектом очереди PBS. А Что объект катушки один или несколько работа
объекты.
Константа образца: NOQUE

работа Сопоставляется непосредственно с объектом задания PBS. А работа объект несет некоторые атрибуты и
требования к ресурсам.
Константа образца: NOJOB

Поставьте сервер
список объектов Сервера.
Пример константы: EMPTYSETSERVER

Поставьте CNode
список объектов CNode.
Пример константы: EMPTYSETCNODE

Поставьте Что список объектов Que.
Пример константы: EMPTYSETQUE

Поставьте работа список объектов Job.
Пример константы: EMPTYSETJOB

ОПРЕДЕЛЕННЫЙ BASL КОНСТАНТЫ


Это константы, которые нельзя использовать для присвоения имени идентификатору (см. Следующий раздел). Эти
всегда в верхнем регистре.

ДАННЫЕ ТИП ОПРЕДЕЛЕННЫЙ BASL КОНСТАНТА
=================== =============================================
День недели СОЛНЦЕ, ПН, ВТ, МЫ Б, ЧТ, ПТ, Сб

Int УСПЕХ, ПОТЕРПЕТЬ ПОРАЖЕНИЕ, ЛОЖНЫЙ, ПРАВДА, СИНКРАН, АСИНКРУН,
УДАЛЯТЬ, ПОВТОР, ДЕРЖАТЬ, ВЫПУСКАТЬ, СИГНАЛ,
МОДИФЯТТР, МОДИФИРУЕТ, СЕРВЕР_АКТИВНЫЙ,
СЕРВЕР_ИДЛЕ, СЕРВЕР_SCHED, СЕРВЕР_TERM,
SERVER_TERMDELAY, КТИП_Е, КТИП_Р,
SCHED_DISABLED, SCHED_ENABLED, ТРАНЗИТ,
ОЧЕРЕДИ, ДЕРЖАЛ, ОЖИДАЮЩИЙ, БЕГ, ВЫХОД,
CNODE_OFFLINE, CNODE_ВНИЗ, CNODE_FREE,
CNODE_RESERVE, CNODE_INUSE_EXCLUSIVE,
CNODE_INUSE_SHARED, CNODE_TIMESHARED,
CNODE_CLUSTER, CNODE_UNKNOWN, ОП_ЭКВ, ОП_NEQ,
ОП_ЛЕ, ОП_ЛТ, ОП_ГЕ, ОП_ГТ, ОП_МАКС, ОП_МИН,
ASC, По убыванию

сервер НОСЕРВЕР
Поставьте сервер ПУСТОЙСЕРВЕР

CNode НОКНОД
Поставьте CNode ПУСТОЙSETCNODE

Что НОКЕ
Поставьте Что ПУСТОЙ

работа БЕЗРАБОТНЫЙ
Поставьте работа ПУСТОЙ НАБОР

строка НУЛЬСТР

ИДЕНТИФИКАТОР


Идентификаторы (используемые для имен переменных и имен функций) представлены в буквенно-цифровом формате с
разрешен специальный символ подчеркивания (_). В настоящее время BASL может обрабатывать только идентификаторы.
длиной до 80 символов. Кроме того, вы не можете использовать имена констант, определенные BASL, для
присвоение идентификатора.

ОТЧЕТНОСТЬ


In БАСЛ(2), у вас может быть один оператор, заканчивающийся точкой с запятой, или группа
операторы (называемые составными операторами или блоками), разделенные '{' и '}'. Разные
виды операторов, которые могут появиться в коде BASL:

1. выражение выражения
Выражения выражений могут иметь любую форму:

выраж ;

в котором выраж может быть:

а) Арифметические выражения

лекспр + рекспр (Добавить)
лекспр - рекспр (вычесть)
лекспр * рекспр (умножить)
лекспр / рекспр (разделять)
лекспр % рекспр (модуль or остаток)

ПРИМЕЧАНИЕ: сложение, вычитание, умножение, деление и остаток
будет разрешено только для правильных типов, и если левый и правый
выражения имеют непротиворечивые типы. В таблице ниже показано, что
типы согласованы между различными операторами:

Для +:

лекспр рекспр
============ ============
Int or Поплавок Int or Поплавок
Размер Размер
строка строка

За -, *, /:

лекспр рекспр
============ ============
Int or Поплавок Int or Поплавок
Размер Размер

За %:

лекспр рекспр
============ ============
Int or Поплавок Int or Поплавок

Вот несколько примеров операторов арифметических выражений:
Int я1;
Int я2;
Поплавок ф1;
Поплавок ф2;
Размер сз1;
Размер сз2;
строка стр1;
строка стр2;

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

str1 = «базл»;
str2 = " здорово";

// домен после is a string конкатенация
// операция в результате in домен строка:
// "базл здорово"
str1 + стр2;

i1 % 10;

b) Унарные выражения

+ expr // положительный - умножать by 1 an
// выражение который is
// of инт, Плавать, or
// Размер напишите

-выражение // отрицательный - умножать by -1 an
// выражение который is
// of инт, Плавать, or
// Размер напишите

! expr // не - преобразует a ненулевая выраж
// ценностное в 0, и a
// нуль выраж ценностное в 1
// в котором выраж напишите должен be
// of напишите Int or Поплавок

Некоторые примеры унарных выражений:
Int i;

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

c) Логические выражения

лекспр EQ рекспр
лекспр НЭК рекспр
лекспр LT рекспр
лекспр LE рекспр
лекспр GT рекспр
лекспр GE рекспр
лекспр И рекспр
лекспр OR рекспр

лекспр и рекспр должны иметь типы, которые взаимно согласованы, как показано
в следующей таблице:

lterminal-выражение rterminal-expr
============== ==============
Int or Поплавок Int or Поплавок
День недели День недели
DateTime DateTime
строка строка
Размер Размер
сервер сервер
Что Что
работа работа
CNode CNode
Поставьте сервер Поставьте сервер
Поставьте Что Поставьте Что
Поставьте работа Поставьте работа
Поставьте CNode Поставьте CNode

Что касается А ТАКЖЕ, OR операторы, лекспр, рекспр согласованные типы - это Int или
Плавать.

Некоторые примеры логических выражений:

i1 EQ я2;
i1 НЭК ф2;
доу1 LE доу2;
d1 LT д2;
str1 GT стр2;
sz1 GE сз2;

d) Постоператорные выражения
Это выражения, которые являются просто ярлыком для присвоения
заявления.

ИДЕНТИФИКАТОР ++; // идентификатор = идентификатор + 1
ИДЕНТИФИКАТОР--; // идентификатор = идентификатор-1

ИДЕНТИФИКАТОР должен иметь тип Int или Float.

Пример:
Int i;
Поплавок f;

я + +;
ф--;

e) Вызов функции

имя-функции ( arg1 , arg2 ... , аргN )

в котором аргумент1, ..., аргN может быть любой постоянной или переменной. Вы не можете иметь
вызов другой функции в качестве аргумента.
Пример:
Void Распечатать a) {
печать (а);
}

pr(5);

Есть определенные предопределенные функции, которые может написать планировщик.
автоматически вызывает его / ее код BASL без необходимости его определения.
Эти функции называются вспомогательными функциями (или вспомогательными
функции), и они обсуждаются в ПРЕДНАЗНАЧЕН ФУНКЦИИ тема.

е) Константы
Некоторые допустимые постоянные выражения приведены ниже:
5;
+ 1.2;
СОЛНЦЕ;
ПН;
ВТ;
МЫ Б;
ЧТ;
ЛТД;
СИДЕЛ;
(4 | 4 | 1997);
(12:01:00);
(4|4|1997@12:01:00);
"чудесно";
-1б;
СИНКРАН;
АСИНКРУН;
УДАЛИТЬ;
ПОВТОР;
ДЕРЖАТЬ;
ВЫПУСК;
СИГНАЛ;
МОДИФЯТТР;
МОДИФИРЫ;
(1, 3);
(2.3, 4.6);
(СР, ПТ);
((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гб, 50гб);
НОСЕРВЕР;
УЗЕЛ;
НОКА;
БЕЗРАБОТНЫЙ;
ПУСТОЙ СЕРВЕР;
ПУСТОЙ УЗЕЛ;
ПУСТОЙ;
ПУСТОЙ НАБОР;
НУЛЬСТР;
УСПЕХ;
НЕУДАЧА;
СЕРВЕР_АКТИВНЫЙ;
СЕРВЕР_ИДЛЕ;
СЕРВЕР_РАСПИСАНИЕ;
СЕРВЕР_ТЕРМ;
SERVER_TERMDELAY;
КТИП_Е;
КТИП_Р;
SCHED_DISABLED;
SCHED_ENABLED;
ЛОЖНЫЙ;
ПРАВДА;
ТРАНЗИТ;
ОЧЕРЕДИ;
ДЕРЖАЛ;
ОЖИДАЮЩИЙ;
БЕГ;
ВЫХОД;
CNODE_OFFLINE;
CNODE_DOWN;
CNODE_FREE;
CNODE_RESERVE;
CNODE_INUSE_EXCLUSIVE;
CNODE_INUSE_SHARED;
CNODE_TIMESHARED;
CNODE_CLUSTER;
CNODE_НЕИЗВЕСТНО;
ОП_ЭКВ;
ОП_NEQ;
ОП_ЛЕ;
ОП_ЛТ;
ОП_ГЕ;
ОП_ГТ;
ОП_МАКС;
ОП_МИН;

ж) Идентификатор

Пример:
инт я;

i;

2. Заявление о переуступке

ИДЕНТИФИКАТОР = выраж ;

ИДЕНТИФИКАТОР и выраж должны иметь типы, которые взаимно согласованы как
показано в следующей таблице:

идентификатор выраж
=============== ===============
Int инт, Поплавок
Поплавок инт, Поплавок
День недели День недели
DateTime DateTime
строка строка
Размер Размер
Что Что
работа работа
CNode CNode
сервер сервер
День недели День недели
DateTime DateTime
Поставьте сервер Поставьте сервер
Поставьте Что Поставьте Что
Поставьте работа Поставьте работа
Поставьте CNode Поставьте CNode
Диапазон Int Диапазон Int
Диапазон Поплавок Диапазон Поплавок
Диапазон День недели Диапазон День недели
Диапазон DateTime Диапазон DateTime
Диапазон Размер Диапазон Размер

3. если еще заявление
Формат оператора if аналогичен таковому в C с разделителями
"{" и "}" всегда присутствуют:

если( выраж ) {
нуль or БОЛЕЕ (True) ОТЧЕТНОСТЬ
}

если( выраж ) {
нуль or БОЛЕЕ (True) ОТЧЕТНОСТЬ
} еще {
нуль or БОЛЕЕ (ложный) ОТЧЕТНОСТЬ
}

Ассоциация выраж 's тип должен быть либо Int, либо Float, и после оценки, если его
значение не равно нулю, то выполняются истинные операторы. на второй
форма, если выраж равен нулю, затем выполняются ложные утверждения.

Некоторые образцы if заявления приведены ниже:

if (2 * x )
{
y = y + 3;
печать (у);
}

if (2 * x ) {
y = y + 3;
} еще {
если( 3 * x ) {
y = 4;
} еще {
y = 5;
}
}

4. для поиска заявление
Формат оператора for следующий:

для( Начало; тестовое задание; действие ) {
нуль or БОЛЕЕ ОТЧЕТНОСТЬ
}

Как и в C, для первый выполняет Начало , затем оценивает тестXNUMX состояние
чтобы увидеть, возвращает ли он ненулевое значение. Если это так, то для заявления
выполнен. После для операторы выполняются, затем действие оценивается,
а затем проверяет тестXNUMX состояние снова таким же образом, как и раньше.
Начало и действие может быть простым выражением присваивания или постоператором
выражение. тестXNUMX это логическое / относительное выражение. Некоторые образцы для
утверждения приведены в следующем:

для (i = 0; i LT 3 ; i = i + 1)
{
печать (я);
}

для (i = 0; i LT 2 * x; я ++)
{
if (x GT 3)
{
y = 99;
} еще
{
x = 73;
}
}

5. Еогеасп поиска заявление
Этот оператор в основном используется для последовательного извлечения каждого элемента
a Установить тип данных: Установить сервер, Установить CNode, Установить задание, Установить очередь. Синтаксис:

Еогеасп ( ИДЕНТИФИКАТОР1 in ИДЕНТИФИКАТОР2 ) {
нуль or БОЛЕЕ ОТЧЕТНОСТЬ
}

где разрешены следующие пары типов для идентификаторов:

ИДЕНТИФИКАТОР1 ИДЕНТИФИКАТОР2
=========== ===========
сервер Поставьте сервер
Что Поставьте Что
работа Поставьте работа
CNode Поставьте CNode

Пример:
сервер s;
Что q;
работа j;
CNode c;

Поставьте сервер SS;
Поставьте Что кв;
Поставьте работа СЖ;
Поставьте CNode сбн;

foreach (s in SS){
печать (и);
}
foreach (q in sq) {
печать (q);
}
foreach (j in sj) {
печать (j);
}
foreach (c in sc) {
печать (с);
}

6. в то время как поиска заявление
Синтаксис цикла while:

в то время как ( выраж ) {
нуль or БОЛЕЕ ОТЧЕТНОСТЬ
}

в котором выраж должен иметь тип Int или Float. Если выраж отличен от нуля, то нулевой
или больше ОТЧЕТНОСТЬ выполнены и выраж переоценивается.

Пример:
Int i;
i = 3;
в то время как я) {
если( i EQ 0 ) {
print ("перерыв on i = 1 ");
перерыва;
}
я--;
}

7. переключатель заявление
Оператор switch - это многостороннее решение, которое проверяет,
значение идентификатора соответствует одному из нескольких значений и переходит к
группу утверждений соответственно.
Синтаксис оператора switch:

переключатель ( ИДЕНТИФИКАТОР ) {
случаев константа-выражение :
{
нуль or БОЛЕЕ ОТЧЕТНОСТЬ
}
случаев константа-выражение :
{
нуль or БОЛЕЕ ОТЧЕТНОСТЬ
}
...
случаев in константный диапазонOrSet-expr :
{
нуль or БОЛЕЕ ОТЧЕТНОСТЬ
}
случаев in ИДЕНТИФИКАТОР-диапазонOrSettype :
{
нуль or БОЛЕЕ ОТЧЕТНОСТЬ
}
по умолчанию :
{
нуль or БОЛЕЕ ОТЧЕТНОСТЬ
}
}

в котором константа-выражение есть выраж типа Int, Float, Dayofweek, DateTime,
Размер, Строка, Сервер, Очередь, Работа или CNode. константный диапазонOrSet-expr и
ИДЕНТИФИКАТОР-диапазонOrSettype может иметь тип Set Server, Set CNode, Set Que, Set
Job, Range Int, Range Float, Range Dayofweek, Range DateTime или Размер диапазона.

ИДЕНТИФИКАТОР не может быть типа Void. ИДЕНТИФИКАТОР 's тип должен быть последовательным
константа-выражение «S, константный диапазонOrSet-expr «S, и ИДЕНТИФИКАТОР-
диапазонOrSettype 's введите, как показано в следующей таблице:
ИДЕНТИФИКАТОР константа-диапазон-выражение, ИДЕНТИФИКАТОР-тип диапазона
=========== =========================================
сервер Поставьте сервер
Что Поставьте Что
работа Поставьте работа
CNode Поставьте CNode
Int Диапазон Int
Поплавок Диапазон Поплавок
День недели Диапазон День недели
DateTime Диапазон DateTime
Размер Диапазон Размер

Если выражение case соответствует ИДЕНТИФИКАТОР 's значение, то соответствующее
блок операторов. В отличие от C, выполнение НЕ падает
до следующего оператора case. Причина в том, что базл2с будете
переведи это переключатель в конструкцию if-elseif-else. Дело
помеченный по умолчанию выполняется, если ни один из других случаев не удовлетворен. В
по умолчанию необязательно; если его там нет, и если ни один из случаев не соответствует, нет
действие имеет место.

Пример:
День недели доу;

переключатель (доу)
{
случаев пН:
{
print ("case ПН ");
}
случаев вТ:
{
print ("case ВТ »);
}
случаев МЫ Б:
{
print ("case МЫ Б");
}
случаев ЧГ:
{
print ("case ЧТ »);
}
случаев FRI:
{
print ("case ПТ »);
}
случаев СИДЕЛ:
{
print ("case СИДЕЛ");
}
случаев СОЛНЦЕ:
{
print ("case СОЛНЦЕ");
}
по умолчанию:
{
print ("case дефолт ");
}
}

Int a;
Диапазон Int ри;
ri = (10, 12);
переключатель (а)
{
случаев in (1,5):
{
print ("case 1,5 ");
}
случаев in (6,9):
{
print ("case 6,9 ");
}
случаев in ри:
{
print ("case ри ");
}
}

8. Распечатать заявление
Оператор печати может выводить на стандартный вывод значение любого идентификатор
or постоянная типа Int, Float, Dayofweek, DateTime, String, Size, Que, Job,
CNode, сервер, диапазон Int, диапазон с плавающей запятой, диапазон Dayofweek, диапазон DateTime,
Размер диапазона.
Синтаксис следующий:

Распечатать ( ИДЕНТИФИКАТОР );
Распечатать ( постоянная );

Пример:
DateTime дт;
CNode сп;

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

печать (дт);
печать (сп);

Для типов Set используйте Еогеасп чтобы пройти по каждому элементу и распечатать, как в:

сервер s;
Поставьте сервер SS;

ss = AllServersGet ();

foreach (s in сс) {
печать (и);
}

9. Продолжить заявление

продолжать ;

Ассоциация продолжать оператор должен был быть вызван в для, для каждого, и
в то время как петля. Это вызывает начало следующей итерации охватывающего цикла.

10. оператор перерыва

перерыв ;

Ассоциация перерыв оператор должен был быть вызван в для, для каждого, и в то время как
петля. Обеспечивает ранний выход из замкнутого цикла.

11. заявление о возврате

возврат (ИДЕНТИФИКАТОР) ;
возврат (константа) ;
возвращение() ;

Оператор return предоставляет значение (если есть), которое должно быть возвращено
функция. Тип, возвращаемый ИДЕНТИФИКАТОР и постоянная должен соответствовать
тип возвращаемого значения вызывающей функции. постоянная допустимые типы - все, кроме
Типы Set и Range. Последний формат, возвращение() обычно вызывается в
функция, которая не возвращает никакого значения (например, sched_main () ).

12. Заявление о выходе

выход (константа);

в котором постоянная имеет тип Int. Вызов этого завершит работу планировщика.

13. Заявление о комментарии
Это операторы с префиксом "//", которые игнорируются BASL.
компилятор.

// этой линия is игнорируются
Int i; // string после домен косые is игнорируются

ОПЕРАТОР ПРЕДИСЛОВИЕ И АССОЦИАЦИЯ


В следующей таблице показаны различные уровни приоритета операторов и определенная ассоциативность.
на языке BASL. Операторы перечислены в порядке убывания приоритета. В
чем выше приоритет оператора, тем раньше он выполняется. Порядок, в котором
операторы на одном уровне выполняются в зависимости от ассоциативности: слева означает
операторы видны слева направо, а справа означает, что они видны справа налево.

оператор Ассоциативность
======================================= =============
! ++ -- + (унарный плюс) - (унарный минус) правую
* / % оставил
+ - оставил
LT LE GT GE оставил
EQ НЭК оставил
И оставил
OR оставил
= правую

ПРЕДНАЗНАЧЕН ФУНКЦИИ


In БАСЛ(2), сервер тип данных отображается непосредственно на объект пакетного сервера. Так же, CNode
маме / ресму, работа это пакетная работа, и Что это пакетная очередь. Тем не менее, не все
Доступ к атрибутам объектов PBS можно получить из BASL. Только подмножество атрибутов,
те, которые казались логичными в контексте планировщика, стали доступными, и
к значениям этих атрибутов можно получить доступ, вызвав следующие предопределенные функции,
также известные как вспомогательные / вспомогательные функции.

(1) Функции, связанные с сервером

Поставьте сервер AllServersGet (недействительно)
Возвращает список серверов, указанных в файле конфигурации для
который разработчик планировщика хочет, чтобы система периодически проверяла наличие
информация о статусе, очередях и вакансиях. Видеть pbs__sched__basl(8В) для
обсуждение формата файла конфигурации.
ВНИМАНИЕ: эту функцию необходимо вызывать изнутри. sched_main () so
что на каждой итерации планирования самые свежие Поставьте сервер
структура возвращается.

сервер AllServersLocalHostGet (недействительно)
Возвращает объект Server, представляющий локальный хост. неустановленное значение:
НОСЕРВЕР. Это простая функция для вызова некластерных сред
где существует только один хост-сервер.
ВНИМАНИЕ: эту функцию необходимо вызывать изнутри. sched_main () (или из
внутри функции, вызываемой sched_main), чтобы при каждом планировании
итерация, самая актуальная сервер структура возвращается.

строка ServerInetAddrGet (Сервер s)
Возвращает имя для Server s. неустановленное значение: NULLSTR

строка ServerDefQueGet (Сервер s)
Возвращает атрибут default_queue сервера s. неустановленное значение: NULLSTR

Int ServerStateGet (Сервер s)
Возвращает атрибут server_state для Server s.

Возвращаемое значение:
SERVER_ACTIVE, SERVER_IDLE, SERVER_SCHED, SERVER_TERM,
SERVER_TERMDELAY, -1 (неустановленное значение)

Int ServerMaxRunJobsGet (Сервер s)
Возвращает атрибут max_running сервера s. неустановленное значение: 0

Int ServerMaxRunJobsPerUserGet (Сервер s)
Возвращает атрибут max_user_run сервера s. неустановленное значение: 0

Int ServerMaxRunJobsPerGroupGet (Сервер s)
Возвращает атрибут max_group_run сервера s. неустановленное значение: 0

Поставьте Что ServerQueuesGet (Сервер s)
Возвращает список очередей, управляемых Server s.

Поставьте работа ServerJobsGet (Сервер s)
Возвращает список заданий, управляемых Server s. Для получения подмножества этого
список, см. QueJobsGet ().

Int ServerIntResAvailGet (Сервер s, строка название)
Возвращает значение ресурса, указанного в имя что доступно для работы
запущен этим сервером (Сервер ресурсы_доступные.имя атрибут). Назовите это
функция для ресурсов со значениями типа Int. Образец ресурса
имена: cput, pcput, walltime, mppt, pmppt, nice, procs, mppe, ncpus,
pncpus, nodect, srfs_assist, mta, ..., mth. Для описания этих
имена ресурсов, см. pbs_resources_irix5(7В), pbs_resources_sp2(7В),
pbs_resources_sunos4(7В), pbs_resources_unicos8(7В),
pbs_server_attributes(7В), pbs_resources_irix6(7В),
pbs_resources_linux(7В).

Пример:
Int доступный процессор;
// возвращают домен # of процессоры в настоящее время доступен in
// домен сервер
cpuAvail = ServerIntResAvailGet (сервер, «ncpus»);

Размер ServerSizeResAvailGet (Сервер s, строка название)
Возвращает значение ресурса, указанного в имя что доступно для работы
запущен этим сервером (Сервер ресурсы_доступные.имя атрибут). Назовите это
функция для ресурсов со значениями типа Размер. Образец ресурса
имена: файл, mem, pmem, рабочий набор, pf, ppf, srfs_tmp, srfs_wrk,
srfs_big, srfs_fast, sds, psds. Для описания этого ресурса
имена, см pbs_resources_irix5(7В), pbs_resources_sp2(7В),
pbs_resources_sunos4(7В), pbs_resources_unicos8(7В),
pbs_server_attributes(7В), pbs_resources_irix6(7В),
pbs_resources_linux(7В).

Пример:
Размер доступ к памяти;
// возвращают домен количество of доступен Память in
// домен сервер
доступ к памяти = ServerSizeResAvailGet (сервер, "мем");

строка ServerStringResAvailGet (Сервер s, строка название)
Возвращает значение ресурса, указанного в имя что доступно для работы
запущен этим сервером (Сервер ресурсы_доступные.имя атрибут). Назовите это
функция для ресурсов со значениями типа String. Образец
Имена ресурсов: узлы, арка, нужды. Для описания этих
имена ресурсов, см. pbs_resources_irix5(7В), pbs_resources_sp2(7В),
pbs_resources_sunos4(7В), pbs_resources_unicos8(7В),
pbs_server_attributes(7В), pbs_resources_irix6(7В),
pbs_resources_linux(7В).

Пример:
строка тип;
// возвращают домен архитектура (или os типа) of
// домен сервер
напишите = ServerStringResAvailGet (сервер, «арка»);

Int ServerIntResAssignGet (Сервер s, строка название)
Возвращает значение ресурса, указанного в имя который выделяется
запущенные задания (Сервер resources_assigned.name атрибут). Назовите это
функция для ресурсов со значениями типа Int. Образец ресурса
имена: cput, pcput, walltime, mppt, pmppt, nice, procs, mppe, ncpus,
pncpus, nodect, srfs_assist, mta, ..., mth. Для описания этих
имена ресурсов, см. pbs_resources_irix5(7В), pbs_resources_sp2(7В),
pbs_resources_sunos4(7В), pbs_resources_unicos8(7В),
pbs_server_attributes(7В), pbs_resources_irix6(7В),
pbs_resources_linux(7В).

Пример:
Int центральный процессор;
// возвращают домен # of процессоры в настоящее время назначенный in
// домен сервер
cpuAssn = ServerIntResAssignGet (сервер, «ncpus»);

Размер ServerSizeResAssignGet (Сервер s, строка название)
Возвращает значение ресурса, указанного в имя который выделяется
запущенные задания (Сервер resources_assigned.name атрибут). Назовите это
функция для ресурсов со значениями типа Размер. Образец ресурса
имена: файл, mem, pmem, рабочий набор, pf, ppf, srfs_tmp, srfs_wrk,
srfs_big, srfs_fast, sds, psds. Для описания этого ресурса
имена, см pbs_resources_irix5(7В), pbs_resources_sp2(7В),
pbs_resources_sunos4(7В), pbs_resources_unicos8(7В),
pbs_server_attributes(7В), pbs_resources_irix6(7В),
pbs_resources_linux(7В).

Пример:
Размер сдсАссн;
// возвращают домен количество of SDS космосе в настоящее время назначенный
// in домен сервер
sdsAssn = ServerSizeResAssignGet (сервер, "sds");

строка ServerStringResAssignGet (Сервер s, строка название)
Возвращает значение ресурса, указанного в имя который выделяется
запущенные задания (Сервер resources_assigned.name атрибут). Назовите это
функция для ресурсов со значениями типа String. Образец
Имена ресурсов: узлы, арка, нужды. Для описания этих
имена ресурсов, см. pbs_resources_irix5(7В), pbs_resources_sp2(7В),
pbs_resources_sunos4(7В), pbs_resources_unicos8(7В),
pbs_server_attributes(7В), pbs_resources_irix6(7В),
pbs_resources_linux(7В).

Поставьте CNode ServerNodesGet (Сервер s)
Возвращает набор узлов, управляемых серверами. неустановленное значение: EMPTYSETCNODE.
ПРИМЕЧАНИЕ. Обычно для возвращаемых узлов можно вызывать следующие функции.
этим вызовом: CNodeStateGet (), CNodePropertiesGet () и CNodeTypeGet ().

Int ServerNodesQuery (Сервер s, строка спецификации)
Выдает запрос на указанный сервер, чтобы узнать о доступности
ресурсы, указанные в спекуляция В настоящее время единственный ресурс
разрешенная спецификация - это та, которая включает "узлы", и может быть
формат "узлы", "узлы =" или "узлы =" ". Результаты запроса могут быть
доступ осуществляется путем вызова следующих функций: ServerNodesNumAvailGet (),
ServerNodesNumAllocGet (), ServerNodesNumRsvdGet (),
ServerNodesNumDownGet ().
ПРИМЕЧАНИЕ. Это оболочка для pbs_rescquery(3B) серверная функция.

Возвращаемое значение:
УСПЕХ, НЕИСПРАВНОСТЬ

Int ServerNodesNumAvailGet (Сервер s)
Возвращает количество узлов, доступных для тех, которыми управляет указанный
сервер, или как отражено в самом последнем запросе, указанном
ServerNodesQuery (). Если возвращаемое значение равно нулю, это означает, что
некоторое количество узлов в настоящее время необходимо для удовлетворения спецификации
ServerNodesQuery () в настоящее время недоступны. Запрос может быть удовлетворен
когда-нибудь позже. Если результат отрицательный, комбинация известных
узлы могут соответствовать спецификации.

Int ServerNodesNumAllocGet (Сервер s)
Возвращает количество узлов, выделенных для тех, которыми управляет указанный
сервер, или как отражено в самом последнем запросе, указанном
ServerNodesQuery ().

Int ServerNodesNumRsvdGet (Сервер s)
Возвращает количество узлов, зарезервированных для тех, которыми управляет указанный
сервер, или как отражено в самом последнем запросе, указанном
ServerNodesQuery ().

Int ServerNodesNumDownGet (Сервер s)
Возвращает количество отключенных узлов для тех, которыми управляет указанный
сервер, или как отражено в самом последнем запросе, указанном
ServerNodesQuery ().

Int ServerNodesReserve (Сервер s, Строка spec, Int остаток)
Выдает запрос указанному серверу на резервирование ресурсов.
указано в спекуляция Значение 0 для оставшийся означает, что это для выполнения
новое бронирование. В противном случае число будет представлять собой существующий
(частичное) резервирование. Ресурсы в настоящее время зарезервированы для этого оставшийся будете
будет разблокирован, и будет предпринята повторная попытка полного резервирования. На
в настоящее время единственными ресурсами, которые могут быть указаны, являются
«узлы». Его следует указать как узлы = спецификация в котором
спецификация - это то, что пользователь указывает в списке аргументов опции -l
для узлов см. qsub (1B).
ПРИМЕЧАНИЕ. Это оболочка для pbs_rescreserve(3B) серверная функция.

Возвращаемое значение:
номер ссылки на успешный или частично успешный
бронирование, или ОТКАЗ

Int ServerNodesRelease (Сервер s, Int остаток)
Это высвобождает или освобождает ресурсы, зарезервированные с помощью ссылочного номера.
указано в резид.
ПРИМЕЧАНИЕ. Это оболочка для pbs_rescrelease(3B) серверная функция.

Возвращаемое значение:
УСПЕХ или НЕУДАЧА

(2) Функции, связанные с очередью:

строка QueNameGet ( Что что )
Возвращает имя Que que. неустановленное значение: NULLSTR

Int QueTypeGet ( Что что )
Возвращает атрибут queue_type очереди очереди.
Возвращаемое значение: QTYPE_E (выполнение), QTYPE_R (маршрутизация), -1 (не установлено
стоимость)

Int QueNumJobsGet ( Что что )
Возвращает количество заданий, находящихся в очереди Que. неустановленное значение: 0

Int QueMaxRunJobsGet ( Что что )
Возвращает атрибут max_running очереди очереди. неустановленное значение: 0

Int QueMaxRunJobsPerUserGet ( Что что )
Возвращает атрибут max_user_run очереди очереди. неустановленное значение: 0

Int QueMaxRunJobsPerGroupGet ( Что что )
Возвращает атрибут max_group_run очереди очереди. неустановленное значение: 0

Int QuePriorityGet ( Что что )
Возвращает атрибут приоритета очереди очереди. неустановленное значение: 0

Int QueStateGet ( Что что )
Возвращает начатый атрибут очереди очереди - выбор выполнения задания
состояние очереди: SCHED_DISABLED, SCHED_ENABLED. неустановленное значение:
SCHED_DISABLED

Поставьте работа QueJobsGet ( Что что )
Возвращает список заданий, находящихся в данный момент в очереди.

Int QueIntResAvailGet (Que q, строка название)
Возвращает значение ресурса, указанного в имя это доступно для
задания, выполняющиеся из этого q (Que ресурсы_доступные.имя атрибут).
Вызовите эту функцию для ресурсов со значениями типа Int.
Примеры имен ресурсов: cput, pcput, walltime, mppt, pmppt, nice,
procs, mppe, ncpus, pncpus, nodect, srfs_assist, mta, ..., mth. Для
описание этих имен ресурсов см. pbs_resources_irix5(7В),
pbs_resources_sp2(7В), pbs_resources_sunos4(7В),
pbs_resources_unicos8(7В), pbs_server_attributes(7В),
pbs_resources_irix6(7В), pbs_resources_linux(7В).

Размер QueSizeResAvailGet (Que q, строка название)
Возвращает значение ресурса, указанного в имя это доступно для
задания, выполняющиеся из этого q (Que ресурсы_доступные.имя атрибут).
Вызовите эту функцию для ресурсов со значениями типа Size.
Примеры имен ресурсов: file, mem, pmem, workingset, pf, ppf,
srfs_tmp, srfs_wrk, srfs_big, srfs_fast, sds, psds. Для описания
об этих именах ресурсов см. pbs_resources_irix5(7В),
pbs_resources_sp2(7В), pbs_resources_sunos4(7В),
pbs_resources_unicos8(7В), pbs_server_attributes(7В),
pbs_resources_irix6(7В), pbs_resources_linux(7В).

строка QueStringResAvailGet (Que q, строка название)
Возвращает значение ресурса, указанного в имя это доступно для
задания, выполняющиеся из этого q (Que ресурсы_доступные.имя атрибут).
Вызовите эту функцию для ресурсов со значениями типа String.
Примеры имен ресурсов: узлы, арка, нужды. Для описания
об этих именах ресурсов см. pbs_resources_irix5(7В),
pbs_resources_sp2(7В), pbs_resources_sunos4(7В),
pbs_resources_unicos8(7В), pbs_server_attributes(7В),
pbs_resources_irix6(7В), pbs_resources_linux(7В).

Int QueIntResAssignGet (Que q, строка название)
Возвращает значение ресурса, указанного в имя который выделяется
задания, выполняющиеся из этой очереди (Que resources_assigned.name атрибут).
Вызовите эту функцию для ресурсов со значениями типа Int.
Примеры имен ресурсов: cput, pcput, walltime, mppt, pmppt, nice,
procs, mppe, ncpus, pncpus, nodect, srfs_assist, mta, ..., mth. Для
описание этих имен ресурсов см. pbs_resources_irix5(7В),
pbs_resources_sp2(7В), pbs_resources_sunos4(7В),
pbs_resources_unicos8(7В), pbs_server_attributes(7В),
pbs_resources_irix6(7В), pbs_resources_linux(7В).

Размер QueSizeResAssignGet (Que q, строка название)
Возвращает значение ресурса, указанного в имя который выделяется
задания, выполняющиеся из этого q (Que resources_assigned.name атрибут).
Вызовите эту функцию для ресурсов со значениями типа Size.
Примеры имен ресурсов: file, mem, pmem, workingset, pf, ppf,
srfs_tmp, srfs_wrk, srfs_big, srfs_fast, sds, psds. Для описания
об этих именах ресурсов см. pbs_resources_irix5(7В),
pbs_resources_sp2(7В), pbs_resources_sunos4(7В),
pbs_resources_unicos8(7В), pbs_server_attributes(7В),
pbs_resources_irix6(7В), pbs_resources_linux(7В).

строка QueStringResAssignGet (Que q, строка название)
Возвращает значение ресурса, указанного в имя который выделяется
задания, выполняющиеся из этого q (Que resources_assigned.name атрибут).
Вызовите эту функцию для ресурсов со значениями типа String.
Примеры имен ресурсов: узлы, арка, нужды. Для описания
об этих именах ресурсов см. pbs_resources_irix5(7В),
pbs_resources_sp2(7В), pbs_resources_sunos4(7В),
pbs_resources_unicos8(7В), pbs_server_attributes(7В),
pbs_resources_irix6(7В), pbs_resources_linux(7В).

(3) Функции, связанные с работой

строка JobIdGet ( работа работа )
Возвращает идентификатор работы Job job. неустановленное значение: NULLSTR

строка JobNameGet ( работа работа )
Возвращает атрибут Job_Name задания Job. неустановленное значение: NULLSTR

строка JobOwnerNameGet ( работа работа )
Возвращает атрибут Job_Owner задания Job. неустановленное значение: NULLSTR

строка JobEffectiveUserNameGet ( работа работа)
Возвращает атрибут euser задания Job.

строка JobEffectiveGroupNameGet (Задание работа)
Возвращает атрибут egroup задания Job. неустановленное значение: NULLSTR

Int JobStateGet ( работа работа )
Возвращает атрибут job_state задания Job.

Возвращаемое значение:
TRANSIT, QUEUED, HELD, WAITING, RUNNING, EXITING, -1 (не установлено
стоимость)

Int JobPriorityGet ( работа работа )
Возвращает атрибут приоритета задания. неустановленное значение: 0

Int JobRerunFlagGet ( работа работа )
Возвращает атрибут Rerunable задания Job.
Возвращаемое значение: FALSE, TRUE, -1 (неустановленное значение)

Int JobInteractiveFlagGet ( работа работа )
Возвращает интерактивный атрибут задания Job.
Возвращаемое значение: ЛОЖЬ, ИСТИНА. неустановленное значение: FALSE

DateTime JobDateTimeCreatedGet (Задание работа)
Возвращает атрибут ctime задания Job. неустановленное значение:
(0|0|0@-1:-1:-1)

строка JobEmailAddrGet ( работа работа )
Возвращает атрибут Mail_Users задания Job. неустановленное значение: NULLSTR

строка JobStageinFilesGet ( работа работа )
Возвращает атрибут stagein задания Job. неустановленное значение: NULLSTR

строка JobStageoutFilesGet ( работа работа )
Возвращает атрибут stageout задания Job. неустановленное значение: NULLSTR

Int JobIntResReqGet (Задание работа, строка название)
Возвращает значение ресурса, указанного в имя в соответствии с требованиями
работа (Работа Список_ресурсов.имя атрибут). Вызовите эту функцию для
ресурсы со значениями типа Int. Примеры имен ресурсов
это: cput, pcput, walltime, mppt, pmppt, nice, procs, mppe, ncpus,
pncpus, nodect, srfs_assist, mta, ..., mth. Для описания этих
имена ресурсов, см. pbs_resources_irix5(7В), pbs_resources_sp2(7В),
pbs_resources_sunos4(7В), pbs_resources_unicos8(7В),
pbs_server_attributes(7В), pbs_resources_irix6(7В),
pbs_resources_linux(7В).

Пример:
Int cпутReq;
// Возвращает домен cput требование of домен работа
cputReq = JobIntResReqGet (задание, "cput");

Размер JobSizeResReqGet (Задание работа, строка название)
Возвращает значение ресурса, указанного в имя в соответствии с требованиями
работа (Работа Список_ресурсов.имя атрибут). Вызовите эту функцию для
ресурсы со значениями типа Размер. Примеры имен ресурсов
это: файл, mem, pmem, рабочий набор, pf, ppf, srfs_tmp, srfs_wrk,
srfs_big, srfs_fast, sds, psds. Для описания этого ресурса
имена, см pbs_resources_irix5(7В), pbs_resources_sp2(7В),
pbs_resources_sunos4(7В), pbs_resources_unicos8(7В),
pbs_server_attributes(7В), pbs_resources_irix6(7В),
pbs_resources_linux(7В).

Пример:
Размер мемРек;
// Возвращает домен Память требование of домен работа
мемрек = JobSizeResReqGet (задание, "мем");

строка JobStringResReqGet (Задание работа, строка название)
Возвращает значение ресурса, указанного в имя в соответствии с требованиями
работа (Работа Список_ресурсов.имя атрибут). Вызовите эту функцию для
ресурсы со значениями типа String. Примеры имен ресурсов
являются: узлы, арка, нужды узлов. Для описания этого ресурса
имена, см pbs_resources_irix5(7В), pbs_resources_sp2(7В),
pbs_resources_sunos4(7В), pbs_resources_unicos8(7В),
pbs_server_attributes(7В), pbs_resources_irix6(7В),
pbs_resources_linux(7В).

Пример:
строка узлы;
// Возвращает домен узлы требование собственность of
// домен работа
узлы = JobStringResReqGet (задание, «узлы»);

Int JobIntResUseGet (Задание работа, строка название)
Возвращает значение ресурса, указанного в имя используется работой (Job
resources_used.имя атрибут). Вызовите эту функцию для ресурсов с
значения типа Int. Примеры имен ресурсов: cput, pcput,
walltime, mppt, pmppt, красиво, procs, mppe, ncpus, pncpus, nodect,
srfs_assist, mta, ..., mth. Для описания этих имен ресурсов,
посмотреть pbs_resources_irix5(7В), pbs_resources_sp2(7В),
pbs_resources_sunos4(7В), pbs_resources_unicos8(7В),
pbs_server_attributes(7В), pbs_resources_irix6(7В),
pbs_resources_linux(7В).

Пример:
Int использование стены;
// Возвращает домен количество of настенное время используемый by
// домен работа
WallTИспользовать = JobIntResUseGet (задание, "настенное время");

Размер JobSizeResUseGet (Задание работа, строка название)
Возвращает значение ресурса, указанного в имя используется работой (Job
resources_used.имя атрибут). Вызовите эту функцию для ресурсов с
значения типа Размер. Примеры имен ресурсов: file, mem,
pmem, рабочий набор, pf, ppf, srfs_tmp, srfs_wrk, srfs_big, srfs_fast,
sds, psds. Описание этих имен ресурсов см.
pbs_resources_irix5(7В), pbs_resources_sp2(7В),
pbs_resources_sunos4(7В), pbs_resources_unicos8(7В),
pbs_server_attributes(7В), pbs_resources_irix6(7В),
pbs_resources_linux(7В).

Пример:
Размер использование srfs;
// Возвращает домен количество of srfs_fast используемый by
// домен работа
srfsИспользовать = JobSizeResUseGet (задание, "srfs_fast");

строка JobStringResUseGet (Задание работа, строка название)
Возвращает значение ресурса, указанного в имя используется работой (Job
resources_used.имя атрибут). Вызовите эту функцию для ресурсов с
значения типа String. Примеры имен ресурсов: узлы,
арка, нужды. Описание этих имен ресурсов см.
pbs_resources_irix5(7В), pbs_resources_sp2(7В),
pbs_resources_sunos4(7В), pbs_resources_unicos8(7В),
pbs_server_attributes(7В), pbs_resources_irix6(7В),
pbs_resources_linux(7В).

(4) Функции, связанные с CNode

Поставьте CNode AllNodesGet (недействительно)
Возвращает список узлов, которыми управляет сервер, работающий на
локальный хост. Это также может включать те узлы, которые были указаны
в файле конфигурации планировщика, для которого средство записи планировщика
хочет, чтобы система периодически проверяла такую ​​информацию, как состояние,
собственность и так далее. Видеть pbs_sched_basl(8В) для обсуждения
формат файла конфигурации.
ВНИМАНИЕ: эту функцию необходимо вызывать изнутри. sched_main () so
что на каждой итерации планирования самые свежие Поставьте CNode
структура возвращается. Не вызывайте это из оператора присваивания
предназначен для инициализации глобальной переменной, так как оператор будет только
позвонить один раз.

CNode AllNodesLocalHostGet (недействительно)
Возвращает объект CNode, представляющий локальный хост. Это
простая функция для вызова некластеризованных систем, где только 1 CNode
существуют. неустановленное значение: NOCNODE
ВНИМАНИЕ: эту функцию необходимо вызывать изнутри. sched_main () (или
изнутри функций, вызываемых sched_main), чтобы на каждом
итерация по расписанию, самая актуальная CNode структура
вернулся. Не вызывайте это из оператора присваивания, предназначенного для
инициализировать глобальную переменную, так как оператор будет вызываться только
один раз.

строка CNodeNameGet (CNode узел)
Возвращает уникальное (официальное) имя узла (например, имя хоста ResMom.
в модели 1 м / узел). Это возвращает ту же строку, которая была
указанный в конфигурационном файле. неустановленное значение: NULLSTR

строка CNodeOsGet (CNode узел)
Возвращает архитектуру операционной системы узла (например, irix5, sp2). сброшен
значение: NULLSTR

Int CNodeStateGet ( CNode узел )
Возвращает состояние узла.

Возвращаемое значение:
CNODE_OFFLINE, CNODE_DOWN, CNODE_FREE, CNODE_RESERVE,
CNODE_INUSE_EXCLUSIVE, CNODE_INUSE_SHARED, CNODE_UNKNOWN

Int CNodeTypeGet ( CNode узел )
Возвращает тип узла.

Возвращаемое значение:
CNODE_TIMESHARED, CNODE_CLUSTER, CNODE_UNKNOWN

строка CNodePropertiesGet (CNode узел)
Возвращает список других имен, разделенных запятыми, под которыми известен узел.
(свойства, другое сетевое имя). Например,
"babbage.OpenPBS.org" может быть имя узла, но он также может быть известен
через "баббидж1, баббидж2". неустановленное значение: NULLSTR

строка CNodeVendorGet (CNode узел)
Возвращает имя поставщика аппаратного обеспечения машины (т. Е.
"sgi", "ibm"). неустановленное значение: NULLSTR

Int CNodeNumCpusGet (CNode узел)
Возвращает количество процессоров, подключенных к узлу. неустановленное значение:
-1

Размер CNodeMemTotalGet ( CNode узел, строка напишите )
Возвращает общую память напишите для узла. напишите произвольно
строка, которую писатель планировщика определяет в планировщике
конфигурационный файл. неустановленное значение: -1b
Пример:
// получить общий физический Память
CNodeMemTotalGet (узел, "настоящий")
// получить общий виртуальный Память
CNodeMemTotalGet (узел, "виртуальный")

Размер CNodeMemAvailGet ( CNode узел, строка напишите )
Возвращает доступную память напишите для узла. напишите произвольно
строка, которую писатель планировщика определяет в планировщике
конфигурационный файл. неустановленное значение: -1b
Итак, образцы вызовов будут:
// получить доступен физический Память
CNodeMemAvailGet (узел, "настоящий")
// получить доступен виртуальный Память
CNodeMemAvailGet (узел, "виртуальный")

Int CNodeIdletimeGet ( CNode узел )
Возвращает количество секунд, в течение которых не выполнялось нажатие клавиши или движение мыши.
происходит на любом терминале, подключенном к узлу. неустановленное значение: -1

Поплавок CNodeLoadAveGet ( CNode узел )
Возвращает среднюю загрузку узла для всех процессоров. неустановленное значение: -1.0

Int CNodeCpuPercentIdleGet ( CNode узел )
Возвращает процент времени простоя, в течение которого все процессоры узла
испытали.

Int CNodeCpuPercentSysGet ( CNode узел )
Возвращает процент времени, в течение которого все процессоры узла имеют.
потратил на выполнение кода ядра.

Int CNodeCpuPercentUserGet ( CNode узел )
Возвращает процент времени, в течение которого все процессоры узла имеют.
потратил на выполнение пользовательского кода.

Int CNodeCpuPercentGuestGet ( CNode узел )
Возвращает процент времени, в течение которого все процессоры узла имеют.
потратил на работу гостевой операционной системы.

Int CNodeNetworkBwGet ( CNode узел, строка напишите )
Возвращает пропускную способность сети узла напишите в байтах в секунду.
напишите определяется писателем планировщика в планировщике
конфигурационный файл. неустановленное значение: -1
Вот несколько примеров вызовов:
CNodeNetworkBwGet ( узел, "хиппи" );
CNodeNetworkBwGet ( узел, "fddi" );

Размер CNodeDiskSpaceTotalGet (CNode узел, строка название)
Возвращает общее пространство узла на диске, обозначенное как имя в котором имя
имя устройства, произвольно определенное автором планировщика в
файл конфигурации планировщика. неустановленное значение: -1b
Пример:
CNodeDiskSpaceTotalGet ( узел, "/ царапина2" );

Размер CNodeDiskSpaceAvailGet (CNode узел, строка название)
Возвращает доступное пространство узла на диске, обозначенном имя в котором
имя произвольно определяется писателем планировщика в планировщике
конфигурационный файл. неустановленное значение: -1b
Пример:
CNodeDiskSpaceAvailGet ( узел, "/ царапина1" );

Размер CNodeDiskSpaceReservedGet (CNode узел, строка название)
Возвращает зарезервированное пространство узла на диске (пользовательская квота?), Идентифицированное
имя в котором имя произвольно определяется автором планировщика в
файл конфигурации планировщика. неустановленное значение: -1b
Пример:
CNodeDiskSpaceReservedGet ( узел, "/ царапина1" );

Int CNodeDiskInBwGet ( CNode узел, строка имя )
Возвращает полосу пропускания записи (байтов / сек) идентифицированного диска узла.
by имя . неустановленное значение: -1
Пример:
CNodeDiskInBwGet ( узел, "/быстрый" );

Int CNodeDiskOutBwGet ( CNode узел, строка имя )
Возвращает полосу пропускания чтения (байтов / сек) диска узла, идентифицированного
имя . неустановленное значение: -1
Пример:
CNodeDiskOutBwGet ( узел, "/большой" );

Размер CNodeSwapSpaceTotalGet ( CNode узел, строка имя )
Возвращает общее пространство узла в свопинге, идентифицированном имя в котором имя
произвольно определяется писателем планировщика в планировщике
конфигурационный файл. неустановленное значение: -1b
Пример:
CNodeSwapSpaceTotalGet ( узел, "начальный" );

Размер CNodeSwapSpaceAvailGet ( CNode узел, строка имя )
Возвращает доступное пространство узла на свопе, идентифицированном имя в котором имя
имя устройства, произвольно определенное автором планировщика в
файл конфигурации планировщика. неустановленное значение: -1b
Пример:
CNodeSwapSpaceAvailGet ( узел, "вторичный" );

Int CNodeSwapInBwGet ( CNode узел, строка имя )
Возвращает скорость подкачки устройства подкачки узла, идентифицированного имя.
Пример:
CNodeSwapInBwGet (узел, «вторичный»);

Int CNodeSwapOutBwGet ( CNode узел, строка имя )
Возвращает скорость подкачки устройства подкачки узла, идентифицированного
имя. неустановленное значение: -1
Пример:
CNodeSwapOutBwGet (узел, "начальный");

Размер CNodeTapeSpaceTotalGet ( CNode узел, строка имя )
Возвращает общее пространство узла на ленте, обозначенное как имя в котором имя
произвольно определяется писателем планировщика в планировщике
конфигурационный файл. неустановленное значение: -1b
Пример:
CNodeTapeSpaceTotalGet (узел, «4мм»);

Размер CNodeTapeSpaceAvailGet ( CNode узел, строка имя )
Возвращает доступное пространство узла на ленте, обозначенное как имя в котором
имя произвольно определяется писателем планировщика в планировщике
конфигурационный файл. неустановленное значение: -1b
Пример:
CNodeTapeSpaceAvailGet (узел, «8 мм»);

Int CNodeTapeInBwGet ( CNode узел, строка имя )
Возвращает полосу пропускания записи (байтов / сек) идентифицированной ленты узла.
by имя . неустановленное значение: -1
Пример:
CNodeTapeInBwGet ( узел, «4мм» );

Int CNodeTapeOutBwGet ( CNode узел, строка имя )
Возвращает полосу пропускания чтения (байтов / сек) идентифицированной ленты узла.
by имя . неустановленное значение: -1
Пример:
CNodeTapeOutBwGet ( узел, «8мм» );

Размер CNodeSrfsSpaceTotalGet ( CNode узел, строка имя )
Возвращает общее пространство узла на устройстве srfs, идентифицированном имя
в котором имя произвольно определяется автором планировщика в
файл конфигурации планировщика. неустановленное значение: -1b
Пример:
CNodeSrfsSpaceTotalGet (узел, "/быстрый");

Размер CNodeSrfsSpaceAvailGet ( CNode узел, строка имя )
Возвращает доступное пространство узла на устройстве srfs, идентифицированном имя
в котором имя произвольно определяется автором планировщика в некоторых
конфигурационный файл. неустановленное значение: -1b
Пример:
CNodeSrfsSpaceAvailGet ( узел, "/большой" );

Размер CNodeSrfsSpaceReservedGet (CNode узел, строка название)
Возвращает общий объем зарезервированного пространства узла на устройстве srfs.
идентифицировано имя в котором имя произвольно определяется планировщиком
Writer в файле конфигурации планировщика. неустановленное значение: -1b
Пример:
CNodeSrfsSpaceReservedGet ( узел, "/быстрый" );

Int CNodeSrfsInBwGet ( CNode узел, строка имя )
Возвращает полосу пропускания записи (байтов / сек) устройства srfs узла.
идентифицировано имя . неустановленное значение: -1
Пример:
CNodeSrfsInBwGet (узел, «/ быстро»);

Int CNodeSrfsOutBwGet ( CNode узел, строка имя )
Возвращает полосу пропускания чтения (байтов / сек) устройства srfs узла.
идентифицировано имя . неустановленное значение: -1
Пример:
CNodeSrfsOutBwGet (узел, «/ большой»);

(5) Разные функции

DateTime datetimeGet ()
получает текущую дату / время.

Int datetimeToSecs (DateTime дт)
возвращает количество секунд с начала эпохи (начало времени UNIX -
00:00:00, 1 января 1970 г.) на указанную дату / время. дт.

Int JobAction ( работа работа, Int действие, строка остановить )
Выполняет действие on работа с остановить указывается в зависимости от
действия. действие может быть: SYNCRUN, ASYNCRUN, DELETE, RERUN, HOLD,
RELEASE, SIGNAL, MODIFYATTR, MODIFYRES где:
Действие Описание
=============== ==========================
СИНКРАН работает домен работа синхронно,
смысл домен призывают в
JobAction () будете только
возвращают когда домен работа и
и политические лидеры Бег or когда
an ошибка и было
встречается.
Param значение:
имя of хост (ы) в пробег
работа под.

АСИНКРУН работает домен работа асинхронно,
смысл домен призывают в
JobAction () будете возвращают
немедленно as скоро as
домен пробег запросить is
подтверждено by домен PBS сервер,
и не обязательно когда
домен работа и и политические лидеры
выполнение.
Param значение:
имя of хост (ы) в пробег
работа под.

УДАЛИТЬ удалений домен работу.
Param значение:
"deldelay = <# of сек> "
- задерживать # of секунды
между домен отправка
of СИГТЕРМ и СИГКИЛЛ
в домен работа до
получающий удален.

ПОВТОР повторы домен Бег работа,
который включает в себя терминатор
домен Сессия лидер of домен
работа и возвращение домен работа
в домен очередь состоянии.

ДЕРЖАТЬ мест one or БОЛЕЕ имеет
on домен работу.
Param значение:
"u", "о", "с", "уо", "Операционные системы",
"уос"
- напишите of имеет в место
on работа: Пользователь), разное),
система).

РЕЛИЗ удаляет or -релизы
имеет размещенный on рабочие места.
Param значение:
"u", "о", "с", "уо", "Операционные системы",
"уос"
- напишите of имеет в удаление
от работа: Пользователь), разное),
система).

СИГНАЛ посылает a сигнал в домен
проведение работу.
Param значение:
"HUP", "SIGHUP", ...

ИЗМЕНИТЬATTR модифицирует домен указанный
атрибут of домен работа в
домен данный стоимость, когда
домен атрибут_имя is
!= "Resource_List" or
"ресурсы_использованные".
Param значение:
"attrib_name = значение"

МОДИФИРУЕТ модифицирует домен работа
Ресурс_Список
атрибут данный домен
res_name и домен
рез_значение:
Resource_List.res_name =
res_value
Param значение:
"res_name = res_val"
остановить значение зависит от действия. Укажите NULLSTR, если нет значения для
этот параметр желателен.
Возвращаемое значение: УСПЕХ или НЕИСПРАВНОСТЬ.
ПРИМЕЧАНИЕ. Любые нераспознанные действие игнорируется
Пример:
// пробег работа j синхронно
JobAction (j, СИНКРАН, НУЛЬСТР);

// пробег работа j асинхронно on кашель "дб"
JobAction (j, АСИНКРУН, "дб");

// удалять работа j
JobAction (j, УДАЛЯТЬ, НУЛЬСТР);

// удалять работа j a задерживать of 5 сек
// между домен отправка of СИГТЕРМ и
// СИГКИЛЛ
JobAction (j, УДАЛЯТЬ, "deldelay = 5");

// повторный показ работа j
JobAction (j, ПОВТОР, НУЛЬСТР);

// место a Пользователь) держать on работа j
JobAction (j, ДЕРЖАТЬ, «u»);

// место an Другие) держать on работа j
JobAction (j, ДЕРЖАТЬ, «о»);

// место a система) держать on работа j
JobAction (j, ДЕРЖАТЬ, «с»);

// место a по умолчанию держать (U) on работа j
JobAction (j, ДЕРЖАТЬ, НУЛЬСТР);

// освободить Пользователь) держать от работа j
JobAction (j, ВЫПУСКАТЬ, «u»);

// освободить Другие) держать от работа j
JobAction (j, ВЫПУСКАТЬ, «о»);

// освободить система) держать от работа j
JobAction (j, ВЫПУСКАТЬ, «с»);

// освободить по умолчанию держать (U) от работа j
JobAction (j, ВЫПУСКАТЬ, НУЛЬСТР);

// Отправить ПОДПИСАТЬСЯ сигнал в работа j
JobAction (j, СИГНАЛ, «SIGHUP»);

// обновление домен комментарий атрибут of работа
// j в "a сообщение".
// Ассоциация остановить формат это: attribute_name = new_value
// Консультировать PBS документации для a список of работа
// атрибут имена который может be указано.
JobAction (j, МОДИФЯТТР, "комментарий = а сообщение");
// обновление домен Resource_List.cput атрибут of работа
// j в 3600 секунд.
// Ассоциация остановить формат это: имя_ресурса = новое_значение
// Читать pbs_resources * человек страница для a список of
// имена_ресурсов который может be указано.
JobAction (j, МОДИФИРУЕТ, «cput = 3600»);

QueJobFind (Que que, веселье Int func, Int cpr, Int ценить);

QueJobFind (Que que, веселье строка func, Int cpr, Строка ценить);

QueJobFind (Que que, веселье DateTime func, Int cpr, DateTime ценить);

QueJobFind (Que que, веселье Размер func, Int cpr, Размер ценить);

в котором CPR является одним из: OP_EQ, OP_NEQ, OP_LE, OP_LT, OP_GE, OP_GT. FUNC
- это функция, ЕДИНСТВЕННЫЙ аргумент которой относится к типу Job. работа это возвращение
тип.

Описание: Применяется FUNC на каждую работу в что , и верните первый
задание, удовлетворяющее логическому сравнению: func (работа) CPR ценностное

Пример:

Размер JobVirtualMemAvailGet (Job работа)
{
Размер сз;

sz = JobSizeResReqGet (задание, "мем");
возврат (sz);
}
Int JobWallTimeReqGet (Задание работа)
{
Int стена;

Wallt = JobIntResReqGet (задание, "настенное время");
возврат (wallt);
}

Int JobCpuTimeUsedGet (Задание работа)
{
Int процессор;

cput = JobIntResUseGet (задание, "cput");
возврат (cput);
}

Что findQueByName (Установить Что очереди, строка имя)
{
Что q;

foreach (q in очереди) {
если( QueNameGet (q) EQ qname ) {
return (q);
}
}
возврат (NOQUE);
}
sched_main ()
{
сервер s;
Что чем;
Поставьте Что кв;

// получить локальным сервер
s = AllServersLocalHostGet ();

// получить домен очереди of домен сервер s
sq = ServerQueuesGet (s);

// получить домен очередь названный "быстро" от домен
// локальным сервер
что = findQueByName ( кв, "быстро" );

// Найдите домен 1 работа чья настенное время требование
// is == 300s:
QueJobFind (que, JobWallTimeReqGet, ОП_ЭКВ, 300);

// Найдите домен 1 работа чья e-mail адрес в
// уведомлять в отношении работа деятельность != «баюкан»:
QueJobFind (que, JobEmailAddrGet, ОП_NEQ,
«баюкан»);

// Найдите домен 1 работа который законопроект создали после
// or on 3 / 3 / 1997:
QueJobFind (que, JobDateTimeCreatedGet, ОП_ГЕ,
(3 | 3 | 1997));

// Найдите домен 1 работа который законопроект создали после
// 3: 3: 44:
QueJobFind (que, JobDateTimeCreatedGet, ОП_ГТ,
(3: 3: 44));

// Найдите домен 1 работа который законопроект создали после
// 3:3:44 on 3 / 3 / 1997:
QueJobFind (que, JobDateTimeCreatedGet, ОП_ГТ,
(3|3|1997@3:3:44));

// Найдите домен 1 работа чья процессор время используемый < 1600s:
QueJobFind (que, JobCpuTimeUsedGet, ОП_ЛТ, 1600);

// Найдите домен 1 работа чья виртуальный Память
// требование <= 300 МБ:
QueJobFind (que, JobVirtualMemAvailGet, ОП_ЛЕ,
300мб);
}

работа QueJobFind ( Что что Fun Int функция, Int цпр)

работа QueJobFind ( Что что Fun строка функция, Int цпр)

работа QueJobFind ( Что что Fun DateTime функция, Int цпр)

работа QueJobFind ( Что что Fun Размер функция, Int цпр)

в котором CPR может быть одним из следующих: OP_MAX, OP_MIN, FUNC - это
функция, единственный аргумент которой имеет тип Job.

Описание: возвращает задание с максимальным или минимальным значением, найденным для
func (работа) как это применяется к каждой работе в что .

Пример:
Int JobCpuTimeReqGet (Задание работа)
{
Int процессор;

cput = JobIntResReqGet (задание, "cput");
возврат (cput);
}
sched_main ()
{
Что чем;
работа работа;

// Найдите домен работа домен наивысший процессор время
// требование:
работа = QueJobFind (que, JobCpuTimeReqGet, ОП_МАКС);

// Найдите домен работа домен минимальный процессор время
// требование:
работа = QueJobFind (que, JobCpuTimeReqGet, ОП_МИН);
}

Что QueFilter (Que que, веселье Int func, Int cpr, Int стоимость)

Что QueFilter (Que que, веселье строка func, Int cpr, Строка стоимость)

Что QueFilter (Que que, веселье DateTime func, Int cpr, Дата стоимость)

Что QueFilter (Que que, веселье Размер func, Int cpr, Размер стоимость)

в котором CPR может быть одним из следующих: OP_EQ, OP_NEQ, OP_LE, OP_LT,
ОП_ГЕ, ОП_ГТ, FUNC - это функция, единственный аргумент которой имеет тип Job.

Описание: Применяется FUNC на каждую работу в что , и возвращает новую очередь
содержащий все задания, удовлетворяющие условию сравнения:
func (работа) CPR ценностное

Пример:
Int JobWallTimeReqGet (Задание работа)
{
Int стена;

Wallt = JobIntResReqGet (задание, "настенное время");
возврат (wallt);
}
sched_main ()
{
Что чем;
Что новыйq;

// Returns a new что содержащие Найти работе in "que"
// a настенное время требование == 300s:
новыйq = QueFilter (que, JobWallTimeReqGet, ОП_ЭКВ, 300);

// Returns a new что содержащие Найти работе in "que"
// an e-mail адрес != «баюкан»:
новыйq = QueFilter (que, JobEmailAddrGet, ОП_NEQ, «баюкан»);

// Returns a new что содержащие Найти работе in "que"
// создали после or on 3 / 3 / 1997:
новыйq = QueFilter (que, JobDateTimeCreatedGet, ОП_ГЕ,
(3 | 3 | 1997));

// Returns a new что содержащие Найти работе in "que"
// создали после 3: 3: 44:
новыйq = QueFilter (que, JobDateTimeCreatedGet, ОП_ГТ,
(3: 3: 44));

// Returns a new что содержащие Найти работе in "que"
// создали после 3:3:44 on 3 / 3 / 1997:
новыйq = QueFilter (que, JobDateTimeCreatedGet, ОП_ГТ,
(3|3|1997@3:3:44));

// ПРИМЕЧАНИЕ: Ассоциация оригинал "que" is не модифицировало
// бы то ни было.
}

Int Сортировать (Установить работа s, Fun Int ключ, Int заказ)

Int Сортировать (Установить работа s, Fun строка ключ, Int заказ)

Int Сортировать (Установить работа s, Fun Поплавок ключ, Int заказ)

Int Сортировать (Установить работа s, Fun DateTime ключ, Int заказ)

Int Сортировать (Установить работа s, Fun Размер ключ, Int заказ)

в котором s набор заданий для сортировки. ключ это ключ сортировки, который является
функция, единственный аргумент которой имеет тип Job, заказ это сортировка
заказ: ASC, DESC.

Описание: сортирует элементы s , либо в ASCending, либо в
DESCending порядок значений, которые были возвращены ключ функционировать, как
применяется к каждому члену набора вакансий. В s объект изменен
с этим звонком. Это возвращает УСПЕХ или НЕИСПРАВНОСТЬ в зависимости от результата
сорт.

Примеры:
Размер JobMemReqGet (Работа работа)
{
Размер мем;

сувениры = JobSizeResReqGet (задание, "мем");
возвращают(мем);
}

sched_main ()
{
сервер мастер;

Поставьте работа рабочие места;

Int заказ;

// получить локальным сервер
мастер = AllServersLocalHostGet ();

работе = ServerJobsGet(владелец);
Сортировать (вакансии, JobPriorityGet, АСК);
Сортировать (вакансии, ДжобИдГет, ДЕСК);
заказ = АСК;
Сортировать (вакансии, JobDateTimeCreatedGet, приказ);
заказ = ДЕСК;
Сортировать (вакансии, Джобмемрекгет, приказ);
}

Int Сортировать (Установить Что s, Fun Int ключ, Int заказ)

Int Сортировать (Установить Что s, Fun строка ключ, Int заказ)

Int Сортировать (Установить Что s, Fun Поплавок ключ, Int заказ)

Int Сортировать (Установить Что s, Fun DateTime ключ, Int заказ)

Int Сортировать (Установить Что s, Fun Размер ключ, Int заказ)

в котором s набор очередей для сортировки. ключ это ключ сортировки, который является
функция, единственный аргумент которой имеет тип Que, заказ это сортировка
заказ: ASC, DESC.

Описание: сортирует элементы s , либо в ASCending, либо в
DESCending порядок значений, которые были возвращены ключ функционировать, как
применяется к каждому члену набора очередей. В s объект
изменен этим вызовом. Это возвращает УСПЕХ или НЕИСПРАВНОСТЬ в зависимости от
результат такого рода.

Примеры:
Размер QueMemAvailGet (Que чем)
{
Размер мем;

сувениры = QueSizeResAvailGet (que, "мем");
возвращают(мем);
}

sched_main ()
{
сервер мастер;

Поставьте Что вопрос;
Int заказ;

// получить локальным сервер
мастер = AllServersLocalHostGet ();

Ques = ServerQueuesGet(владелец);
Сортировка (вопросы, QuePriorityGet, АСК);
Сортировка (вопросы, QueNameGet, АСК);
заказ = ДЕСК;
Сортировка (вопросы, QueMemAvailGet, приказ);
}

Int Сортировать (Установить сервер s, Fun Int ключ, Int заказ)

Int Сортировать (Установить сервер s, Fun строка ключ, Int заказ)

Int Сортировать (Установить сервер s, Fun Поплавок ключ, Int заказ)

Int Сортировать (Установить сервер s, Fun DateTime ключ, Int заказ)

Int Сортировать (Установить сервер s, Fun Размер ключ, Int заказ)

в котором s набор серверов для сортировки. ключ это ключ сортировки, который
функция, единственный аргумент которой имеет тип сервера, заказ это
порядок сортировки: ASC, DESC.

Описание: сортирует элементы s , либо в ASCending, либо в
DESCending порядок значений, которые были возвращены ключ функционировать, как
применяется к каждому члену набора серверов. В s объект
изменен этим вызовом. Это возвращает УСПЕХ или НЕИСПРАВНОСТЬ в зависимости от
результат такого рода.

Примеры:
Размер ServerMemAvailGet (Сервер серв)
{
Размер мем;

сувениры = ServerSizeResAvailGet (serv, "мем");
возвращают(мем);
}

sched_main ()
{
Поставьте сервер сервер;

Int заказ;

Int рет;

сервер = AllServersGet ();

в отставке = Сортировка (сервер, СерверМаксРунДжобсГет, АСК);
Сортировка (сервер, серверинетаддржет, АСК);

заказ = ДЕСК;
Сортировка (сервер, сервермемаваилжет, приказ);
}

Int Сортировать (Установить CNode s, Fun Int ключ, Int заказ)

Int Сортировать (Установить CNode s, Fun строка ключ, Int заказ)

Int Сортировать (Установить CNode s, Fun Поплавок ключ, Int заказ)

Int Сортировать (Установить CNode s, Fun DateTime ключ, Int заказ)

Int Сортировать (Установить CNode s, Fun Размер ключ, Int заказ)

в котором s набор узлов для сортировки. ключ это ключ сортировки, который является
функция, единственный аргумент которой имеет тип CNode, заказ это сортировка
заказ: ASC, DESC.

Описание: сортирует элементы s , либо в ASCending, либо в
DESCending порядок значений, которые были возвращены ключ функционировать, как
применяется к каждому члену набора узлов. В s объект
изменен этим вызовом. Это возвращает УСПЕХ или НЕИСПРАВНОСТЬ в зависимости от
результат такого рода.

Примеры:
Размер CNodeMyMemAvailGet (CNode сп)
{
Размер мем;

сувениры = CNodeMemAvailGet (cn, «виртуальный»);
возвращают(мем);
}

sched_main ()
{
Поставьте CNode шноде;

Int заказ;

шноде = AllNodesGet ();

Сортировка (scnode, CNodeIdletimeGet, АСК);
Сортировка (scnode, CNodeNameGet, АСК);
заказ = ДЕСК;
Сортировка (scnode, CNodeMyMemAvailGet, приказ);
}

CNode..Get () ФУНКЦИИ


Возвращаемые значения функций CNode..Get (), обсуждавшиеся в предыдущем разделе:
полученные путем отправки запросов ресурсов в MOM CNode на каждой итерации планирования.
Например, CNodeLoadAveGet (узел) вернет значение, полученное из некоторых
ресурс> запрос (это может быть строка loadave), отправленный в MOM узла. В
" -> Сопоставления CNode..Get () "устанавливаются внутренне, но они могут быть
измененные или дополнительные сопоставления могут быть добавлены через файл конфигурации планировщика. Конфигурация
файл обсуждается в pbs_sched_basl(8В).
Уже установленные сопоставления приведены ниже:

Для всех архитектур:

CNode..Get () фактического соединения призывают кашель ресурс
======================== =============
CNodeOsGet (узел) арка
CNodeLoadAveGet (узел) Loadave
CNodeIdletimeGet (узел) время простоя

Используйте basl2cB онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

Команды Linux

Ad