Tập hợp các câu lệnh khối (Block) được sử dụng trong GPSS World có thể chia thành 4 nhóm, với hơn 50 câu lệnh:
- Nhóm các khối liên quan đến các giao tác (Transactions)
- Nhóm các khối liên quan đến các đối tượng thuộc về thiết bị (Facility)
- Nhóm các khối để thu thập dữ liệu tĩnh
- Nhóm các khối để điểu chỉnh “đường dịch chuyển” của các giao tác trong mô hình mô phỏng
Sau đây sẽ trình bày chi tiết về một số khối cơ bản trong mỗi nhóm:
3.2.7.1. Các khối làm việc với các giao tác
Đối với các giao tác có các khối thực hiện việc tạo, hủy, lưu lại giao tác một thời gian, thay đổi các thuộc tính và tạo bản sao của một giao tác. Bảng 3.1 sẽ giải thích cụ thể về một số khối cơ bản làm việc với giao tác.
Bảng 3.1. Một số khối cơ bản làm việc với giao tác
Cú pháp Giải thích Ý nghĩa
Label GENERATE A, B, C, D, E
A: xác định khoảng thời gian trung bình xuất hiện một giao
B: xác định sự thay đổi của khoảng thời gian trung bình xuất hiện một giao tác. Sự thay đổi này có thể là thay đổi theo khoảng nếu nó tuân theo phân bố đều, hoặc thay đổi theo hàm
khi nó tuân theo các phân bố khác
C: xác định thời điểm xuất hiện giao tác đầu tiên
D: xác định số các giao tác mà khối GENERATE sẽ tạo ra. Mặc định là ∞
E: thiết lập độ ưu tiên của các giao tác. Mặc định là số 0
TERMINATE A
A: là giá trị giảm của Termination Count (Termination Count được thiết lập bởi lệnh START và mô phỏng sẽ dừng khi Termination Count <=0)
Hủy một giao tác
ADVANCE A,B
A: thời gian trung bình giao tác được giữ lại (bắt buộc)
B: độ thay đổi thời gian trung bình (không bắt buộc)
Giữ các giao tác lại trong một khoảng thời gian nào đó, tức là mô phỏng khoảng thời gian phục vụ các yêu cầu
ASSIGN A,B,C
A: số hiệu tham số của giao tác hoạt động (Active Transaction) B: giá trị
C: số hiệu hàm
Khi một giao tác nhập vào một khối ASSIGN, giá trị của tham số định nghĩa trong A được thiết lập theo B và C. Sau A có thể sử dụng dấu + hoặc –, khi đó giá trị tại tham số được +(-) giá trị trong B. Nếu C được chỉ định thì giá trị của hàm trong C được đánh giá sau đó nhân với B và thêm vào hoặc trừ vào giá trị tại
tham số của hàm tùy thuộc vào hậu tố của A là + hay -
Đoạn codes GPSS được giới hạn bởi cặp Blocks GENERATE – TERMINATE gọi là một segment.
Hình 3.2. Minh họa một segment.
Ví dụ:
GENERATE 1; cứ sau mỗi 1 đơn vị thời gian thì có 1 “yêu cầu đến”- transaction ADVANCE 10; giao tác được giữ lại 10 đơn vị thời gian, sau đó chuyển sang block
khác, tương ứng với sự kiện yêu cầu được phục vụ trong 10 đơn vị thời gian
TERMINATE ; yêu cầu được kết thúc
Giao tác (Transaction) đầu tiên được tạo bởi một khối GENERATE, bản chất thực sự là giao tác được tạo ra trước khối GENERATE và sau đó đi vào khối GENERATE. Từ đó, mỗi lần một giao tác đi vào một khối GENERATE, giao tác tiếp theo được tạo và không đi vào khối GENERATE ngay. Thay vào đó, nó được đặt tại chuỗi các sự kiện tương lai (Future Events Chain - FEC) theo khoảng thời gian được quy định bởi khối GENERATE.
Chuỗi các sự kiện hiện tại (Current Events Chain - CEC) là tập các giao tác nhập vào các khối tại thời điểm hiện thời. Tại một thời điểm, giao tác được lấy từ CEC và đi vào khối có thể. Khi không còn giao tác nào trong CEC, GPSS World sẽ tăng đồng hồ hệ thống.
Khi một giao tác đi đến khối ADVANCE, nó dừng lại trong khoảng thời gian được thiết lập trong toán hạng A, sau đó đi đến khối tiếp theo. Một khối ADVANCE thông qua các tham số sẽ tính toán được một số gia thời gian và đặt giao tác đi vào FEC tương ứng với khoảng thời gian trên.
3.2.7.2. Các khối làm việc với các thiết bị
Facilities trong GPSS có thể được hiểu là các “thiết bị”, cơ sở vật chất của hệ thống như các máy phục vụ, các kênh phục vụ: chẳng hạn như đường băng sân bay phục vụ cho việc cất cánh và hạ cánh của máy bay, hay các bàn giao dịch trong ngân hàng,… Trong quá trình mô phỏng, nếu thiết bị “rảnh” thì các giao tác mới có thể sử dụng nó. Các khối làm việc với các thiết bị gồm có:
Bảng 3.2. Một số khối cơ bản làm việc với thiết bị
Cú pháp Giải thích Ý nghĩa
SEIZE A A: là số hiệu hoặc tên của “thiết bị”
Yêu cầu sử dụng “thiết bị” hoặc là chờ “thiết bị” được giải phóng để sử dụng. PREEMPT A,B,C,D,E
A: là số hiệu hoặc tên của “thiết bị”
B: qui định có thứ tự ưu tiên (PR) hoặc không (null)
C: là số hiệu hoặc tên khối là đích mới cho giao tác hiện đang sở hữu thiết bị
D: số hiệu tham số của giao tác đã chiếm giữ thiết bị, nơi ghi nhận thời gian còn lại trong khối ADVANCE, nếu giao tác chiếm giữ thiết bị được lấy từ FEC
E: nếu nhận giá trị RE, giao tác chiếm giữ thiết bị sẽ bị loại khỏi sự cạnh tranh thiết bị và gửi đến đích mới được chỉ định trong toán hạng C
Giao tác – “yêu cầu” hiện thời chiếm giữ “thiết bị”
RELEASE A A: là số hiệu hoặc tên của “thiết bị” Giải phóng “thiết bị”
FAVAIL A A: là số hiệu hoặc tên của “thiết bị”
Đưa một “thiết bị” có tên hoặc số hiệu trong toán hạng A, về trạng thái có thể làm việc
FUNAVAIL A A: là số hiệu hoặc tên của “thiết bị” Đưa một “thiết bị” có tên hoặc số hiệu
trong toán hạng A, về trạng thái không làm việc
3.2.7.3. Các khối làm việc với QUEUE
QUEUE là một thành phần rất quan trọng trong GPSS World, được dùng để lưu trữ thông tin trong quá trình xử lý các “yêu cầu”. Đối với QUEUE trong GPSS có các thao tác sau:
Bảng 3.3. Một số khối cơ bản làm việc với QUEUE
Cú pháp Giải thích Ý nghĩa
QUEUE A,B
A: tên hoặc số hiệu thực thể QUEUE cần tạo
B: số đơn vị mà theo đó tăng nội dung của thực thể hàng đợi, giá trị mặc định là 1
Cập nhật số liệu thống kê thực thể hàng đợi, phản ánh sự gia tăng trong nội dung của hàng đợi.
DEPART A,B
A: tên hoặc số hiệu thực thể QUEUE B: số đơn vị mà theo đó giảm nội dung của thực thể hàng đợi, giá trị mặc định là 1
Cập nhật số liệu thống kê thực thể hàng đợi, khi giảm nội dung theo giá trị qui định trong B
3.2.7.4. Các khối dùng để điều khiển dịch chuyển các giao tác
Thông thường trong các mô phỏng đơn giản, các giao tác khi đi ra khỏi một khối bất kỳ đều đi vào hay cố gắng đi vào khối tiếp theo. Tuy nhiên trong các mô hình phức tạp hơn, phụ thuộc vào các điều kiện mô phỏng có thể cần phải dịch chuyển các giao tác đến khối khác, tức là cần phải thay đổi sự dịch chuyển của các giao tác. Điều này được thực hiện bởi khối TRANSFER hoặc TEST.
Bảng 3.4. Một số khối cơ bản điều khiển dịch chuyển của giao tác
Cú pháp Giải thích Ý nghĩa
TRANSFER A,B,C,D
A: hình thức chuyển khối có thể nhận một trong các giá trị BOTH, ALL, PICK, FN, P, SBR, SIM, fraction, Name, PosInteger, … (tùy chọn) B: số hiệu hoặc vị trí
Đưa giao tác hoạt động (Active Transaction) nhảy tới một vị trí khối mới.
- Nếu A là BOTH thì khối được chỉ định trong B được kiểm tra. Nếu nó từ chối giao tác hoạt động đăng nhập thì khối được chỉ định trong C được kiểm
khối. Số hoặc tên tham số khi A nhận giá trị là P (tùy chọn)
C: vị trí hoặc số hiệu khối. Giá trị tăng trong trường hợp A là FN hoặc P
D: sự tăng số hiệu khối trong trường hợp A là ALL
tra. Khối đầu tiên cho phép giao tác nhập vào sẽ là đích mới. Nếu không khối nào cho phép giao tác nhập vào thì nó sẽ ở lại khối TRANSFER cho đến khi nó nhập vào được một khối. - Nếu A là PICK đích mới sẽ được lựa chọn ngẫu nhiên trong khoảng B và C - Nếu A là P, giao tác hoạt động sẽ nhảy đến một vị trí đã tính toán từ tổng giá trị của tham số và toán hạng C. Nếu C không được chỉ định thì giá trị của tham số là vị trí đích mới của giao tác.
-Nếu A là All, khối chỉ định trong B được kiểm tra. Nếu khối này từ chối giao tác hoạt động đăng nhập, các khối tiếp theo được kiểm tra lần lượt. - Nếu A là SBR( subroutine mode) giao tác hoạt động nhảy đến vị trí được chỉ định bởi toán hạng B, vị trí khối chuyển đổi được đặt trong toán tử C.
- Nếu A là SIM (simultaneous mode) giao tác hoạt động nhảy đến một trong hai vị trí được chỉ định trong C và chỉ số Delay được thiết lập lại ( turned off). Nếu chỉ số Delay được thiết lập lại (off) giao tác nhảy đến vị trí đã chỉ định bởi toán tử B.
TEST O,A,B,C
O: phép toán quan hệ giữa A và B để kiểm tra thành công. O có thể nhận một trong các giá trị E, G, GE, L, LE, hoặc NE.
A: giá trị kiểm tra B: giá trị tham chiếu
Đích của giao tác hoạt động được xác định dựa trên kết quả của việc so sánh A và B theo phép toán quan hệ O. - Tùy thuộc vào O, các kiểm tra thành công được xác định như sau:
Nếu O nhận giá trị:
E : giá trị của A= giá trị của B G : giá trị của A > giá trị của B
C: số hiệu khối đích GE : giá trị của A giá trị của B L : giá trị của A < giá trị của B LE : giá trị của A ≤ giá trị của B NE : giá trị của A giá trị của B