Các thực thể trong GPSS

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu bài toán hàng đợi có ưu tiên và mô phỏng ứng dụng (Trang 38 - 42)

GPSS được xây dựng xung quanh các khái niệm trừu tượng gọi là các thực thể (Entities). Để có thể tạo ra mô hình phức tạp, người sử dụng phải hiểu về các thực thể, các thuộc tính và các thao tác trên các thực thể đó. Các thực thể GPSS là những đối tượng trừu tượng tồn tại trong một mô phỏng. Một tập hợp các thực thể được gọi là mô phỏng. Các loại thực thể nổi bật nhất là các giao tác (transactions) và các khối (blocks). Một mô phỏng có qui mô lớn sẽ bao gồm nhiều giao tác di chuyển từ một khối vào khối tiếp theo. Giao tác là loại thực thể duy nhất có thể được xóa khỏi mô phỏng.

Các thực thể GPSS được đánh số, GPSS World thường gán một giá trị duy nhất lớn hơn hoặc bằng đến 10.000 vào tên của thực thể. Hầu hết các thực thể GPSS được tạo ra tự động khi cần thiết. Một số thực thể phải được khai báo cụ thể trước khi sử dụng chúng như: các biến, các thực thể lưu trữ, ma trận, bảng, các hàm…

Trong GPSS, các đối tượng có thể được phân chia ra 6 kiểu: Các thực thể động, các thực thể khối, các thực thể thiết bị, các thực thể tính toán, các thực thể lưu trữ, các thực thể nhóm.

Các thực thể động

Các thực thể động là các giao tác (transactions), nó 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. 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.

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. 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 được chứa chính xác trong một khối, nhưng hầu hết các khối có thể chứa nhiều giao tác.

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 Entity), một thiết bị không có 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ẽ nghỉ 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ị

Thiết bị đơn kênh, đa kênh và thiết bị chuyển logic tương ứng với máy phục vụ trong hệ thống phục vụ đám đông.

Thiết bị chuyển logic được sử dụng để mô phỏng thiết bị có 2 trạng thái của tính chất logic hay vật lý và có thể ở hai trạng thái: bật và tắt, đóng và mở.

Các thực thể tĩnh

Các đối tượng 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.

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

Các đối tượng 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.

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).

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ư muốn khác quy tắc cơ bản FIFO.

2.3.5. Cú pháp lệnh GPSS

Phần này trình bày chi tiết về định dạng các lệnh của GPSS, theo đị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ẽ qui đị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.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu bài toán hàng đợi có ưu tiên và mô phỏng ứng dụng (Trang 38 - 42)

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

(67 trang)