영어프랑스어스페인어

Ad


온웍스 파비콘

basl2cB - 클라우드의 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 basl2cB 실행

이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 basl2cB 명령입니다.

프로그램:

이름


basl2c - BASL(Batch Scheduling Language) 코드를 C 스케줄러 코드로 변환합니다.

개요


basl2c [-d] [-l lexerDebugFile] [-p 파서디버그파일] [-y SymtabDebugFile] [-s
semanticDebugFile] [-g codegenDebugFile] [-c cFile] baslFile

기술


Basl2c 에 제공될 수 있는 중간 코드를 생성하는 BASL에서 C로의 컴파일러입니다.
일반 C 컴파일러이며 PBS 라이브러리와 연결되어 스케줄러 실행 파일을 생성합니다.
Basl2c는 입력으로 사용 basl파일, 이는 Batch Scheduling에 작성된 프로그램입니다.
기본 일정 코드가 포함된 언어입니다. 그런 다음 Basl2c는 BASL 구성을 변환합니다.
파일에서 C 문으로 변환하고 PBS를 생성하는 추가 코드도 첨부합니다.
스케줄러 소스 코드. 기본적으로 결과 C 코드는 파일에 기록됩니다.
pbs_sched.c.

결과 C 파일의 전체 경로 이름은 SCHD_CODE
BASL 스케줄러를 컴파일하여 pbs_sched
실행 파일.

옵션


-d 렉서(-l 옵션 참조), 파서(-p 참조)에 추가 디버깅 메시지를 인쇄합니다.
옵션), 기호 테이블(-y 옵션 참조), 의미 분석기(-s 옵션 참조) 및 코드
생성기(-g 옵션 참조).

-l 렉서디버그파일
렉서디버그파일 생성된 디버깅 메시지에 쓸 파일의 이름입니다.
토큰을 검색하는 동안.

-p 파서디버그파일
파서디버그파일 생성된 디버깅 메시지에 쓸 파일의 이름입니다.
사용 가능한 방식으로 토큰을 모으는 동안.

-y symtab 디버그 파일
symtab 디버그 파일 관련된 디버깅 메시지에 쓸 파일의 이름입니다.
심볼 테이블.

-s 시맨틱 디버그 파일
시맨틱 디버그 파일 디버깅 메시지에 쓸 파일의 이름입니다.
변수와 연산자가 사용되었는지 확인하는 동안 생성됩니다.
일관된 방법.

-g codegen디버그파일
코드젠디버그파일 생성된 디버깅 메시지에 쓸 파일의 이름입니다.
BASL 문을 C 문으로 변환하는 동안.

-c c파일
c파일 생성된 C 코드가 기록되는 파일의 이름입니다.

메인 구조


BASL로 작성된 스케줄러 코드의 기본 구조는 다음과 같다.
제로 or 배우기 기능 정의
제로 or 배우기 글로벌 변하기 쉬운 선언
제로 or 배우기 할당 (에 초기화 글로벌 변수)
스케줄 메인()
{
or 배우기 변하기 쉬운 선언

제로 or 배우기 성명서
}

예를 들어,
% 방법 sched.basl
INT 합계(정수 a, INT b)
{
INT s;
s = a + b;
보고);
}
INT 글로브;
스케줄 메인()
{
INT c;

a = 3;
b = 4;
c = 합계(아, NS);
인쇄(c);
글롭 = 5;
인쇄(글로브);
}

스케줄 메인() 모든 스케줄링 반복에서 호출되는 함수입니다.

기능


후속 함수에서 호출할 수 있는 함수를 정의하기 위한 구문은 다음과 같습니다.

반환 유형 함수 이름 ( 데이터 유형1 식별자1,
데이터 유형2 식별자2, ... )
{
or 배우기 변하기 쉬운 선언

제로 or 배우기 성명서
}

예를 들어,
printStuff(요일 다우, 날짜 시간 t, str,
크기 즈, 씨노드 ㄷ)
{
인쇄(다우);
인쇄(t);
인쇄(문자열);
인쇄(sz);
인쇄(cn);
}

유효한 기능 반환 유형 다음은 Void, Int, Float, Dayofweek, DateTime, String, Size,
서버, 큐, 작업, CNode, 서버 설정, 큐 설정, 작업 설정, CNode 설정.

유효한 데이터 유형( 데이터 유형1, 데이터 유형2, ... ) 매개변수 식별자는 Int,
Float, Dayofweek, DateTime, 문자열, 크기, 서버, 큐, 작업, CNode, 서버 설정, 큐 설정,
작업 설정, CNode 설정, Int 범위 범위, 부동 소수점 범위, Dayofweek 범위, DateTime 범위, 범위 크기,
Fun Int, Fun Float, Fun Void, Fun Dayofweek, Fun DateTime, Fun 문자열, Fun Size, Fun
서버, Fun Que, Fun Job, Fun CNode, Fun Set Server, Fun Set Qu, Fun Set Job, Fun Set
씨노드. 이러한 데이터 유형은 다음 주제에서 설명합니다.

함수는 다음과 같이 이름과 인수로 호출됩니다.

인쇄물( 월, (5|1|1997@14:32:00), "스케줄 시작한다",
30GB, 노드 );

Basl2c 실제로 스케줄러에서 제공한 함수 이름에 "basl_" 접두사를 추가합니다.
결과 C 코드가 다음과 같을 때 발생할 수 있는 이름 충돌 가능성을 최소화하기 위해 작성기
PBS, BASL 라이브러리와 연결됩니다. 예를 들어 생성된 C 코드를 보면
인쇄물, 당신은 볼 것입니다,

basl_printStuff( MON, (5|1|1997@14:32:00),
"스케줄 시작", 30GB, 노드 );

C에서와 같이 모든 함수 호출은 이전에 정의되어 있어야 합니다. BASL 컴파일러는
함수 호출의 인수가 정확히 일치하는지 확인하십시오(
유형)을 함수 정의의 매개변수와 함께 사용합니다.

BASL에는 사용자 정의 함수와 미리 정의된 함수라는 두 가지 종류의 함수가 있습니다.
사용자 정의 함수는 스케줄러 작성자가 정의를 제공한 함수입니다.
미리 정의된 함수는 필요 없이 즉시 호출할 수 있는 함수입니다.
그것을 정의. 미리 정의된 기능 목록은 섹션을 참조하십시오. 미리 정의 기능 .

변하기 쉬운 선언


C와 마찬가지로 BASL 코드의 모든 변수는 사용 전에 명시적으로 선언해야 합니다. 저것들
함수 외부에 선언된 변수를 전역 변수라고 하는 반면,
함수 본문 내에서 선언된 변수를 지역 변수라고 합니다. 글로벌
변수는 BASL 코드 내 어디에서나 사용할 수 있지만 지역 변수는 읽을 수 있습니다.
선언된 함수 내에서만.

변수 선언의 구문은 다음과 같습니다.

데이터 형식 식별자 ;

어디에 데이터 형식 Int, Float, Dayofweek, DateTime, String, Size, Server, Que, Job,
CNode, 서버 설정, 큐 설정, 작업 설정, CNode 설정, Int 범위 범위, 부동 소수점 범위, Dayofweek 범위,
범위 날짜 시간, 범위 크기.

데이터 TYPE


값을 반환하지 않는 함수에 사용됩니다.

INT 부호 있는, 10진법으로 주어진 정수.

샘플 상수:
5, +1, -3, 성공(=1), 실패(=0), 참(=1), 거짓(=0)

흙손 번역된 C 코드에서 double로 표시되는 실수.
샘플 상수: 4.3, +1.2, -2.6

평일
상수 값: SUN, MON, TUE, WED, THU, FRI, SAT, 내부적으로 다음과 같이 표현됨
SUN=0, MON=1 등의 정수 값 상수.

날짜 시간
3가지 형식 중 하나로 지정:

[1] (m|d|y) 여기서 1 <= m <= 12, 1 <= d <= 31, 0 <= y, ex. (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

크기 체재: 여기서 suffix는 다음 형식의 승수입니다.
:

승수 단위 (바이트 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개의 크기 피연산자에 대해 연산할 때 접미사
둘 중 "낮은"이 결과 접미사가 됩니다. 예를 들어,
10MB + 10GB = 10250MB
샘플 상수: -1b, 2w, 1kb, 2mw, +3gb, 4tw, 6Pb

범위 INT

형식: (낮은 Int 값, 높은 Int 값)
여기서 낮은 Int 값 <= 높은 Int 값입니다. 샘플 상수: (1,3)

범위 흙손

형식: (낮은 Float 값, 높은 Float 값)
여기서 낮은 값 <= 높은 값. 샘플 상수: (2.3, 4.6)

범위 평일

형식: (빠른 날, 늦은 날)
여기서 이른 날 <= 나중. 샘플 상수: (수, 금)

범위 날짜 시간

형식: (이전 날짜/시간, 나중 날짜/시간)
여기서 이전 날짜/시간 <= 이후 날짜/시간.
참고: 범위에 시간 부분만 포함되어 있고 이전 시간이
be > "((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))

범위 크기

형식: (낮은 크기, 높은 크기)
여기서 낮은 크기 <= 높은 크기. 샘플 상수: (23GB, 50GB)

서버 PBS 서버 개체에 직접 매핑합니다. NS 서버 하나 이상의 관리 사물.
샘플 상수: NOSERVER

씨노드 단일 OS 이미지, 공유 메모리 및 세트로 구성된 계산 노드용
CPU의. CNode는 1 PBS MOM을 실행합니다.
샘플 상수: NOCNODE

PBS 대기열 개체에 직접 매핑합니다. NS 개체 스풀 하나 이상
사물.
샘플 상수: NOQUE

PBS 작업 개체에 직접 매핑합니다. NS 객체는 몇 가지 속성을 가지고 있으며
리소스 요구 사항.
샘플 상수: NOJOB

세트 서버
서버 개체 목록입니다.
샘플 상수: EMPTYSETSERVER

세트 씨노드
CNode 개체 목록입니다.
샘플 상수: EMPTYSETCNODE

세트 Qu 개체의 목록입니다.
샘플 상수: EMPTYSETQUE

세트 작업 개체 목록입니다.
샘플 상수: EMPTYSETJOB

BASL 정의 상수


식별자 이름을 지정하는 데 사용할 수 없는 상수입니다(다음 항목 참조). 이것들
항상 대문자입니다.

데이터 TYPE BASL 정의 일정한
=================== =============================================
평일 해, 월, 화, 수, 목, 금, SAT

INT 성공, 불합격, 그릇된, 진실, 동기화, 비동기,
지우다, 다시 실행, 잡고있다, 풀어 주다, 신호,
수정하다, 수정하다, 서버_활성,
서버_유휴, SERVER_SCHED, SERVER_TERM,
SERVER_TERMDELAY, QTYPE_E, QTYPE_R,
SCHED_DISABLED, SCHED_ENABLED, 운송,
대기 중, 유지 된, 대기 중, 달리기, 종료,
CNODE_오프라인, CNODE_DOWN, CNODE_FREE,
CNODE_RESERVE, CNODE_INUSE_EXCLUSIVE,
CNODE_INUSE_SHARED, CNODE_TIMESHARED,
CNODE_클러스터, CNODE_알 수 없음, OP_EQ, OP_NEQ,
OP_LE, OP_LT, OP_GE, OP_GT, OP_MAX, OP_MIN,
ASC DESC

서버 노서버
세트 서버 빈세트서버

씨노드 녹노드
세트 씨노드 EMPTYSETCNODE

노케
세트 비어 있는 설정

백수
세트 EMPTYSETJOB

NULLSTR

식별자


식별자(변수 이름 및 함수 이름에 사용됨)는 영숫자 형식이며
특수 밑줄(_) 문자가 허용됩니다. 현재 BASL은 식별자만 처리할 수 있습니다.
길이는 최대 80자입니다. 또한 BASL에서 정의한 상수 이름을 사용할 수 없습니다.
식별자 이름 지정.

성명서


In 바슬(2) 세미콜론으로 끝나는 단일 명령문을 가질 수 있습니다.
'{' 및 '}'로 구분된 문(복합 문 또는 블록이라고 함). 다른
BASL 코드에 나타날 수 있는 명령문의 종류는 다음과 같습니다.

1. 표현문
표현식 문은 다음과 같은 형식입니다.

특급 ;

어디에 특급 될 수 있습니다 :

a) 산술 표현

어휘 + 렉스퍼 (추가하다)
어휘 - 렉스퍼 (덜다)
어휘 * 렉스퍼 (곱하다)
어휘 / 렉스퍼 (나누기)
어휘 % 렉스퍼 (계수 or 나머지)

참고: 더하기, 빼기, 곱하기, 나누기 및 나머지
적절한 유형에 대해서만 허용되며 왼쪽 및 오른쪽
표현식은 일관된 유형입니다. 아래 표는 무엇을 보여줍니다
유형은 다양한 연산자 간에 일치합니다.

+:

어휘 렉스퍼
============ ============
INT or 흙손 INT or 흙손
크기 크기


을위한 -, *, /:

어휘 렉스퍼
============ ============
INT or 흙손 INT or 흙손
크기 크기

을위한 %:

어휘 렉스퍼
============ ============
INT or 흙손 INT or 흙손

다음은 몇 가지 샘플 산술 표현식입니다.
INT 나1;
INT 나2;
흙손 f1;
흙손 f2;
크기 sz1;
크기 sz2;
str1;
str2;

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

str1 = "바젤";
str2 = " 시원한";

// 전에, 수행원 is a 연쇄
// 조작 결과 in 전에, 끈:
// "바젤 시원한"
str1 + str2;

i1 % 10;

b) 단항 표현식

+ expr // 긍정적인 - 곱하다 by 1 an
// 표현 is
// of 인트, 뜨다, or
// 크기 유형

-expr // 부정 - 곱하다 by -1 an
// 표현 is
// of 인트, 뜨다, or
// 크기 유형

! expr // 지원 - 변환 a XNUMX이 아닌 특급
// 가치 으로 0, a
// 제로 특급 가치 으로 1
// 어디에 특급 유형 절대로 필요한 것 be
// of 유형 INT or 흙손

몇 가지 샘플 단항 표현식:
INT i;

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

c) 논리식

어휘 EQ 렉스퍼
어휘 네크 렉스퍼
어휘 LT 렉스퍼
어휘 LE 렉스퍼
어휘 GT 렉스퍼
어휘 GE 렉스퍼
어휘 렉스퍼
어휘 OR 렉스퍼

어휘렉스퍼 표시된 대로 상호 일관성 있는 유형을 가져야 합니다.
다음 표에서:

터미널-expr rterminal-expr
============== ==============
INT or 흙손 INT or 흙손
평일 평일
날짜 시간 날짜 시간

크기 크기
서버 서버


씨노드 씨노드
세트 서버 세트 서버
세트 세트
세트 세트
세트 씨노드 세트 씨노드

럭셔리 과, OR 연산자, 어휘, 렉스퍼 일관된 유형은 Int 또는
뜨다.

몇 가지 샘플 논리 표현식:

i1 EQ 나2;
i1 네크 f2;
다우1 LE 다우2;
d1 LT d2;
str1 GT str2;
sz1 GE sz2;

d) 사후 연산자 표현식
할당에 대한 바로 가기 식입니다.
진술.

식별자++; // 식별자=식별자+1
식별자--; // 식별자=식별자-1

식별자 Int 또는 Float 유형이어야 합니다.

예:
INT i;
흙손 f;

난 + +;
NS--;

e) 함수 호출

함수 이름 ( arg1 ,arg2 ... , 인수 )

어디에 인수1, ..., 인수 상수 또는 변수일 수 있습니다. 당신은 가질 수 없습니다
다른 함수 호출을 인수로 사용합니다.
예:
인쇄 a) {
인쇄(a);
}

pr(5);

스케줄러 작성자가 수행할 수 있는 사전 정의된 특정 기능이 있습니다.
정의할 필요 없이 자동으로 BASL 코드를 호출합니다.
이러한 기능을 보조 기능(또는 도우미
기능) 아래에 설명되어 있습니다. 미리 정의 기능 이야기.

f) 상수
몇 가지 유효한 상수 표현식은 다음과 같습니다.
5;
+ 1.2;
해;
월;
화요일;
수;
목;
금;
수능;
(4|4|1997);
(12:01:00);
(4|4|1997@12:01:00);
"훌륭한";
-1b;
동기화
비동기화;
삭제;
재실행
잡고있다;
풀어 주다;
신호;
수정하다;
수정하다;
(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));
(23GB, 50GB);
노서버;
녹노드;
노크;
백수;
빈세트서버;
빈세트노드;
공허함;
비어 있는 작업;
NULLSTR;
성공;
불합격;
서버_활성;
서버_유휴;
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;

g) 식별자

예:
인트 나;

i;

2. 양도명세서

식별자 = 특급 ;

식별자특급 다음과 같이 상호 일관성이 있는 유형이 있어야 합니다.
다음 표에 나와 있습니다.

식별자 특급
=============== ===============
INT 인트, 흙손
흙손 인트, 흙손
평일 평일
날짜 시간 날짜 시간

크기 크기


씨노드 씨노드
서버 서버
평일 평일
날짜 시간 날짜 시간
세트 서버 세트 서버
세트 세트
세트 세트
세트 씨노드 세트 씨노드
범위 INT 범위 INT
범위 흙손 범위 흙손
범위 평일 범위 평일
범위 날짜 시간 범위 날짜 시간
범위 크기 범위 크기

3. 다른 경우라면 성명서
if 문의 형식은 구분 기호가 있는 C의 형식과 유사합니다.
"{" 및 "}"는 항상 존재합니다.

만약( 특급 ) {
제로 or 배우기 (참) 성명서
}

만약( 특급 ) {
제로 or 배우기 (참) 성명서
} 그렇지 않으면 {
제로 or 배우기 (그릇된) 성명서
}

XNUMXD덴탈의 특급 's 유형은 Int 또는 Float이어야 하며, 평가 후 다음과 같은 경우
값이 XNUMX이 아닌 경우 true 명령문이 실행됩니다. 두 번째에
형식, 경우 특급 XNUMX으로 평가되면 false 문이 실행됩니다.

일부 샘플 if 진술은 다음과 같습니다.

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

if (2 * x ) {
y = y + 3;
} 그렇지 않으면 {
만약( 3 * x ) {
y = 4;
} 그렇지 않으면 {
y = 5;
}
}

4. for 고리 성명서
for 문의 형식은 다음과 같습니다.

을위한( 시작; 시험; 동작 ) {
제로 or 배우기 성명서
}

C에서와 마찬가지로, for 먼저 실행 스타트 , 그런 다음 평가 test 조건
XNUMX이 아닌 값을 반환하는지 확인합니다. 그렇다면, for 진술은
실행. 후 for 명령문이 실행된 다음 동작 평가됩니다.
그런 다음 확인합니다. test 다시 예전과 같은 조건으로.
스타트동작 간단한 대입 표현식 또는 사후 연산자일 수 있습니다.
표현. test 논리/관계식입니다. 일부 샘플
진술은 다음과 같이 주어진다:

for (i = 0; i LT 3 ; i = i + 1)
{
인쇄(i);
}

for (i = 0; i LT 2 * x; 나는 ++)
{
if (x GT 3)
{
y = 99;
} 그렇지 않으면
{
x = 73;
}
}

5. 각각 고리 성명서
이 문은 주로 각 요소를 연속적으로 검색하는 데 사용됩니다.
a 설정 데이터 유형: 서버 설정, CNode 설정, 작업 설정, 큐 설정. 구문은 다음과 같습니다.

각각 ( 식별자1 in 식별자2 ) {
제로 or 배우기 성명서
}

여기서 식별자에 대해 다음 유형 쌍이 허용됩니다.

식별자1 식별자2
=========== ===========
서버 세트 서버
세트
세트
씨노드 세트 씨노드

예:
서버 s;
q;
j;
씨노드 c;

세트 서버 봄 여름 시즌;
세트 평방;
세트 ㅅ;
세트 씨노드 sc;

foreach in 봄 여름 시즌){
인쇄물);
}
foreach(q in 평방){
인쇄(q);
}
foreach(제이 in 시){
인쇄(j);
}
foreach(c in sc){
인쇄(c);
}

6. 동안 고리 성명서
while 루프의 구문은 다음과 같습니다.

동안 ( 특급 ) {
제로 or 배우기 성명서
}

어디에 특급 Int 또는 Float 유형이어야 합니다. 만약에 특급 XNUMX이 아닌 경우 XNUMX
이상 성명서 실행되고 특급 재평가됩니다.

예:
INT i;
i = 3;
동안(나는) {
만약( i EQ 0 ) {
print("중단 on i = 1");
하다;
}
NS--;
}

7. 스위치 성명서
switch 문은 다음 여부를 테스트하는 다중 결정입니다.
식별자의 값은 여러 값 중 하나와 일치하고
그에 따른 진술 그룹.
switch 문의 구문은 다음과 같습니다.

스위치 ( 식별자 ) {
케이스 상수-expr :
{
제로 or 배우기 성명서
}
케이스 상수-expr :
{
제로 or 배우기 성명서
}
...
케이스 in 상수 범위 또는 집합-expr :
{
제로 or 배우기 성명서
}
케이스 in IDENTIFIER 범위 또는 설정 유형 :
{
제로 or 배우기 성명서
}
디폴트 값 :
{
제로 or 배우기 성명서
}
}

어디에 상수-expr 는 Teledyne LeCroy 오실로스코프 및 LSA-XNUMX 시리즈 임베디드 신호 분석기가 특급 Int, Float, Dayofweek, DateTime,
크기, 문자열, 서버, 큐, 작업 또는 CNode. 상수 범위 또는 집합-expr
IDENTIFIER 범위 또는 설정 유형 Set Server, Set CNode, Set Que, Set 유형일 수 있습니다.
Job, Range Int, Range Float, Range Dayofweek, Range DateTime 또는 Range Size.

식별자 Void 유형이 될 수 없습니다. 식별자 's 유형이 일관되어야 합니다.
상수-expr '에스, 상수 범위 또는 집합-expr '에스,식별자-
범위 또는 설정 유형 's 다음 표와 같이 입력하십시오.
식별자 일정 범위-expr, IDENTIFIER-범위 유형
=========== =========================================
서버 세트 서버
세트
세트
씨노드 세트 씨노드
INT 범위 INT
흙손 범위 흙손
평일 범위 평일
날짜 시간 범위 날짜 시간
크기 범위 크기

케이스 표현식이 일치하는 경우 식별자 's 값, 다음 해당
명령문 블록이 실행됩니다. C와 달리 실행이 떨어지지 않습니다.
다음 사례 진술을 통해. 그 이유는 Basl2c 의지
이것을 번역하라 스위치 if-elseif-else 구문으로 문. 경우
다른 경우가 모두 충족되지 않으면 레이블이 지정된 기본값이 실행됩니다. NS
디폴트 값 선택 사항입니다. 일치하지 않는 경우 및 일치하는 경우가 없는 경우
행동이 일어납니다.

예:
평일 다우;

스위치(다우)
{
케이스 월 :
{
print("케이스 월");
}
케이스 TUE :
{
print("케이스 화");
}
케이스 수요일 :
{
print("케이스 수요일");
}
케이스 THU :
{
print("케이스 목");
}
케이스 FRI :
{
print("케이스 금");
}
케이스 토 :
{
print("케이스 수능");
}
케이스 태양:
{
print("케이스 해");
}
기본값 :
{
print("케이스 기본값");
}
}

INT a;
범위 INT 리;
ri = (10, 12);
스위치(a)
{
케이스 in (1,5) :
{
print("케이스 1,5");
}
케이스 in (6,9) :
{
print("케이스 6,9");
}
케이스 in 리:
{
print("케이스 리");
}
}

8. 인쇄 성명서
Print 문은 모든 값을 stdout으로 인쇄할 수 있습니다. 식별자
or 상수 Int, Float, Dayofweek, DateTime, String, Size, Que, Job,
CNode, 서버, 범위 Int, 범위 부동 소수점, 범위 Dayofweek, 범위 DateTime,
범위 크기.
구문은 다음과 같습니다.

인쇄 ( 식별자 );
인쇄 ( 상수 );

예:
날짜 시간 dt;
씨노드 CN;

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

인쇄(dt);
인쇄(cn);

세트 유형의 경우 다음을 사용하십시오. 각각 각 요소를 살펴보고 다음과 같이 인쇄합니다.

서버 s;
세트 서버 봄 여름 시즌;

ss = AllServersGet();

foreach in 봄 여름 시즌) {
인쇄물);
}

9. 계속 문

계속 ;

XNUMXD덴탈의 계속 문은 내에서 호출되어야 합니다. 에 대한, 각각,
동안 고리. 둘러싸는 루프의 다음 반복이 시작되도록 합니다.

10. break 문

하다 ;

XNUMXD덴탈의 하다 문은 내에서 호출되어야 합니다. 에 대한, 각각,동안
고리. 둘러싸는 루프에서 조기 종료를 제공합니다.

11. 반품 명세서

반환(식별자) ;
반환(상수) ;
반품() ;

return 문은 다음에 의해 반환될 값(있는 경우)을 제공합니다.
기능. 에 의해 반환된 유형 식별자상수 일치해야합니다
함수의 반환 유형을 호출합니다. 상수 허용되는 유형은 다음을 제외한 모든 것입니다.
세트 및 범위 유형. 마지막 형식, 반품() 일반적으로 다음 내에서 호출됩니다.
값을 반환하지 않는 함수(예: 스케줄 메인() ).

12. 종료문

종료(상수);

어디에 상수 Int 유형입니다. 이것을 호출하면 스케줄러가 종료됩니다.

13. 의견 진술
이들은 "//" 접두사가 붙은 문이며 BASL에서 무시됩니다.
컴파일러.

// is 무시
INT i; // 수행원 전에, 슬래시 is 무시

운영자 상위 연관성


다음 표는 정의된 다양한 연산자 우선 순위 수준 및 연관성을 보여줍니다.
BASL 언어로. 연산자는 우선 순위가 낮은 순서로 나열됩니다. NS
연산자의 우선 순위가 높을수록 더 빨리 실행됩니다. 순서는
동일한 수준의 연산자는 연관성에 따라 실행됩니다. 왼쪽은
연산자는 왼쪽에서 오른쪽으로 표시되고 right는 오른쪽에서 왼쪽으로 표시됨을 의미합니다.

운영자 연관성
========================= =============
! ++ -- + (단항 을 더한) - (단항 마이너스) 연락해주세요
* / % 왼쪽 (left)
+ - 왼쪽 (left)
LT LE GT GE 왼쪽 (left)
EQ 네크 왼쪽 (left)
왼쪽 (left)
OR 왼쪽 (left)
= 연락해주세요

미리 정의 기능


In 바슬(2), ~ 서버 데이터 유형은 일괄 처리 서버 개체에 직접 매핑됩니다. 비슷하게, 씨노드
엄마/레스맘에게, 작업을 일괄 처리하는 것입니다. 일괄 대기열입니다. 그러나 모든
PBS 개체에 대한 속성은 BASL에서 액세스할 수 있습니다. 속성의 하위 집합만,
스케줄러의 맥락에서 의미가 있는 것처럼 보이는 것들이 사용 가능하게 되었으며,
이러한 속성에 대한 값은 다음과 같은 사전 정의된 함수를 호출하여 액세스할 수 있습니다.
보조/도우미 기능이라고도 합니다.

(1) 서버 관련 기능

세트 서버 AllServersGet(무효)
에 대한 구성 파일에 지정된 서버 목록을 반환합니다.
스케줄러 작성자가 시스템이 주기적으로 확인하기를 원하는 것
상태, 대기열 및 작업 정보. 보다 pbs__sched__basl(8B) A에 대한
구성 파일의 형식에 대한 토론.
주의: 이 함수는 내부에서 호출해야 합니다. 스케줄 메인() so
모든 스케줄링 반복에서 가장 최신의 세트 서버
구조가 반환됩니다.

서버 AllServersLocalHostGet(무효)
로컬 호스트를 나타내는 Server 개체를 반환합니다. 설정되지 않은 값:
NOSERVER. 클러스터가 아닌 환경을 호출하는 간단한 함수입니다.
단 하나의 서버 호스트만 존재합니다.
주의: 이 함수는 내부에서 호출해야 합니다. 스케줄 메인() (또는
sched_main에 의해 호출된 함수 내에서) 그래서 모든 스케줄링에서
반복, 가장 최신 서버 구조가 반환됩니다.

ServerInetAddrGet(서버 s)
서버의 이름을 반환합니다. 설정되지 않은 값: NULLSTR

ServerDefQueGet(서버 s)
Server s의 default_queue 속성을 반환합니다. 설정되지 않은 값: NULLSTR

INT ServerStateGet(서버 s)
Server s의 server_state 속성을 반환합니다.

반환 값 :
SERVER_ACTIVE, SERVER_IDLE, SERVER_SCHED, SERVER_TERM,
SERVER_TERMDELAY, -1(설정되지 않은 값)

INT ServerMaxRunJobsGet(서버 s)
Server s의 max_running 속성을 반환합니다. 설정되지 않은 값: 0

INT ServerMaxRunJobsPerUserGet(서버 s)
서버의 max_user_run 속성을 반환합니다. 설정되지 않은 값: 0

INT ServerMaxRunJobsPerGroupGet(서버 s)
Server s의 max_group_run 속성을 반환합니다. 설정되지 않은 값: 0

세트 ServerQueuesGet(서버 s)
서버에서 관리하는 대기열 목록을 반환합니다.

세트 ServerJobsGet(서버 s)
Server s에서 관리하는 작업 목록을 반환합니다. 이 부분집합을 얻으려면
목록, 참조 큐잡스겟().

INT ServerIntResAvailGet(서버 s, 이름)
에 지정된 리소스에 값을 반환합니다. name 작업에 사용할 수 있는
이 서버에서 실행(서버 자원_가용.이름 기인하다). 전화주세요
값이 Int 유형인 리소스에 대한 함수입니다. 샘플 리소스
이름은 다음과 같습니다: cput, pcput, walltime, mppt, pmppt, nice, procs, mppe, ncpus,
pncpus, nodeect, 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 CPU 사용 가능;
// return 전에, # of CPU를 현재 가능 in
// 전에, 섬기는 사람
CPU 사용 가능 = ServerIntResAvailGet(서버, "ncpus");

크기 ServerSizeResAvailGet(서버 s, 이름)
에 지정된 리소스에 값을 반환합니다. name 작업에 사용할 수 있는
이 서버에서 실행(서버 자원_가용.이름 기인하다). 전화주세요
크기 유형의 값이 있는 리소스에 대한 함수입니다. 샘플 리소스
이름은 파일, 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;
// return 전에, of 가능 기억 in
// 전에, 섬기는 사람
memavail = ServerSizeResAvailGet(서버, "멤");

ServerStringResAvailGet(서버 s, 이름)
에 지정된 리소스에 값을 반환합니다. name 작업에 사용할 수 있는
이 서버에서 실행(서버 자원_가용.이름 기인하다). 전화주세요
값이 문자열 유형인 리소스에 대한 함수입니다. 견본
리소스 이름은 노드, 아치, 필요 노드입니다. 이들에 대한 설명을 위해
리소스 이름, 참조 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).

예:
유형;
// return 전에, 아키텍처 (또는 os 유형) of
// 전에, 섬기는 사람
유형 = ServerStringResAvailGet(서버, "아치");

INT ServerIntResAssignGet(서버 s, 이름)
에 지정된 리소스에 값을 반환합니다. name 에 할당되는
실행 중인 작업(서버 resource_assigned.name 기인하다). 전화주세요
값이 Int 유형인 리소스에 대한 함수입니다. 샘플 리소스
이름은 다음과 같습니다: cput, pcput, walltime, mppt, pmppt, nice, procs, mppe, ncpus,
pncpus, nodeect, 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;
// return 전에, # of CPU를 현재 할당 된 in
// 전에, 섬기는 사람
CPUAssn = ServerIntResAssignGet(서버, "ncpus");

크기 ServerSizeResAssignGet(서버 s, 이름)
에 지정된 리소스에 값을 반환합니다. name 에 할당되는
실행 중인 작업(서버 resource_assigned.name 기인하다). 전화주세요
크기 유형의 값이 있는 리소스에 대한 함수입니다. 샘플 리소스
이름은 파일, 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;
// return 전에, of SDS 공간 현재 할당 된
// in 전에, 섬기는 사람
sdsassn = ServerSizeResAssignGet(서버, "sds");

ServerStringResAssignGet(서버 s, 이름)
에 지정된 리소스에 값을 반환합니다. name 에 할당되는
실행 중인 작업(서버 resource_assigned.name 기인하다). 전화주세요
값이 문자열 유형인 리소스에 대한 함수입니다. 견본
리소스 이름은 노드, 아치, 필요 노드입니다. 이들에 대한 설명을 위해
리소스 이름, 참조 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).

세트 씨노드 ServerNodesGet(서버 s)
서버가 관리하는 노드 집합을 반환합니다. 설정되지 않은 값: EMPTYSETCNODE.
참고: 일반적으로 반환된 노드에 대해 다음 함수를 호출할 수 있습니다.
이 호출에 의해: CNodeStateGet(), CNodePropertiesGet() 및 CNodeTypeGet().

INT ServerNodesQuery(서버 s, 투기)
의 가용성을 쿼리하기 위해 지정된 서버에 요청을 발행합니다.
에 지정된 리소스 투기. 현재 유일한 자원
허용되는 사양은 "노드"를 포함하는 사양이며 다음 중 하나일 수 있습니다.
"노드", "노드=" 또는 "노드= 형식" ". 쿼리 결과는
다음 함수를 호출하여 액세스: ServerNodesNumAvailGet(),
ServerNodesNumAllocGet(), ServerNodesNumRsvdGet(),
ServerNodesNumDownGet().
참고: 이것은 래퍼입니다. pbs_rescquery(3B) 서버 기능.

반환 값 :
성공, 실패

INT ServerNodesNumAvailGet(서버 s)
지정된 노드에서 관리하는 노드에 사용할 수 있는 노드 수를 반환합니다.
서버 또는 다음에 의해 지정된 가장 최근 쿼리에 의해 반영됨
ServerNodesQuery(). 반환 값이 XNUMX이면 이는 다음을 의미합니다.
의 사양을 충족하기 위해 현재 필요한 몇 개의 노드
ServerNodesQuery()는 현재 사용할 수 없습니다. 요청이 충족되었을 수 있습니다.
나중에 시간에. 결과가 음성이면 알려진 조합이 없음
노드는 사양을 만족할 수 있습니다.

INT ServerNodesNumAllocGet(서버 s)
지정된 노드에서 관리하는 노드에 할당된 노드 수를 반환합니다.
서버 또는 다음에 의해 지정된 가장 최근 쿼리에 의해 반영됨
ServerNodesQuery().

INT ServerNodesNumRsvdGet(서버 s)
지정된 노드에서 관리하는 노드를 위해 예약된 노드 수를 반환합니다.
서버 또는 다음에 의해 지정된 가장 최근 쿼리에 의해 반영됨
ServerNodesQuery().

INT ServerNodesNumDownGet(서버 s)
지정된 노드에서 관리하는 노드의 수를 반환합니다.
서버 또는 다음에 의해 지정된 가장 최근 쿼리에 의해 반영됨
ServerNodesQuery().

INT ServerNodesReserve(서버 s,문자열 사양, 정수 resId)
리소스를 예약하기 위해 지정된 서버에 요청을 발행합니다.
지정 투기. 값이 0인 경우 resId 하기 위한 것임을 의미합니다.
새로운 예약. 그렇지 않으면 숫자가 기존
(일부) 예약. 현재 예약된 리소스 resId 의지
해제되고 전체 예약이 다시 시도됩니다. 에서
현재 지정될 수 있는 유일한 자원은 다음과 같습니다.
"노드". 다음과 같이 지정해야 합니다. 노드=사양 어디에
사양은 -l 옵션 인수 목록에서 사용자가 지정하는 것입니다.
노드에 대해서는 qsub(1B)를 참조하십시오.
참고: 이것은 래퍼입니다. pbs_reserve(3B) 서버 기능.

반환 값 :
성공 또는 부분적으로 성공한 참조 번호
예약 또는 실패

INT ServerNodesRelease(서버 s, INT resId)
참조 번호로 예약된 리소스를 해제하거나 해제합니다.
지정 아이디
참고: 이것은 래퍼입니다. pbs_rescrelease(3B) 서버 기능.

반환 값 :
성공 또는 실패

(2) Que 관련 기능:

QueNameGet( 해적 )
큐의 이름을 반환합니다. 설정되지 않은 값: NULLSTR

INT 큐타입겟( 해적 )
큐 큐의 queue_type 속성을 반환합니다.
반환 값: QTYPE_E(실행), QTYPE_R(라우팅), -1(설정되지 않음)
값)

INT QueNumJobsGet( 해적 )
큐에 있는 작업 수를 반환합니다. 설정되지 않은 값: 0

INT QuMaxRunJobsGet( 해적 )
큐 큐의 max_running 속성을 반환합니다. 설정되지 않은 값: 0

INT QueMaxRunJobsPerUserGet( 해적 )
큐 큐의 max_user_run 속성을 반환합니다. 설정되지 않은 값: 0

INT QueMaxRunJobsPerGroupGet( 해적 )
큐 큐의 max_group_run 속성을 반환합니다. 설정되지 않은 값: 0

INT QuePriorityGet( 해적 )
큐 큐의 우선 순위 속성을 반환합니다. 설정되지 않은 값: 0

INT 쿼리 상태 가져오기( 해적 )
Que que의 시작된 속성을 반환 - 작업 실행 선택
큐의 상태: SCHED_DISABLED, SCHED_ENABLED. 설정되지 않은 값:
SCHED_DISABLED

세트 QueJobsGet( 해적 )
현재 que에 있는 작업 목록을 반환합니다.

INT QueIntResAvailGet(큐 q, 이름)
에 지정된 리소스에 값을 반환합니다. name 사용할 수 있는
이 q(Que 자원_가용.이름 속성).
값이 Int 유형인 리소스에 대해 이 함수를 호출합니다.
샘플 리소스 이름은 cput, pcput, walltime, mppt, pmppt, nice,
procs, mppe, ncpus, pncpus, nodeect, 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(큐 q, 이름)
에 지정된 리소스에 값을 반환합니다. name 사용할 수 있는
이 q(Que 자원_가용.이름 속성).
크기 유형의 값이 있는 리소스에 대해 이 함수를 호출합니다.
샘플 리소스 이름은 다음과 같습니다. file, mem, pmem, workingset, 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(큐 q, 이름)
에 지정된 리소스에 값을 반환합니다. name 사용할 수 있는
이 q(Que 자원_가용.이름 속성).
값이 문자열 유형인 리소스에 대해 이 함수를 호출합니다.
샘플 리소스 이름은 노드, 아치, 필요 노드입니다. 설명을 위해
이러한 리소스 이름 중 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(큐 q, 이름)
에 지정된 리소스에 값을 반환합니다. name 에 할당되는
이 대기열에서 실행 중인 작업(Que resource_assigned.name 속성).
값이 Int 유형인 리소스에 대해 이 함수를 호출합니다.
샘플 리소스 이름은 cput, pcput, walltime, mppt, pmppt, nice,
procs, mppe, ncpus, pncpus, nodeect, 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(큐 q, 이름)
에 지정된 리소스에 값을 반환합니다. name 에 할당되는
이 q(Que resource_assigned.name 속성).
크기 유형의 값이 있는 리소스에 대해 이 함수를 호출합니다.
샘플 리소스 이름은 다음과 같습니다. file, mem, pmem, workingset, 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(큐 q, 이름)
에 지정된 리소스에 값을 반환합니다. name 에 할당되는
이 q(Que resource_assigned.name 속성).
값이 문자열 유형인 리소스에 대해 이 함수를 호출합니다.
샘플 리소스 이름은 노드, 아치, 필요 노드입니다. 설명을 위해
이러한 리소스 이름 중 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( )
작업 작업의 작업 식별자를 반환합니다. 설정되지 않은 값: NULLSTR

작업 이름 가져오기( )
Job 작업의 Job_Name 속성을 반환합니다. 설정되지 않은 값: NULLSTR

작업소유자이름Get( )
Job 작업의 Job_Owner 속성을 반환합니다. 설정되지 않은 값: NULLSTR

JobEffectiveUserNameGet( 일)
Job 작업의 euser 속성을 반환합니다.

JobEffectiveGroupNameGet(작업 일)
Job 작업의 egroup 속성을 반환합니다. 설정되지 않은 값: NULLSTR

INT 작업 상태 가져오기 ( )
Job 작업의 job_state 속성을 반환합니다.

반환 값 :
TRANSIT, QUEUED, HELD, WAITING, RUNNING, EXITING, -1(설정되지 않음
값)

INT 작업우선순위Get( )
Job 작업의 우선순위 속성을 반환합니다. 설정되지 않은 값: 0

INT 작업재실행FlagGet( )
Job 작업의 Rerunable 속성을 반환합니다.
반환 값: FALSE, TRUE, -1(설정되지 않은 값)

INT JobInteractiveFlagGet( )
작업 작업의 대화형 속성을 반환합니다.
반환 값: 거짓, 참. 설정되지 않은 값: FALSE

날짜 시간 JobDateTimeCreatedGet(작업 일)
작업 작업의 ctime 속성을 반환합니다. 설정되지 않은 값:
(0|0|0@-1:-1:-1)

작업이메일주소Get( )
작업 작업의 Mail_Users 속성을 반환합니다. 설정되지 않은 값: NULLSTR

작업 단계 파일 가져오기( )
작업 작업의 stagein 속성을 반환합니다. 설정되지 않은 값: NULLSTR

작업스테이지아웃파일Get( )
Job 작업의 stageout 속성을 반환합니다. 설정되지 않은 값: NULLSTR

INT JobIntResReqGet(작업 일, 이름)
에 지정된 리소스에 값을 반환합니다. name 의 요구에 따라
일(일 리소스_목록.이름 기인하다). 이 함수를 호출합니다.
값이 Int 유형인 리소스. 샘플 리소스 이름
cput, pcput, walltime, mppt, pmppt, nice, procs, mppe, npus,
pncpus, nodeect, 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;
// 반품 전에, CPU 요구 사항 of 전에,
CPU 요청 = JobIntResReqGet(작업, "cput");

크기 JobSizeResReqGet(작업 일, 이름)
에 지정된 리소스에 값을 반환합니다. name 의 요구에 따라
일(일 리소스_목록.이름 기인하다). 이 함수를 호출합니다.
크기 유형의 값이 있는 리소스. 샘플 리소스 이름
파일, 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).

예:
크기 메모리 요청;
// 반품 전에, 기억 요구 사항 of 전에,
메모리 요청 = JobSizeResReqGet(작업, "멤");

JobStringResReqGet(작업 일, 이름)
에 지정된 리소스에 값을 반환합니다. 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).

예:
노드;
// 반품 전에, 노드 요구 사항 재산 of
// 전에,
노드 = JobStringResReqGet(작업, "노드");

INT JobIntResUseGet(작업 일, 이름)
에 지정된 리소스에 값을 반환합니다. name 작업(작업
resource_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 월렛사용;
// 반품 전에, of 월타임 익숙한 by
// 전에,
wallt사용 = JobIntResUseGet(작업, "월타임");

크기 JobSizeResUseGet(작업 일, 이름)
에 지정된 리소스에 값을 반환합니다. name 작업(작업
resource_used.name 기인하다). 다음을 사용하여 리소스에 대해 이 함수를 호출합니다.
크기 유형의 값입니다. 샘플 리소스 이름은 file, mem,
pmem, 작업 세트, pf, ppf, srfs_tmp, srfs_wrk, srfs_big, srfs_fast,
sds, psd. 이러한 리소스 이름에 대한 설명은 다음을 참조하십시오.
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).

예:
크기 srfs사용;
// 반품 전에, of srfs_fast 익숙한 by
// 전에,
srfs사용 = JobSizeResUseGet(작업, "srfs_fast");

JobStringResUseGet(작업 일, 이름)
에 지정된 리소스에 값을 반환합니다. name 작업(작업
resource_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 관련 기능

세트 씨노드 AllNodesGet(무효)
에서 실행되는 서버에서 관리하는 노드 목록을 반환합니다.
로컬 호스트. 여기에는 지정된 노드도 포함될 수 있습니다.
스케줄러 작성기의 스케줄러 구성 파일에서
시스템이 상태와 같은 정보를 주기적으로 확인하기를 원합니다.
재산 등이 있습니다. 보다 pbs_sched_basl(8B) 에 대한 토론을 위해
구성 파일 형식.
주의: 이 함수는 내부에서 호출해야 합니다. 스케줄 메인() so
모든 스케줄링 반복에서 가장 최신의 세트 씨노드
구조가 반환됩니다. 할당문에서 이것을 호출하지 마십시오.
명령문은 전역 변수를 초기화하기 위한 것입니다.
한 번 호출됩니다.

씨노드 AllNodesLocalHostGet(무효)
로컬 호스트를 나타내는 CNode 개체를 반환합니다. 이것은
1개의 CNode만 있는 클러스터되지 않은 시스템을 호출하는 간단한 함수
존재합니다. 설정되지 않은 값: NOCNODE
주의: 이 함수는 내부에서 호출해야 합니다. 스케줄 메인() (또는
sched_main에 의해 호출된 함수 내에서)
스케줄링 반복, 최신 씨노드 구조는
돌아왔다. 할당문에서 이것을 호출하지 마십시오.
명령문이 호출될 때만 전역 변수를 초기화합니다.
일단.

CNodeNameGet(C노드 마디)
노드의 고유(공식) 이름을 반환합니다(예: ResMom 호스트 이름
1 엄마/노드 모델). 이것은 이전과 동일한 문자열을 반환합니다.
구성 파일에 지정됩니다. 설정되지 않은 값: NULLSTR

CNodeOsGet(C노드 마디)
노드의 os 아키텍처를 반환합니다(즉, "irix5", "sp2"). 설정 해제
값: NULLSTR

INT CNodeStateGet( 씨노드 노드 )
노드의 상태를 반환합니다.

반환 값 :
CNODE_OFFLINE, CNODE_DOWN, CNODE_FREE, CNODE_RESERVE,
CNODE_INUSE_EXCLUSIVE, CNODE_INUSE_SHARED, CNODE_UNKNOWN

INT C노드유형Get( 씨노드 노드 )
노드의 유형을 반환합니다.

반환 값 :
CNODE_TIMESHARED, CNODE_CLUSTER, CNODE_UNKNOWN

CNodePropertiesGet(C노드 마디)
노드가 알고 있는 다른 이름의 쉼표로 구분된 목록을 반환합니다.
( 속성, 기타 네트워크 이름). 예를 들어,
"babbage.OpenPBS.org"는 노드 이름일 수도 있지만 알 수도 있습니다.
"babbage1, babbage2"를 통해. 설정되지 않은 값: NULLSTR

CNodeVendorGet(CNode 마디)
머신의 하드웨어에 대한 공급업체 이름을 반환합니다(예:
"sgi", "ibm"). 설정되지 않은 값: NULLSTR

INT CNodeNumCpusGet(C노드 마디)
노드에 연결된 프로세서의 수를 반환합니다. 설정되지 않은 값:
-1

크기 CNodeMemTotalGet( 씨노드 마디, 유형 )
다음의 총 메모리를 반환합니다. 유형 노드에 대한. 유형 임의적이다
스케줄러 작성자가 스케줄러에서 정의하는 문자열
구성 파일. 설정되지 않은 값: -1b
예:
// 얻을 합계 물리적 기억
CNodeMemTotalGet(노드, "진짜")
// 얻을 합계 가상 기억
CNodeMemTotalGet(노드, "가상")

크기 CNodeMemavailGet( 씨노드 마디, 유형 )
의 사용 가능한 메모리를 반환합니다. 유형 노드에 대한. 유형 임의적이다
스케줄러 작성자가 스케줄러에서 정의하는 문자열
구성 파일. 설정되지 않은 값: -1b
따라서 샘플 호출은 다음과 같습니다.
// 얻을 가능 물리적 기억
CNodeMemavailGet(노드, "진짜")
// 얻을 가능 가상 기억
CNodeMemavailGet(노드, "가상")

INT CnodeIdletimeGet( 씨노드 노드 )
키 입력이나 마우스 움직임이 없는 시간(초)을 반환합니다.
노드에 연결된 모든 터미널에서 발생합니다. 설정되지 않은 값: -1

흙손 CnodeLoadAveGet( 씨노드 노드 )
모든 CPU에 대한 노드의 로드 평균을 반환합니다. 설정되지 않은 값: -1.0

INT CNodeCpuPercentIdleGet( 씨노드 노드 )
노드의 모든 프로세서가 유휴 시간의 백분율을 반환합니다.
경험했습니다.

INT CNodeCpuPercentSysGet( 씨노드 노드 )
노드의 모든 프로세서가 가지고 있는 시간의 백분율을 반환합니다.
커널 코드를 실행하는 데 소비했습니다.

INT CNodeCpuPercentUserGet( 씨노드 노드 )
노드의 모든 프로세서가 가지고 있는 시간의 백분율을 반환합니다.
사용자 코드를 실행하는 데 소비했습니다.

INT CNodeCpuPercentGuestGet( 씨노드 노드 )
노드의 모든 프로세서가 가지고 있는 시간의 백분율을 반환합니다.
게스트 운영 체제를 실행하는 데 소비했습니다.

INT CnodeNetworkBwGet( 씨노드 마디, 유형 )
노드 네트워크의 대역폭을 반환합니다. 유형 바이트/초 단위.
유형 스케줄러의 스케줄러 작성자가 정의합니다.
구성 파일. 설정되지 않은 값: -1
일부 샘플 호출은 다음과 같습니다.
CnodeNetworkBwGet( 마디, "히피" );
CnodeNetworkBwGet( 마디, "디디" );

크기 CNodeDiskSpaceTotalGet(C노드 마디, 이름)
다음으로 식별되는 디스크에서 노드의 총 공간을 반환합니다. name 어디에 name
스케줄러 작성자가 임의로 정의한 장치 이름입니다.
스케줄러 구성 파일. 설정되지 않은 값: -1b
예:
CNodeDiskSpaceTotalGet( 마디, "/scratch2" );

크기 CNodeDiskSpaceAvailGet(C노드 마디, 이름)
다음으로 식별된 디스크에서 노드의 사용 가능한 공간을 반환합니다. name 어디에
name 스케줄러의 스케줄러 작성자가 임의로 정의합니다.
구성 파일. 설정되지 않은 값: -1b
예:
CNodeDiskSpaceAvailGet( 마디, "/scratch1" );

크기 CNodeDiskSpaceReservedGet(Cnode 마디, 이름)
다음으로 식별된 디스크의 노드 예약 공간(사용자 할당량?)을 반환합니다.
name 어디에 name 스케줄러 작성자가 임의로 정의합니다.
스케줄러 구성 파일. 설정되지 않은 값: -1b
예:
CNodeDiskSpaceReservedGet( 마디, "/scratch1" );

INT CNodeDiskInBwGet( 씨노드 마디, name )
식별된 노드 디스크의 쓰기 대역폭(바이트/초)을 반환합니다.
by name . 설정되지 않은 값: -1
예:
CNodeDiskInBwGet( 마디, "/빠른" );

INT CNodeDiskOutBwGet( 씨노드 마디, name )
다음으로 식별된 노드 디스크의 읽기 대역폭(바이트/초)을 반환합니다.
name . 설정되지 않은 값: -1
예:
CNodeDiskOutBwGet( 마디, "/큰" );

크기 CnodeSwapSpaceTotalGet( 씨노드 마디, name )
다음으로 식별된 스왑 시 노드의 총 공간을 반환합니다. name 어디에 name
스케줄러의 스케줄러 작성자가 임의로 정의합니다.
구성 파일. 설정되지 않은 값: -1b
예:
CnodeSwapSpaceTotalGet( 마디, "일 순위" );

크기 CNodeSwapSpaceAvailGet( 씨노드 마디, name )
다음으로 식별된 스왑에서 노드의 사용 가능한 공간을 반환합니다. name 어디에 name
스케줄러 작성자가 임의로 정의한 장치 이름입니다.
스케줄러 구성 파일. 설정되지 않은 값: -1b
예:
CNodeSwapSpaceAvailGet( 마디, "중고등 학년" );

INT CnodeSwapInBwGet( 씨노드 마디, name )
다음으로 식별되는 노드의 스왑 장치의 스왑 비율을 반환합니다. 이름입니다.
예:
CNodeSwapInBwGet(노드, "중고등 학년");

INT CnodeSwapOutBwGet( 씨노드 마디, name )
다음으로 식별되는 노드 스왑 장치의 스왑아웃 비율을 반환합니다.
이름입니다. 설정되지 않은 값: -1
예:
CNodeSwapOutBwGet(노드, "일 순위");

크기 CNodeTapeSpaceTotalGet( 씨노드 마디, name )
다음으로 식별된 테이프에서 노드의 총 공간을 반환합니다. name 어디에 name
스케줄러의 스케줄러 작성자가 임의로 정의합니다.
구성 파일. 설정되지 않은 값: -1b
예:
CNodeTapeSpaceTotalGet(노드, "4mm");

크기 CNodeTapeSpaceAvailGet( 씨노드 마디, name )
다음으로 식별된 테이프에서 노드의 사용 가능한 공간을 반환합니다. name 어디에
name 스케줄러의 스케줄러 작성자가 임의로 정의합니다.
구성 파일. 설정되지 않은 값: -1b
예:
CNodeTapeSpaceAvailGet(노드, "8mm");

INT CnodeTapeInBwGet( 씨노드 마디, name )
식별된 노드 테이프의 쓰기 대역폭(바이트/초)을 반환합니다.
by name . 설정되지 않은 값: -1
예:
CnodeTapeInBwGet( 마디, "4mm" );

INT CnodeTapeOutBwGet( 씨노드 마디, name )
식별된 노드 테이프의 읽기 대역폭(바이트/초)을 반환합니다.
by name . 설정되지 않은 값: -1
예:
CnodeTapeOutBwGet( 마디, "8mm" );

크기 CnodeSrfsSpaceTotalGet( 씨노드 마디, name )
다음으로 식별된 srfs 장치에서 노드의 총 공간을 반환합니다. name
어디에 name 스케줄러 작성자가 임의로 정의합니다.
스케줄러 구성 파일. 설정되지 않은 값: -1b
예:
CNodeSrfsSpaceTotalGet(노드, "/빠른");

크기 CNodeSrfsSpaceAvailGet( 씨노드 마디, name )
다음으로 식별된 srfs 장치에서 노드의 사용 가능한 공간을 반환합니다. name
어디에 name 일부에서는 스케줄러 작성자가 임의로 정의합니다.
구성 파일. 설정되지 않은 값: -1b
예:
CNodeSrfsSpaceAvailGet( 마디, "/큰" );

크기 CnodeSrfsSpaceReservedGet(Cnode 마디, 이름)
srfs 장치에 예약된 노드의 총 공간을 반환합니다.
에 의해 식별 name 어디에 name 스케줄러에 의해 임의로 정의됨
스케줄러 구성 파일의 라이터. 설정되지 않은 값: -1b
예:
CnodeSrfsSpaceReservedGet( 마디, "/빠른" );

INT CnodeSrfsInBwGet( 씨노드 마디, name )
노드의 srfs 장치의 쓰기 대역폭(바이트/초)을 반환합니다.
에 의해 식별 name . 설정되지 않은 값: -1
예:
CNodeSrfsInBwGet(노드, "/빠른" );

INT CnodeSrfsOutBwGet( 씨노드 마디, name )
노드의 srfs 장치의 읽기 대역폭(바이트/초)을 반환합니다.
에 의해 식별 name . 설정되지 않은 값: -1
예:
CNodeSrfsOutBwGet(노드, "/큰" );

(5) 기타 기능

날짜 시간 날짜/시간 Get()
현재 날짜/시간을 가져옵니다.

INT datetimeToSecs(날짜 시간 디)
epoch 이후의 초 수를 반환합니다(UNIX 시간 시작 -
00:00:00, 1년 1970월 XNUMX일) 지정된 날짜/시간 dt.

INT 작업 작업( 일, INT 조치, 내 돈 )
수행하다 동작 on 내 돈 에 따라 지정
액션. 동작 SYNCRUN, ASYNCRUN, DELETE, RERUN, HOLD,
RELEASE, SIGNAL, MODIFYATTR, MODIFYRES 여기서:
동작 상품 설명
=============== ==========================
동기화 실행 전에, 동기적으로,
의미 전에, 전화
작업 작업() 의지
return 언제 전에,
시작 달리는 or 언제
an 오류
만났다.
Param 값 :
name of 호스트 운영
아래에.

비동기화 실행 전에, 비동기적으로,
의미 전에, 전화
작업 작업() 의지 return
바로 as as
전에, 운영 의뢰 is
검증 된 by 전에, PBS 섬기는 사람,
지원 필연적으로 언제
전에, 시작
실행.
Param 값 :
name of 호스트 운영
아래에.

삭제 삭제 전에, 일.
Param 값 :
"델지연=<# of 초>"
- 지연 # of
사이에 전에, 전송
of 시그텀 시그킬
전에, 전에
점점 삭제됨

재실행 재실행 전에, 달리는 일,
어느 포함 종료 중
전에, 세션 리더 of 전에,
반환 전에,
전에, 대기중인 (주).

보류 장소 or 배우기 보유
on 전에, 일.
Param 값 :
"유", "영형", "NS", "우", "오",
"우"
- 유형 of 보유 장소
on 직업: 사용자), 다른),
체계).

해제 제거하다 or 출시
보유 위치 on 작업.
Param 값 :
"유", "영형", "NS", "우", "오",
"우"
- 유형 of 보유 제거
직업: 사용자), 다른),
체계).

신호 전송 a 신호 전에,
실행 일.
Param 값 :
"앉다", "쉿",...

수정 수정 전에, 지정
속성 of 전에,
전에, 주어진 가치 언제
전에, 속성 이름 is
!= "리소스_목록" or
"resources_used".
Param 값 :
"속성_이름=값"

수정하다 수정 전에, 직업의
리소스_목록
속성 주어진 전에,
res_name 전에,
res_value:
Resource_List.res_name=
res_value
Param 값 :
"res_name=res_val"
내 돈 값은 작업에 따라 다릅니다. 값이 없으면 NULLSTR을 지정하십시오.
이 매개변수가 필요합니다.
반환 값: SUCCESS 또는 FAIL.
참고: 인식되지 않는 모든 동작 무시됩니다.
예:
// 운영 j 동 기적으로
잡액션(제이, 동기화, NULLSTR);

// 운영 j 비동기 적으로 on 주인 "DB"
잡액션(제이, 비동기, "DB");

// 삭제 j
잡액션(제이, 지우다, NULLSTR);

// 삭제 j a 지연 of 5
// 사이에 전에, 전송 of 시그텀
// 시그킬
잡액션(제이, 지우다, "델지연=5");

// 재실행 j
잡액션(제이, 다시 실행, NULLSTR);

// 장소 a 사용자) 보유 on j
잡액션(제이, 잡고있다, "유");

// 장소 an 다른) 보유 on j
잡액션(제이, 잡고있다, "영형");

// 장소 a 체계) 보유 on j
잡액션(제이, 잡고있다, "NS");

// 장소 a 디폴트 값 보유 (유) on j
잡액션(제이, 잡고있다, NULLSTR);

// 공개 사용자) 보유 j
잡액션(제이, 풀어 주다, "유");

// 공개 다른) 보유 j
잡액션(제이, 풀어 주다, "영형");

// 공개 체계) 보유 j
잡액션(제이, 풀어 주다, "NS");

// 공개 디폴트 값 보유 (유) j
잡액션(제이, 풀어 주다, NULLSTR);

// 보내다 시업 신호 j
잡액션(제이, 신호, "시업");

// 최신 정보 전에, 본문 속성 of
// j "a 메세지".
// XNUMXD덴탈의 내 돈 체재 입니다 속성_이름=새_값
// 문의 PBS 선적 서류 비치 for a 명부 of
// 속성 이름 be 지정되었습니다.
잡액션(제이, 수정하다, "댓글=아 메세지");
// 최신 정보 전에, Resource_List.cput 속성 of
// j 3600 초.
// XNUMXD덴탈의 내 돈 체재 입니다 resources_name=new_value
// 만나다 pbs_리소스* 사람 페이지 for a 명부 of
// 리소스 이름 be 지정되었습니다.
잡액션(제이, 수정하다, "CPU=3600");

QueJobFind(큐 큐, 재미 INT 함수, 정수 심폐소생술 값);

QueJobFind(큐 큐, 재미 함수, 정수 심폐소생술, 문자열 값);

QueJobFind(큐 큐, 재미 날짜 시간 함수, 정수 심폐소생술, 날짜시간 값);

QueJobFind(큐 큐, 재미 크기 함수, 정수 심폐소생술, 크기 값);

어디에 심폐 소생술 OP_EQ, OP_NEQ, OP_LE, OP_LT, OP_GE, OP_GT 중 하나입니다. 펑크
유일한 인수가 작업 유형인 함수입니다. 반환이다
유형.

설명: 적용 펑크 모든 직업에 해적 , 그리고 첫 번째를 반환
논리적 비교를 만족하는 작업: 기능(일) 심폐 소생술 가치

예:

크기 JobVirtualMemavailGet(작업 일)
{
크기 ㅅ;

sz = JobSizeResReqGet(작업, "멤");
리턴(sz);
}
INT JobWallTimeReqGet(작업 일)
{
INT 지갑;

지갑 = JobIntResReqGet(작업, "월타임");
반환(지갑);
}

INT JobCpuTimeUsedGet(작업 일)
{
INT CPU;

CPU = JobIntResUseGet(작업, "cput");
반환(cput);
}

findQueByName(설정 대기열, 큐네임)
{
q;

foreach(q in 대기열) {
만약( QueNameGet(q) EQ 큐네임 ) {
리턴(q);
}
}
반환(NOQUE);
}
스케줄 메인()
{
서버 s;
큐;
세트 평방;

// 얻을 지방의 섬기는 사람
s = AllServersLocalHostGet();

// 얻을 전에, 꼬리 of 전에, 서버 s
sq = ServerQueuesGet(들);

// 얻을 전에, 변발 이름 "빠른" 전에,
// 지방의 섬기는 사람
해적 = findQueByName( 평방, "빠른" );

// Find 전에, 1st 누구의 월타임 요구 사항
// is == 300s;
QueJobFind(퀘, JobWallTimeReqGet, OP_EQ, 300);

// Find 전에, 1st 누구의 이메일 주소
// 통보 about 활동 != "바유칸":
QueJobFind(퀘, 작업이메일주소가져오기, OP_NEQ,
"바유칸");

// Find 전에, 1st 였다 만든 시간 내에
// or on 3 / 3 / 1997 :
QueJobFind(퀘, 작업 날짜시간생성된 가져오기, OP_GE,
(3|3|1997));

// Find 전에, 1st 였다 만든 시간 내에
// 3:3:44:
QueJobFind(퀘, 작업 날짜시간생성된 가져오기, OP_GT,
(3:3:44));

// Find 전에, 1st 였다 만든 시간 내에
// 3:3:44 on 3 / 3 / 1997 :
QueJobFind(퀘, 작업 날짜시간생성된 가져오기, OP_GT,
(3|3|1997@3:3:44));

// Find 전에, 1st 누구의 CPU 시간 익숙한 < 1600s;
QueJobFind(퀘, 작업Cpu시간사용된Get, OP_LT, 1600);

// Find 전에, 1st 누구의 가상 기억
// 요구 사항 <= 300MB:
QueJobFind(퀘, JobVirtualMemavailGet, OP_LE,
300MB);
}

QueJob찾기( 재미 INT 기능, INT 심폐소생술)

QueJob찾기( 재미 기능, INT 심폐소생술)

QueJob찾기( 재미 날짜 시간 기능, INT 심폐소생술)

QueJob찾기( 재미 크기 기능, INT 심폐소생술)

어디에 심폐 소생술 다음 중 하나일 수 있습니다. OP_MAX, OP_MIN, 펑크 하는
유일한 인수가 작업 유형인 함수입니다.

설명: 찾은 최대 또는 최소 값이 있는 작업을 반환합니다.
기능(일) 모든 직업에 적용되기 때문에 해적 .

예:
INT JobCpuTimeReqGet(작업 일)
{
INT CPU;

CPU = JobIntResReqGet(작업, "cput");
반환(cput);
}
스케줄 메인()
{
큐;
직업;

// Find 전에, 전에, 최고 CPU 시간
// 요구 사항 :
= QueJobFind(퀘, 작업CpuTimeReqGet, OP_MAX);

// Find 전에, 전에, 최저한의 CPU 시간
// 요구 사항 :
= QueJobFind(퀘, 작업CpuTimeReqGet, OP_MIN);
}

큐필터(큐 큐, 재미 INT 함수, 정수 심폐소생술 값)

큐필터(큐 큐, 재미 함수, 정수 심폐소생술, 문자열 값)

큐필터(큐 큐, 재미 날짜 시간 함수, 정수 심폐소생술, 날짜 값)

큐필터(큐 큐, 재미 크기 함수, 정수 심폐소생술, 크기 값)

어디에 심폐 소생술 OP_EQ, OP_NEQ, OP_LE, OP_LT,
OP_GE, OP_GT, 펑크 유일한 인수가 작업 유형인 함수입니다.

설명: 적용 펑크 모든 직업에 해적 , 새 쿼리를 반환합니다.
비교 조건을 만족하는 모든 작업 포함:
기능(일) 심폐 소생술 가치

예:
INT JobWallTimeReqGet(작업 일)
{
INT 지갑;

지갑 = JobIntResReqGet(작업, "월타임");
반환(지갑);
}
스케줄 메인()
{
큐;
뉴큐;

// 반품 a 해적 포함 모든 작업 in "퀘"
// a 월타임 요구 사항 == 300s;
뉴큐 = 큐필터(큐, JobWallTimeReqGet, OP_EQ, 300);

// 반품 a 해적 포함 모든 작업 in "퀘"
// an 이메일 주소 != "바유칸":
뉴큐 = 큐필터(큐, 작업이메일주소가져오기, OP_NEQ, "바유칸");

// 반품 a 해적 포함 모든 작업 in "퀘"
// 만든 시간 내에 or on 3 / 3 / 1997 :
뉴큐 = 큐필터(큐, 작업 날짜시간생성된 가져오기, OP_GE,
(3|3|1997));

// 반품 a 해적 포함 모든 작업 in "퀘"
// 만든 시간 내에 3:3:44:
뉴큐 = 큐필터(큐, 작업 날짜시간생성된 가져오기, OP_GT,
(3:3:44));

// 반품 a 해적 포함 모든 작업 in "퀘"
// 만든 시간 내에 3:3:44 on 3 / 3 / 1997 :
뉴큐 = 큐필터(큐, 작업 날짜시간생성된 가져오기, OP_GT,
(3|3|1997@3:3:44));

// 알림: XNUMXD덴탈의 실물 "퀘" is 지원 수정
// 도대체 무엇이.
}

INT 정렬(설정 s, 재미 INT 키, INT 주문)

INT 정렬(설정 s, 재미 키, INT 주문)

INT 정렬(설정 s, 재미 흙손 키, INT 주문)

INT 정렬(설정 s, 재미 날짜 시간 키, INT 주문)

INT 정렬(설정 s, 재미 크기 키, INT 주문)

어디에 s 정렬할 작업 집합입니다. 는 정렬 키입니다.
유일한 인수가 작업 유형인 함수, 주문 정렬이다
순서: ASC, DESC.

설명: 요소를 정렬합니다. s , ASCending 또는
내림차순으로 반환된 값의 내림차순 기능,
작업 집합의 모든 구성원에게 적용됩니다. 그만큼 s 개체가 수정됨
이 호출로. 이것은 결과에 따라 SUCCESS 또는 FAIL을 반환합니다.
종류.

예 :
크기 JobMemReqGet(작업 일)
{
크기 멤;

(MEM) = JobSizeResReqGet(작업, "멤");
return(멤);
}

스케줄 메인()
{
서버 석사;

세트 직업;

INT 주문;

// 얻을 지방의 섬기는 사람
석사 = AllServersLocalHostGet();

작업 = 서버작업Get(주인);
정렬(작업, 작업우선순위 가져오기, ASC);
정렬(작업, 작업 IDGet, 설명);
주문 = ASC;
정렬(작업, 작업 날짜시간생성된 가져오기, 주문하다);
주문 = 설명;
정렬(작업, JobMemReqGet, 주문하다);
}

INT 정렬(설정 s, 재미 INT 키, INT 주문)

INT 정렬(설정 s, 재미 키, INT 주문)

INT 정렬(설정 s, 재미 흙손 키, INT 주문)

INT 정렬(설정 s, 재미 날짜 시간 키, INT 주문)

INT 정렬(설정 s, 재미 크기 키, INT 주문)

어디에 s 정렬할 대기열 집합입니다. 는 정렬 키입니다.
유일한 인수가 Qu 유형인 함수, 주문 정렬이다
순서: ASC, DESC.

설명: 요소를 정렬합니다. s , ASCending 또는
내림차순으로 반환된 값의 내림차순 기능,
대기열 집합의 모든 구성원에게 적용됩니다. 그만큼 s 개체는
이 호출로 수정되었습니다. 이것은 다음에 따라 SUCCESS 또는 FAIL을 반환합니다.
종류의 결과.

예 :
크기 QueMemavailGet(큐 보다)
{
크기 멤;

(MEM) = QueSizeResAvailGet(퀘, "멤");
return(멤);
}

스케줄 메인()
{
서버 석사;

세트 질문;
INT 주문;

// 얻을 지방의 섬기는 사람
석사 = AllServersLocalHostGet();

Ques = 서버큐가져오기(주인);
정렬(질문, QuePriorityGet, ASC);
정렬(질문, QueNameGet, ASC);
주문 = 설명;
정렬(질문, 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(서버 서빙)
{
크기 멤;

(MEM) = ServerSizeResAvailGet(서브, "멤");
return(멤);
}

스케줄 메인()
{
세트 서버 서버;

INT 주문;

INT 렛;

서버 = AllServersGet();

배제 = 정렬(서버, ServerMaxRunJobsGet, ASC);
정렬(서버, 서버InetAddrGet, ASC);

주문 = 설명;
정렬(서버, 서버멤베일겟, 주문하다);
}

INT 정렬(설정 씨노드 s, 재미 INT 키, INT 주문)

INT 정렬(설정 씨노드 s, 재미 키, INT 주문)

INT 정렬(설정 씨노드 s, 재미 흙손 키, INT 주문)

INT 정렬(설정 씨노드 s, 재미 날짜 시간 키, INT 주문)

INT 정렬(설정 씨노드 s, 재미 크기 키, INT 주문)

어디에 s 정렬할 노드 집합입니다. 는 정렬 키입니다.
유일한 인수가 CNode 유형인 함수, 주문 정렬이다
순서: ASC, DESC.

설명: 요소를 정렬합니다. s , ASCending 또는
내림차순으로 반환된 값의 내림차순 기능,
노드 집합의 모든 구성원에 적용됩니다. 그만큼 s 개체는
이 호출로 수정되었습니다. 이것은 다음에 따라 SUCCESS 또는 FAIL을 반환합니다.
종류의 결과.

예 :
크기 CNodeMyMemavailGet(CNode ㄷ)
{
크기 멤;

(MEM) = CNodeMemavailGet(cn, "가상");
return(멤);
}

스케줄 메인()
{
세트 씨노드 scnode;

INT 주문;

스노드 = AllNodesGet();

정렬(scnode, CnodeIdletimeGet, ASC);
정렬(scnode, C노드이름겟, ASC);
주문 = 설명;
정렬(scnode, CNodeMyMemavailGet, 주문하다);
}

CNode..Get() 기능


이전 섹션에서 논의한 CNode..Get() 함수의 반환 값은 다음과 같습니다.
모든 일정 반복에서 CNode의 MOM에 리소스 쿼리를 전송하여 얻습니다.
예를 들어, CNodeLoadAveGet(노드) 일부에서 얻은 값을 반환합니다.
resource> 쿼리(문자열 "loadave"일 수 있음)를 노드의 MOM으로 보냅니다. 그만큼
" -> CNode..Get()" 매핑은 내부적으로 설정되지만
스케줄러 구성 파일을 통해 수정되거나 더 많은 매핑을 추가할 수 있습니다. 구성
파일은 에서 논의됩니다. pbs_sched_basl(8B).
이미 설정된 매핑은 다음과 같습니다.

모든 아키텍처의 경우:

CNode..Get() 실제 전화 주인 의지
======================== =============
CNodeOsGet(노드) 아치
CNodeLoadAveGet(노드) 로드
CNodeIdletimeGet(노드) 유휴 시간

onworks.net 서비스를 사용하여 basl2cB 온라인 사용


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

Linux 명령

Ad