Tiếng AnhTiếng PhápTiếng Tây Ban Nha

Ad


Biểu tượng yêu thích OnWorks

basl2cB - Trực tuyến trên đám mây

Chạy basl2cB trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks trên Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

Đây là lệnh basl2cB có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


basl2c - chuyển đổi mã BASL (Ngôn ngữ lập lịch BAtch) thành mã lập lịch C.

SYNOPSIS


basl2c [-d] [-l lexerDebugFile] [-p parserDebugFile] [-y symtabDebugFile] [-s
ngữ nghĩaDebugFile] [-g codegenDebugFile] [-c cFile] baslFile

MÔ TẢ


basl2c là trình biên dịch BASL sang C tạo ra mã trung gian có thể được đưa vào
trình biên dịch C thông thường và được liên kết với các thư viện PBS để tạo ra bộ lập lịch thực thi.
Basl2c nhận làm đầu vào a baslFile, là một chương trình được viết trong Lập lịch BAtch
Ngôn ngữ, chứa mã lập lịch chính. Sau đó, Basl2c chuyển đổi các cấu trúc BASL
trong tệp thành các câu lệnh C và nó cũng đính kèm mã bổ sung để tạo ra PBS
mã nguồn của bộ lập lịch. Theo mặc định, mã C kết quả được ghi vào tệp
pbs_sched.c.

Tên đường dẫn đầy đủ đến tệp C kết quả là những gì cần được chỉ định trong SCHD_CODE
biến trong local.mk trước khi biên dịch bộ lập lịch BASL để tạo ra pbs_sched
thực thi.

LỰA CHỌN


-d In thông báo gỡ lỗi bổ sung tới lexer (tùy chọn xem -l), trình phân tích cú pháp (xem -p
tùy chọn), bảng ký hiệu (tùy chọn xem -y), trình phân tích ngữ nghĩa (tùy chọn xem -s) và mã
máy phát điện (xem tùy chọn -g).

-l lexerDebugFile
lexerDebugFile là tên của một tệp để ghi vào các thông báo gỡ lỗi được tạo ra
trong khi quét mã thông báo.

-p trình phân tích cú phápDebugFile
trình phân tích cú phápDebugFile là tên của một tệp để ghi vào các thông báo gỡ lỗi được tạo ra
trong khi tập hợp các mã thông báo theo cách có thể sử dụng được.

-y symtabDebugFile
symtabDebugFile là tên của một tệp để ghi vào các thông báo gỡ lỗi liên quan đến
bảng ký hiệu.

-s ngữ nghĩaDebugFile
ngữ nghĩaDebugFile là tên của một tệp để ghi vào thông báo gỡ lỗi
được tạo trong khi kiểm tra để đảm bảo các biến và toán tử được sử dụng trong
Cách nhất quán.

-g codegenDebugFile
codegenDebugFile là tên của một tệp để ghi vào các thông báo gỡ lỗi được tạo ra
trong khi chuyển đổi câu lệnh BASL sang câu lệnh C.

-c cFile
cFile là tên của tệp nơi mã C được tạo ra được ghi vào.

CHỦ YẾU Cơ cấu


Cấu trúc cơ bản của mã bộ lập lịch được viết bằng BASL như sau:
không or chi tiết CHỨC NĂNG các định nghĩa
không or chi tiết toàn cầu BIẾN ĐỔI KHAI BÁO
không or chi tiết chuyển nhượng báo cáo (đến khởi tạo toàn cầu biến)
Sched_main ()
{
một or chi tiết BIẾN ĐỔI KHAI BÁO

không or chi tiết CÁC CÂU LỆNH
}

Ví dụ,
% làm sao Sched.basl
Int sum (Int a, Int b)
{
Int s;
s = a + b;
return (các);
}
Int quả cầu;
Sched_main ()
{
Int c;

a = 3;
b = 4;
c = sum (a, NS);
in (c);
toàn cầu = 5;
in (bong);
}

Sched_main () là hàm được gọi ở mỗi lần lặp lập lịch.

CHỨC NĂNG


Để xác định một hàm có thể được gọi trong các hàm tiếp theo, cú pháp là:

Kiểu trả về Tên chức năng ( LOẠI DỮ LIỆU1 NHẬN DẠNG1,
LOẠI DỮ LIỆU2 NHẬN DẠNG2, hữu ích. Cảm ơn ! )
{
một or chi tiết BIẾN ĐỔI KHAI BÁO

không or chi tiết CÁC CÂU LỆNH
}

Ví dụ,
Làm mất hiệu lực printStuff (Dayofweek xuống, Ngày giờ t, Chuỗi đường,
Kích thước máy sz, CNode cn)
{
in (xuống);
in (t);
print (str);
in (sz);
in (cn);
}

Chức năng hợp lệ Kiểu trả về là: Void, Int, Float, Dayofweek, DateTime, String, Size,
Máy chủ, Hàng đợi, Công việc, CNode, Đặt Máy chủ, Đặt Que, Đặt Công việc, Đặt CNode.

Các kiểu dữ liệu hợp lệ ( DỮ LIỆU1, DỮ LIỆU2, hữu ích. Cảm ơn ! ) cho các số nhận dạng tham số là: Int,
Float, Dayofweek, DateTime, String, Size, Server, Que, Job, CNode, Set Server, Set Que,
Đặt công việc, Đặt CNode, Phạm vi Int, Phao phạm vi, Phạm vi trong ngày thứ hai tuần, Thời gian theo phạm vi, Kích thước phạm vi,
Fun Int, Fun Float, Fun Void, Fun Dayofweek, Fun DateTime, Fun String, Fun Size, Fun
Máy chủ, Bộ vui nhộn, Công việc thú vị, CNode thú vị, Bộ máy chủ thú vị, Bộ vui nhộn, Bộ công việc thú vị, Bộ thú vị
CNode. Các kiểu dữ liệu này sẽ được thảo luận trong chủ đề tiếp theo.

Các hàm được gọi theo tên của chúng và các đối số của chúng như trong:

printStuff ( THỨ HAI, (5|1|1997@14:32:00), "lịch trình bắt đầu ",
30gb, nút );

basl2c sẽ thực sự thêm tiền tố "basl_" vào tên hàm do bộ lập lịch cung cấp
người viết để giảm thiểu cơ hội xung đột tên, điều này có thể xảy ra khi mã C kết quả là
được liên kết với các thư viện PBS, BASL. Ví dụ: nếu bạn nhìn vào mã C được tạo cho
in ấn, bạn sẽ thấy,

basl_printStuff( MON, (5|1|1997@14:32:00),
"lịch trình bắt đầu", 30gb, nút);

Như trong C, tất cả các lệnh gọi hàm phải được xác định trước đó. Trình biên dịch BASL sẽ
kiểm tra để đảm bảo rằng các đối số trong lệnh gọi hàm khớp chính xác (về mặt
loại) với các tham số trong định nghĩa hàm.

Hai loại hàm tồn tại trong BASL: hàm do người dùng xác định và hàm được xác định trước.
Các chức năng do người dùng xác định là những chức năng mà người viết lịch trình cung cấp định nghĩa cho,
trong khi các hàm được xác định trước là những hàm có thể được gọi ngay lập tức mà không cần
xác định nó. Để biết danh sách các hàm được xác định trước, hãy xem phần trên DỰ KIẾN CHỨC NĂNG .

BIẾN ĐỔI KHAI BÁO


Giống như trong C, tất cả các biến trong mã BASL phải được khai báo rõ ràng trước khi sử dụng. Những thứ kia
các biến được khai báo bên ngoài bất kỳ hàm nào được gọi là biến toàn cục, trong khi
các biến được khai báo trong một thân hàm được gọi là biến cục bộ. Toàn cầu
các biến có thể sử dụng được ở bất kỳ đâu trong mã BASL, trong khi các biến cục bộ có thể đọc được
chỉ trong hàm mà từ đó chúng được khai báo.

Cú pháp của một khai báo biến là:

LOẠI DỮ LIỆU số nhận dạng ;

Ở đâu LOẠI DỮ LIỆU có thể là: Int, Float, Dayofweek, DateTime, String, Size, Server, Que, Job,
CNode, Đặt máy chủ, Đặt hàng, Đặt công việc, Đặt CNode, Phạm vi Int, Phạm vi nổi, Phạm vi ngày trong tuần,
Phạm vi DateTime, Kích thước phạm vi.

DỮ LIỆU LOẠI


Làm mất hiệu lực được sử dụng cho các hàm không trả về giá trị.

Int có dấu, các số nguyên cho trong cơ số 10.

Hằng số mẫu:
5, +1, -3, THÀNH CÔNG (= 1), THẤT BẠI (= 0), ĐÚNG (= 1), FALSE (= 0)

Phao số thực được biểu diễn dưới dạng nhân đôi trong mã C đã dịch.
Hằng số mẫu: 4.3, +1.2, -2.6

Ngày trong tuần
các giá trị không đổi: SUN, MON, TUE, WED, THU, FRI, SAT, được biểu thị bên trong dưới dạng
các hằng số có giá trị nguyên với SUN = 0, MON = 1, v.v.

Ngày giờ
chỉ định ở một trong 3 định dạng:

[1] (m | d | y) trong đó 1 <= m <= 12, 1 <= d <= 31, 0 <= y, ex. (4 | 4 | 1997);

[2] (hh: mm: ss) trong đó 0 <= hh <= 23, 0 <= mm <= 59, 0 <= ss <= 61, ví dụ.
(12:01:00);

[3] (m|d|y@hh:mm:ss), ex. (4|4|1997@12:01:00)
Trong quá trình so sánh ngày / giờ, thời gian "bây giờ" được thay thế nếu thời gian
phần không được đưa ra (định dạng [1]); ngày "bây giờ" được thay thế nếu
phần ngày tháng không được cung cấp (định dạng [2]). Ngoài ra, phần cả năm phải
được đưa ra (tức là năm 1997 thay vì 97) theo ngày tháng để tránh sự mơ hồ.

Chuỗi Một chuỗi được đặt trong dấu ngoặc kép (") và nó có thể chứa bất kỳ thứ gì ngoại trừ chuỗi khác
trích dẫn, một dòng mới, và các dấu ngoặc đơn trái và phải.
Hằng số mẫu: "chuỗi mẫu", NULLSTR

Kích thước máy định dạng: trong đó hậu tố là một cấp số nhân của biểu mẫu:
:

nhân đơn vị (byte or từ)
=================== =====================
k, m, g, t, p, K, M, G, T, P b, B, w, W

trong đó 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 và kích thước từ w = W được xác định cục bộ (tức là 4
byte trong máy 32 bit).

Khi hoạt động trên 2 toán hạng kích thước có các hậu tố khác nhau, hậu tố của
"thấp hơn" của hai sẽ là hậu tố kết quả. Ví dụ,
10mb + 10gb = 10250mb
Hằng số mẫu: -1b, 2w, 1kb, 2mw, + 3gb, 4tw, 6Pb

Phạm vi Int

định dạng: (giá trị Int thấp, giá trị Int cao)
trong đó giá trị Int thấp <= giá trị Int cao. Hằng số mẫu: (1,3)

Phạm vi Phao

định dạng: (giá trị Float thấp, giá trị Float cao)
trong đó giá trị thấp <= giá trị cao. Hằng số mẫu: (2.3, 4.6)

Phạm vi Ngày trong tuần

định dạng: (ngày sớm hơn, ngày hôm sau)
nơi sớm hơn ngày <= ngày sau. Hằng số mẫu: (WED, FRI)

Phạm vi Ngày giờ

định dạng: (ngày / giờ sớm hơn, ngày / giờ muộn hơn)
trong đó ngày / giờ sớm hơn <= ngày / giờ muộn hơn.
LƯU Ý: nếu phạm vi chỉ chứa các phần thời gian và thời gian sớm hơn "xuất hiện" để
be> muộn hơn như trong "((18: 0: 0), (6: 0: 0))", sau đó trong ngày / giờ
so sánh, thời gian "muộn hơn" sẽ được điều chỉnh vào một ngày để nó sẽ
trông giống như: "( ( @ 18: 0: 0), ( @ 6: 0: 0)) "

Hằng số mẫu:
((4|4|1997), (4|10|1997)), ((12:01:00), (12:30:00)), ((4|4|1997@12:01:00),
(4|10|1997@12:30:00))

Phạm vi Kích thước máy

định dạng: (kích thước thấp, kích thước cao)
trong đó kích thước thấp <= kích thước cao. Hằng số mẫu: (23gb, 50gb)

máy chủ Ánh xạ trực tiếp đến đối tượng máy chủ PBS. MỘT máy chủ quản lý một hoặc nhiều Đó các đối tượng.
Hằng số mẫu: NOSERVER

CNode cho nút tính toán bao gồm một hình ảnh hệ điều hành duy nhất, một bộ nhớ dùng chung và một tập hợp
của cpus. CNode chạy 1 PBS MOM.
Hằng số mẫu: NOCNODE

Đó Ánh xạ trực tiếp đến đối tượng hàng đợi PBS. MỘT Đó vật thể cuộn một hoặc nhiều Việc làm
các đối tượng.
Hằng số mẫu: NOQUE

Việc làm Ánh xạ trực tiếp đến đối tượng công việc PBS. MỘT Việc làm đối tượng mang một số thuộc tính và
yêu cầu tài nguyên.
Hằng số mẫu: NOJOB

Thiết lập máy chủ
danh sách các đối tượng Máy chủ.
Hằng số mẫu: EMPTYSETSERVER

Thiết lập CNode
danh sách các đối tượng CNode.
Hằng số mẫu: EMPTYSETCNODE

Thiết lập Đó danh sách các đối tượng Que.
Hằng số mẫu: EMPTYSETQUE

Thiết lập Việc làm danh sách các đối tượng Công việc.
Hằng số mẫu: EMPTYSETJOB

ĐỊNH NGHĨA CƠ BẢN HẰNG SỐ


Đây là những hằng số không thể được sử dụng để đặt tên cho một định danh (xem chủ đề tiếp theo). Này
luôn được viết hoa.

DỮ LIỆU LOẠI ĐỊNH NGHĨA CƠ BẢN KHÔNG THAY ĐỔI
=================== =============================================
Ngày trong tuần MẶT TRỜI, THỨ HAI, TUỆ, THỨ TƯ, THU, Thứ Sáu, SAT

Int SỰ THÀNH CÔNG, THẤT ​​BẠI, SAI, THẬT, ĐỒNG BỘ, KHÔNG ĐỒNG BỘ,
XÓA BỎ, CHẠY, TỔ CHỨC, PHÓNG THÍCH, DẤU HIỆU,
SỬA ĐỔI, SỬA ĐỔI, MÁY CHỦ_ACTIVE,
MÁY CHỦ_IDLE, MÁY CHỦ_SCHED, MÁY CHỦ_TERM,
MÁY CHỦ_TERMDELAY, QTYPE_E, QTYPE_R,
SCHED_DISABLED, SCHED_ENABLED, quá cảnh,
HÀNG ĐẶT HÀNG, ĐÃ TỔ CHỨC, ĐANG CHỜ ĐỢI, ĐANG CHẠY, XUẤT CẢNH,
CNODE_OFFLINE, CNODE_DOWN, CNODE_FREE,
CNODE_RESERVE, CNODE_INUSE_EXCLUSIVE,
CNODE_INUSE_SHARED, CNODE_TIMESHARE,
CNODE_CLUSTER, CNODE_UNKNOWN, OP_EQ, OP_NEQ,
OP_LE, OP_LT, OP_GE, OP_GT, OP_MAX, OP_MIN,
ASC DESC

máy chủ MÁY CHỦ
Thiết lập máy chủ MÁY CHỦ EMPTYSET

CNode NOCNODE
Thiết lập CNode EMPTYSETCNODE

Đó KHÔNG CÓ
Thiết lập Đó EMPTYSETQUE

Việc làm KHÔNG CÓ VIỆC LÀM
Thiết lập Việc làm EMPTYSETJOB

Chuỗi NULLSTR

số nhận dạng


Số nhận dạng (được sử dụng cho tên biến và tên hàm) ở định dạng chữ và số, với
cho phép ký tự gạch dưới (_) đặc biệt. Hiện tại, BASL chỉ có thể xử lý các số nhận dạng
với độ dài lên đến 80 ký tự. Ngoài ra, bạn không thể sử dụng các tên hằng do BASL xác định cho
đặt tên cho một định danh.

CÁC CÂU LỆNH


In BASL(2), bạn có thể có một câu lệnh được kết thúc bằng dấu chấm phẩy hoặc một nhóm
các câu lệnh (được gọi là câu lệnh ghép hoặc khối) được phân cách bằng '{' và '}'. Khác nhau
các loại câu lệnh có thể xuất hiện trong mã BASL là:

1. câu lệnh biểu thức
Các câu lệnh biểu thức là bất kỳ dạng nào:

thể hiện ;

Ở đâu thể hiện có thể:

a) Biểu thức số học

lexpr + rexpr (cộng)
lexpr - rexpr (trừ đi)
lexpr * rexpr (nhân)
lexpr / rexpr (chia)
lexpr % rexpr (mô đun or phần còn lại)

LƯU Ý: Cộng, trừ, nhân, chia và dư
sẽ chỉ được phép đối với các loại phù hợp và nếu bên trái và bên phải
các biểu thức thuộc loại nhất quán. Bảng dưới đây minh họa những gì
các kiểu nhất quán giữa các toán tử khác nhau:

Đối với +:

lexpr rexpr
============ ============
Int or Phao Int or Phao
Kích thước máy Kích thước máy
Chuỗi Chuỗi

Vì -, *, /:

lexpr rexpr
============ ============
Int or Phao Int or Phao
Kích thước máy Kích thước máy

Vì %:

lexpr rexpr
============ ============
Int or Phao Int or Phao

Dưới đây là một số câu lệnh biểu thức số học mẫu:
Int i1;
Int i2;
Phao f1;
Phao f2;
Kích thước máy sz1;
Kích thước máy sz2;
Chuỗi str1;
Chuỗi str2;

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

str1 = "basl";
str2 = " mát mẻ";

// các tiếp theo is a chuỗi ghép
// hoạt động kết quả in các chuỗi:
// "basl mát mẻ"
str1 + str2;

i1 % 10;

b) Biểu thức đơn nguyên

+ expr // tích cực - nhân lên by 1 an
// biểu hiện việc này is
// of NS, Trôi nổi, or
// Kích thước máy kiểu

-expr // tiêu cực - nhân lên by -1 an
// biểu hiện việc này is
// of NS, Trôi nổi, or
// Kích thước máy kiểu

! expr // không - chuyển đổi a khác không thể hiện
// giá trị trong 0, a
// không thể hiện giá trị trong 1
// Ở đâu thể hiện kiểu phải be
// of kiểu Int or Phao

Một số biểu thức một ngôi mẫu:
Int i;

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

c) Biểu thức logic

lexpr EQ rexpr
lexpr NQ rexpr
lexpr LT rexpr
lexpr LE rexpr
lexpr GT rexpr
lexpr GE rexpr
lexpr rexpr
lexpr OR rexpr

lexprrexpr phải có các loại nhất quán lẫn nhau như được hiển thị
trong bảng sau:

thiết bị đầu cuối-expr rterminal-expr
============== ==============
Int or Phao Int or Phao
Ngày trong tuần Ngày trong tuần
Ngày giờ Ngày giờ
Chuỗi Chuỗi
Kích thước máy Kích thước máy
máy chủ máy chủ
Đó Đó
Việc làm Việc làm
CNode CNode
Thiết lập máy chủ Thiết lập máy chủ
Thiết lập Đó Thiết lập Đó
Thiết lập Việc làm Thiết lập Việc làm
Thiết lập CNode Thiết lập CNode

Trong VÀ, OR toán tử, điện thoại di động, rexpr loại nhất quán là Int hoặc
Trôi nổi.

Một số biểu thức logic mẫu:

i1 EQ i2;
i1 NQ f2;
giảm 1 LE xuống2;
d1 LT d2;
str1 GT str2;
sz1 GE sz2;

d) Biểu thức hậu toán tử
Đây là những biểu thức chỉ đơn thuần là phím tắt để gán
các câu lệnh.

IDENTIFIER ++; // định danh = số nhận dạng + 1
XÁC NHẬN--; // định danh = định danh-1

số nhận dạng phải thuộc loại Int hoặc Float.

Ví dụ:
Int i;
Phao f;

i ++;
NS--;

e) Gọi hàm

Tên chức năng ( arg1 , arg2 hữu ích. Cảm ơn ! , argN )

Ở đâu arg1, ..., argN có thể là bất kỳ hằng số hoặc biến. Bạn không thể có
một lời gọi hàm khác làm đối số.
Ví dụ:
Làm mất hiệu lực in a) {
in (a);
}

pr(5);

Có một số chức năng được xác định trước mà người viết lịch trình có thể
tự động gọi trong mã BASL của anh ấy / cô ấy mà không cần xác định nó.
Các chức năng này được gọi là chức năng hỗ trợ (hoặc trình trợ giúp
chức năng) và chúng được thảo luận dưới DỰ KIẾN CHỨC NĂNG đề tài.

f) Hằng số
Một số biểu thức hằng hợp lệ được đưa ra như sau:
5;
+ 1.2;
MẶT TRỜI;
THỨ HAI;
TUẾ;
THỨ TƯ;
THU;
FRI;
ĐÃ NGỒI;
(4 | 4 | 1997);
(12:01:00);
(4|4|1997@12:01:00);
"Tuyệt vời";
-1b;
ĐỒNG BỘ HÓA;
KHÔNG ĐỒNG BỘ;
XÓA BỎ;
CHẠY;
TỔ CHỨC;
PHÓNG THÍCH;
DẤU HIỆU;
SỬA ĐỔIATTR;
SỬA ĐỔI;
(1, 3);
(2.3, 4.6);
(THỨ TƯ, THỨ SÁU);
((4|4|1997), (4|10|1997));
((12:01:00), (12:30:00));
((4|4|1997@12:01:00), (4|10|1997@12:30:00));
(23gb, 50gb);
MÁY CHỦ;
NOCNODE;
DUY NHẤT;
KHÔNG CÓ VIỆC LÀM;
MÁY BẢO QUẢN EMPTYSETS;
EMPTYSETCNODE;
EMPTYSETQUE;
EMPTYSETJOB;
NULLSTR;
SỰ THÀNH CÔNG;
THẤT ​​BẠI;
MÁY CHỦ_ACTIVE;
MÁY CHỦ_IDLE;
MÁY CHỦ_SCHED;
MÁY CHỦ_TERM;
MÁY CHỦ_TERMDELAY;
QTYPE_E;
QTYPE_R;
SCHED_DISABLED;
SCHED_ENABLED;
SAI;
THẬT;
CHUYỂN KHOẢN;
HÀNG ĐẶT HÀNG;
ĐÃ TỔ CHỨC;
ĐANG CHỜ ĐỢI;
ĐANG CHẠY;
XUẤT CẢNH;
CNODE_OFFLINE;
CNODE_DOWN;
CNODE_FREE;
CNODE_RESERVE;
CNODE_INUSE_EXCLUSIVE;
CNODE_INUSE_SHARED;
CNODE_TIMESHARE;
CNODE_CLUSTER;
CNODE_UNKNOWN;
OP_EQ;
OP_NEQ;
OP_LE;
OP_LT;
OP_GE;
OP_GT;
OP_MAX;
OP_MIN;

g) Định danh

Ví dụ:
int tôi;

i;

2. Tuyên bố phân công

số nhận dạng = thể hiện ;

số nhận dạngthể hiện phải có các loại nhất quán lẫn nhau như
minh họa trong bảng sau:

định danh thể hiện
=============== ===============
Int NS, Phao
Phao NS, Phao
Ngày trong tuần Ngày trong tuần
Ngày giờ Ngày giờ
Chuỗi Chuỗi
Kích thước máy Kích thước máy
Đó Đó
Việc làm Việc làm
CNode CNode
máy chủ máy chủ
Ngày trong tuần Ngày trong tuần
Ngày giờ Ngày giờ
Thiết lập máy chủ Thiết lập máy chủ
Thiết lập Đó Thiết lập Đó
Thiết lập Việc làm Thiết lập Việc làm
Thiết lập CNode Thiết lập CNode
Phạm vi Int Phạm vi Int
Phạm vi Phao Phạm vi Phao
Phạm vi Ngày trong tuần Phạm vi Ngày trong tuần
Phạm vi Ngày giờ Phạm vi Ngày giờ
Phạm vi Kích thước máy Phạm vi Kích thước máy

3. nếu khác tuyên bố
Định dạng của câu lệnh if tương tự như trong C với dấu phân cách
"{" và "}" luôn hiện diện:

nếu( thể hiện ) {
không or chi tiết (True) CÁC CÂU LỆNH
}

nếu( thể hiện ) {
không or chi tiết (True) CÁC CÂU LỆNH
} khác {
không or chi tiết (sai) CÁC CÂU LỆNH
}

Sản phẩm thể hiện 's loại phải là Int hoặc Float và sau khi đánh giá nếu
giá trị khác XNUMX, thì các câu lệnh true được thực thi. Vào ngày thứ hai
hình thức, nếu thể hiện đánh giá bằng XNUMX, sau đó các câu lệnh sai được thực thi.

Một số mẫu if các câu lệnh được đưa ra dưới đây:

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

if (2 * x ) {
y = y + 3;
} khác {
nếu( 3 * x ) {
y = 4;
} khác {
y = 5;
}
}

4. cho vòng lặp tuyên bố
Định dạng của câu lệnh for như sau:

vì( khởi đầu; kiểm tra; hoạt động ) {
không or chi tiết CÁC CÂU LỆNH
}

Cũng giống như trong C, cho lần thực hiện đầu tiên Bắt đầu , sau đó đánh giá thử nghiệm điều kiện
để xem nó có trả về giá trị khác XNUMX hay không. Nếu nó xảy ra, cho tuyên bố là
Thực thi. Sau cho các câu lệnh được thực thi, sau đó hoạt động được đánh giá,
và sau đó nó kiểm tra thử nghiệm điều kiện trở lại theo cách tương tự như trước.
Bắt đầuhoạt động có thể là một biểu thức gán đơn giản hoặc một toán tử hậu
biểu hiện. thử nghiệm là một biểu thức logic / quan hệ. Một số mẫu cho
các câu lệnh được đưa ra như sau:

cho (i = 0; i LT 3 ; i = i + 1)
{
in (i);
}

cho (i = 0; i LT 2 * x; i ++)
{
if (x GT 3)
{
y = 99;
} khác
{
x = 73;
}
}

5. cho mỗi vòng lặp tuyên bố
Câu lệnh này chủ yếu được sử dụng để truy xuất liên tiếp từng phần tử của
a Đặt kiểu dữ liệu: Đặt Máy chủ, Đặt CNode, Đặt Công việc, Đặt Que. Cú pháp là:

cho mỗi ( ĐỊNH DẠNG1 in ĐỊNH DẠNG2 ) {
không or chi tiết CÁC CÂU LỆNH
}

trong đó cho phép ghép nối các loại mã định danh sau:

ĐỊNH DẠNG1 ĐỊNH DẠNG2
=========== ===========
máy chủ Thiết lập máy chủ
Đó Thiết lập Đó
Việc làm Thiết lập Việc làm
CNode Thiết lập CNode

Ví dụ:
máy chủ s;
Đó q;
Việc làm j;
CNode c;

Thiết lập máy chủ NS;
Thiết lập Đó vuông;
Thiết lập Việc làm sj;
Thiết lập CNode sc;

foreach (s in NS){
(các) bản in;
}
foreach (q in sq) {
in (q);
}
foreach (j in sj) {
in (j);
}
foreach (c in sc) {
in (c);
}

6. trong khi vòng lặp tuyên bố
Cú pháp của vòng lặp while là:

trong khi ( thể hiện ) {
không or chi tiết CÁC CÂU LỆNH
}

Ở đâu thể hiện phải thuộc loại Int hoặc Float. Nếu như thể hiện là khác XNUMX, sau đó là XNUMX
Hoặc nhiều hơn CÁC CÂU LỆNH được thực hiện và thể hiện được đánh giá lại.

Ví dụ:
Int i;
i = 3;
trong khi tôi) {
nếu( i EQ 0 ) {
print ("break on i = 1 ");
phá vỡ;
}
tôi--;
}

7. chuyển đổi tuyên bố
Câu lệnh switch là một quyết định phức tạp để kiểm tra xem một
giá trị của mã định danh khớp với một trong số các giá trị và các nhánh với
nhóm câu lệnh cho phù hợp.
Cú pháp cho câu lệnh switch là:

chuyển đổi ( số nhận dạng ) {
trường hợp hằng số expr :
{
không or chi tiết CÁC CÂU LỆNH
}
trường hợp hằng số expr :
{
không or chi tiết CÁC CÂU LỆNH
}
hữu ích. Cảm ơn !
trường hợp in dải ô không đổiOrSet-expr :
{
không or chi tiết CÁC CÂU LỆNH
}
trường hợp in IDENTIFIER-rangeOrSettype :
{
không or chi tiết CÁC CÂU LỆNH
}
mặc định :
{
không or chi tiết CÁC CÂU LỆNH
}
}

Ở đâu hằng số expr là một thể hiện thuộc loại Int, Float, Dayofweek, DateTime,
Kích thước, chuỗi, máy chủ, hàng đợi, công việc hoặc CNode. dải ô không đổiOrSet-expr
IDENTIFIER-rangeOrSettype có thể thuộc loại Đặt Máy chủ, Đặt CNode, Đặt Que, Đặt
Job, Range Int, Range Float, Range Dayofweek, Range DateTime hoặc Range Size.

số nhận dạng không thể thuộc loại Void. số nhận dạng 's loại phải nhất quán
với hằng số expr 'S, dải ô không đổiOrSet-expr 'S,NHẬN DẠNG-
phạm viOrSettype 's gõ như minh họa trong bảng sau:
số nhận dạng hằng số-expr, IDENTIFIER-rangetype
=========== =========================================
máy chủ Thiết lập máy chủ
Đó Thiết lập Đó
Việc làm Thiết lập Việc làm
CNode Thiết lập CNode
Int Phạm vi Int
Phao Phạm vi Phao
Ngày trong tuần Phạm vi Ngày trong tuần
Ngày giờ Phạm vi Ngày giờ
Kích thước máy Phạm vi Kích thước máy

Nếu một biểu thức chữ hoa chữ thường khớp với số nhận dạng 's giá trị, sau đó tương ứng
khối các câu lệnh được thực thi. Không giống như trong C, thực thi KHÔNG giảm
thông qua tuyên bố trường hợp tiếp theo. Lý do cho điều này là basl2c sẽ
dịch cái này chuyển đổi câu lệnh thành cấu trúc if-elseif-else. Trường hợp
mặc định có nhãn được thực thi nếu không có trường hợp nào khác được thỏa mãn. Các
mặc định Là tùy chọn; nếu nó không có ở đó và nếu không có trường hợp nào phù hợp, thì không
hành động diễn ra.

Ví dụ:
Ngày trong tuần hạ xuống;

chuyển đổi (xuống)
{
trường hợp MON:
{
print ("trường hợp THỨ HAI");
}
trường hợp TUE:
{
print ("trường hợp TUE ");
}
trường hợp THỨ TƯ:
{
print ("trường hợp THỨ TƯ");
}
trường hợp THU:
{
print ("trường hợp THU ");
}
trường hợp BẠN
{
print ("trường hợp FRI ");
}
trường hợp NGỒI:
{
print ("trường hợp ĐÃ NGỒI");
}
trường hợp MẶT TRỜI:
{
print ("trường hợp MẶT TRỜI");
}
mặc định:
{
print ("trường hợp mặc định ");
}
}

Int a;
Phạm vi Int ri đô;
ri = (10, 12);
chuyển đổi (a)
{
trường hợp in (1,5):
{
print ("trường hợp 1,5 ");
}
trường hợp in (6,9):
{
print ("trường hợp 6,9 ");
}
trường hợp in ri:
{
print ("trường hợp ri ");
}
}

8. in tuyên bố
Câu lệnh in có khả năng in để thay đổi giá trị của bất kỳ định danh
or không thay đổi thuộc loại Int, Float, Dayofweek, DateTime, String, Size, Que, Job,
CNode, Máy chủ, Phạm vi Int, Phạm vi nổi, Phạm vi ngày trong tuần, Phạm vi ngày giờ,
Kích thước phạm vi.
Cú pháp như sau:

in ( số nhận dạng );
in ( không thay đổi );

Ví dụ:
Ngày giờ đt;
CNode cn;

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

in (dt);
in (cn);

Đối với các loại Bộ, hãy sử dụng cho mỗi để đi qua từng phần tử và in như trong:

máy chủ s;
Thiết lập máy chủ NS;

ss = AllServersGet ();

foreach (s in NS) {
(các) bản in;
}

9. tiếp tục tuyên bố

tiếp tục ;

Sản phẩm tiếp tục tuyên bố phải được gọi trong một cho, cho mỗi,
trong khi vòng. Nó khiến lần lặp tiếp theo của vòng lặp bắt đầu.

10. câu lệnh break

phá vỡ ;

Sản phẩm phá vỡ tuyên bố phải được gọi trong một cho, cho mỗi,trong khi
vòng. Nó cung cấp một lối ra sớm khỏi vòng lặp bao vây.

11. báo cáo trả lại

trở lại (IDENTIFIER) ;
return (hằng số) ;
trở lại() ;

Câu lệnh return cung cấp giá trị (nếu có) được trả về bởi một
hàm số. Loại được trả về bởi số nhận dạngkhông thay đổi phải phù hợp với
gọi kiểu trả về của hàm. không thay đổi các loại được phép là bất cứ điều gì ngoại trừ
Các loại Đặt và Phạm vi. Định dạng cuối cùng, trở lại() thường được gọi trong một
hàm không trả về bất kỳ giá trị nào (như Sched_main () ).

12. câu lệnh thoát

thoát ra (hằng số);

Ở đâu không thay đổi thuộc loại Int. Việc gọi này sẽ kết thúc trình lập lịch.

13. Nhận xét tuyên bố
Đây là những câu lệnh có tiền tố là "//" và chúng bị BASL bỏ qua
trình biên dịch.

// điều này hàng is bỏ qua
Int i; // chuỗi tiếp theo các dấu gạch chéo is bỏ qua

NHÀ ĐIỀU HÀNH QUYỀN ƯU TIÊN LIÊN KẾT


Bảng sau đây cho thấy các mức ưu tiên toán tử khác nhau và tính kết hợp được xác định
bằng ngôn ngữ BASL. Các toán tử được liệt kê theo thứ tự ưu tiên giảm dần. Các
quyền ưu tiên của một toán tử càng cao thì nó càng được thực thi sớm hơn. Thứ tự mà
các toán tử trên cùng một mức được thực thi phụ thuộc vào tính kết hợp: left có nghĩa là
các toán tử được nhìn thấy từ trái sang phải, trong khi bên phải có nghĩa là chúng được nhìn thấy từ phải sang trái.

Nhà điều hành Sự liên kết
=================================== =============
! ++ -- + (một năm thêm) - (một năm dấu trừ) ngay
* / % trái
+ - trái
LT LE GT GE trái
EQ NQ trái
trái
OR trái
= ngay

DỰ KIẾN CHỨC NĂNG


In BASL(2), tới máy chủ kiểu dữ liệu ánh xạ trực tiếp đến một đối tượng máy chủ hàng loạt. Tương tự, CNode
là với mẹ / resmom, Việc làm là thực hiện hàng loạt công việc, và Đó là hàng đợi hàng loạt. Tuy nhiên, không phải tất cả
các thuộc tính của các đối tượng PBS có thể được truy cập từ BASL. Chỉ một tập hợp con các thuộc tính,
những thứ mà dường như có ý nghĩa trong ngữ cảnh của một công cụ lập lịch, được cung cấp sẵn và
các giá trị của các thuộc tính này có thể được truy cập bằng cách gọi các hàm được xác định trước sau đây,
còn được gọi là các chức năng trợ giúp / trợ giúp.

(1) Các chức năng liên quan đến máy chủ

Thiết lập máy chủ AllServersGet (vô hiệu)
Trả về danh sách các máy chủ được chỉ định trong tệp cấu hình cho
mà người viết lịch trình muốn hệ thống kiểm tra định kỳ
trạng thái, hàng đợi và thông tin công việc. Nhìn thấy pbs__sched__basl(8b) cho một
thảo luận về định dạng của tệp cấu hình.
THẬN TRỌNG: Hàm này phải được gọi từ bên trong Sched_main () so
rằng ở mỗi lần lặp lại lịch trình, bản cập nhật mới nhất Thiết lập máy chủ
cấu trúc được trả về.

máy chủ AllServersLocalHostGet (void)
Trả về đối tượng Máy chủ đại diện cho máy chủ cục bộ. giá trị chưa đặt:
NOSERVER. Đây là một hàm đơn giản để gọi cho các môi trường không phải cụm
nơi chỉ có một máy chủ lưu trữ tồn tại.
THẬN TRỌNG: Hàm này phải được gọi từ bên trong Sched_main () (hoặc từ
bên trong hàm được gọi bởi Sched_main) để mỗi lần lập lịch
sự lặp lại, cập nhật nhất máy chủ cấu trúc được trả về.

Chuỗi ServerInetAddrGet (Máy chủ s)
Trả về tên cho Máy chủ s. chưa đặt giá trị: NULLSTR

Chuỗi ServerDefQueGet (Máy chủ s)
Trả về thuộc tính default_queue của Máy chủ s. chưa đặt giá trị: NULLSTR

Int ServerStateGet (Máy chủ s)
Trả về thuộc tính server_state của Máy chủ s.

Giá trị trả lại:
SERVER_ACTIVE, SERVER_IDLE, SERVER_SCHED, SERVER_TERM,
SERVER_TERMDELAY, -1 (chưa đặt giá trị)

Int ServerMaxRunJobsGet (Máy chủ s)
Trả về thuộc tính max_running của Máy chủ s. giá trị chưa đặt: 0

Int ServerMaxRunJobsPerUserGet (Máy chủ s)
Trả về thuộc tính max_user_run của Máy chủ s. giá trị chưa đặt: 0

Int ServerMaxRunJobsPerGroupGet (Máy chủ s)
Trả về thuộc tính max_group_run của Máy chủ s. giá trị chưa đặt: 0

Thiết lập Đó ServerQueuesGet (Máy chủ s)
Trả về danh sách hàng đợi do Máy chủ quản lý.

Thiết lập Việc làm ServerJobsGet (Máy chủ s)
Trả về danh sách các công việc do Máy chủ quản lý. Để có được một tập hợp con của điều này
danh sách, xem QueJobsGet ().

Int ServerIntResAvailGet (Máy chủ s, Chuỗi Tên)
Trả về giá trị cho tài nguyên được chỉ định trong tên điều đó có sẵn cho công việc
được điều hành bởi máy chủ này (Máy chủ resource_available.name thuộc tính). Gọi cái này
hàm cho các tài nguyên có giá trị thuộc kiểu Int. Nguồn mẫu
tên là: cput, pcput, walltime, mppt, pmppt, nice, procs, mppe, ncpus,
pncpus, gật đầu, srfs_assist, mta, ..., mth. Để có một mô tả về những
tên tài nguyên, xem pbs_resource_irix5(7B), pbs_resource_sp2(7B),
pbs_resource_sunos4(7B), pbs_resource_unicos8(7B),
pbs_server_attributes(7B), pbs_resource_irix6(7B),
pbs_resource_linux(7B).

Ví dụ:
Int cpuAvail;
// trở lại các # of cổ phiếu hiện tại có sẵn in
// các máy chủ
cpuAvail = ServerIntResAvailGet (máy chủ, "ncpus");

Kích thước máy ServerSizeResAvailGet (Máy chủ s, Chuỗi Tên)
Trả về giá trị cho tài nguyên được chỉ định trong tên điều đó có sẵn cho công việc
được điều hành bởi máy chủ này (Máy chủ resource_available.name thuộc tính). Gọi cái này
chức năng cho các tài nguyên có giá trị thuộc loại Kích thước. Nguồn mẫu
tên là: file, mem, pmem, workingset, pf, ppf, srfs_tmp, srfs_wrk,
srfs_big, srfs_fast, sds, psds. Để có mô tả về những tài nguyên này
tên, xem pbs_resource_irix5(7B), pbs_resource_sp2(7B),
pbs_resource_sunos4(7B), pbs_resource_unicos8(7B),
pbs_server_attributes(7B), pbs_resource_irix6(7B),
pbs_resource_linux(7B).

Ví dụ:
Kích thước máy memAvil;
// trở lại các số lượng of có sẵn trí nhớ in
// các máy chủ
memAvail = ServerSizeResAvailGet (máy chủ, "mem");

Chuỗi ServerStringResAvailGet (Máy chủ s, Chuỗi Tên)
Trả về giá trị cho tài nguyên được chỉ định trong tên điều đó có sẵn cho công việc
được điều hành bởi máy chủ này (Máy chủ resource_available.name thuộc tính). Gọi cái này
hàm cho các tài nguyên có giá trị kiểu Chuỗi. Mẫu vật
tên tài nguyên là: nút, vòm, cần. Để có một mô tả về những
tên tài nguyên, xem pbs_resource_irix5(7B), pbs_resource_sp2(7B),
pbs_resource_sunos4(7B), pbs_resource_unicos8(7B),
pbs_server_attributes(7B), pbs_resource_irix6(7B),
pbs_resource_linux(7B).

Ví dụ:
Chuỗi kiểu;
// trở lại các kiến trúc (Hoặc os kiểu) of
// các máy chủ
kiểu = ServerStringResAvailGet (máy chủ, "vòm");

Int ServerIntResAssignGet (Máy chủ s, Chuỗi Tên)
Trả về giá trị cho tài nguyên được chỉ định trong tên được phân bổ cho
đang chạy công việc (Máy chủ resource_assigned.name thuộc tính). Gọi cái này
hàm cho các tài nguyên có giá trị thuộc kiểu Int. Nguồn mẫu
tên là: cput, pcput, walltime, mppt, pmppt, nice, procs, mppe, ncpus,
pncpus, gật đầu, srfs_assist, mta, ..., mth. Để có một mô tả về những
tên tài nguyên, xem pbs_resource_irix5(7B), pbs_resource_sp2(7B),
pbs_resource_sunos4(7B), pbs_resource_unicos8(7B),
pbs_server_attributes(7B), pbs_resource_irix6(7B),
pbs_resource_linux(7B).

Ví dụ:
Int cpuAssn;
// trở lại các # of cổ phiếu hiện tại giao in
// các máy chủ
cpuAssn = ServerIntResAssignGet (máy chủ, "ncpus");

Kích thước máy ServerSizeResAssignGet (Máy chủ s, Chuỗi Tên)
Trả về giá trị cho tài nguyên được chỉ định trong tên được phân bổ cho
đang chạy công việc (Máy chủ resource_assigned.name thuộc tính). Gọi cái này
chức năng cho các tài nguyên có giá trị thuộc loại Kích thước. Nguồn mẫu
tên là: file, mem, pmem, workingset, pf, ppf, srfs_tmp, srfs_wrk,
srfs_big, srfs_fast, sds, psds. Để có mô tả về những tài nguyên này
tên, xem pbs_resource_irix5(7B), pbs_resource_sp2(7B),
pbs_resource_sunos4(7B), pbs_resource_unicos8(7B),
pbs_server_attributes(7B), pbs_resource_irix6(7B),
pbs_resource_linux(7B).

Ví dụ:
Kích thước máy sdsAssn;
// trở lại các số lượng of sds không gian hiện tại giao
// in các máy chủ
sdsAssn = ServerSizeResAssignGet (máy chủ, "sds");

Chuỗi ServerStringResAssignGet (Máy chủ s, Chuỗi Tên)
Trả về giá trị cho tài nguyên được chỉ định trong tên được phân bổ cho
đang chạy công việc (Máy chủ resource_assigned.name thuộc tính). Gọi cái này
hàm cho các tài nguyên có giá trị kiểu Chuỗi. Mẫu vật
tên tài nguyên là: nút, vòm, cần. Để có một mô tả về những
tên tài nguyên, xem pbs_resource_irix5(7B), pbs_resource_sp2(7B),
pbs_resource_sunos4(7B), pbs_resource_unicos8(7B),
pbs_server_attributes(7B), pbs_resource_irix6(7B),
pbs_resource_linux(7B).

Thiết lập CNode ServerNodesGet (Máy chủ s)
Trả về tập hợp các nút do máy chủ quản lý. giá trị chưa đặt: EMPTYSETCNODE.
LƯU Ý: Bạn thường có thể gọi các hàm sau cho các nút được trả về
bằng lệnh gọi này: CNodeStateGet (), CNodePropertiesGet () và CNodeTypeGet ().

Int ServerNodesQuery (Máy chủ s, Chuỗi đặc điểm kỹ thuật)
Đưa ra yêu cầu tới máy chủ được chỉ định để truy vấn tính khả dụng của
tài nguyên được chỉ định trong thông số kỹ thuật Tại thời điểm hiện tại, tài nguyên duy nhất
đặc điểm kỹ thuật được phép là một đặc điểm liên quan đến "nút" và nó có thể là
định dạng "nút", "nút =" hoặc "nút = ". Kết quả truy vấn có thể là
được truy cập bằng cách gọi các hàm sau: ServerNodesNumAvailGet (),
ServerNodesNumAllocGet (), ServerNodesNumRsvdGet (),
ServerNodesNumDownGet ().
LƯU Ý: Đây là một trình bao bọc cho pbs_rescquery(3B) chức năng máy chủ.

Giá trị trả lại:
THÀNH CÔNG, THẤT BẠI

Int ServerNodesNumAvailGet (Máy chủ s)
Trả về số lượng nút có sẵn cho những nút được chỉ định quản lý
máy chủ hoặc được phản ánh bởi truy vấn gần đây nhất được chỉ định bởi
ServerNodesQuery (). Nếu giá trị trả về bằng XNUMX, thì điều này có nghĩa là
một số nút hiện tại cần thiết để đáp ứng đặc điểm kỹ thuật của
ServerNodesQuery () hiện không khả dụng. Yêu cầu có thể hài lòng
vào một thời gian sau. Nếu kết quả là âm tính, không có sự kết hợp nào của
các nút có thể thỏa mãn đặc điểm kỹ thuật.

Int ServerNodesNumAllocGet (Máy chủ s)
Trả về số lượng nút được phân bổ cho những nút được chỉ định quản lý
máy chủ hoặc được phản ánh bởi truy vấn gần đây nhất được chỉ định bởi
ServerNodesQuery ().

Int ServerNodesNumRsvdGet (Máy chủ s)
Trả về số lượng nút dành riêng cho những nút được chỉ định quản lý
máy chủ hoặc được phản ánh bởi truy vấn gần đây nhất được chỉ định bởi
ServerNodesQuery ().

Int ServerNodesNumDownGet (Máy chủ s)
Trả về số lượng nút giảm xuống cho những nút được chỉ định quản lý
máy chủ hoặc được phản ánh bởi truy vấn gần đây nhất được chỉ định bởi
ServerNodesQuery ().

Int ServerNodesReserve (Máy chủ s, Chuỗi spec, Int độ phân giải)
Đưa ra yêu cầu tới máy chủ được chỉ định để dự trữ tài nguyên
quy định tại thông số kỹ thuật Giá trị 0 cho độ phân giải có nghĩa là điều này là để làm một
đặt chỗ mới. Nếu không, con số sẽ đại diện cho một
(một phần) đặt trước. Tài nguyên hiện được dành riêng cho việc này độ phân giải sẽ
được phát hành và đặt trước đầy đủ sẽ được thử lại. Tại
thời điểm hiện tại các tài nguyên duy nhất có thể được chỉ định là
"điểm giao". Nó phải được chỉ định là các nút = đặc điểm kỹ thuật Ở đâu
đặc điểm kỹ thuật là những gì người dùng chỉ định trong danh sách đối số tùy chọn -l
đối với các nút, xem qsub (1B).
LƯU Ý: Đây là một trình bao bọc cho pbs_rescreserve(3B) chức năng máy chủ.

Giá trị trả lại:
số tham chiếu đến thành công hoặc thành công một phần
đặt trước, hoặc THẤT BẠI

Int ServerNodesRelease (Máy chủ s, Int độ phân giải)
Điều này giải phóng hoặc giải phóng các tài nguyên dành riêng với số tham chiếu
quy định tại resId.
LƯU Ý: Đây là một trình bao bọc cho pbs_rescrelease(3B) chức năng máy chủ.

Giá trị trả lại:
THÀNH CÔNG hay THẤT BẠI

(2) Các chức năng liên quan đến hàng đợi:

Chuỗi QueNameGet ( Đó )
Trả về tên của Que que. chưa đặt giá trị: NULLSTR

Int QueTypeGet ( Đó )
Trả về thuộc tính queue_type của Que que.
Giá trị trả về: QTYPE_E (Thực thi), QTYPE_R (Định tuyến), -1 (không đặt
giá trị)

Int QueNumJobsGet ( Đó )
Trả về số lượng công việc nằm trong hàng đợi. giá trị chưa đặt: 0

Int QueMaxRunJobsGet ( Đó )
Trả về thuộc tính max_running của Que que. giá trị chưa đặt: 0

Int QueMaxRunJobsPerUserGet ( Đó )
Trả về thuộc tính max_user_run của Que que. giá trị chưa đặt: 0

Int QueMaxRunJobsPerGroupGet ( Đó )
Trả về thuộc tính max_group_run của Que que. giá trị chưa đặt: 0

Int QuePinentGet ( Đó )
Trả về thuộc tính Ưu tiên của hàng đợi. giá trị chưa đặt: 0

Int QueStateGet ( Đó )
Trả về thuộc tính bắt đầu của hàng Que - lựa chọn thực thi công việc
trạng thái của hàng đợi: SCHED_DISABLED, SCHED_ENABLED. giá trị chưa đặt:
SCHED_DISABLED

Thiết lập Việc làm QueJobsGet ( Đó )
Trả về danh sách các công việc hiện đang nằm trong hàng đợi.

Int QueIntResAvailGet (Que q, Chuỗi Tên)
Trả về giá trị cho tài nguyên được chỉ định trong tên cái đó có sẵn cho
công việc đang chạy từ q này (Que resource_available.name thuộc tính).
Gọi hàm này cho các tài nguyên có giá trị thuộc kiểu Int.
Tên tài nguyên mẫu là: cput, pcput, walltime, mppt, pmppt, nice,
procs, mppe, ncpus, pncpus, nodeect, srfs_assist, mta, ..., mth. Cho một
mô tả của các tên tài nguyên này, xem pbs_resource_irix5(7B),
pbs_resource_sp2(7B), pbs_resource_sunos4(7B),
pbs_resource_unicos8(7B), pbs_server_attributes(7B),
pbs_resource_irix6(7B), pbs_resource_linux(7B).

Kích thước máy QueSizeResAvailGet (Que q, Chuỗi Tên)
Trả về giá trị cho tài nguyên được chỉ định trong tên cái đó có sẵn cho
công việc đang chạy từ q này (Que resource_available.name thuộc tính).
Gọi hàm này cho các tài nguyên có giá trị thuộc loại Kích thước.
Tên tài nguyên mẫu là: file, mem, pmem, workingset, pf, ppf,
srfs_tmp, srfs_wrk, srfs_big, srfs_fast, sds, psds. Để có một mô tả
trong số các tên tài nguyên này, hãy xem pbs_resource_irix5(7B),
pbs_resource_sp2(7B), pbs_resource_sunos4(7B),
pbs_resource_unicos8(7B), pbs_server_attributes(7B),
pbs_resource_irix6(7B), pbs_resource_linux(7B).

Chuỗi QueStringResAvailGet (Que q, Chuỗi Tên)
Trả về giá trị cho tài nguyên được chỉ định trong tên cái đó có sẵn cho
công việc đang chạy từ q này (Que resource_available.name thuộc tính).
Gọi hàm này cho các tài nguyên có giá trị thuộc kiểu Chuỗi.
Tên tài nguyên mẫu là: nút, vòm, nút. Để có một mô tả
trong số các tên tài nguyên này, hãy xem pbs_resource_irix5(7B),
pbs_resource_sp2(7B), pbs_resource_sunos4(7B),
pbs_resource_unicos8(7B), pbs_server_attributes(7B),
pbs_resource_irix6(7B), pbs_resource_linux(7B).

Int QueIntResAssignGet (Que q, Chuỗi Tên)
Trả về giá trị cho tài nguyên được chỉ định trong tên được phân bổ cho
các công việc đang chạy từ hàng đợi này (Hàng đợi resource_assigned.name thuộc tính).
Gọi hàm này cho các tài nguyên có giá trị thuộc kiểu Int.
Tên tài nguyên mẫu là: cput, pcput, walltime, mppt, pmppt, nice,
procs, mppe, ncpus, pncpus, nodeect, srfs_assist, mta, ..., mth. Cho một
mô tả của các tên tài nguyên này, xem pbs_resource_irix5(7B),
pbs_resource_sp2(7B), pbs_resource_sunos4(7B),
pbs_resource_unicos8(7B), pbs_server_attributes(7B),
pbs_resource_irix6(7B), pbs_resource_linux(7B).

Kích thước máy QueSizeResAssignGet (Que q, Chuỗi Tên)
Trả về giá trị cho tài nguyên được chỉ định trong tên được phân bổ cho
công việc đang chạy từ q này (Que resource_assigned.name thuộc tính).
Gọi hàm này cho các tài nguyên có giá trị thuộc loại Kích thước.
Tên tài nguyên mẫu là: file, mem, pmem, workingset, pf, ppf,
srfs_tmp, srfs_wrk, srfs_big, srfs_fast, sds, psds. Để có một mô tả
trong số các tên tài nguyên này, hãy xem pbs_resource_irix5(7B),
pbs_resource_sp2(7B), pbs_resource_sunos4(7B),
pbs_resource_unicos8(7B), pbs_server_attributes(7B),
pbs_resource_irix6(7B), pbs_resource_linux(7B).

Chuỗi QueStringResAssignGet (Que q, Chuỗi Tên)
Trả về giá trị cho tài nguyên được chỉ định trong tên được phân bổ cho
công việc đang chạy từ q này (Que resource_assigned.name thuộc tính).
Gọi hàm này cho các tài nguyên có giá trị thuộc kiểu Chuỗi.
Tên tài nguyên mẫu là: nút, vòm, nút. Để có một mô tả
trong số các tên tài nguyên này, hãy xem pbs_resource_irix5(7B),
pbs_resource_sp2(7B), pbs_resource_sunos4(7B),
pbs_resource_unicos8(7B), pbs_server_attributes(7B),
pbs_resource_irix6(7B), pbs_resource_linux(7B).

(3) Các chức năng liên quan đến công việc

Chuỗi JobIdGet ( Việc làm việc làm )
Trả về mã định danh công việc của công việc Job. chưa đặt giá trị: NULLSTR

Chuỗi JobNameGet ( Việc làm việc làm )
Trả về thuộc tính Job_Name của công việc Job. chưa đặt giá trị: NULLSTR

Chuỗi JobOwnerNameGet ( Việc làm việc làm )
Trả về thuộc tính Job_Owner của công việc Job. chưa đặt giá trị: NULLSTR

Chuỗi JobEffectiveUserNameGet ( Việc làm việc làm)
Trả về thuộc tính euser của công việc Job.

Chuỗi JobEffectiveGroupNameGet (Công việc việc làm)
Trả về thuộc tính egroup của công việc Job. chưa đặt giá trị: NULLSTR

Int JobStateNhận ( Việc làm việc làm )
Trả về thuộc tính job_state của Job job.

Giá trị trả lại:
TRANSIT, QUEUED, HELD, WAITING, RUNNING, EXITING, -1 (bỏ đặt
giá trị)

Int JobPinentGet ( Việc làm việc làm )
Trả về thuộc tính Ưu tiên của Công việc. giá trị chưa đặt: 0

Int JobRerunFlagGet ( Việc làm việc làm )
Trả về thuộc tính Rerunable của công việc Job.
Giá trị trả về: FALSE, TRUE, -1 (giá trị chưa đặt)

Int JobInteractiveFlagGet ( Việc làm việc làm )
Trả về thuộc tính tương tác của công việc Job.
Giá trị trả về: FALSE, TRUE. giá trị chưa đặt: FALSE

Ngày giờ JobDateTimeC createdGet (Công việc việc làm)
Trả về thuộc tính ctime của công việc Job. giá trị chưa đặt:
(0|0|0@-1:-1:-1)

Chuỗi JobEmailAddrGet ( Việc làm việc làm )
Trả về thuộc tính Mail_Users của công việc Job. chưa đặt giá trị: NULLSTR

Chuỗi JobStageinFilesGet ( Việc làm việc làm )
Trả về thuộc tính giai đoạn của công việc. chưa đặt giá trị: NULLSTR

Chuỗi JobStageoutFilesGet ( Việc làm việc làm )
Trả về thuộc tính giai đoạn xuất hiện của Công việc. chưa đặt giá trị: NULLSTR

Int JobIntResReqGet (Công việc việc làm, Chuỗi Tên)
Trả về giá trị cho tài nguyên được chỉ định trong tên theo yêu cầu của
job (Việc làm Resource_List.name thuộc tính). Gọi hàm này cho
tài nguyên có giá trị thuộc kiểu Int. Tên tài nguyên mẫu
là: cput, pcput, walltime, mppt, pmppt, nice, procs, mppe, ncpus,
pncpus, gật đầu, srfs_assist, mta, ..., mth. Để có một mô tả về những
tên tài nguyên, xem pbs_resource_irix5(7B), pbs_resource_sp2(7B),
pbs_resource_sunos4(7B), pbs_resource_unicos8(7B),
pbs_server_attributes(7B), pbs_resource_irix6(7B),
pbs_resource_linux(7B).

Ví dụ:
Int cputReq;
// Trả về các cpu yêu cầu of các việc làm
yêu cầu cput = JobIntResReqGet (công việc, "cput");

Kích thước máy JobSizeResReqGet (Công việc việc làm, Chuỗi Tên)
Trả về giá trị cho tài nguyên được chỉ định trong tên theo yêu cầu của
job (Việc làm Resource_List.name thuộc tính). Gọi hàm này cho
tài nguyên có giá trị thuộc loại Kích thước. Tên tài nguyên mẫu
là: tệp, mem, pmem, workingset, pf, ppf, srfs_tmp, srfs_wrk,
srfs_big, srfs_fast, sds, psds. Để có mô tả về những tài nguyên này
tên, xem pbs_resource_irix5(7B), pbs_resource_sp2(7B),
pbs_resource_sunos4(7B), pbs_resource_unicos8(7B),
pbs_server_attributes(7B), pbs_resource_irix6(7B),
pbs_resource_linux(7B).

Ví dụ:
Kích thước máy memReq;
// Trả về các trí nhớ yêu cầu of các việc làm
memReq = JobSizeResReqGet (công việc, "mem");

Chuỗi JobStringResReqGet (Công việc việc làm, Chuỗi Tên)
Trả về giá trị cho tài nguyên được chỉ định trong tên theo yêu cầu của
job (Việc làm Resource_List.name thuộc tính). Gọi hàm này cho
tài nguyên có giá trị thuộc loại Chuỗi. Tên tài nguyên mẫu
là: nút, vòm, cần. Để có mô tả về những tài nguyên này
tên, xem pbs_resource_irix5(7B), pbs_resource_sp2(7B),
pbs_resource_sunos4(7B), pbs_resource_unicos8(7B),
pbs_server_attributes(7B), pbs_resource_irix6(7B),
pbs_resource_linux(7B).

Ví dụ:
Chuỗi điểm giao;
// Trả về các các nút yêu cầu tài sản of
// các việc làm
các nút = JobStringResReqGet (công việc, "điểm giao");

Int JobIntResUseGet (Công việc việc làm, Chuỗi Tên)
Trả về giá trị cho tài nguyên được chỉ định trong tên được sử dụng bởi công việc (Công việc
resource_used.name thuộc tính). Gọi hàm này cho các tài nguyên với
các giá trị thuộc loại Int. Tên tài nguyên mẫu là: cput, pcput,
walltime, mppt, pmppt, nice, procs, mppe, ncpus, pncpus, gật gù,
srfs_assist, mta, ..., mth. Để có mô tả về các tên tài nguyên này,
xem pbs_resource_irix5(7B), pbs_resource_sp2(7B),
pbs_resource_sunos4(7B), pbs_resource_unicos8(7B),
pbs_server_attributes(7B), pbs_resource_irix6(7B),
pbs_resource_linux(7B).

Ví dụ:
Int walltSử dụng;
// Trả về các số lượng of thời gian treo tường đã sử dụng by
// các việc làm
walltSử dụng = JobIntResUseGet (công việc, "walltime");

Kích thước máy JobSizeResUseGet (Công việc việc làm, Chuỗi Tên)
Trả về giá trị cho tài nguyên được chỉ định trong tên được sử dụng bởi công việc (Công việc
resource_used.name thuộc tính). Gọi hàm này cho các tài nguyên với
các giá trị thuộc loại Kích thước. Tên tài nguyên mẫu là: tệp, ghi nhớ,
chiều, bộ làm việc, pf, ppf, srfs_tmp, srfs_wrk, srfs_big, srfs_fast,
sds, psds. Để biết mô tả về các tên tài nguyên này, hãy xem
pbs_resource_irix5(7B), pbs_resource_sp2(7B),
pbs_resource_sunos4(7B), pbs_resource_unicos8(7B),
pbs_server_attributes(7B), pbs_resource_irix6(7B),
pbs_resource_linux(7B).

Ví dụ:
Kích thước máy srfsSử dụng;
// Trả về các số lượng of srfs_fast đã sử dụng by
// các việc làm
srfsSử dụng = JobSizeResUseGet (công việc, "srfs_fast");

Chuỗi JobStringResUseGet (Công việc việc làm, Chuỗi Tên)
Trả về giá trị cho tài nguyên được chỉ định trong tên được sử dụng bởi công việc (Công việc
resource_used.name thuộc tính). Gọi hàm này cho các tài nguyên với
các giá trị thuộc loại Chuỗi. Tên tài nguyên mẫu là: nút,
vòm, cần kim. Để biết mô tả về các tên tài nguyên này, hãy xem
pbs_resource_irix5(7B), pbs_resource_sp2(7B),
pbs_resource_sunos4(7B), pbs_resource_unicos8(7B),
pbs_server_attributes(7B), pbs_resource_irix6(7B),
pbs_resource_linux(7B).

(4) Các chức năng liên quan đến CNode

Thiết lập CNode AllNodesGet (vô hiệu)
Trả về danh sách các nút được quản lý bởi máy chủ đang chạy trên
máy chủ địa phương. Điều này cũng có thể bao gồm những nút đã được chỉ định
trong tệp cấu hình bộ lập lịch mà người viết bộ lập lịch
muốn hệ thống kiểm tra định kỳ các thông tin như trạng thái,
tài sản, và như vậy. Nhìn thấy pbs_sched_basl(8b) để thảo luận về
định dạng tệp cấu hình.
THẬN TRỌNG: Hàm này phải được gọi từ bên trong Sched_main () so
rằng ở mỗi lần lặp lại lịch trình, bản cập nhật mới nhất Thiết lập CNode
cấu trúc được trả về. Đừng gọi điều này từ một câu lệnh gán
nhằm khởi tạo một biến toàn cục, vì câu lệnh sẽ chỉ
được gọi một lần.

CNode AllNodesLocalHostGet (void)
Trả về đối tượng CNode đại diện cho máy chủ cục bộ. Đây là một
chức năng đơn giản để gọi cho các hệ thống không phân cụm chỉ có 1 CNode
tồn tại. giá trị chưa đặt: NOCNODE
THẬN TRỌNG: Hàm này phải được gọi từ bên trong Sched_main () (Hoặc
từ bên trong các hàm được gọi bởi Sched_main) để mọi
lập lịch lặp lại, cập nhật nhất CNode cấu trúc là
trả lại. Đừng gọi điều này từ một câu lệnh chuyển nhượng nhằm mục đích
khởi tạo một biến toàn cục, vì câu lệnh sẽ chỉ được gọi
Một lần.

Chuỗi CNodeNameGet (CNode nút)
Trả về tên duy nhất (chính thức) của nút (tức là tên máy chủ ResMom
trong mô hình 1 mẹ / nút). Điều này trả về cùng một chuỗi đã được
được chỉ định trong tệp cấu hình. chưa đặt giá trị: NULLSTR

Chuỗi CNodeOsGet (CNode nút)
Trả về kiến ​​trúc hệ điều hành của nút (tức là "irix5", "sp2"). không đặt
giá trị: NULLSTR

Int CNodeStateGet ( CNode nút )
Trả về trạng thái của nút.

Giá trị trả lại:
CNODE_OFFLINE, CNODE_DOWN, CNODE_FREE, CNODE_RESERVE,
CNODE_INUSE_EXCLUSIVE, CNODE_INUSE_SHARED, CNODE_UNKNOWN

Int CNodeTypeGet ( CNode nút )
Trả về kiểu của nút.

Giá trị trả lại:
CNODE_TIMESHARED, CNODE_CLUSTER, CNODE_UNKNOWN

Chuỗi CNodePropertiesGet (CNode nút)
Trả về danh sách được phân tách bằng dấu phẩy gồm các tên khác mà nút được biết đến
(thuộc tính, tên mạng khác). Ví dụ,
"babbage.OpenPBS.org" có thể là tên nút, nhưng nó cũng có thể được biết đến
thông qua "babbage1, babbage2". chưa đặt giá trị: NULLSTR

Chuỗi CNodeVendorGet (CNode nút)
Trả về tên của nhà cung cấp cho phần cứng của máy (tức là
"sgi", "ibm"). chưa đặt giá trị: NULLSTR

Int CNodeNumCpusGet (CNode nút)
Trả về số bộ xử lý được gắn vào nút. giá trị chưa đặt:
-1

Kích thước máy CNodeMemTotalGet ( CNode nút, Chuỗi kiểu )
Trả về tổng bộ nhớ của kiểu cho nút. kiểu là một tùy ý
chuỗi mà người viết bộ lập lịch xác định trong bộ lập lịch
tập tin cấu hình. giá trị chưa đặt: -1b
Ví dụ:
// được Tổng số vật lý trí nhớ
CNodeMemTotalGet (nút, "thực")
// được Tổng số ảo trí nhớ
CNodeMemTotalGet (nút, "ảo")

Kích thước máy CNodeMemAvailGet ( CNode nút, Chuỗi kiểu )
Trả về bộ nhớ khả dụng của kiểu cho nút. kiểu là một tùy ý
chuỗi mà người viết bộ lập lịch xác định trong bộ lập lịch
tập tin cấu hình. giá trị chưa đặt: -1b
Vì vậy, các cuộc gọi mẫu sẽ là:
// được có sẵn vật lý trí nhớ
CNodeMemAvailGet (nút, "thực")
// được có sẵn ảo trí nhớ
CNodeMemAvailGet (nút, "ảo")

Int CNodeIdletimeGet ( CNode nút )
Trả về số giây trong đó không có thao tác nhấn phím hoặc di chuyển chuột
diễn ra trên bất kỳ thiết bị đầu cuối nào được kết nối với nút. giá trị chưa đặt: -1

Phao CNodeLoadAveGet ( CNode nút )
Trả về mức trung bình tải của nút cho tất cả các cp. giá trị chưa đặt: -1.0

Int CNodeCpuPercentIdleGet ( CNode nút )
Trả về phần trăm thời gian nhàn rỗi mà tất cả các bộ xử lý của nút
có kinh nghiệm.

Int CNodeCpuPercentSysGet ( CNode nút )
Trả về phần trăm thời gian mà tất cả các bộ xử lý của nút có
đã dành để chạy mã nhân.

Int CNodeCpuPercentUserGet ( CNode nút )
Trả về phần trăm thời gian mà tất cả các bộ xử lý của nút có
đã dành để chạy mã người dùng.

Int CNodeCpuPercentGuestGet ( CNode nút )
Trả về phần trăm thời gian mà tất cả các bộ xử lý của nút có
đã dành để chạy một hệ điều hành khách.

Int CNodeNetworkBwGet ( CNode nút, Chuỗi kiểu )
Trả về băng thông của mạng của nút kiểu tính bằng byte / giây.
kiểu được xác định bởi người viết lịch trình trong bộ lập lịch trình
tập tin cấu hình. giá trị chưa đặt: -1
Một số cuộc gọi mẫu là:
CNodeNetworkBwGet ( nút, "hippi" );
CNodeNetworkBwGet ( nút, "fddi" );

Kích thước máy CNodeDiskSpaceTotalGet (CNode nút, Chuỗi Tên)
Trả về tổng không gian của nút trên đĩa được xác định bởi tên Ở đâu tên
là tên thiết bị được xác định tùy ý bởi người viết lịch trình trong
tệp cấu hình bộ lập lịch. giá trị chưa đặt: -1b
Ví dụ:
CNodeDiskSpaceTotalGet ( nút, "/ xước2" );

Kích thước máy CNodeDiskSpaceAvailGet (CNode nút, Chuỗi Tên)
Trả về không gian có sẵn của nút trên đĩa được xác định bởi tên Ở đâu
tên được xác định tùy ý bởi người viết bộ lập lịch trong bộ lập lịch
tập tin cấu hình. giá trị chưa đặt: -1b
Ví dụ:
CNodeDiskSpaceAvailGet ( nút, "/ xước1" );

Kích thước máy CNodeDiskSpaceReservedGet (CNode nút, Chuỗi Tên)
Trả về không gian dành riêng của nút trên đĩa (hạn ngạch người dùng?) Được xác định bởi
tên Ở đâu tên được xác định tùy ý bởi người viết lịch trình trong
tệp cấu hình bộ lập lịch. giá trị chưa đặt: -1b
Ví dụ:
CNodeDiskSpaceReservedGet ( nút, "/ xước1" );

Int CNodeDiskInBwGet ( CNode nút, Chuỗi tên )
Trả về băng thông ghi (byte / giây) của đĩa nút được xác định
by tên . giá trị chưa đặt: -1
Ví dụ:
CNodeDiskInBwGet ( nút, "/Nhanh" );

Int CNodeDiskOutBwGet ( CNode nút, Chuỗi tên )
Trả về băng thông đã đọc (byte / giây) của đĩa nút được xác định bởi
tên . giá trị chưa đặt: -1
Ví dụ:
CNodeDiskOutBwGet ( nút, "/to lớn" );

Kích thước máy CNodeSwapSpaceTotalGet ( CNode nút, Chuỗi tên )
Trả về tổng không gian của nút trên hoán đổi được xác định bởi tên Ở đâu tên
được xác định tùy ý bởi người viết bộ lập lịch trong bộ lập lịch
tập tin cấu hình. giá trị chưa đặt: -1b
Ví dụ:
CNodeSwapSpaceTotalGet ( nút, "sơ cấp" );

Kích thước máy CNodeSwapSpaceAvailGet ( CNode nút, Chuỗi tên )
Trả lại không gian có sẵn của nút trên hoán đổi được xác định bởi tên Ở đâu tên
là tên thiết bị được xác định tùy ý bởi người viết lịch trình trong
tệp cấu hình bộ lập lịch. giá trị chưa đặt: -1b
Ví dụ:
CNodeSwapSpaceAvailGet ( nút, "thứ hai" );

Int CNodeSwapInBwGet ( CNode nút, Chuỗi tên )
Trả về tỷ lệ hoán đổi của thiết bị hoán đổi của nút được xác định bởi tên.
Ví dụ:
CNodeSwapInBwGet (nút, "thứ hai");

Int CNodeSwapOutBwGet ( CNode nút, Chuỗi tên )
Trả về tỷ lệ hoán đổi của thiết bị hoán đổi của nút được xác định bởi
tên. giá trị chưa đặt: -1
Ví dụ:
CNodeSwapOutBwGet (nút, "sơ cấp");

Kích thước máy CNodeTapeSpaceTotalGet ( CNode nút, Chuỗi tên )
Trả về tổng không gian của nút trên băng được xác định bởi tên Ở đâu tên
được xác định tùy ý bởi người viết bộ lập lịch trong bộ lập lịch
tập tin cấu hình. giá trị chưa đặt: -1b
Ví dụ:
CNodeTapeSpaceTotalGet (nút, "4mm");

Kích thước máy CNodeTapeSpaceAvailGet ( CNode nút, Chuỗi tên )
Trả về không gian có sẵn của nút trên băng được xác định bởi tên Ở đâu
tên được xác định tùy ý bởi người viết bộ lập lịch trong bộ lập lịch
tập tin cấu hình. giá trị chưa đặt: -1b
Ví dụ:
CNodeTapeSpaceAvailGet (nút, "8mm");

Int CNodeTapeInBwGet ( CNode nút, Chuỗi tên )
Trả về băng thông ghi (byte / giây) của băng của nút được xác định
by tên . giá trị chưa đặt: -1
Ví dụ:
CNodeTapeInBwGet ( nút, "4mm" );

Int CNodeTapeOutBwGet ( CNode nút, Chuỗi tên )
Trả về băng thông đã đọc (byte / giây) của băng của nút được xác định
by tên . giá trị chưa đặt: -1
Ví dụ:
CNodeTapeOutBwGet ( nút, "8mm" );

Kích thước máy CNodeSrfsSpaceTotalGet ( CNode nút, Chuỗi tên )
Trả về tổng không gian của nút trên thiết bị srfs được xác định bởi tên
Ở đâu tên được xác định tùy ý bởi người viết lịch trình trong
tệp cấu hình bộ lập lịch. giá trị chưa đặt: -1b
Ví dụ:
CNodeSrfsSpaceTotalGet (nút, "/Nhanh");

Kích thước máy CNodeSrfsSpaceAvailGet ( CNode nút, Chuỗi tên )
Trả về không gian có sẵn của nút trên thiết bị srfs được xác định bởi tên
Ở đâu tên được xác định tùy ý bởi người viết lịch trình trong một số
tập tin cấu hình. giá trị chưa đặt: -1b
Ví dụ:
CNodeSrfsSpaceAvailGet ( nút, "/to lớn" );

Kích thước máy CNodeSrfsSpaceReservedGet (CNode nút, Chuỗi Tên)
Trả về tổng số không gian dành riêng của nút trên thiết bị srfs
xác định bởi tên Ở đâu tên được xác định tùy ý bởi người lập lịch trình
người viết trong tệp cấu hình bộ lập lịch. giá trị chưa đặt: -1b
Ví dụ:
CNodeSrfsSpaceReservedGet ( nút, "/Nhanh" );

Int CNodeSrfsInBwGet ( CNode nút, Chuỗi tên )
Trả về băng thông ghi (byte / giây) của thiết bị srfs của nút
xác định bởi tên . giá trị chưa đặt: -1
Ví dụ:
CNodeSrfsInBwGet (nút, "/ nhanh");

Int CNodeSrfsOutBwGet ( CNode nút, Chuỗi tên )
Trả về băng thông đã đọc (byte / giây) của thiết bị srfs của nút
xác định bởi tên . giá trị chưa đặt: -1
Ví dụ:
CNodeSrfsOutBwGet (nút, "/ big");

(5) Các chức năng khác

Ngày giờ datetimeGet ()
lấy ngày / giờ hiện tại.

Int datetimeToSecs (DateTime đt)
trả về số giây kể từ kỷ nguyên (đầu thời gian UNIX -
00:00:00, ngày 1 tháng 1970 năm XNUMX) cho ngày / giờ nhất định đt.

Int JobAction ( Việc làm việc làm, Int hoạt động, Chuỗi tiền của tôi )
Biểu diễn hoạt động on việc làm với một tiền của tôi được chỉ định tùy thuộc vào
hành động. hoạt động có thể là: SYNCRUN, ASYNCRUN, DELETE, RERUN, HOLD,
RELEASE, SIGNAL, MODIFYATTR, MODIFYRES trong đó:
Hoạt động Mô tả
=============== ==========================
ĐỒNG BỘ chạy các việc làm đồng bộ,
có nghĩa là các cuộc gọi đến
JobAction () sẽ có thể
trở lại khi nào các việc làm
bắt đầu chạy or khi nào
an lôi được
đã gặp.
Thông số giá trị:
tên of (các) máy chủ đến chạy
việc làm Dưới.

KHÔNG ĐỒNG BỘ chạy các việc làm không đồng bộ,
có nghĩa là các cuộc gọi đến
JobAction () sẽ trở lại
ngay as sớm as
các chạy yêu cầu is
xác nhận by các PBS máy chủ,
không nhất thiết khi nào
các việc làm bắt đầu
chấp hành.
Thông số giá trị:
tên of (các) máy chủ đến chạy
việc làm Dưới.

DELETE xóa các công việc.
Thông số giá trị:
"trễ hạn = <# of giây> "
- chậm trễ # of giây
giữa các gửi
of HẠN MỤC TIÊU SIGKILL
đến các việc làm trước
nhận được đã xóa.

CHẠY chạy lại các chạy việc làm,
cái nào liên quan đến chấm dứt
các Phiên lãnh đạo of các
việc làm trở về các việc làm
đến các xếp hàng nhà nước.

GIỮ nơi một or chi tiết giữ
on các công việc.
Thông số giá trị:
"u", "o", "NS", "NS", "hệ điều hành",
"uos"
- kiểu of giữ đến nơi
on Công việc: người sử dụng), khác),
hệ thống).

RELEASE Loại bỏ or phát hành
giữ đặt on việc làm.
Thông số giá trị:
"u", "o", "NS", "NS", "hệ điều hành",
"uos"
- kiểu of giữ đến tẩy
từ Công việc: người sử dụng), khác),
hệ thống).

TÍN HIỆU gửi a tín hiệu đến các
thi hành công việc.
Thông số giá trị:
"HÚT", "ĐĂNG KÍ",...

SỬA ĐỔI Sửa các quy định
thuộc tính of các việc làm đến
các được giá trị, khi nào
các tên_tìm_tính is
!= "Resource_List" or
"resource_used".
Thông số giá trị:
"Att_name = value"

SỬA ĐỔI Sửa các công việc của
Tài nguyên_List
thuộc tính được các
res_name các
res_value:
Resource_List.res_name =
res_value
Thông số giá trị:
"res_name = res_val"
tiền của tôi giá trị phụ thuộc vào hành động. Chỉ định NULLSTR nếu không có giá trị cho
tham số này là mong muốn.
Giá trị trả lại: THÀNH CÔNG hoặc THẤT BẠI.
LƯU Ý: Bất kỳ điều gì không được công nhận hoạt động bị bỏ qua.
Ví dụ:
// chạy Việc làm j đồng bộ
JobAction (j, ĐỒNG BỘ, NULLSTR);

// chạy Việc làm j không đồng bộ on chủ nhà "db"
JobAction (j, KHÔNG ĐỒNG BỘ, "db");

// xóa Việc làm j
JobAction (j, XÓA BỎ, NULLSTR);

// xóa Việc làm j với a chậm trễ of 5 giây
// giữa các gửi of HẠN MỤC TIÊU
// SIGKILL
JobAction (j, XÓA BỎ, "deldelay = 5");

// chạy lại Việc làm j
JobAction (j, CHẠY, NULLSTR);

// nơi a người sử dụng) tổ chức on Việc làm j
JobAction (j, TỔ CHỨC, "u");

// nơi an khác) tổ chức on Việc làm j
JobAction (j, TỔ CHỨC, "o");

// nơi a hệ thống) tổ chức on Việc làm j
JobAction (j, TỔ CHỨC, "NS");

// nơi a mặc định tổ chức (hoặc) on Việc làm j
JobAction (j, TỔ CHỨC, NULLSTR);

// phát hành người sử dụng) tổ chức từ Việc làm j
JobAction (j, PHÓNG THÍCH, "u");

// phát hành khác) tổ chức từ Việc làm j
JobAction (j, PHÓNG THÍCH, "o");

// phát hành hệ thống) tổ chức từ Việc làm j
JobAction (j, PHÓNG THÍCH, "NS");

// phát hành mặc định tổ chức (hoặc) từ Việc làm j
JobAction (j, PHÓNG THÍCH, NULLSTR);

// gửi ĐĂNG KÍ tín hiệu đến Việc làm j
JobAction (j, DẤU HIỆU, "ĐĂNG KÍ");

// cập nhật các bình luận thuộc tính of Việc làm
// j đến "a thông điệp".
// Sản phẩm tiền của tôi định dạng là: thuộc tính_name = new_value
// Tư vấn PBS tài liệu hướng dẫn cho a of việc làm
// thuộc tính tên việc này có thể be được chỉ định.
JobAction (j, SỬA ĐỔI, "comment = a thông điệp");
// cập nhật các Resource_List.cput thuộc tính of Việc làm
// j đến 3600 giây.
// Sản phẩm tiền của tôi định dạng là: resource_name = new_value
// Xem pbs_resources * người đàn ông trang cho a of
// tên_tài nguyên việc này có thể be được chỉ định.
JobAction (j, SỬA ĐỔI, "cput = 3600");

QueJobFind (Que que, Vui vẻ Int func, Int cpr, Int giá trị);

QueJobFind (Que que, Vui vẻ Chuỗi func, Int cpr, chuỗi giá trị);

QueJobFind (Que que, Vui vẻ Ngày giờ func, Int cpr, DateTime giá trị);

QueJobFind (Que que, Vui vẻ Kích thước máy func, Int cpr, Kích thước giá trị);

Ở đâu CPR là một trong số: OP_EQ, OP_NEQ, OP_LE, OP_LT, OP_GE, OP_GT. chức năng
là một hàm có đối số DUY NHẤT thuộc loại Công việc. Việc làm là sự trở lại
kiểu.

Mô tả: Áp dụng chức năng đến mọi công việc trong , và trả lại cái đầu tiên
công việc đáp ứng sự so sánh hợp lý: func (công việc) CPR giá trị

Ví dụ:

Kích thước máy JobVirtualMemAvailGet (Công việc việc làm)
{
Kích thước máy sz;

sz = JobSizeResReqGet (công việc, "mem");
return (sz);
}
Int JobWallTimeReqGet (Công việc việc làm)
{
Int vách ngăn;

bức tường = JobIntResReqGet (công việc, "walltime");
trở lại (wallt);
}

Int JobCpuTimeUsedGet (Công việc việc làm)
{
Int đầu vào;

cpu = JobIntResUseGet (công việc, "cput");
trả về (cput);
}

Đó findQueByName (Đặt Đó hàng đợi, Chuỗi qname)
{
Đó q;

foreach (q in hàng đợi) {
nếu( QueNameGet (q) EQ tên q ) {
return (q);
}
}
trả về (NOQUE);
}
Sched_main ()
{
máy chủ s;
Đó xếp hàng;
Thiết lập Đó vuông;

// được địa phương máy chủ
s = AllServersLocalHostGet ();

// được các hàng đợi of các máy chủ s
sq = ServerQueuesGet (các);

// được các hàng đợi tên "Nhanh" từ các
// địa phương máy chủ
= findQueByName ( vuông, "Nhanh" );

// Tìm kiếm các 1st việc làm thời gian treo tường yêu cầu
// is == 300:
QueJobFind (que, Công việcWallTimeReqGet, OP_EQ, 300);

// Tìm kiếm các 1st việc làm e-mail địa chỉ đến
// thông báo về việc làm hoạt động != "bayucan":
QueJobFind (que, Công việcEmailAddrGet, OP_NEQ,
"bayucan");

// Tìm kiếm các 1st việc làm việc này tạo ra sau khi
// or on 3 / 3 / 1997:
QueJobFind (que, JobDateTimeCreateGet, OP_GE,
(3 | 3 | 1997));

// Tìm kiếm các 1st việc làm việc này tạo ra sau khi
// 3: 3: 44:
QueJobFind (que, JobDateTimeCreateGet, OP_GT,
(3: 3: 44));

// Tìm kiếm các 1st việc làm việc này tạo ra sau khi
// 3:3:44 on 3 / 3 / 1997:
QueJobFind (que, JobDateTimeCreateGet, OP_GT,
(3|3|1997@3:3:44));

// Tìm kiếm các 1st việc làm cpu thời gian đã sử dụng < 1600:
QueJobFind (que, JobCpuTimeUsedNhận, OP_LT, 1600);

// Tìm kiếm các 1st việc làm ảo trí nhớ
// yêu cầu <= 300mb:
QueJobFind (que, Công việcVirtualMemAvailGet, OP_LE,
300mb);
}

Việc làm QueJobFind ( Đó đó, Vui vẻ Int chức năng, Int cpr)

Việc làm QueJobFind ( Đó đó, Vui vẻ Chuỗi chức năng, Int cpr)

Việc làm QueJobFind ( Đó đó, Vui vẻ Ngày giờ chức năng, Int cpr)

Việc làm QueJobFind ( Đó đó, Vui vẻ Kích thước máy chức năng, Int cpr)

Ở đâu CPR có thể là một trong những thứ sau: OP_MAX, OP_MIN, chức năng là một
hàm có đối số duy nhất thuộc loại Công việc.

Mô tả: Trả về Công việc với giá trị tối đa hoặc tối thiểu được tìm thấy cho
func (công việc) vì nó được áp dụng cho mọi công việc trong .

Ví dụ:
Int JobCpuTimeReqGet (Công việc việc làm)
{
Int đầu vào;

cpu = JobIntResReqGet (công việc, "cput");
trả về (cput);
}
Sched_main ()
{
Đó xếp hàng;
Việc làm Công việc;

// Tìm kiếm các Việc làm với các cao nhất cpu thời gian
// yêu cầu:
việc làm = QueJobFind (que, Công việcCpuTimeReqGet, OP_MAX);

// Tìm kiếm các Việc làm với các tối thiểu cpu thời gian
// yêu cầu:
việc làm = QueJobFind (que, Công việcCpuTimeReqGet, OP_MIN);
}

Đó QueFilter (Que que, Vui vẻ Int func, Int cpr, Int giá trị)

Đó QueFilter (Que que, Vui vẻ Chuỗi func, Int cpr, chuỗi giá trị)

Đó QueFilter (Que que, Vui vẻ Ngày giờ func, Int cpr, Ngày giá trị)

Đó QueFilter (Que que, Vui vẻ Kích thước máy func, Int cpr, Kích thước giá trị)

Ở đâu CPR có thể là một trong những thứ sau: OP_EQ, OP_NEQ, OP_LE, OP_LT,
OP_GE, OP_GT, chức năng là một hàm có đối số duy nhất thuộc loại Công việc.

Mô tả: Áp dụng chức năng đến mọi công việc trong , và trả về một hàng đợi mới
chứa tất cả các công việc thỏa mãn điều kiện so sánh:
func (công việc) CPR giá trị

Ví dụ:
Int JobWallTimeReqGet (Công việc việc làm)
{
Int vách ngăn;

bức tường = JobIntResReqGet (công việc, "walltime");
trở lại (wallt);
}
Sched_main ()
{
Đó xếp hàng;
Đó mớiq;

// Trả hàng a mới chứa tất cả các việc làm in "que"
// với a thời gian treo tường yêu cầu == 300:
mới = QueFilter (que, Công việcWallTimeReqGet, OP_EQ, 300);

// Trả hàng a mới chứa tất cả các việc làm in "que"
// với an e-mail địa chỉ != "bayucan":
mới = QueFilter (que, Công việcEmailAddrGet, OP_NEQ, "bayucan");

// Trả hàng a mới chứa tất cả các việc làm in "que"
// tạo ra sau khi or on 3 / 3 / 1997:
mới = QueFilter (que, JobDateTimeCreateGet, OP_GE,
(3 | 3 | 1997));

// Trả hàng a mới chứa tất cả các việc làm in "que"
// tạo ra sau khi 3: 3: 44:
mới = QueFilter (que, JobDateTimeCreateGet, OP_GT,
(3: 3: 44));

// Trả hàng a mới chứa tất cả các việc làm in "que"
// tạo ra sau khi 3:3:44 on 3 / 3 / 1997:
mới = QueFilter (que, JobDateTimeCreateGet, OP_GT,
(3|3|1997@3:3:44));

// LƯU Ý: Sản phẩm nguyên "que" is không sửa đổi
// bất cứ điều gì
}

Int Sắp xếp (Đặt Việc làm s, Vui vẻ Int Chìa khóa, Int đặt hàng)

Int Sắp xếp (Đặt Việc làm s, Vui vẻ Chuỗi Chìa khóa, Int đặt hàng)

Int Sắp xếp (Đặt Việc làm s, Vui vẻ Phao Chìa khóa, Int đặt hàng)

Int Sắp xếp (Đặt Việc làm s, Vui vẻ Ngày giờ Chìa khóa, Int đặt hàng)

Int Sắp xếp (Đặt Việc làm s, Vui vẻ Kích thước máy Chìa khóa, Int đặt hàng)

Ở đâu s tập hợp các công việc cần sắp xếp. chính là chìa khóa phân loại là một
hàm có đối số duy nhất thuộc loại Công việc, gọi món là sự phân loại
đặt hàng: ASC, DESC.

Mô tả: sắp xếp các phần tử của s , trong ASCending hoặc
MÔ TẢ Thứ tự liên kết của các giá trị được trả về bởi chính chức năng, như
được áp dụng cho mọi thành viên của nhóm công việc. Các s đối tượng được sửa đổi
với cuộc gọi này. Điều này trả về THÀNH CÔNG hoặc THẤT BẠI tùy thuộc vào kết quả của
sắp xếp.

Ví dụ:
Kích thước máy JobMemReqGet (Công việc việc làm)
{
Kích thước máy các mem;

mem = JobSizeResReqGet (công việc, "mem");
trở lại(tôi);
}

Sched_main ()
{
máy chủ bậc thầy;

Thiết lập Việc làm việc làm;

Int đặt hàng;

// được địa phương máy chủ
chủ = AllServersLocalHostGet ();

việc làm = Công Việc Máy ChủNhận(bậc thầy);
Sắp xếp (công việc, JobPinentGet, TĂNG DẦN);
Sắp xếp (công việc, ID công việc, MÔ TẢ);
gọi món = TĂNG DẦN;
Sắp xếp (công việc, JobDateTimeCreateGet, đặt hàng);
gọi món = MÔ TẢ;
Sắp xếp (công việc, Công việcMemReqGet, đặt hàng);
}

Int Sắp xếp (Đặt Đó s, Vui vẻ Int Chìa khóa, Int đặt hàng)

Int Sắp xếp (Đặt Đó s, Vui vẻ Chuỗi Chìa khóa, Int đặt hàng)

Int Sắp xếp (Đặt Đó s, Vui vẻ Phao Chìa khóa, Int đặt hàng)

Int Sắp xếp (Đặt Đó s, Vui vẻ Ngày giờ Chìa khóa, Int đặt hàng)

Int Sắp xếp (Đặt Đó s, Vui vẻ Kích thước máy Chìa khóa, Int đặt hàng)

Ở đâu s tập hợp các hàng đợi để sắp xếp. chính là chìa khóa phân loại là một
hàm có đối số duy nhất thuộc loại Que, gọi món là sự phân loại
đặt hàng: ASC, DESC.

Mô tả: sắp xếp các phần tử của s , trong ASCending hoặc
MÔ TẢ Thứ tự liên kết của các giá trị được trả về bởi chính chức năng, như
áp dụng cho mọi thành viên của tập hợp các hàng đợi. Các s đối tượng là
đã sửa đổi với cuộc gọi này. Điều này trả về THÀNH CÔNG hoặc THẤT BẠI tùy thuộc vào
kết quả của loại.

Ví dụ:
Kích thước máy QueMemAvailGet (Que hơn)
{
Kích thước máy các mem;

mem = QueSizeResAvailGet (que, "mem");
trở lại(tôi);
}

Sched_main ()
{
máy chủ bậc thầy;

Thiết lập Đó câu hỏi;
Int đặt hàng;

// được địa phương máy chủ
chủ = AllServersLocalHostGet ();

= Máy chủQueuesNhận(bậc thầy);
Sắp xếp (ques, QuePinentGet, TĂNG DẦN);
Sắp xếp (ques, QueNameGet, TĂNG DẦN);
gọi món = MÔ TẢ;
Sắp xếp (ques, QueMemAvailGet, đặt hàng);
}

Int Sắp xếp (Đặt máy chủ s, Vui vẻ Int Chìa khóa, Int đặt hàng)

Int Sắp xếp (Đặt máy chủ s, Vui vẻ Chuỗi Chìa khóa, Int đặt hàng)

Int Sắp xếp (Đặt máy chủ s, Vui vẻ Phao Chìa khóa, Int đặt hàng)

Int Sắp xếp (Đặt máy chủ s, Vui vẻ Ngày giờ Chìa khóa, Int đặt hàng)

Int Sắp xếp (Đặt máy chủ s, Vui vẻ Kích thước máy Chìa khóa, Int đặt hàng)

Ở đâu s tập hợp các máy chủ để sắp xếp. chính là chìa khóa phân loại là
một hàm có đối số duy nhất thuộc loại Máy chủ, gọi món
thứ tự sắp xếp: ASC, DESC.

Mô tả: sắp xếp các phần tử của s , trong ASCending hoặc
MÔ TẢ Thứ tự liên kết của các giá trị được trả về bởi chính chức năng, như
được áp dụng cho mọi thành viên của tập hợp các máy chủ. Các s đối tượng là
đã sửa đổi với cuộc gọi này. Điều này trả về THÀNH CÔNG hoặc THẤT BẠI tùy thuộc vào
kết quả của loại.

Ví dụ:
Kích thước máy ServerMemAvailGet (Máy chủ dịch vụ)
{
Kích thước máy các mem;

mem = ServerSizeResAvailGet (serv, "mem");
trở lại(tôi);
}

Sched_main ()
{
Thiết lập máy chủ máy chủ;

Int đặt hàng;

Int rút lui;

máy chủ = AllServersGet ();

sự từ chối = Sắp xếp (máy chủ, Máy chủMaxRunJobsNhận, TĂNG DẦN);
Sắp xếp (máy chủ, Máy chủInetAddrGet, TĂNG DẦN);

gọi món = MÔ TẢ;
Sắp xếp (máy chủ, Máy chủMemAvailGet, đặt hàng);
}

Int Sắp xếp (Đặt CNode s, Vui vẻ Int Chìa khóa, Int đặt hàng)

Int Sắp xếp (Đặt CNode s, Vui vẻ Chuỗi Chìa khóa, Int đặt hàng)

Int Sắp xếp (Đặt CNode s, Vui vẻ Phao Chìa khóa, Int đặt hàng)

Int Sắp xếp (Đặt CNode s, Vui vẻ Ngày giờ Chìa khóa, Int đặt hàng)

Int Sắp xếp (Đặt CNode s, Vui vẻ Kích thước máy Chìa khóa, Int đặt hàng)

Ở đâu s tập hợp các nút để sắp xếp. chính là chìa khóa phân loại là một
hàm có đối số duy nhất thuộc loại CNode, gọi món là sự phân loại
đặt hàng: ASC, DESC.

Mô tả: sắp xếp các phần tử của s , trong ASCending hoặc
MÔ TẢ Thứ tự liên kết của các giá trị được trả về bởi chính chức năng, như
được áp dụng cho mọi thành viên của tập hợp các nút. Các s đối tượng là
đã sửa đổi với cuộc gọi này. Điều này trả về THÀNH CÔNG hoặc THẤT BẠI tùy thuộc vào
kết quả của loại.

Ví dụ:
Kích thước máy CNodeMyMemAvailGet (CNode cn)
{
Kích thước máy các mem;

mem = CNodeMemAvailGet (cn, "ảo");
trở lại(tôi);
}

Sched_main ()
{
Thiết lập CNode khinh miệt;

Int đặt hàng;

khinh suất = AllNodesGet ();

Sắp xếp (scnode, CNodeThời gian nhàn rỗiGet, TĂNG DẦN);
Sắp xếp (scnode, CNodeNameNhận, TĂNG DẦN);
gọi món = MÔ TẢ;
Sắp xếp (scnode, CNodeMyMemAvailGet, đặt hàng);
}

CNode..Get () CHỨC NĂNG


Các giá trị trả về của hàm CNode..Get () được thảo luận trong phần trước là
thu được bằng cách gửi các truy vấn tài nguyên đến MOM của CNode tại mỗi lần lặp lập lịch.
Ví dụ, CNodeLoadAveGet (nút) sẽ trả về giá trị thu được từ một số
resource> query (đây có thể là chuỗi "loadave") khi được gửi đến MOM của nút. Các
" -> Ánh xạ CNode..Get () "được thiết lập bên trong, nhưng chúng có thể được
các ánh xạ đã sửa đổi hoặc nhiều hơn có thể được thêm vào thông qua tệp cấu hình bộ lập lịch. Cấu hình
tập tin được thảo luận trong pbs_sched_basl(8B).
Các ánh xạ đã được thiết lập được đưa ra như sau:

Đối với tất cả các kiến ​​trúc:

CNode..Get () thực tế cuộc gọi chủ nhà tài nguyên
======================== =============
CNodeOsGet (nút) arch
CNodeLoadAveGet (nút) tải trọng
CNodeIdletimeGet (nút) thời gian nhàn rỗi

Sử dụng basl2cB trực tuyến bằng các dịch vụ onworks.net


Máy chủ & Máy trạm miễn phí

Tải xuống ứng dụng Windows & Linux

Lệnh Linux

  • 1
    2 đến 3-3.5
    2 đến 3-3.5
    2to3-3.3 - Công cụ chuyển đổi Python2 sang Python3
    hữu ích. Cảm ơn !
    Chạy 2to3-3.5
  • 2
    2to3
    2to3
    2to3-2.7 - Công cụ chuyển đổi Python2 sang Python3
    hữu ích. Cảm ơn !
    Chạy 2to3
  • 3
    cpqarrayd
    cpqarrayd
    cpqarrayd - Bộ điều khiển mảng
    giám sátdaemon CỐ ĐỊNH: cpqarrayd [-d]
    [-v] [-t máy chủ [-t máy chủ]] MÔ TẢ:
    Chương trình này có khả năng giám sát HP
    (Compaq) sắp xếp...
    Chạy cpqarrayd
  • 4
    cproto
    cproto
    cproto - tạo nguyên mẫu hàm C
    và chuyển đổi các định nghĩa hàm ...
    Chạy cproto
  • 5
    gbbin
    gbbin
    gbbin - Một chương trình chuyển đổi dữ liệu...
    Chạy gbbin
  • 6
    gbboot
    gbboot
    gbboot - Dữ liệu do người dùng Bootstrap cung cấp ...
    Chạy gbboot
  • Khác »

Ad