Tập hợp các câu lệnh khối (Block) được sử dụng trong GPSS Worl 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:
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.
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 tác.
B: xác định độ thay đổi của khoảng thời gian trung bình xuất hiện một giao tác. Độ 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à lượng 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: số gia thời gian trung bình (bắt buộc)
B: tùy chọn thời gian khoảng biến thiên giao độ (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 -
Bảng 2.1 Một số khối cơ bản làm việc với giao tác Ví dụ:
GENERATE 100,40; Tạo giao tác sau mỗi khoảng thời gian
; ngẫu nhiên theo quy luật phân bố đều trong khoảng [60;140]. GENERATE (Exponential(1,0,6.5)) ;Tạo các giao tác theo phân phối mũ. Đoạn codes GPSS được giới hạn bởi cặp Blocks GENERATE – TERMINATE gọi là một segment.
Hình 2.5 Minh họa một segment. Ví dụ:
GENERATE 1 ;cứ sau mỗi 1 tick thì có 1 “yêu cầu”- transaction.
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à đượ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 gian 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 (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.
Các khối làm việc với Facilities
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ư là 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ó:
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
Giao tác – “yêu cầu” hiện thời chiếm giữ
(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.
“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
Bảng 2.2 Một số khối cơ bản làm việc với thiết bị
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 giữ 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:
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 (queue) để 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 (QUEUE) khi giảm nội dung theo giá trị qui định trong B
Bảng 2.3 Một số khối cơ bản làm việc với QUEUE
Các khối dùng để điều khiển dịch chuyển của 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.
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í khối. Số hoặc tên tham số khi A nhận giá trị là P (tùy chọn)
Đư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 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
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
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, Active Transaction 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) Active Transaction 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
TEST O,A,B,C
O: phép toán quan hệ, có thể nhận một trong các giá trị E, G, GE, L, LE, or NE.
A: giá trị kiểm tra B: giá trị tham chiếu C: số hiệu khối đích
So sánh các giá trị, đích của giao tác hoạt động dựa trên kết quả của việc so sánh.
Một số hàm thư viện
Trong một mô phỏng chúng ta có thể gọi đến một thủ tục nằm trong một thư viện thủ tục nào đó. Có hai loại thư viện: thư viện người sử dụng (User Library) và thư viện GPSS World. Thư viện người sử dụng là tập hợp các thủ tục PLUS. Các thư viện GPSS World chứa một tập hợp thủ tục toán học và chuỗi, … được tích hợp sẵn, có thể triệu gọi trong các biểu thức PLUS. Một trong số các thủ tục được tích hợp sẵn trong thư viện thủ tục đó là: các thủ tục tiện ích (Utility Procedures), các thủ tục tệp (File Procedures), các thủ tục gọi động (Dynamic Call Procedures), các thủ tục toán học (Math Procedures), các phân bố xác suất (Probability Distributions), các thủ tục chuỗi (String Procedures), và các thủ tục truy vấn (Query Procedures).