Các thực thể động

Một phần của tài liệu (LUẬN văn THẠC sĩ) hệ thống bán hàng đợi và bài toán mô phỏng hoạt động kiểm soát nhập cảnh của cửa khẩu sân bay quốc tế nội bài (Trang 37 - 40)

3.3. Ngôn ngữ mô phỏng GPSS

3.3.5.1. Các thực thể động

Các thực thể động là các giao tác (Transactions) có thể xem như là một “yêu cầu”, hay một “sự kiện” trong hệ thống phục vụ đám đông. Trong quá trình mô phỏng, các giao tác được “tạo ra” (ứng với loại “yêu cầu đến”) và “kết thúc” (ứng với loại “yêu cầu đi)”. Mỗi giao tác trong quá trình mô phỏng luôn thuộc vào một khối (BLOCK) xác định nào đó, nhưng hầu hết các khối đều có thể chứa cùng lúc nhiều giao tác khác nhau. Mỗi giao tác dịch chuyển vào một khối, sau đó đến khối tiếp theo, cứ thế cho đến khi nó bị xóa bỏ, tức là rơi vào trạng thái TERMINATED hoặc quá trình mô phỏng dừng. Các giao tác hiếm khi phải nằm đợi trong một khối để chờ thỏa mãn các điều kiện để chuyển sang khối tiếp theo. Thời gian giao tác lưu lại trong mỗi khối là đại lượng ngẫu nhiên, được xác định bởi tính chất của hệ thống và trong GPSS cho phép sinh ra các đại lượng này theo các quy luật khác nhau.

3.3.5.2. Các thực thể khối

Các thực thể khối (Block Entities) là thành phần cấu trúc cơ bản của một chương trình mô phỏng GPSS. Chúng ta có thể coi một mô hình GPSS là một sơ đồ của các khối. Mỗi loại khối tương ứng với một hành động trong mô phỏng. Mỗi giao tác trong mô hình chỉ nằm trong một khối, nhưng hầu hết các khối có thể chứa nhiều giao tác.

3.3.5.3. Các thực thể thiết bị

Các thực thể thuộc về thiết bị (Facility Entities) tương tự như các máy phục vụ và các thiết bị khác của hệ thống thực. Một thiết bị là một thực thể có một số thuộc tính, trong đó quan trọng nhất là thuộc tính trạng thái của thiết bị, đó là quyền sở hữu. Một thiết bị có thể được sở hữu bởi một giao tác duy nhất, trong trường hợp này thiết bị ở trạng thái là “bận”, ngược lại thiết bị đó không được sở hữu bởi một giao tác nào thì nó ở trạng thái là “rảnh”. Không giống như thực thể lưu trữ (Storage Entities), một thiết bị không thể được giải phóng bởi một giao tác mà không sở hữu nó. Giao tác có quyền sở hữu một thiết bị bằng cách nhập vào thành công khối SEIZE hoặc khối PREEMPT. Nếu một

giao tác không được cấp quyền sở hữu, nó sẽ được chuyển đến vị trí cuối cùng trên chuỗi giao tác thiết bị (Facility Transaction Chain).

Mỗi thiết bị có một vài dòng chờ cho các giao tác đang chờ một thiết bị, đó là:

PENDING CHAIN

chuỗi đang treo chờ quyết định: là danh sách các giao tác chờ đợi đến khi có lệnh PREEMPTY thiết bị, trong chế độ ngắt (Interrupt Mode).

INTERRUPT CHAIN

chuỗi ngắt: là danh sách các giao tác đã chiếm được quyền sở hữu thiết bị đó.

DELAY CHAIN chuỗi trễ: là chuỗi ưu tiên của các giao tác đang chờ quyền sở hữu thiết bị đó.

RETRY CHAIN chuỗi thử lại: là danh sách các giao tác đang chờ đợi sự thay đổi trạng thái trên thiết bị.

Có thể sử dụng một số khối với thực thể thiết bị như:

 Khối SEIZE chiếm quyền sở hữu của thiết bị

 Khối RELEASE giải phóng quyền sở hữu của thiết bị

 Khối PREEMPT chiếm quyền sở hữu của thiết bị, có thể thay thế có chủ sở hữu hiện tại

 Khối RETURN giải phóng quyền sở hữu của thiết bị

 Khối FAVAIL đặt thiết bị ở trạng thái rảnh

 Khối FUNAVAIL đặt thiết bị ở trạng thái bận

3.3.5.4. Các thực thể tĩnh

Các thực thể tĩnh được sử dụng để thu thập và xử lý các dữ liệu thống kê về hoạt động của mô hình, gồm có:

- Các thực thể hàng đợi (Queue Entities): mỗi đối tượng kiểu hàng đợi đảm bảo việc thu thập và xử lý dữ liệu về các giao tác được giữ lại tại một điểm nào đó trong mô hình, ví dụ trước khi vào thiết bị đơn kênh.

- Các thực thể bảng (Table Entities): được sử dụng để nhận các phân phối xác suất của các đại lượng ngẫu nhiên, ví dụ lưu lại thời gian chờ đợi của các giao tác trong mô hình mô phỏng.

3.3.5.5. Các thực thể tính toán

Các thực thể tính toán bao gồm:

- Các biến (Variable Entities): số học và logic.

- Các hàm (Function Entities) dùng để tính toán các đại lượng nào đó được cho bởi các biểu thức số học hay logic hoặc ở dạng bảng.

3.3.5.6. Các thực thể lưu trữ

Các thực thể lưu trữ đảm bảo việc lưu trữ trong bộ nhớ của máy tính các đại lượng riêng biệt được sử dụng trong mô hình. Các đối tượng kiểu này gồm có các thực thể giá trị lưu (Savevalue Entities), các thực thể ma trận (Matrix Entities).

3.3.5.7. Các thực thể nhóm

Các đối tượng thuộc nhóm gồm có:

- Numeric Group Entities – là tập hợp các giá trị số, các khối có thể sử dụng khi làm việc với các thực thể nhóm số gồm có: JOIN đưa một giá trị vào một Numeric Group;

REMOVE lấy một giá trị ra,... - Transaction Group Entities – các thực thể nhóm giao tác, các thực thể chuỗi người sử

dụng (Userchain Entities). Trong đó, các thực thể chuỗi người sử dụng được dùng để thiết lập các hàng đợi với các quy tắc khác nhau, nếu như không sử dụng quy tắc cơ bản FIFO.

3.3.6. Cú pháp lệnh trong GPSS

Lệnh trong GPSS dùng để định nghĩa các thực thể và để điều khiển hoạt động của mô phỏng. Lệnh có thể là thành phần của mô hình ban đầu hoặc được gõ trực tiếp trong quá trình thực thi. Lệnh chia làm 2 loại: Lệnh có hiệu lực ngay lập tức (như lệnh HALT và SHOW) và lệnh xếp hàng. Mô phỏng luôn luôn ưu tiên chạy lệnh có hiệu lực ngay lập tức.

Các lệnh của GPSS có định dạng sau:

Label BlockType Operands ; Comment

Giải thích cụ thể:

Label – Nhãn: các lệnh riêng lẻ trong chương trình có thể có nhãn để các lệnh khác có thể tham chiếu đến. Nếu trong chương trình không có những tham chiếu này thì thành phần nhãn này của câu lệnh không nhất thiết phải có.

BlockType – Kiểu khối: chứa từ khóa (tên của câu lệnh) chỉ một chức năng hay một hàm cụ thể nào đó mà câu lệnh này sẽ thực hiện. Đây là thành phần bắt buộc của một câu lệnh.

Operands – Các toán hạng: Từ khóa Blocktype sẽ quy định các tham số, các toán hạng thực thi tương ứng. Những trường toán hạng này tùy thuộc vào kiểu của hàm hay lệnh mà có thể chứa đến 7 toán hạng sắp xếp theo một trình tự nhất định và được kí hiệu bởi những chữ cái đầu tiên trong bảng chữ cái Latin A, B, C, D, E, F, G. Các toán hạng này không nhất thiết phải thiết lập, việc thiết lập giá trị của chúng có thể theo mặc định và phụ thuộc vào từng lệnh cụ thể.

Comment – Phần chú giải: Được đặt sau dấu “;” để chú giải nội dung cho các

dòng lệnh, có thể có chú giải hoặc không. Tuy nhiên, nên có chú giải để người đọc dễ hiểu hơn nội dung lập trình.

Ví dụ minh họa: một chương trình mô phỏng hoạt động của một đường băng sân bay có hoạt động hạ cánh và cất cánh.

*******************************************************************

* Mô phỏng hoạt động của một đường băng sân bay * * Thời gian được tính theo phút * *******************************************************************

;segment 1 - Segment miêu tảcho máy bay hạcánh

;DOWN ;block 1

Down GENERATE 10,5,,,1 ; 5'=>15' phút có một máy hạcánh, có độưu tiên 1

ASSIGN 1,0 ;Xác lập tham số1 cho kênh phục vụ tại thời điểm 0

;để kiểm tra sốvòng máy bay phải bay để chờ hạcánh

Again QUEUE Q_POL ;Máy bay nhận thông báo từđường băng

TEST NE F$POLOSA,1,Busy ;Nếu đường băng bận thì đi tới khối Busy

PREEMPT POLOSA,PR ;Đường băng tiếp nhận các máy bay theo sựưu tiên

ADVANCE 2 ;Thời gian bận của đường băng trong quá trình phục vụ

DEPART Q_POL ;Đường băng phục vụmáy bay hạcánh

RETURN POLOSA ;Giải phóng đường băng

TERMINATE ;block 2

Busy TEST NE *1,5,Term ;Nếu tham số 1 của kênh phục vụ hiện tại bằng 5

;thì đi tới khối term, tức là trong trường hợp này máy

;bay hạcánh sẽbay sang sân bay phụ

ADVANCE 4 ;Thời gian bay 1 vòng

ASSIGN 1+,1 ;Tăng sốvòng bay đối với máy bay này

TRANSFER ,Again ;Đến lượt máy bay tiếp theo

Term ASSIGN 1,0 ;Máy bay sẽbay sang sân bay phụ

TERMINATE

;*********************************************************************************************

;segment 2 - Segment miêu tả cho máy bay cất cánh

;UP

Up GENERATE 10,2,,,2 ; 8'=>12' có một máy bay cất cánh, có độưu tiên 2

QUEUE Q_POL ;Máy bay nhận thông báo từđường băng

PREEMPT POLOSA,PR ;Đường băng tiếp nhận các máy bay theo sựưu tiên

ADVANCE 2 ;Thời gian đường băng bận trong quá trình phục vụ

DEPART Q_POL ;Đường băng phục vụmáy bay hạcánh

RETURN POLOSA ;Giải phóng đường băng

TERMINATE

;********************************************************************************************* ;segment 3

Time_test GENERATE 1440 ;1440 = 60*24: nghĩa là thời gian 1 ngày đêm tính bằng phút

TERMINATE 1

Một phần của tài liệu (LUẬN văn THẠC sĩ) hệ thống bán hàng đợi và bài toán mô phỏng hoạt động kiểm soát nhập cảnh của cửa khẩu sân bay quốc tế nội bài (Trang 37 - 40)

Tải bản đầy đủ (PDF)

(64 trang)