انگلیسیفرانسویاسپانیایی

Ad


فاویکون OnWorks

basl2cB - آنلاین در ابر

basl2cB را در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا کنید.

این دستور basl2cB است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


basl2c - یک کد BASL (زبان برنامه ریزی BAtch) را به یک کد زمانبندی C تبدیل می کند.

خلاصه


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

شرح


basl2c کامپایلر BASL به C است که یک کد میانی تولید می کند که می تواند به a وارد شود
کامپایلر معمولی C، و با کتابخانه های PBS برای تولید برنامه اجرایی زمانبند پیوند داده شده است.
Basl2c ورودی a را می گیرد baslFile، که برنامه ای است که در BAtch Scheduling نوشته شده است
زبان، حاوی کد زمان‌بندی اصلی. سپس Basl2c ساختارهای BASL را تبدیل می کند
در فایل به دستورات C، و همچنین کد اضافی برای تولید PBS پیوست می کند
کد منبع زمانبندی به طور پیش فرض، کد C حاصل در فایل نوشته می شود
pbs_sched.c.

نام مسیر کامل فایل C به دست آمده همان چیزی است که باید در آن مشخص شود SCHD_CODE
متغیر در local.mk قبل از کامپایل زمانبندی BASL برای تولید pbs_sched
قابل اجرا

OPTIONS


-d پیام‌های رفع اشکال اضافی را در lexer چاپ می‌کند (به گزینه -l مراجعه کنید)، تجزیه‌کننده (به -p مراجعه کنید).
گزینه)، جدول نمادها (به گزینه -y مراجعه کنید)، تحلیلگر معنایی (به گزینه -s مراجعه کنید)، و کد
ژنراتور (به گزینه -g مراجعه کنید).

-l lexerDebugFile
lexerDebugFile نام یک فایل برای نوشتن در پیام های اشکال زدایی تولید شده است
در حین اسکن برای نشانه ها

-p parserDebugFile
parserDebugFile نام یک فایل برای نوشتن در پیام های اشکال زدایی تولید شده است
در حالی که توکن ها را به روشی قابل استفاده کنار هم قرار می دهند.

-y symtabDebugFile
symtabDebugFile نام فایلی است که در پیام های اشکال زدایی مربوط به آن نوشته می شود
جدول نمادها

-s semanticDebugFile
semanticDebugFile نام یک فایل برای نوشتن در پیام های اشکال زدایی است
هنگام بررسی برای اطمینان از استفاده از متغیرها و عملگرها در a
روش منسجم

-g codegenDebugFile
codegenDebugFile نام یک فایل برای نوشتن در پیام های اشکال زدایی تولید شده است
در حالی که دستورات BASL را به دستورات C تبدیل می کنید.

-c cFile
cFile نام فایلی است که کد C تولید شده در آن نوشته شده است.

صفحه اصلی ساختار


ساختار اصلی یک کد زمانبند نوشته شده در BASL به شرح زیر است:
صفر or بیش توابع تعاریف
صفر or بیش جهانی متغیر اظهارات
صفر or بیش واگذاری اظهارات (به مقداردهی اولیه جهانی متغیرها)
sched_main()
{
یک or بیش متغیر اظهارات

صفر or بیش بیانیه
}

به عنوان مثال،
% گربه sched.basl
INT مجموع (Int a, INT b)
{
INT s;
s = a + b;
بازگشت (ها)؛
}
INT کره
sched_main()
{
INT c;

a = 3;
b = 4;
c = مجموع(a ب)؛
چاپ (ج)؛
کره = 5;
چاپ (گلوب)؛
}

sched_main() تابعی است که در هر تکرار زمان بندی فراخوانی می شود.

توابع


برای تعریف تابعی که بتوان آن را در توابع بعدی فراخوانی کرد، نحو عبارت است از:

نوع بازگشت نام تابع ( DATATYPE1 IDENTIFIER1،
DATATYPE2 IDENTIFIER2، ... )
{
یک or بیش متغیر اظهارات

صفر or بیش بیانیه
}

به عنوان مثال،
خالی printStuff(Dayofweek پایین، زمان قرار t, رشته خ،
اندازه sz، CNode cn)
{
چاپ (down);
چاپ (t);
print(str);
چاپ (sz)؛
print(cn);
}

تابع معتبر نوع بازگشت عبارتند از: Void، Int، Float، Dayofweek، DateTime، String، Size،
Server، Que، Job، CNode، Set Server، Set Que، Set Job، Set CNode.

انواع داده های معتبر ( DATATYPE1، DATATYPE2، ... ) برای شناسه های پارامتر عبارتند از: Int،
Float، Dayofweek، DateTime، String، Size، Server، Que، Job، CNode، Set Server، Set Que،
تنظیم کار، تنظیم CNode، Range Int، Range Float، Range Dayof Week، Range DateTime، Range Size،
Fun Int, Fun Float, Fun Void, Fun Dayof Week, Fun DateTime, Fun String, Fun Size, Fun
سرور، Fun Que، Fun Job، Fun CNode، Fun Set Server، Fun Set Que، Fun Set Job، Fun Set
CNode. این نوع داده ها در مبحث بعدی مورد بحث قرار خواهند گرفت.

توابع با نام و آرگومان هایشان به صورت زیر احضار می شوند:

چاپ مواد( دوشنبه، (5|1|1997@14:32:00), "برنامه ریزی شده آغاز می شود"
30 گیگ گره );

basl2c در واقع یک پیشوند "basl_" به نام تابع داده شده توسط زمانبندی اضافه می کند
رایتر برای به حداقل رساندن احتمال تصادم نام، که می تواند زمانی ایجاد شود که کد C حاصل شود
با کتابخانه های PBS، BASL مرتبط است. به عنوان مثال، اگر به کد C تولید شده برای نگاه کنید
چاپ مواد، خواهید دید،

basl_printStuff( MON, (5|1|1997@14:32:00),
"sched begins"، 30GB, node )؛

همانطور که در C، همه فراخوانی های تابع باید قبلا تعریف شده باشند. کامپایلر BASL خواهد شد
بررسی کنید تا مطمئن شوید که آرگومان های فراخوانی تابع دقیقاً مطابقت دارند (از نظر
انواع) با پارامترهای موجود در تعریف تابع.

دو نوع توابع در BASL وجود دارد: توابع تعریف شده توسط کاربر و توابع از پیش تعریف شده.
توابع تعریف شده توسط کاربر آن دسته از توابع هستند که برنامه نویس زمانبندی برای آنها تعریفی ارائه کرده است.
در حالی که توابع از پیش تعریف شده آنهایی هستند که می توانند بلافاصله بدون نیاز به فراخوانی شوند
تعریف کردن آن برای لیستی از توابع از پیش تعریف شده، بخش on را ببینید از پیش تعریف شده توابع .

متغیر اظهارات


مانند C، تمام متغیرهای یک کد BASL باید به صراحت قبل از استفاده اعلام شوند. آن ها
متغیرهای اعلام شده خارج از هر تابعی به عنوان متغیرهای سراسری شناخته می شوند، در حالی که
متغیرهایی که در داخل یک تابع تعریف می شوند، متغیرهای محلی نامیده می شوند. جهانی
متغیرها در هر جایی از کد BASL قابل استفاده هستند، در حالی که متغیرهای محلی قابل خواندن هستند
فقط در تابعی که از آن اعلان شده اند.

نحو اعلان متغیر به صورت زیر است:

نوع داده مشخص کننده ;

جایی که نوع داده می تواند: Int، Float، Dayofweek، DateTime، String، Size، Server، Que، Job،
CNode، Set Server، Set Que، Set Job، Set CNode، Range Int، Range Float، Range Dayofweek،
محدوده تاریخ زمان، اندازه محدوده.

داده ها TYPE


خالی برای توابعی که مقداری بر نمی گردند استفاده می شود.

INT امضا شده، اعداد صحیح در پایه 10 آورده شده است.

ثابت های نمونه:
5، +1، -3، SUCCESS (=1)، FAIL (=0)، TRUE (=1)، FALSE (=0)

شناور اعداد واقعی که در کد C ترجمه شده به صورت دو برابر نمایش داده می شوند.
ثابت های نمونه: 4.3، +1.2، -2.6

روز هفته
مقادیر ثابت: SUN، دوشنبه، سه شنبه، چهارشنبه، پنج شنبه، جمعه، شنبه، به صورت داخلی نشان داده شده است
ثابت های عدد صحیح با SUN=0، MON=1 و غیره.

زمان قرار
در یکی از 3 فرمت مشخص کنید:

[1] (m|d|y) که در آن 1 <= m <= 12، 1 <= d <= 31، 0 <= y، سابق. (4|4|1997);

[2] (hh:mm:ss) که در آن 0 <= hh <= 23، 0 <= mm <= 59، 0 <= ss <= 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،m،g،t،p،K،M،G،T،P b، B، W، W

که در آن 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 بیتی).

هنگام کار بر روی عملوندهای 2 اندازه که دارای پسوندهای مختلف هستند، پسوند of
"پایین" از این دو پسوند حاصل خواهد بود. مثلا،
10 مگابایت + 10 گیگابایت = 10250 مگابایت
ثابت های نمونه: -1b، 2w، 1kb، 2mw، +3gb، 4tw، 6Pb

محدوده INT

قالب: (مقدار Int کم، مقدار Int زیاد)
جایی که مقدار Int کم <= مقدار Int زیاد. ثابت نمونه: (1,3،XNUMX)

محدوده شناور

قالب: (مقدار شناور کم، مقدار شناور بالا)
جایی که مقدار کم <= مقدار زیاد. ثابت نمونه: (2.3، 4.6)

محدوده روز هفته

قالب: (روز قبل، روز بعد)
جایی که روز قبل <= روز بعد. ثابت نمونه: (چهارشنبه، جمعه)

محدوده زمان قرار

قالب: (تاریخ/زمان قبلی، تاریخ/زمان بعدی)
جایی که تاریخ/زمان قبلی <= تاریخ/زمان دیرتر.
توجه: اگر محدوده فقط شامل بخش‌های زمانی باشد، و زمان قبلی «ظاهر» شود
زمان بعد باشد مانند "((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

تنظیم کار لیست اشیاء شغلی
ثابت نمونه: EMPTYSETJOB

BASL-تعریف شده ثابت ها


اینها ثابت هایی هستند که نمی توانند برای نامگذاری یک شناسه استفاده شوند (به مبحث بعدی مراجعه کنید). اینها
همیشه با حروف بزرگ هستند

داده ها TYPE BASL-تعریف شده ثابت
=================== =============================================
روز هفته آفتاب، دوشنبه، سه شنبه، چهارشنبه، پنج شنبه، FRI، SAT

INT موفقیت، مردود شدن، نادرست ، درست است، واقعی، SYNCRUN، ASYNCRUN،
حذف، تکرار، نگه دارید، رهایی، علامت،
MODIFYATTR، اصلاح می کند، SERVER_ACTIVE،
SERVER_IDLE، SERVER_SCHED، SERVER_TERM،
SERVER_TERMDELAY، QTYPE_E، QTYPE_R،
SCHED_DISABLED، SCHED_ENABLED، حمل و نقل،
در صف، برگزار شد، در انتظار، دویدن، خروج،
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، نزولی

سرور NOSERVER
تنظیم سرور EMPTYSETSERVER

CNode نوکند
تنظیم CNode EMPTYSETCNODE

که NOQUE
تنظیم که EMPTYSETQUE

کار NOJOB
تنظیم کار EMPTYSETJOB

رشته NULLSTR

مشخص کننده


شناسه ها (که برای نام متغیرها و نام توابع استفاده می شوند) در قالب الفبایی هستند، با
کاراکتر زیرخط ویژه (_) مجاز است. در حال حاضر، BASL فقط می تواند شناسه ها را مدیریت کند
با طول تا 80 کاراکتر. همچنین، نمی توانید از نام های ثابت تعریف شده BASL برای استفاده کنید
نام گذاری یک شناسه

بیانیه


In BASL(2)، شما می توانید یک عبارت واحد داشته باشید که با یک نقطه ویرگول یا گروهی از خاتمه می یابد
عبارات (که عبارت مرکب یا بلوک نامیده می شود) که با «{» و «}» مشخص شده اند. متفاوت
انواع عباراتی که می توانند در کد BASL ظاهر شوند عبارتند از:

1. بیانیه
عبارات بیان هر چیزی به شکل زیر است:

صادرات ;

جایی که صادرات می تواند:

الف) عبارات حسابی

lexpr + rexpr (اضافه کردن)
lexpr - rexpr (کم کردن)
lexpr * rexpr (تکثیر کردن)
lexpr / rexpr (تقسیم کردن)
lexpr % rexpr (مدول or باقی مانده)

نکته: جمع، تفریق، ضرب، تقسیم و باقیمانده
فقط برای انواع مناسب و در صورت چپ و راست مجاز خواهد بود
عبارات از انواع سازگار هستند. جدول زیر چه چیزی را نشان می دهد
انواع در میان اپراتورهای مختلف سازگار هستند:

برای +:

lexpr rexpr
============ ============
INT or شناور INT or شناور
اندازه اندازه
رشته رشته

برای -، *، /:

lexpr rexpr
============ ============
INT or شناور INT or شناور
اندازه اندازه

برای ٪:

lexpr rexpr
============ ============
INT or شناور INT or شناور

در اینجا چند نمونه عبارات حسابی آورده شده است:
INT i1؛
INT i2؛
شناور f1 ؛
شناور f2 ؛
اندازه sz1;
اندازه sz2;
رشته str1;
رشته str2;

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

p1 = "باسل"؛
p2 = " سرد"؛

// la پیروی is a رشته مصالحه
// عمل نتیجه in la رشته:
// "بازل سرد"
p1 + str2;

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) عبارات منطقی

lexpr EQ rexpr
lexpr NEQ rexpr
lexpr LT rexpr
lexpr LE rexpr
lexpr GT rexpr
lexpr GE rexpr
lexpr و rexpr
lexpr OR rexpr

lexpr و rexpr باید دارای انواعی باشد که مطابق شکل با یکدیگر سازگار باشند
در جدول زیر:

lterminal-expr rterminal-expr
============== ==============
INT or شناور INT or شناور
روز هفته روز هفته
زمان قرار زمان قرار
رشته رشته
اندازه اندازه
سرور سرور
که که
کار کار
CNode CNode
تنظیم سرور تنظیم سرور
تنظیم که تنظیم که
تنظیم کار تنظیم کار
تنظیم CNode تنظیم CNode

برای و ، OR اپراتورها، lexpr rexpr انواع سازگار Int یا هستند
شناور.

چند نمونه عبارات منطقی:

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

d) عبارات پس از اپراتور
اینها عباراتی هستند که صرفاً میانبر برای انتساب هستند
بیانیه.

IDENTIFIER++; // شناسه=شناسه+1
مشخص کننده--؛ // identifier=identifier-1

مشخص کننده باید از نوع Int یا Float باشد.

مثال:
INT i;
شناور f;

من ++ ؛
f--

e) فراخوانی تابع

نام تابع ( arg1 ، arg2 ... , argN )

جایی که arg1، ... argN می تواند هر ثابت یا متغیر باشد. شما نمی توانید داشته باشید
یک تابع دیگر به عنوان آرگومان فراخوانی می شود.
مثال:
خالی چاپ a) {
چاپ (a)؛
}

pr(5)؛

توابع از پیش تعریف شده خاصی وجود دارد که یک برنامه نویس می تواند
به طور خودکار کد BASL خود را بدون نیاز به تعریف آن فراخوانی کنید.
این توابع به عنوان توابع کمکی (یا کمک کننده) شناخته می شوند
توابع) و آنها در زیر مورد بحث قرار می گیرند از پیش تعریف شده توابع موضوع.

و) ثابت ها
برخی از عبارات ثابت معتبر در زیر آورده شده است:
5;
+ 1.2.
آفتاب؛
دوشنبه
TUE;
WED;
پنج شنبه;
FRI;
SAT;
(4|4|1997);
(12:01:00);
(4|4|1997@12:01:00);
"شگفت انگیز"؛
-1b;
SYNCRUN؛
ASYNCRUN;
حذف؛
تکرار
HOLD
رهایی؛
علامت؛
MODIFYATTR;
اصلاح می کند؛
(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 گیگابایت)؛
NOSERVER;
نوکند
NOQUE;
NOJOB;
EMPTYSETSERVER؛
EMPTYSETCNODE;
EMPTYSETQUE;
EMPTYSETJOB;
NULLSTR;
موفقیت؛
مردود شدن؛
SERVER_ACTIVE؛
SERVER_IDLE؛
SERVER_SCHED؛
SERVER_TERM؛
SERVER_TERMDELAY؛
QTYPE_E؛
QTYPE_R؛
SCHED_DISABLED؛
SCHED_ENABLED؛
نادرست؛
درست است، واقعی؛
ترانزیت؛
در صف
برگزار شد؛
در انتظار؛
دویدن؛
خروج؛
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؛

ز) شناسه

مثال:
Int i;

i;

2. بیانیه تکلیف

مشخص کننده = صادرات ;

مشخص کننده و صادرات باید دارای انواعی باشد که با یکدیگر سازگار باشند
در جدول زیر نشان داده شده است:

شناسه صادرات
=============== ===============
INT بین المللی، شناور
شناور بین المللی، شناور
روز هفته روز هفته
زمان قرار زمان قرار
رشته رشته
اندازه اندازه
که که
کار کار
CNode CNode
سرور سرور
روز هفته روز هفته
زمان قرار زمان قرار
تنظیم سرور تنظیم سرور
تنظیم که تنظیم که
تنظیم کار تنظیم کار
تنظیم CNode تنظیم CNode
محدوده INT محدوده INT
محدوده شناور محدوده شناور
محدوده روز هفته محدوده روز هفته
محدوده زمان قرار محدوده زمان قرار
محدوده اندازه محدوده اندازه

3. اگر دیگری بیانیه
فرمت یک دستور if شبیه به آن در C با جداسازی است
"{" و "}" همیشه وجود دارد:

اگر ( صادرات ) {
صفر or بیش (درست) بیانیه
}

اگر ( صادرات ) {
صفر or بیش (درست) بیانیه
} دیگر {
صفر or بیش (غلط) بیانیه
}

La صادرات 's نوع باید Int یا Float باشد و پس از ارزیابی اگر هست
مقدار غیر صفر است، سپس عبارات true اجرا می شوند. در مورد دوم
فرم، اگر صادرات صفر ارزیابی می شود، سپس عبارات نادرست اجرا می شوند.

برخی از نمونه ها if اظهارات در زیر آورده شده است:

if (2 * x )
{
y = y + 3;
چاپ (y)؛
}

if (2 * x ) {
y = y + 3;
} دیگر {
اگر ( 3 * x ) {
y = 4;
} دیگر {
y = 5;
}
}

4. برای حلقه بیانیه
فرمت یک عبارت for به شرح زیر است:

برای( شروع کردن تست؛ اقدام ) {
صفر or بیش بیانیه
}

درست مثل C، برای ابتدا اجرا می کند شروع , سپس ارزیابی می کند آزمون شرط
برای دیدن اینکه آیا مقدار غیر صفر برمی گرداند یا خیر. اگر این کار را کرد، برای اظهارات هستند
اجرا شده. بعد از برای سپس عبارات اجرا می شوند اقدام ارزیابی می شود،
و سپس آن را بررسی می کند آزمون شرایط را دوباره به همان روش قبلی انجام دهید.
شروع و اقدام می تواند یک عبارت انتساب ساده یا یک پس عملگر باشد
اصطلاح. آزمون یک عبارت منطقی/رابطه ای است. چند نمونه برای
عبارات در زیر آورده شده است:

برای (i = 0; i LT 3 ; i = i + 1)
{
چاپ (i)؛
}

برای (i = 0; i LT 2 * x; من ++)
{
if (x GT 3)
{
y = 99.
} دیگر
{
x = 73.
}
}

5. برای هر حلقه بیانیه
این عبارت در درجه اول برای بازیابی متوالی هر عنصر استفاده می شود
یک مجموعه نوع داده: Set Server، Set CNode، Set Job، Set Que. نحو عبارت است از:

برای هر ( IDENTIFIER1 in IDENTIFIER2 ) {
صفر or بیش بیانیه
}

که در آن جفت شدن انواع زیر برای شناسه ها مجاز است:

IDENTIFIER1 IDENTIFIER2
=========== ===========
سرور تنظیم سرور
که تنظیم که
کار تنظیم کار
CNode تنظیم CNode

مثال:
سرور s;
که q;
کار j;
CNode c;

تنظیم سرور ss;
تنظیم که مربع
تنظیم کار sj;
تنظیم CNode sc;

foreach(s in ss){
چاپ (ها)؛
}
foreach (q in مربع){
چاپ (q);
}
foreach(j in sj){
چاپ (j)؛
}
فوروچ (ج in sc){
چاپ (ج)؛
}

6. در حین حلقه بیانیه
نحو حلقه while به صورت زیر است:

در حین ( صادرات ) {
صفر or بیش بیانیه
}

جایی که صادرات باید از نوع Int یا Float باشد. اگر صادرات غیر صفر است، سپس صفر است
یا بیشتر بیانیه اجرا می شوند و صادرات دوباره ارزیابی می شود.

مثال:
INT i;
i = 3;
در حالی که (من) {
اگر ( i EQ 0 ) {
print("شکستن on i = 1")
زنگ تفريح؛
}
من--؛
}

7. گزینه بیانیه
دستور switch یک تصمیم چند طرفه است که آزمایش می کند که آیا یک
مقدار شناسه با یکی از تعدادی از مقادیر مطابقت دارد و به a منشعب می شود
بر این اساس گروهی از اظهارات
نحو دستور سوئیچ به صورت زیر است:

سوئیچ ( مشخص کننده ) {
مورد ثابت-اکسپر :
{
صفر or بیش بیانیه
}
مورد ثابت-اکسپر :
{
صفر or بیش بیانیه
}
...
مورد in range-rangeOrSet-expr :
{
صفر or بیش بیانیه
}
مورد in IDENTIFIER-rangeOrSettype :
{
صفر or بیش بیانیه
}
به طور پیش فرض :
{
صفر or بیش بیانیه
}
}

جایی که ثابت-اکسپر است صادرات از نوع Int، Float، Dayofweek، DateTime،
Size، String، Server، Que، Job یا CNode. range-rangeOrSet-expr و
IDENTIFIER-rangeOrSettype می تواند از نوع Set Server، Set CNode، Set Que، Set باشد
Job، Range Int، Range Float، Range Dayofweek، Range DateTime یا Range Size.

مشخص کننده نمی تواند از نوع Void باشد. مشخص کننده 's نوع باید سازگار باشد
با ثابت-اکسپر ، range-rangeOrSet-expr ، و مشخص کننده-
rangeOrSettype 's همانطور که در جدول زیر نشان داده شده است تایپ کنید:
مشخص کننده محدوده ثابت-اکسپر، IDENTIFIER-rangetype
=========== =========================================
سرور تنظیم سرور
که تنظیم که
کار تنظیم کار
CNode تنظیم CNode
INT محدوده INT
شناور محدوده شناور
روز هفته محدوده روز هفته
زمان قرار محدوده زمان قرار
اندازه محدوده اندازه

اگر عبارت موردی مطابق با مشخص کننده 's مقدار، سپس مربوطه
بلوک عبارات اجرا می شود. برخلاف C، اجرا سقوط نمی کند
از طریق بیانیه مورد بعدی. دلیل این امر این است که basl2c اراده
اینو ترجمه کن گزینه عبارت در ساختار if-elseif-else. مورد
پیش فرض برچسب گذاری شده در صورتی اجرا می شود که هیچ یک از موارد دیگر برآورده نشود. در
به طور پیش فرض اختیاری است؛ اگر وجود ندارد، و اگر هیچ یک از موارد مطابقت نداشت، خیر
عمل صورت می گیرد.

مثال:
روز هفته پایین

سوئیچ (پایین)
{
مورد دوشنبه:
{
print("مورد MON")؛
}
مورد TUE:
{
print("مورد TUE")
}
مورد WED:
{
print("مورد WED")
}
مورد THU:
{
print("مورد THU")
}
مورد FRI:
{
print("مورد FRI")
}
مورد SAT:
{
print("مورد SAT")؛
}
مورد آفتاب:
{
print("مورد آفتاب")؛
}
پیش فرض:
{
print("مورد پیش فرض")
}
}

INT a;
محدوده INT ری;
ri = (10، 12)؛
سوئیچ (الف)
{
مورد in (1,5):
{
print("مورد 1,5")
}
مورد in (6,9):
{
print("مورد 6,9")
}
مورد in ری:
{
print("مورد ری")
}
}

8. چاپ بیانیه
عبارت Print قادر به چاپ است تا مقدار هر یک را مشخص کند شناسه
or ثابت از نوع Int، Float، Dayofweek، DateTime، String، Size، Que، Job،
CNode، سرور، Range Int، Range Float، Range Dayofweek، Range DateTime،
اندازه محدوده
نحو به شرح زیر است:

چاپ ( مشخص کننده );
چاپ ( ثابت );

مثال:
زمان قرار dt;
CNode cn؛

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

چاپ (dt)؛
print(cn);

برای انواع مجموعه، استفاده کنید برای هر برای مرور هر عنصر و چاپ مانند زیر:

سرور s;
تنظیم سرور ss;

ss = AllServersGet();

foreach(s in ss) {
چاپ (ها)؛
}

9. ادامه بیانیه

ادامه دادن ;

La ادامه دادن بیانیه باید در یک استناد شده باشد برای، برای هر، و
در حین حلقه باعث می شود که تکرار بعدی حلقه محصور شروع شود.

10. بیانیه شکست

شکستن ;

La شکستن بیانیه باید در یک استناد شده باشد برای، برای هر، و در حین
حلقه خروجی اولیه از حلقه محصور را فراهم می کند.

11. بیانیه بازگشت

بازگشت (IDENTIFIER) ;
بازگشت (ثابت) ;
برگشت() ;

عبارت return مقداری را (در صورت وجود) ارائه می‌کند که باید توسط a برگردانده شود
عملکرد. نوع برگشتی توسط مشخص کننده و ثابت باید مطابقت داشته باشد
نوع بازگشت تابع فراخوانی ثابت انواع مجاز هر چیزی هستند به جز
انواع مجموعه و محدوده آخرین فرمت، برگشت() معمولاً در a نامیده می شود
تابعی که هیچ مقداری را بر نمی گرداند (مانند sched_main() ).

12. بیانیه خروج

خروج (ثابت)؛

جایی که ثابت از نوع Int است. فراخوانی این زمان‌بندی را خاتمه می‌دهد.

13. بیانیه نظر
اینها عباراتی هستند که با "//" پیشوند شده اند و توسط BASL نادیده گرفته می شوند
گردآورنده

// این خط is نادیده گرفته
INT i; // رشته پیروی la درهم و برهم is نادیده گرفته

اپراتور تقدم و انجمن


جدول زیر سطوح مختلف اولویت عملگر و ارتباط تعریف شده را نشان می دهد
به زبان BASL عملگرها به ترتیب تقدم تقدم فهرست شده اند. در
اولویت یک عملگر بالاتر است، زودتر اجرا می شود. ترتیبی که
عملگرها در همان سطح اجرا می شوند بستگی به انجمن دارد: چپ به معنای
عملگرها از چپ به راست دیده می شوند، در حالی که راست به این معنی است که از راست به چپ دیده می شوند.

اپراتور مشارکت
======================================= =============
! ++ -- + (یگانه به علاوه) - (یگانه منهای) راست
* / % ترک کرد
+ - ترک کرد
LT LE GT GE ترک کرد
EQ NEQ ترک کرد
و ترک کرد
OR ترک کرد
= راست

از پیش تعریف شده توابع


In BASL(2) ، الف سرور نوع داده مستقیماً به یک شیء سرور دسته ای نگاشت می شود. به همین ترتیب، CNode
برای مامان/پس مامان است، کار کار دسته ای است و که به صف دسته ای است. با این حال، نه همه
ویژگی های اشیاء PBS از BASL قابل دسترسی است. فقط زیر مجموعه ای از ویژگی ها،
مواردی که به نظر می رسید در زمینه یک زمانبندی منطقی هستند، در دسترس قرار می گیرند و
با فراخوانی توابع از پیش تعریف شده زیر می توان به مقادیر این ویژگی ها دسترسی داشت.
همچنین به عنوان توابع کمک / کمکی شناخته می شود.

(1) توابع مربوط به سرور

تنظیم سرور AllServersGet (void)
لیست سرورهای مشخص شده در فایل پیکربندی برای را برمی گرداند
که برنامه نویس برنامه نویس می خواهد سیستم به صورت دوره ای آن را بررسی کند
وضعیت، صف ها و اطلاعات مشاغل. دیدن pbs__sched__basl(8b) برای
بحث در مورد فرمت فایل پیکربندی
احتیاط: این تابع باید از داخل فراخوانی شود sched_main() so
که در هر تکرار زمان بندی، به روزترین است تنظیم سرور
ساختار برگردانده می شود.

سرور AllServersLocalHostGet(void)
شی Server را که نشان دهنده میزبان محلی است برمی گرداند. مقدار تنظیم نشده:
NOSERVER. این یک تابع ساده برای فراخوانی محیط های غیر خوشه ای است
جایی که فقط یک میزبان سرور وجود دارد.
احتیاط: این تابع باید از داخل فراخوانی شود sched_main() (یا از
در تابع فراخوانی شده توسط sched_main) به طوری که در هر زمان بندی
تکرار، به روزترین سرور ساختار برگردانده می شود.

رشته ServerInetAddrGet(Server s)
نام سرور s را برمی گرداند. مقدار تنظیم نشده: NULLSTR

رشته ServerDefQueGet(سرور s)
ویژگی default_queue سرور s را برمی‌گرداند. مقدار تنظیم نشده: NULLSTR

INT ServerStateGet(Server s)
ویژگی server_state سرور s را برمی‌گرداند.

مقدار برگشتی:
SERVER_ACTIVE، SERVER_IDLE، SERVER_SCHED، SERVER_TERM،
SERVER_TERMDELAY، -1 (مقدار تنظیم نشده)

INT ServerMaxRunJobsGet(Server s)
ویژگی max_running سرور s را برمی‌گرداند. مقدار تنظیم نشده: 0

INT ServerMaxRunJobsPerUserGet(Server s)
ویژگی max_user_run سرور s را برمی‌گرداند. مقدار تنظیم نشده: 0

INT ServerMaxRunJobsPerGroupGet(Server s)
ویژگی max_group_run سرور s را برمی‌گرداند. مقدار تنظیم نشده: 0

تنظیم که ServerQueuesGet(Server s)
لیست صف های مدیریت شده توسط سرور s را برمی گرداند.

تنظیم کار ServerJobsGet(Server s)
لیست مشاغل مدیریت شده توسط سرور s را برمی گرداند. برای به دست آوردن زیر مجموعه ای از این
لیست کنید ، ببینید QueJobsGet().

INT ServerIntResAvailGet(Server s, رشته نام)
مقدار را به منبع مشخص شده در برمی‌گرداند نام که در دسترس مشاغل است
اجرا شده توسط این سرور (Server resources_available.name صفت). اینو صدا کن
تابع برای منابع با مقادیری که از نوع Int هستند. منبع نمونه
نام ها عبارتند از: cput، pcput، walltime، mppt، pmppt، nice، procs، mppe، ncpus،
pncpus، nodect، srfs_assist، mta،...، mth. برای توضیح اینها
نام منابع را ببینید pbs_resources_irix5(7B) pbs_resources_sp2(7B)
pbs_resources_sunos4(7B) pbs_resources_unicos8(7B)
pbs_server_attributes(7B) pbs_resources_irix6(7B)
pbs_resources_linux(7B)

مثال:
INT cpuAvail;
// برگشت la # of CPU در حال حاضر در دسترس in
// la سرور
cpuAvail = ServerIntResAvailGet(سرور، "ncpus")؛

اندازه ServerSizeResAvailGet(Server s, رشته نام)
مقدار را به منبع مشخص شده در برمی‌گرداند نام که در دسترس مشاغل است
اجرا شده توسط این سرور (Server resources_available.name صفت). اینو صدا کن
تابع برای منابع با مقادیری که از نوع Size هستند. منبع نمونه
نام ها عبارتند از: فایل، mem، pmem، مجموعه کاری، pf، ppf، srfs_tmp، srfs_wrk،
srfs_big، srfs_fast، sds، psds. برای توضیح این منابع
اسامی، ببینید pbs_resources_irix5(7B) pbs_resources_sp2(7B)
pbs_resources_sunos4(7B) pbs_resources_unicos8(7B)
pbs_server_attributes(7B) pbs_resources_irix6(7B)
pbs_resources_linux(7B)

مثال:
اندازه memAvail;
// برگشت la مقدار of در دسترس حافظه in
// la سرور
memAvail = ServerSizeResAvailGet(سرور، "مم")؛

رشته ServerStringResAvailGet(Server s, رشته نام)
مقدار را به منبع مشخص شده در برمی‌گرداند نام که در دسترس مشاغل است
اجرا شده توسط این سرور (Server resources_available.name صفت). اینو صدا کن
تابع برای منابع با مقادیری که از نوع String هستند. نمونه
نام منابع عبارتند از: گره، قوس، نیاز گره. برای توضیح اینها
نام منابع را ببینید pbs_resources_irix5(7B) pbs_resources_sp2(7B)
pbs_resources_sunos4(7B) pbs_resources_unicos8(7B)
pbs_server_attributes(7B) pbs_resources_irix6(7B)
pbs_resources_linux(7B)

مثال:
رشته نوع
// برگشت la معماری (و یا os نوع) of
// la سرور
نوع = ServerStringResAvailGet(سرور، "طاق")؛

INT ServerIntResAssignGet(Server s, رشته نام)
مقدار را به منبع مشخص شده در برمی‌گرداند نام که به
کارهای در حال اجرا (سرور resources_assigned.name صفت). اینو صدا کن
تابع برای منابع با مقادیری که از نوع Int هستند. منبع نمونه
نام ها عبارتند از: cput، pcput، walltime، mppt، pmppt، nice، procs، mppe، ncpus،
pncpus، nodect، srfs_assist، mta،...، mth. برای توضیح اینها
نام منابع را ببینید pbs_resources_irix5(7B) pbs_resources_sp2(7B)
pbs_resources_sunos4(7B) pbs_resources_unicos8(7B)
pbs_server_attributes(7B) pbs_resources_irix6(7B)
pbs_resources_linux(7B)

مثال:
INT cpuAssn;
// برگشت la # of CPU در حال حاضر اختصاص داده in
// la سرور
cpuAssn = ServerIntResAssignGet(سرور، "ncpus")؛

اندازه ServerSizeResAssignGet(Server s, رشته نام)
مقدار را به منبع مشخص شده در برمی‌گرداند نام که به
کارهای در حال اجرا (سرور resources_assigned.name صفت). اینو صدا کن
تابع برای منابع با مقادیری که از نوع Size هستند. منبع نمونه
نام ها عبارتند از: فایل، mem، pmem، مجموعه کاری، pf، ppf، srfs_tmp، srfs_wrk،
srfs_big، srfs_fast، sds، psds. برای توضیح این منابع
اسامی، ببینید pbs_resources_irix5(7B) pbs_resources_sp2(7B)
pbs_resources_sunos4(7B) pbs_resources_unicos8(7B)
pbs_server_attributes(7B) pbs_resources_irix6(7B)
pbs_resources_linux(7B)

مثال:
اندازه sdsAssn;
// برگشت la مقدار of SDS فضا در حال حاضر اختصاص داده
// in la سرور
sdsAssn = ServerSizeResAssignGet(سرور، "sds")؛

رشته ServerStringResAssignGet(Server s, رشته نام)
مقدار را به منبع مشخص شده در برمی‌گرداند نام که به
کارهای در حال اجرا (سرور resources_assigned.name صفت). اینو صدا کن
تابع برای منابع با مقادیری که از نوع String هستند. نمونه
نام منابع عبارتند از: گره، قوس، نیاز گره. برای توضیح اینها
نام منابع را ببینید pbs_resources_irix5(7B) pbs_resources_sp2(7B)
pbs_resources_sunos4(7B) pbs_resources_unicos8(7B)
pbs_server_attributes(7B) pbs_resources_irix6(7B)
pbs_resources_linux(7B)

تنظیم CNode ServerNodesGet(Server s)
مجموعه ای از گره های مدیریت شده توسط سرور s را برمی گرداند. مقدار تنظیم نشده: EMPTYSETCNODE.
توجه: معمولاً می توانید توابع زیر را برای گره های برگشتی فراخوانی کنید
با این فراخوانی: CNodeStateGet()، CNodePropertiesGet() و CNodeTypeGet().

INT ServerNodesQuery(Server s, رشته مشخصات)
درخواستی را به سرور مشخص شده برای پرس و جو در مورد در دسترس بودن صادر می کند
منابع مشخص شده در مشخصات در حال حاضر، تنها منبع
مشخصات مجاز یکی است که شامل "گره" است و می تواند از آن باشد
فرمت "nodes"، "nodes="، یا "nodes=". نتایج پرس و جو می تواند باشد
با فراخوانی توابع زیر قابل دسترسی است: ServerNodesNumAvailGet()،
ServerNodesNumAllocGet()، ServerNodesNumRsvdGet()،
ServerNodesNumDownGet().
توجه: این یک لفاف برای pbs_rescquery(3B) عملکرد سرور.

مقدار برگشتی:
موفقیت، شکست

INT ServerNodesNumAvailGet(Server s)
تعداد گره های موجود را برای گره هایی که توسط مشخص شده مدیریت می شوند، برمی گرداند
سرور، یا همانطور که توسط آخرین پرس و جو مشخص شده توسط منعکس شده است
ServerNodesQuery(). اگر مقدار بازگشتی صفر باشد، به این معنی است
تعدادی گره در حال حاضر برای برآوردن مشخصات مورد نیاز است
ServerNodesQuery() در حال حاضر در دسترس نیستند. درخواست ممکن است برآورده شود
در زمانی بعد اگر نتیجه منفی باشد، هیچ ترکیبی از شناخته شده نیست
گره ها می توانند مشخصات را برآورده کنند.

INT ServerNodesNumAllocGet(Server s)
تعداد گره های تخصیص یافته برای گره هایی که توسط مشخص شده مدیریت می شوند را برمی گرداند
سرور، یا همانطور که توسط آخرین پرس و جو مشخص شده توسط منعکس شده است
ServerNodesQuery().

INT ServerNodesNumRsvdGet(Server s)
تعداد گره های رزرو شده برای گره هایی که توسط مشخص شده مدیریت می شوند را برمی گرداند
سرور، یا همانطور که توسط آخرین پرس و جو مشخص شده توسط منعکس شده است
ServerNodesQuery().

INT ServerNodesNumDownGet(Server s)
تعداد گره ها را برای گره هایی که توسط مشخص شده مدیریت می شوند کاهش می دهد
سرور، یا همانطور که توسط آخرین پرس و جو مشخص شده توسط منعکس شده است
ServerNodesQuery().

INT ServerNodesReserve(سرور s، رشته مشخصات، بین المللی مقیم)
درخواستی را برای رزرو منابع به سرور مشخص شده صادر می کند
مشخص شده در مشخصات مقدار 0 برای ساکن به این معنی است که این برای انجام یک
رزرو جدید در غیر این صورت، عدد نشان دهنده یک موجود خواهد بود
رزرو (جزئی) منابع در حال حاضر برای این محفوظ است ساکن اراده
آزاد شود و رزرو کامل دوباره تلاش خواهد شد. در
در زمان حال تنها منابعی که ممکن است مشخص شوند عبارتند از
"گره ها". باید به صورت مشخص شود گره = مشخصات جایی که
مشخصات چیزی است که کاربر در لیست آرگومان گزینه -l مشخص می کند
برای گره ها، qsub (1B) را ببینید.
توجه: این یک لفاف برای pbs_rescreserve(3B) عملکرد سرور.

مقدار برگشتی:
یک شماره مرجع برای یک موفق یا تا حدی موفق
رزرو، یا شکست

INT ServerNodesRelease(Server s, INT مقیم)
این کار منابع رزرو شده با شماره مرجع را آزاد یا آزاد می کند
مشخص شده در ساکن
توجه: این یک لفاف برای pbs_rescrelease(3B) عملکرد سرور.

مقدار برگشتی:
موفقیت یا شکست

(2) توابع مرتبط با Que:

رشته QueNameGet( که که )
نام Que ​​que را برمی گرداند. مقدار تنظیم نشده: NULLSTR

INT QueTypeGet( که که )
صفت queue_type Que que را برمی گرداند.
مقدار بازگشتی: QTYPE_E (اجرا)، QTYPE_R (مسیریابی)، -1 (تنظیم نشده
مقدار)

INT QueNumJobsGet( که که )
تعداد مشاغل ساکن Que que را برمی گرداند. مقدار تنظیم نشده: 0

INT QueMaxRunJobsGet( که که )
ویژگی max_running Que que را برمی‌گرداند. مقدار تنظیم نشده: 0

INT QueMaxRunJobsPerUserGet( که که )
ویژگی max_user_run Que que را برمی گرداند. مقدار تنظیم نشده: 0

INT QueMaxRunJobsPerGroupGet( که که )
ویژگی max_group_run Que que را برمی گرداند. مقدار تنظیم نشده: 0

INT QuePriorityGet( که که )
ویژگی Priority Que que را برمی گرداند. مقدار تنظیم نشده: 0

INT QueStateGet( که که )
ویژگی شروع Que que - انتخاب اجرای کار را برمی گرداند
وضعیت que: SCHED_DISABLED، SCHED_ENABLED. مقدار تنظیم نشده:
SCHED_DISABLED

تنظیم کار QueJobsGet( که که )
لیست مشاغلی را که در حال حاضر در que ساکن هستند را برمی گرداند.

INT QueIntResAvailGet(Que q, رشته نام)
مقدار را به منبع مشخص شده در برمی‌گرداند نام که در دسترس است
مشاغلی که از این q (Que resources_available.name صفت).
این تابع را برای منابعی با مقادیری که از نوع Int هستند فراخوانی کنید.
نام منابع نمونه عبارتند از: cput, pcput, walltime, mppt, pmppt, nice,
procs، mppe، ncpus، pncpus، nodect، srfs_assist، mta،...، mth. برای یک
شرح نام این منابع را ببینید pbs_resources_irix5(7B)
pbs_resources_sp2(7B) pbs_resources_sunos4(7B)
pbs_resources_unicos8(7B) pbs_server_attributes(7B)
pbs_resources_irix6(7B) pbs_resources_linux(7B)

اندازه QueSizeResAvailGet(Que q, رشته نام)
مقدار را به منبع مشخص شده در برمی‌گرداند نام که در دسترس است
مشاغلی که از این q (Que resources_available.name صفت).
این تابع را برای منابعی با مقادیری که از نوع Size هستند فراخوانی کنید.
نام منابع نمونه عبارتند از: فایل، mem، pmem، مجموعه کاری، pf، ppf،
srfs_tmp، srfs_wrk، srfs_big، srfs_fast، sds، psds. برای توضیح
از نام این منابع را ببینید pbs_resources_irix5(7B)
pbs_resources_sp2(7B) pbs_resources_sunos4(7B)
pbs_resources_unicos8(7B) pbs_server_attributes(7B)
pbs_resources_irix6(7B) pbs_resources_linux(7B)

رشته QueStringResAvailGet(Que q, رشته نام)
مقدار را به منبع مشخص شده در برمی‌گرداند نام که در دسترس است
مشاغلی که از این q (Que resources_available.name صفت).
این تابع را برای منابعی با مقادیری که از نوع String هستند فراخوانی کنید.
نام منابع نمونه عبارتند از: گره، قوس، نیاز گره. برای توضیح
از نام این منابع را ببینید pbs_resources_irix5(7B)
pbs_resources_sp2(7B) pbs_resources_sunos4(7B)
pbs_resources_unicos8(7B) pbs_server_attributes(7B)
pbs_resources_irix6(7B) pbs_resources_linux(7B)

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(7B)
pbs_resources_sp2(7B) pbs_resources_sunos4(7B)
pbs_resources_unicos8(7B) pbs_server_attributes(7B)
pbs_resources_irix6(7B) pbs_resources_linux(7B)

اندازه QueSizeResAssignGet(Que q, رشته نام)
مقدار را به منبع مشخص شده در برمی‌گرداند نام که به
مشاغلی که از این q (Que resources_assigned.name صفت).
این تابع را برای منابعی با مقادیری که از نوع Size هستند فراخوانی کنید.
نام منابع نمونه عبارتند از: فایل، mem، pmem، مجموعه کاری، pf، ppf،
srfs_tmp، srfs_wrk، srfs_big، srfs_fast، sds، psds. برای توضیح
از نام این منابع را ببینید pbs_resources_irix5(7B)
pbs_resources_sp2(7B) pbs_resources_sunos4(7B)
pbs_resources_unicos8(7B) pbs_server_attributes(7B)
pbs_resources_irix6(7B) pbs_resources_linux(7B)

رشته QueStringResAssignGet(Que q, رشته نام)
مقدار را به منبع مشخص شده در برمی‌گرداند نام که به
مشاغلی که از این q (Que resources_assigned.name صفت).
این تابع را برای منابعی با مقادیری که از نوع String هستند فراخوانی کنید.
نام منابع نمونه عبارتند از: گره، قوس، نیاز گره. برای توضیح
از نام این منابع را ببینید pbs_resources_irix5(7B)
pbs_resources_sp2(7B) pbs_resources_sunos4(7B)
pbs_resources_unicos8(7B) pbs_server_attributes(7B)
pbs_resources_irix6(7B) pbs_resources_linux(7B)

(3) توابع مرتبط با شغل

رشته JobIdGet( کار کار )
شناسه شغل Job job را برمی گرداند. مقدار تنظیم نشده: NULLSTR

رشته JobNameGet( کار کار )
ویژگی Job_Name Job job را برمی‌گرداند. مقدار تنظیم نشده: NULLSTR

رشته JobOwnerNameGet( کار کار )
ویژگی Job_Owner Job job را برمی‌گرداند. مقدار تنظیم نشده: NULLSTR

رشته JobEffectiveUserNameGet( کار کار)
ویژگی euser Job job را برمی‌گرداند.

رشته JobEffectiveGroupNameGet(Job کار)
ویژگی egroup Job job را برمی گرداند. مقدار تنظیم نشده: NULLSTR

INT JobStateGet ( کار کار )
ویژگی job_state Job job را برمی‌گرداند.

مقدار برگشتی:
ترانزیت، در صف، نگه داشته شد، در انتظار، در حال اجرا، خروج، -1 (تنظیم نشده
مقدار)

INT JobPriorityGet( کار کار )
ویژگی Priority Job job را برمی گرداند. مقدار تنظیم نشده: 0

INT JobRerunFlagGet( کار کار )
ویژگی Rerunable Job job را برمی گرداند.
مقدار برگشتی: FALSE، TRUE، -1 (مقدار تنظیم نشده)

INT JobInteractiveFlagGet( کار کار )
ویژگی تعاملی Job job را برمی‌گرداند.
مقدار برگشتی: FALSE، TRUE. مقدار تنظیم نشده: FALSE

زمان قرار JobDateTimeCreatedGet(Job کار)
ویژگی ctime Job job را برمی‌گرداند. مقدار تنظیم نشده:
(0|0|0@-1:-1:-1)

رشته JobEmailAddrGet( کار کار )
ویژگی Mail_Users Job job را برمی‌گرداند. مقدار تنظیم نشده: NULLSTR

رشته JobStageinFilesGet( کار کار )
ویژگی stagein Job job را برمی گرداند. مقدار تنظیم نشده: NULLSTR

رشته JobStageoutFilesGet( کار کار )
ویژگی مرحله‌ای از Job job را برمی‌گرداند. مقدار تنظیم نشده: NULLSTR

INT JobIntResReqGet(Job کار، رشته نام)
مقدار را به منبع مشخص شده در برمی‌گرداند نام همانطور که توسط مورد نیاز است
شغل (شغل Resource_List.name صفت). این تابع را برای
منابع با مقادیری که از نوع Int هستند. نمونه نام منابع
عبارتند از: cput، pcput، walltime، mppt، pmppt، nice، procs، mppe، ncpus،
pncpus، nodect، srfs_assist، mta،...، mth. برای توضیح اینها
نام منابع را ببینید pbs_resources_irix5(7B) pbs_resources_sp2(7B)
pbs_resources_sunos4(7B) pbs_resources_unicos8(7B)
pbs_server_attributes(7B) pbs_resources_irix6(7B)
pbs_resources_linux(7B)

مثال:
INT cputReq;
// بازده la cput نیاز of la کار
cputReq = JobIntResReqGet(job, "cput")؛

اندازه JobSizeResReqGet(Job کار، رشته نام)
مقدار را به منبع مشخص شده در برمی‌گرداند نام همانطور که توسط مورد نیاز است
شغل (شغل Resource_List.name صفت). این تابع را برای
منابع با مقادیری که از نوع Size هستند. نمونه نام منابع
عبارتند از: فایل، mem، pmem، مجموعه کاری، pf، ppf، srfs_tmp، srfs_wrk،
srfs_big، srfs_fast، sds، psds. برای توضیح این منابع
اسامی، ببینید pbs_resources_irix5(7B) pbs_resources_sp2(7B)
pbs_resources_sunos4(7B) pbs_resources_unicos8(7B)
pbs_server_attributes(7B) pbs_resources_irix6(7B)
pbs_resources_linux(7B)

مثال:
اندازه memReq;
// بازده la حافظه نیاز of la کار
memReq = JobSizeResReqGet(job, "مم")؛

رشته JobStringResReqGet(Job کار، رشته نام)
مقدار را به منبع مشخص شده در برمی‌گرداند نام همانطور که توسط مورد نیاز است
شغل (شغل Resource_List.name صفت). این تابع را برای
منابع با مقادیری که از نوع String هستند. نمونه نام منابع
عبارتند از: گره، قوس، نیاز گره. برای توضیح این منابع
اسامی، ببینید pbs_resources_irix5(7B) pbs_resources_sp2(7B)
pbs_resources_sunos4(7B) pbs_resources_unicos8(7B)
pbs_server_attributes(7B) pbs_resources_irix6(7B)
pbs_resources_linux(7B)

مثال:
رشته گره ها
// بازده la گره نیاز ویژگی of
// la کار
گره = JobStringResReqGet(job, "گره ها")؛

INT JobIntResUseGet(Job کار، رشته نام)
مقدار را به منبع مشخص شده در برمی‌گرداند نام مورد استفاده شغل (شغل
resources_used.name صفت). برای منابع با این تابع تماس بگیرید
مقادیری که از نوع Int هستند. نام منابع نمونه عبارتند از: cput، pcput،
walltime، mppt، pmppt، زیبا، procs، mppe، ncpus، pncpus، nodect،
srfs_assist، mta،...، mth. برای توضیح نام این منابع،
دیدن pbs_resources_irix5(7B) pbs_resources_sp2(7B)
pbs_resources_sunos4(7B) pbs_resources_unicos8(7B)
pbs_server_attributes(7B) pbs_resources_irix6(7B)
pbs_resources_linux(7B)

مثال:
INT walltUse;
// بازده la مقدار of زمان دیوار استفاده by
// la کار
استفاده از دیوار = JobIntResUseGet(job, "زمان دیوار")؛

اندازه JobSizeResUseGet(Job کار، رشته نام)
مقدار را به منبع مشخص شده در برمی‌گرداند نام مورد استفاده شغل (شغل
resources_used.name صفت). برای منابع با این تابع تماس بگیرید
مقادیری که از نوع Size هستند. نام منابع نمونه عبارتند از: فایل، مم،
pmem، مجموعه کاری، pf، ppf، srfs_tmp، srfs_wrk، srfs_big، srfs_fast،
sds، psds. برای توضیح نام این منابع، نگاه کنید
pbs_resources_irix5(7B) pbs_resources_sp2(7B)
pbs_resources_sunos4(7B) pbs_resources_unicos8(7B)
pbs_server_attributes(7B) pbs_resources_irix6(7B)
pbs_resources_linux(7B)

مثال:
اندازه srfsUse;
// بازده la مقدار of srfs_fast استفاده by
// la کار
srfsUse = JobSizeResUseGet(job, "srfs_fast")؛

رشته JobStringResUseGet(Job کار، رشته نام)
مقدار را به منبع مشخص شده در برمی‌گرداند نام مورد استفاده شغل (شغل
resources_used.name صفت). برای منابع با این تابع تماس بگیرید
مقادیری که از نوع String هستند. نام منابع نمونه عبارتند از: گره ها،
قوس، گره های نیاز برای توضیح نام این منابع، نگاه کنید
pbs_resources_irix5(7B) pbs_resources_sp2(7B)
pbs_resources_sunos4(7B) pbs_resources_unicos8(7B)
pbs_server_attributes(7B) pbs_resources_irix6(7B)
pbs_resources_linux(7B)

(4) توابع مربوط به CNode

تنظیم CNode AllNodesGet(void)
لیست گره هایی را که توسط سرور در حال اجرا بر روی آن مدیریت می شوند، برمی گرداند
میزبان محلی این همچنین می تواند شامل گره هایی باشد که مشخص شده اند
در فایل پیکربندی زمانبندی که برنامه نویس برای آن
از سیستم می خواهد که به صورت دوره ای اطلاعاتی مانند وضعیت را بررسی کند،
اموال و غیره دیدن pbs_sched_basl(8b) برای بحث در مورد
فرمت فایل پیکربندی
احتیاط: این تابع باید از داخل فراخوانی شود sched_main() so
که در هر تکرار زمان بندی، به روزترین است تنظیم CNode
ساختار برگردانده می شود. این را از بیانیه تکلیف صدا نکنید
در نظر گرفته شده برای مقداردهی اولیه یک متغیر سراسری، همانطور که این عبارت تنها خواهد بود
یک بار تماس گرفته شود

CNode AllNodesLocalHostGet(void)
شی CNode را که نشان دهنده میزبان محلی است برمی گرداند. این یک است
تابع ساده برای فراخوانی سیستم های غیر خوشه ای که فقط 1 CNode دارند
وجود دارد. مقدار تنظیم نشده: NOCNODE
احتیاط: این تابع باید از داخل فراخوانی شود sched_main() (و یا
از درون توابع فراخوانی شده توسط sched_main) به طوری که در هر
تکرار برنامه ریزی، به روزترین CNode ساختار است
بازگشت. این را از یک بیانیه تکلیفی که در نظر گرفته شده است، فرا نگیرید
یک متغیر سراسری را مقداردهی اولیه کنید، زیرا دستور فقط فراخوانی می شود
یک بار.

رشته CNodeNameGet(CNode گره)
نام منحصربه‌فرد (رسمی) گره (یعنی ResMom hostname) را برمی‌گرداند
در مدل 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" شاید نام گره باشد، اما می‌توان آن را نیز دانست
از طریق "babbage1, babbage2". مقدار تنظیم نشده: 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( گره ، "/scratch2" );

اندازه CNodeDiskSpaceAvailGet(CNode گره ، رشته نام)
فضای موجود گره را بر روی دیسک مشخص شده توسط نام جایی که
نام به طور دلخواه توسط برنامه نویس برنامه نویس در زمان بندی تعریف می شود
فایل پیکربندی. مقدار تنظیم نشده: -1b
مثال:
CNodeDiskSpaceAvailGet( گره ، "/scratch1" );

اندازه CNodeDiskSpaceReservedGet(CNode گره ، رشته نام)
فضای رزرو شده گره را بر روی دیسک (سهمیه کاربر؟) شناسایی شده توسط
نام جایی که نام به طور دلخواه توسط برنامه نویس برنامه نویس در تعریف شده است
فایل پیکربندی زمانبند مقدار تنظیم نشده: -1b
مثال:
CNodeDiskSpaceReservedGet( گره ، "/scratch1" );

INT CNodeDiskInBwGet( CNode گره ، رشته نام )
پهنای باند نوشتن (بایت بر ثانیه) دیسک گره شناسایی شده را برمی گرداند.
by نام . مقدار تنظیم نشده: -1
مثال:
CNodeDiskInBwGet( گره ، "/سریع" );

INT CNodeDiskOutBwGet( CNode گره ، رشته نام )
پهنای باند خوانده شده (بایت در ثانیه) دیسک گره را که توسط
نام . مقدار تنظیم نشده: -1
مثال:
CNodeDiskOutBwGet( گره ، "/بزرگ" );

اندازه CNodeSwapSpaceTotalGet( CNode گره ، رشته نام )
کل فضای گره را در مبادله مشخص شده توسط نام جایی که نام
به طور دلخواه توسط برنامه نویس برنامه نویس در زمان بندی تعریف می شود
فایل پیکربندی. مقدار تنظیم نشده: -1b
مثال:
CNodeSwapSpaceTotalGet( گره ، "اولیه" );

اندازه CNodeSwapSpaceAvailGet( CNode گره ، رشته نام )
فضای موجود گره در مبادله شناسایی شده توسط نام جایی که نام
نام دستگاهی است که به طور دلخواه توسط برنامه نویس زمانبندی در تعریف شده است
فایل پیکربندی زمانبند مقدار تنظیم نشده: -1b
مثال:
CNodeSwapSpaceAvailGet( گره ، "ثانوی" );

INT CNodeSwapInBwGet( CNode گره ، رشته نام )
نرخ swapin دستگاه مبادله گره شناسایی شده توسط نام.
مثال:
CNodeSwapInBwGet(گره، "ثانوی")؛

INT CNodeSwapOutBwGet( CNode گره ، رشته نام )
نرخ مبادله دستگاه مبادله گره را که توسط آن مشخص شده است برمی گرداند
نام. مقدار تنظیم نشده: -1
مثال:
CNodeSwapOutBwGet(گره، "اولیه")؛

اندازه CNodeTapeSpaceTotalGet( CNode گره ، رشته نام )
کل فضای گره را بر روی نوار مشخص شده توسط نام جایی که نام
به طور دلخواه توسط برنامه نویس برنامه نویس در زمان بندی تعریف می شود
فایل پیکربندی. مقدار تنظیم نشده: -1b
مثال:
CNodeTapeSpaceTotalGet(گره، "4 میلی متر")؛

اندازه CNodeTapeSpaceAvailGet( CNode گره ، رشته نام )
فضای موجود گره را بر روی نوار مشخص شده توسط نام جایی که
نام به طور دلخواه توسط برنامه نویس برنامه نویس در زمان بندی تعریف می شود
فایل پیکربندی. مقدار تنظیم نشده: -1b
مثال:
CNodeTapeSpaceAvailGet (گره، "8mm")؛

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 برمی گرداند
شناسایی شده توسط نام جایی که نام به طور دلخواه توسط زمانبند تعریف می شود
رایتر در فایل پیکربندی زمانبند. مقدار تنظیم نشده: -1b
مثال:
CNodeSrfsSpaceReservedGet( گره ، "/سریع" );

INT CNodeSrfsInBwGet( CNode گره ، رشته نام )
پهنای باند نوشتن (بایت بر ثانیه) دستگاه srfs گره را برمی گرداند.
شناسایی شده توسط نام . مقدار تنظیم نشده: -1
مثال:
CNodeSrfsInBwGet( node, "/fast" );

INT CNodeSrfsOutBwGet( CNode گره ، رشته نام )
پهنای باند خوانده شده (بایت بر ثانیه) دستگاه srfs گره را برمی گرداند.
شناسایی شده توسط نام . مقدار تنظیم نشده: -1
مثال:
CNodeSrfsOutBwGet(گره، "/big");

(5) توابع متفرقه

زمان قرار datetimeGet()
تاریخ/زمان فعلی را دریافت می کند.

INT datetimeToSecs(DateTime dt)
تعداد ثانیه از زمان (آغاز زمان یونیکس -
00:00:00، 1 ژانویه 1970) برای تاریخ/زمان معین dt

INT JobAction( کار کار، INT اکشن، رشته پارامتر )
انجام می دهد اقدام on کار با یک پارامتر مشخص شده بسته به
عمل است. اقدام می تواند: SYNCRUN، ASYNCRUN، DELETE، RERUN، HOLD،
RELEASE، SIGNAL، MODIFYATTR، MODIFYRES که در آن:
عمل توضیحات:
=============== ==========================
SYNCRUN اجرا می شود la کار به صورت همزمان،
معنی la صدا به
JobAction() اراده فقط
برگشت چه زمانی la کار است
آغاز شده در حال اجرا or چه زمانی
an خطا است بوده
مواجه شده.
پارام مقدار:
نام of میزبان (ها) به اجرا
کار زیر.

ASYNCRUN اجرا می شود la کار به طور ناهمزمان،
معنی la صدا به
JobAction() اراده برگشت
بلافاصله as بزودی as
la اجرا درخواست is
تایید شده by la PBS سرور، سرور
و نه لزوما چه زمانی
la کار است آغاز شده
اجرا.
پارام مقدار:
نام of میزبان (ها) به اجرا
کار زیر.

حذف حذف می شود la کار.
پارام مقدار:
"deldelay=<# of ثانیه>"
- تاخیر # of ثانیه
میان la در حال ارسال
of مدت هدف و SIGKILL
به la کار قبل از
گرفتن حذف شده.

تکرار دوباره جمع می شود la در حال اجرا کار،
که شامل پایان دادن
la جلسه رهبر of la
کار و عودت la کار
به la صف کشیدن دولت است.

نگه دارید مکان یک or بیش دارای
on la کار.
پارام مقدار:
"تو"، "o"، "s"، "uo", "OS"،
"uos"
- نوع of دارای به محل
on کار: کاربر)، دیگر)،
سیستم).

رهایی حذف می کند or انتشار
دارای قرار داده شده on شغل ها.
پارام مقدار:
"تو"، "o"، "s"، "uo", "OS"،
"uos"
- نوع of دارای به برداشتن
از جانب کار: کاربر)، دیگر)،
سیستم).

علامت می فرستد a سیگنال به la
اجرا کردن کار.
پارام مقدار:
"HUP", "آهوش"،...

MODIFYATTR تغییر la مشخص شده
صفت of la کار به
la داده مقدار، چه زمانی
la attrib_name is
!= "فهرست_منابع" or
"منابع_استفاده شده".
پارام مقدار:
"attrib_name=value"

اصلاح می کند تغییر la شغل ها
Resource_List
صفت داده la
res_name و la
res_value:
Resource_List.res_name=
res_value
پارام مقدار:
"res_name=res_val"
پارامتر ارزش بستگی به عمل دارد. اگر مقداری برای آن وجود ندارد، NULLSTR را مشخص کنید
این پارامتر مورد نظر است.
مقدار بازگشتی: SUCCESS یا FAIL.
توجه: هر گونه ناشناخته اقدام نادیده گرفته می شود
مثال:
// اجرا کار j همزمان
JobAction(j, SYNCRUN، NULLSTR)؛

// اجرا کار j غیر همزمان on میزبان "db"
JobAction(j, ASYNCRUN، "db")؛

// حذف کردن کار j
JobAction(j, حذف، NULLSTR)؛

// حذف کردن کار j با a تاخیر of 5 ثانیه
// میان la در حال ارسال of مدت هدف و
// SIGKILL
JobAction(j, حذف، "deldelay=5");

// تکرار مجدد کار j
JobAction(j, تکرار، NULLSTR)؛

// محل a کاربر) نگه داشتن on کار j
JobAction(j, نگه دارید، "u")؛

// محل an دیگر) نگه داشتن on کار j
JobAction(j, نگه دارید، "o")؛

// محل a سیستم) نگه داشتن on کار j
JobAction(j, نگه دارید، "s")؛

// محل a به طور پیش فرض نگه داشتن (تو) on کار j
JobAction(j, نگه دارید، NULLSTR)؛

// آزاد کاربر) نگه داشتن از جانب کار j
JobAction(j, رهایی، "u")؛

// آزاد دیگر) نگه داشتن از جانب کار j
JobAction(j, رهایی، "o")؛

// آزاد سیستم) نگه داشتن از جانب کار j
JobAction(j, رهایی، "s")؛

// آزاد به طور پیش فرض نگه داشتن (تو) از جانب کار j
JobAction(j, رهایی، NULLSTR)؛

// ارسال چشم انداز سیگنال به کار j
JobAction(j, علامت، "SIGHUP")؛

// به روز رسانی la توضیح صفت of کار
// j به "a پیام".
// La پارامتر قالب است: ویژگی_نام=مقدار_جدید
// مشاوره PBS مستندات برای a فهرست of کار
// صفت نام که می توان be مشخص شده.
JobAction(j, MODIFYATTR، "کامنت=a پیام")
// به روز رسانی la Resource_List.cput صفت of کار
// j به 3600 ثانیه صورت گرفت.
// La پارامتر قالب است: منبع_نام=مقدار_جدید
// دیدن 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، سرگرم کننده زمان قرار func,Int cpr، DateTime ارزش)؛

QueJobFind(Que que، سرگرم کننده اندازه func,Int cpr، اندازه ارزش)؛

جایی که cpr یکی از این موارد است: OP_EQ، OP_NEQ، OP_LE، OP_LT، OP_GE، OP_GT. عملکرد
تابعی است که تنها آرگومان آن از نوع Job است. کار بازگشت است
تایپ کنید

توضیحات: اعمال می شود عملکرد به هر شغل در که , و اولی را برگردانید
شغلی که مقایسه منطقی را برآورده می کند: تابع (شغل) cpr ارزش

مثال:

اندازه JobVirtualMemAvailGet(Job کار)
{
اندازه sz;

sz = JobSizeResReqGet(job, "مم")؛
بازگشت (sz);
}
INT JobWallTimeReqGet(Job کار)
{
INT کیف پول

کیف پول = JobIntResReqGet(job, "زمان دیوار")؛
بازگشت (دیوار)؛
}

INT JobCpuTimeUsedGet(Job کار)
{
INT cput;

cput = JobIntResUseGet(job, "cput")؛
بازگشت (cput)؛
}

که findQueByName(تنظیم که صف ها، رشته qname)
{
که q;

foreach (q in صف ها) {
اگر ( QueNameGet(q) EQ qname ) {
بازگشت (q);
}
}
بازگشت (NOQUE)؛
}
sched_main()
{
سرور s;
که چی؛
تنظیم که مربع

// دریافت کنید محلی سرور
s = AllServersLocalHostGet();

// دریافت کنید la دم of la سرور s
sq = ServerQueuesGet(های)؛

// دریافت کنید la صف تحت عنوان "سریع" از جانب la
// محلی سرور
که = findQueByName( مربع، "سریع" );

// پیدا کردن la 1st کار که زمان دیوار نیاز
// is == 300s:
QueJobFind(que, JobWallTimeReqGet، OP_EQ، 300)؛

// پیدا کردن la 1st کار که پست الکترونیک نشانی به
// مطلع ساختن در باره کار فعالیت != "بایوکان":
QueJobFind(que, JobEmailAddrGet، OP_NEQ،
"بایوکان")؛

// پیدا کردن la 1st کار که بود ایجاد شده بعد از
// or on 3 / 3 / 1997:
QueJobFind(que, JobDateTimeCreatedGet، OP_GE،
(3|3|1997));

// پیدا کردن la 1st کار که بود ایجاد شده بعد از
// 3:3:44:
QueJobFind(que, JobDateTimeCreatedGet، OP_GT،
(3:3:44))؛

// پیدا کردن la 1st کار که بود ایجاد شده بعد از
// 3:3:44 on 3 / 3 / 1997:
QueJobFind(que, JobDateTimeCreatedGet، OP_GT،
(3|3|1997@3:3:44));

// پیدا کردن la 1st کار که پردازنده زمان استفاده < 1600s:
QueJobFind(que, JobCpuTimeUsedGet، OP_LT، 1600)؛

// پیدا کردن la 1st کار که مجازی حافظه
// نیاز <= 300 مگابایت:
QueJobFind(que, JobVirtualMemAvailGet، OP_LE،
300 مگابایت)؛
}

کار QueJobFind( که چی سرگرمی INT تابع، INT cpr)

کار QueJobFind( که چی سرگرمی رشته تابع، INT cpr)

کار QueJobFind( که چی سرگرمی زمان قرار تابع، INT cpr)

کار QueJobFind( که چی سرگرمی اندازه تابع، INT cpr)

جایی که cpr می تواند یکی از موارد زیر باشد: OP_MAX، OP_MIN، عملکرد هست یک
تابعی که تنها آرگومان آن از نوع Job است.

توضیحات: کار را با حداکثر یا حداقل مقدار پیدا شده برای آن برمی‌گرداند
تابع (شغل) همانطور که برای هر شغلی اعمال می شود که .

مثال:
INT JobCpuTimeReqGet(Job کار)
{
INT cput;

cput = JobIntResReqGet(job, "cput")؛
بازگشت (cput)؛
}
sched_main()
{
که چی؛
کار کار؛

// پیدا کردن la کار با la بالاترین پردازنده زمان
// نیاز:
کار = QueJobFind(que, JobCpuTimeReqGet، OP_MAX)؛

// پیدا کردن la کار با la حد اقل پردازنده زمان
// نیاز:
کار = QueJobFind(que, JobCpuTimeReqGet، OP_MIN)؛
}

که QueFilter(Que que، سرگرم کننده INT func,Int cpr,Int مقدار)

که QueFilter(Que que، سرگرم کننده رشته func,Int cpr، رشته مقدار)

که QueFilter(Que que، سرگرم کننده زمان قرار func,Int cpr، تاریخ مقدار)

که QueFilter(Que que، سرگرم کننده اندازه func,Int cpr، اندازه مقدار)

جایی که cpr می تواند یکی از موارد زیر باشد: OP_EQ، OP_NEQ، OP_LE، OP_LT،
OP_GE، OP_GT، عملکرد تابعی است که تنها آرگومان آن از نوع Job است.

توضیحات: اعمال می شود عملکرد به هر شغل در که , و یک que جدید برمی گرداند
شامل تمام مشاغلی است که شرایط مقایسه را برآورده می کند:
تابع (شغل) cpr ارزش

مثال:
INT JobWallTimeReqGet(Job کار)
{
INT کیف پول

کیف پول = JobIntResReqGet(job, "زمان دیوار")؛
بازگشت (دیوار)؛
}
sched_main()
{
که چی؛
که newq;

// بازده a جدید که حاوی تمام شغل ها in "نسبت به. تا"
// با a زمان دیوار نیاز == 300s:
newq = QueFilter(que, JobWallTimeReqGet، OP_EQ، 300)؛

// بازده a جدید که حاوی تمام شغل ها in "نسبت به. تا"
// با an پست الکترونیک نشانی != "بایوکان":
newq = QueFilter(que, JobEmailAddrGet، OP_NEQ، "بایوکان")؛

// بازده a جدید که حاوی تمام شغل ها in "نسبت به. تا"
// ایجاد شده بعد از or on 3 / 3 / 1997:
newq = QueFilter(que, JobDateTimeCreatedGet، OP_GE،
(3|3|1997));

// بازده a جدید که حاوی تمام شغل ها in "نسبت به. تا"
// ایجاد شده بعد از 3:3:44:
newq = QueFilter(que, JobDateTimeCreatedGet، OP_GT،
(3:3:44))؛

// بازده a جدید که حاوی تمام شغل ها in "نسبت به. تا"
// ایجاد شده بعد از 3:3:44 on 3 / 3 / 1997:
newq = QueFilter(que, JobDateTimeCreatedGet، OP_GT،
(3|3|1997@3:3:44));

// توجه: La اصلی "نسبت به. تا" is نه اصلاح شده
// هرچه
}

INT مرتب سازی(تنظیم کار s, سرگرمی INT کلیدی INT سفارش)

INT مرتب سازی(تنظیم کار s, سرگرمی رشته کلیدی INT سفارش)

INT مرتب سازی(تنظیم کار s, سرگرمی شناور کلیدی INT سفارش)

INT مرتب سازی(تنظیم کار s, سرگرمی زمان قرار کلیدی INT سفارش)

INT مرتب سازی(تنظیم کار s, سرگرمی اندازه کلیدی INT سفارش)

جایی که s مجموعه ای از مشاغل برای مرتب سازی کلید کلید مرتب سازی است که a
تابعی که تنها آرگومان آن از نوع Job است، سفارش مرتب سازی است
سفارش: ASC، DESC.

توضیحات: عناصر را مرتب می کند s , در ASCending یا
ترتیب نزولی مقادیری که توسط کلید عملکرد ، به عنوان
برای هر یک از اعضای مجموعه مشاغل اعمال می شود. را s شی اصلاح شده است
با این تماس این بسته به نتیجه، SUCCESS یا FAIL را برمی گرداند
ترتیب.

مثال:
اندازه JobMemReqGet(Job کار)
{
اندازه مم

یادداشت = JobSizeResReqGet(job, "مم")؛
برگشت(مم)؛
}

sched_main()
{
سرور استاد؛

تنظیم کار شغل ها؛

INT سفارش؛

// دریافت کنید محلی سرور
استاد = AllServersLocalHostGet();

شغل ها = ServerJobsGet(استاد)؛
مرتب سازی(مشاغل، JobPriorityGet، ASC)؛
مرتب سازی(مشاغل، JobIdGet، DESC)؛
سفارش = ASC;
مرتب سازی(مشاغل، JobDateTimeCreatedGet، سفارش)؛
سفارش = DESC;
مرتب سازی(مشاغل، JobMemReqGet، سفارش)؛
}

INT مرتب سازی(تنظیم که s, سرگرمی INT کلیدی INT سفارش)

INT مرتب سازی(تنظیم که s, سرگرمی رشته کلیدی INT سفارش)

INT مرتب سازی(تنظیم که s, سرگرمی شناور کلیدی INT سفارش)

INT مرتب سازی(تنظیم که s, سرگرمی زمان قرار کلیدی INT سفارش)

INT مرتب سازی(تنظیم که s, سرگرمی اندازه کلیدی INT سفارش)

جایی که s مجموعه ای از صف ها برای مرتب سازی کلید کلید مرتب سازی است که a
تابعی که تنها آرگومان آن از نوع Que است، سفارش مرتب سازی است
سفارش: ASC، DESC.

توضیحات: عناصر را مرتب می کند s , در ASCending یا
ترتیب نزولی مقادیری که توسط کلید عملکرد ، به عنوان
برای هر یک از اعضای مجموعه صف اعمال می شود. در s شی است
با این تماس اصلاح شد. این بسته به SUCCESS یا FAIL را برمی گرداند
نتیجه از نوع

مثال:
اندازه QueMemAvailGet(Que کو)
{
اندازه مم

یادداشت = QueSizeResAvailGet(que, "مم")؛
برگشت(مم)؛
}

sched_main()
{
سرور استاد؛

تنظیم که سوالات
INT سفارش؛

// دریافت کنید محلی سرور
استاد = AllServersLocalHostGet();

س quesال = ServerQueuesGet(استاد)؛
مرتب سازی(سوالات، QuePriorityGet، ASC)؛
مرتب سازی(سوالات، QueNameGet، ASC)؛
سفارش = DESC;
مرتب سازی(سوالات، QueMemAvailGet، سفارش)؛
}

INT مرتب سازی(تنظیم سرور s, سرگرمی INT کلیدی INT سفارش)

INT مرتب سازی(تنظیم سرور s, سرگرمی رشته کلیدی INT سفارش)

INT مرتب سازی(تنظیم سرور s, سرگرمی شناور کلیدی INT سفارش)

INT مرتب سازی(تنظیم سرور s, سرگرمی زمان قرار کلیدی INT سفارش)

INT مرتب سازی(تنظیم سرور s, سرگرمی اندازه کلیدی INT سفارش)

جایی که s مجموعه ای از سرورها برای مرتب سازی کلید کلید مرتب سازی است که است
تابعی که تنها آرگومان آن از نوع سرور است، سفارش هست
ترتیب مرتب سازی: ASC، DESC.

توضیحات: عناصر را مرتب می کند s , در ASCending یا
ترتیب نزولی مقادیری که توسط کلید عملکرد ، به عنوان
برای هر یک از اعضای مجموعه سرورها اعمال می شود. در s شی است
با این تماس اصلاح شد. این بسته به SUCCESS یا FAIL را برمی گرداند
نتیجه از نوع

مثال:
اندازه ServerMemAvailGet(سرور خدمت)
{
اندازه مم

یادداشت = ServerSizeResAvailGet(service, "مم")؛
برگشت(مم)؛
}

sched_main()
{
تنظیم سرور سرور؛

INT سفارش؛

INT ret

سرور = AllServersGet();

رد = مرتب سازی(سرور، ServerMaxRunJobsGet، ASC)؛
مرتب سازی(سرور، ServerInetAddrGet، ASC)؛

سفارش = DESC;
مرتب سازی(سرور، ServerMemAvailGet، سفارش)؛
}

INT مرتب سازی(تنظیم CNode s, سرگرمی INT کلیدی INT سفارش)

INT مرتب سازی(تنظیم CNode s, سرگرمی رشته کلیدی INT سفارش)

INT مرتب سازی(تنظیم CNode s, سرگرمی شناور کلیدی INT سفارش)

INT مرتب سازی(تنظیم CNode s, سرگرمی زمان قرار کلیدی INT سفارش)

INT مرتب سازی(تنظیم CNode s, سرگرمی اندازه کلیدی INT سفارش)

جایی که s مجموعه ای از گره ها برای مرتب سازی کلید کلید مرتب سازی است که a
تابعی که تنها آرگومان آن از نوع CNode است، سفارش مرتب سازی است
سفارش: ASC، DESC.

توضیحات: عناصر را مرتب می کند s , در ASCending یا
ترتیب نزولی مقادیری که توسط کلید عملکرد ، به عنوان
برای هر عضو مجموعه گره ها اعمال می شود. در s شی است
با این تماس اصلاح شد. این بسته به SUCCESS یا FAIL را برمی گرداند
نتیجه از نوع

مثال:
اندازه CNodeMyMemAvailGet(CNode cn)
{
اندازه مم

یادداشت = CNodeMemAvailGet(cn, "مجازی")؛
برگشت(مم)؛
}

sched_main()
{
تنظیم CNode اسنود

INT سفارش؛

اسنود = AllNodesGet();

مرتب سازی(scnode, CNodeIdletimeGet، ASC)؛
مرتب سازی(scnode, CNodeNameGet، ASC)؛
سفارش = DESC;
مرتب سازی(scnode, CNodeMyMemAvailGet، سفارش)؛
}

CNode..Get() توابع


مقادیر بازگشتی توابع ()CNode..Get که در بخش قبل مورد بحث قرار گرفت عبارتند از
با ارسال پرس و جوهای منبع به MOM CNode در هر تکرار زمان بندی به دست می آید.
به عنوان مثال، CNodeLoadAveGet (گره) مقدار بدست آمده از برخی را برمی گرداند
resource> query (این می تواند رشته "loadave" باشد) همانطور که به MOM گره ارسال می شود. در
" -> نگاشت های CNode..Get()" در داخل ایجاد می شوند، اما می توانند باشند
نگاشت های اصلاح شده یا بیشتر را می توان از طریق فایل پیکربندی زمانبند اضافه کرد. پیکربندی
فایل در مورد بحث قرار گرفته است pbs_sched_basl(8B)
نگاشت هایی که قبلاً ایجاد شده اند در موارد زیر آورده شده است:

برای تمام معماری ها:

CNode..Get() واقعی صدا میزبان منابع
======================== =============
CNodeOsGet (گره) قوس
CNodeLoadAveGet (گره) بارگیری
CNodeIdletimeGet(node) زمان بیکاری

با استفاده از خدمات onworks.net از basl2cB به صورت آنلاین استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

دستورات لینوکس

Ad