1. Trang chủ
  2. » Luận Văn - Báo Cáo

Mô hình hóa và kiểm chứng hệ thống tệp phân tán hadoop (hdfs) bằng cách sử dụng các tiến trình tuần tự của truyền thông (cps)

68 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mô Hình Hóa Và Kiểm Chứng Hệ Thống Tệp Phân Tán Hadoop (Hdfs) Bằng Cách Sử Dụng Các Tiến Trình Tuần Tự Của Truyền Thông (Csp)
Tác giả Lương Trường An
Người hướng dẫn PGS. TS. Phan Công Vinh
Trường học Trường Đại Học Nguyễn Tất Thành
Chuyên ngành Công Nghệ Thông Tin
Thể loại Luận Văn Thạc Sĩ
Năm xuất bản 2023
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 68
Dung lượng 1,42 MB

Nội dung

Trang 2 Lương Trường An MƠ HÌNH HÓA VÀ KIỂM CHỨNG HỆ THỐNG TỆP PHÂN TÁN HADOOP HDFS BẰNG CÁCH SỬ DỤNG CÁC TIẾN TRÌNH TUẦN TỰ CỦA TRUYỀN THƠNG CSP Chun ngành: Cơng nghệ thông tin Mã số: 8

Trang 1

TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH

Trang 2

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC:

Thành phố Hồ Chí Minh – 2023

Trang 3

LỜI CAM ĐOAN

Em cam đoan những kết quả nghiên cứu được trình bày trong luận văn hoàn toàn trung thực Tất cả các tài liệu tham khảo có nguồn gốc, xuất xứ rõ ràng Luận văn đảm bảo tính độc lập và khách quan theo đúng quy định của Khoa

Thành phố Hồ Chí Minh, ngày 10 tháng 03 năm 2023

Tác giả luận văn

Lương Trường An

Trang 4

LỜI CẢM ƠN

Trước khi trình bày nội dung chính của luận văn Thạc sĩ, em xin cảm ơn sâu sắc tới thầy PGS.TS Phan Công Vinh, Phó Trưởng khoa - khoa Công nghệ thông tin - Trường Đại học Nguyễn Tất Thành người đã tận tình dạy bảo, hướng dẫn em hoàn thành tốt luận văn này

Em cũng xin cảm ơn chân thành đến thầy TS Nguyễn Kim Quốc, Trưởng khoa Công nghệ thông tin là cố vấn học tập và quý Thầy khoa Công nghệ thông tin, Viên sau đại học - Trường Đại học Nguyễn Tất Thành đã dạy bảo em trong suốt quá trình học tập tại Trường

Nhân dịp này em xin gửi lời cảm ơn chân thành nhất tới gia đình, bạn bè, đồng nghiệp đã luôn động viên, cổ vũ, giúp đỡ em trong suốt quá trình học tập và thực hiện luận văn tốt nghiệp

Thành phố Hồ Chí Minh, ngày 10 tháng 03 năm 2023

Học viên Lương Trường An

Trang 5

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

MỤC LỤC iii

DANH SÁCH CÁC HÌNH vi

DANH MỤC KÝ HIỆU VÀ VIẾT TẮT vii

CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1

1.1 Lý do chọn đề tài 1

1.2 Mục đích nghiên cứu 1

1.2.1 Mục tiêu tổng quát 1

1.2.2 Mục tiêu cụ thể 1

1.3 Đối tượng nghiên cứu và phạm vi nghiên cứu 2

1.3.1 Đối tượng nghiên cứu 2

1.3.2 Phạm vi nghiên cứu 2

1.4 Nhiệm vụ nghiên cứu 2

1.5 Phương pháp nghiên cứu 2

1.5.1 Phương pháp lí luận 2

1.5.2 Phương pháp thực tiễn 2

1.6 Những đóng góp mới của đề tài 3

1.7 Dự kiến kế hoạch nghiên cứu 3

CHƯƠNG 2: MÔ TẢ VỀ HỆ THỐNG TỆP PHÂN TÁN HADOOP, VÀ KIẾN THỨC NỀN TẢNG VỀ CSP VÀ PAT 4

2.1 Tổng quan về HDFS 4

Trang 6

2.2 Giới thiệu tóm tắt về CSP và PAT 8

2.2.1 Tổng quan về ngôn ngữ đại số tiến trình CSP 8

2.2.2 Tổng quát về bộ công cụ phân tích tiến trình PAT 19

2.2.3 Mô-đun CSP 24

CHƯƠNG 3: MÔ HÌNH HÓA HỆ THỐNG TỆP PHÂN TÁN HADOOP 35 3.1 Tổng quan về mô hình 35

3.2 ClientNode 35

3.2.1 ClientRead 35

3.2.2 ClientWrite 37

3.3 DataNode 40

3.3.1 DataRead 40

3.3.2 DataWrite 40

3.3.3 DataHBeat 43

3.4 NameNode 44

3.4.1 NameRead 44

3.4.2 NameWrite 45

3.4.3 NameHBeat 46

CHƯƠNG 4: KIỂM CHỨNG MÔ HÌNH HỆ THỐNG TỆP PHÂN TÁN HADOOP 47

4.1 Cài đặt trong PAT 47

4.1.1 Các bảng 47

4.1.2 Các tiến trình 48

4.2 Các thuộc tính 52

4.2.1 Không bế tắc(Deadlock Freedom) 52

Trang 7

4.2.2 Khoảng cách đường đi ngắn nhất (Minimal Distance Scheme) 52

4.2.3 Loại trừ lẫn nhau (Mutual Exclusion), 53

4.2.4 Lược đồ ghi một lần (Write-Once Scheme) 53

4.2.5 Khả năng chịu lỗi (Robustness) 54

4.3 Kết quả đánh giá 54

CHƯƠNG 5: KẾT LUẬN 56

5.1 Kết luận 56

5.1 Hướng phát triển 56

TÀI LIỆU THAM KHẢO 57

Trang 8

DANH SÁCH CÁC HÌNH

Hình 2.1: Tổng quan về Kiến trúc HDFS 5

Hình 2.2: Tổng quan về Đọc tệp 6

Hình 2.3: Tổng quan về Ghi tệp 7

Hình 2.4: Tổng quan về Cơ chế nhịp tim 8

Hình 2.5: Kiến trúc PAT 21

Hình 2.6: Trình biên tập PAT 22

Hình 2.7: Chế độ chọn nhấp chuột và hàng loạt 24

Hình 2.8: Mô-đun CSP 25

Hình 3.1: Truyền thông giữa các DataNode (DataNodes) 41

Hình 3.2: Ba khả năng ghi dữ liệu (DataWrite) 41

Hình 4.1: Mô phỏng cho HDFS 51

Hình 4.2: Kết quả xác minh cho HDFS 55

Trang 9

DANH MỤC KÝ HIỆU VÀ VIẾT TẮT

STT Chữ viết tắt Diễn giải tiếng Anh Diễn giải tiếng Việt

Hadoop Distributed File

System Hệ thống tệp phân tán Hadoop

5 LTL Linear Temporal Logic Logic thời gian tuyến tính

7 HBeatInterval Heart Beat Interval Khoảng nhịp tim

9 OCR Module Optical Character

Trang 10

CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI

1.1 Lý do chọn đề tài

Hadoop là một khung tham chiếu mã nguồn mở phân tán dành cho các ứng dụng tính toán dữ liệu qui mô lớn [14, 15] Lấy cảm hứng từ nghiên cứu của Google [6, 7], nó cung cấp mô hình lập trình MapReduce và hệ thống tệp phân tán Hadoop (Hadoop Distributed File System - HDFS) Hiện nay, nhiều công ty, như Amazon, AOL, Yahoo!, Facebook và New York Times [4, 5], đã sử dụng thành công Hadoop HDFS [2, 3, 9], như là một khung tham chiếu của các ứng dụng Hadoop, cung cấp khả năng truy xuất thông lượng cao cho các dữ liệu của ứng dụng và thích hợp cho các ứng dụng có tập dữ liệu lớn Dưới khung tham chiếu này, dữ liệu phân tán trên một số lượng lớn các máy có thể được xử lý một cách hiệu quả

Luận văn này được phát triển từ bài báo của PGS.TS.Phan Công Vinh [1] Nội dung trong đề tài được tổ chức như sau Trong Chương 1, sẽ giới thiệu về đề tài luận văn Chương 2 sẽ mô tả về Hệ thống tệp phân tán Hadoop, và kiến thức nền tảng về CSP

và PAT Chúng ta sẽ mô hình hóa Hệ thống tệp phân tán Hadoop trong Chương 3 Trong Chương 4, chúng ta kiểm chứng mô hình Hệ thống tệp phân tán Hadoop Cuối cùng, chúng ta cung cấp các nhận xét kết luận và hướng phát triển trong Chương 5

Trang 11

1.3 Đối tượng nghiên cứu và phạm vi nghiên cứu

1.3.1 Đối tượng nghiên cứu

Mô hình hóa và kiểm chứng Hệ thống tệp phân tán Hadoop bằng cách sử dụng ngôn ngữ đại số tiến trình CSP

1.3.2 Phạm vi nghiên cứu

Sử dụng ngôn ngữ đại số tiến trình CSP và PAT để kiểm tra mô hình và kiểm chứng các mô hình đáp ứng năm thuộc tính, đó là tính không có bế tắc (Deadlock Freedom), khoảng cách đường đi ngắn nhất (Minimal Distance Scheme), loại trừ lẫn nhau (Mutual Exclusion), lượt đồ ghi một lần (Write-Once Scheme) và khả năng chịu lỗi (Robustness)

1.4 Nhiệm vụ nghiên cứu

Nghiên cứu Hệ thống tệp phân tán Hadoop

Nghiên cứu ngôn ngữ đại số tiến trình CSP và sử dụng bộ công cụ phân tích tiến trình để kiểm tra mô hình PAT

Mô hình hóa Hệ thống tệp phân tán Hadoop

Kiểm chứng tính không có bế tắc, khoảng cách đường đi ngắn nhất, loại trừ lẫn nhau, đồ ghi một lần và khả năng chịu lỗi

Thực nghiệm đánh giá tính khả thi và hiệu quả của đề tài trên bộ công cụ phân tích tiến trình để kiểm tra mô hình PAT

1.5 Phương pháp nghiên cứu

Trang 12

Phương pháp hỏi ý kiến chuyên gia

Phương pháp toán học: Ngôn ngữ tiến trình CSP

1.6 Những đóng góp mới của đề tài

Sử dụng kiến trúc đa điều khiển và CSP để mô hình hóa Hệ thống tệp phân tán

Hadoop Bằng cách sử dụng PAT để kiểm tra mô hình, kiểm chứng các mô hình đáp ứng

năm thuộc tính, đó là không có bế tắc, khoảng cách đường đi ngắn nhất, loại trừ lẫn nhau,

đồ ghi một lần và khả năng chịu lỗi

1.7 Dự kiến kế hoạch nghiên cứu

Giai đoạn 1: Nghiên cứu lý thuyết Hệ thống tệp phân tán Hadoop và các tài liệu

Giai đoạn 5: Kết luận và phát triển

Giai đoạn 6: Viết các chương báo cáo và hoàn thiện luận văn

Trang 13

CHƯƠNG 2: MÔ TẢ VỀ HỆ THỐNG TỆP PHÂN TÁN

HADOOP, VÀ KIẾN THỨC NỀN TẢNG VỀ CSP VÀ PAT

Apache Hadoop hay Hadoop là một software framework hỗ trợ các ứng dụng phân tán dữ liệu chuyên sâu theo một giấy phép miễn phí Nó cho phép các ứng dụng làm việc với hàng ngàn máy tính tính toán độc lập và petabyte dữ liệu Hadoop được bắt nguồn từ các bài báo MapReduce của Google và Google File System (GFS) [17]

Hadoop là một trong những dự án hàng đầu của Apache, được xây dựng và được

sử dụng bởi một cộng đồng những người đóng góp toàn cầu, viết bằng ngôn ngữ lập trình Java Yahoo! đã đóng góp lớn nhất cho dự án, và Hadoop được sử dụng rộng rãi trên khắp các doanh nghiệp

Hệ thống tệp phân tán Hadoop (HDFS) là một hệ thống quản lý tệp phân tán có khả năng chịu lỗi cao, cung cấp khả năng truy cập thông lượng cao vào dữ liệu ứng dụng

và thích hợp cho các ứng dụng có tập dữ liệu lớn Ngoài ra, chúng ta cũng giới thiệu liên quan đến CSP và PAT

2.1 Tổng quan về HDFS

HDFS là hệ thống tệp phân tán chính được các ứng dụng Hadoop sử dụng Hình 2.1 minh họa cấu trúc HDFS [2, 3, 17] Như chúng ta thấy trong Hình 2.1, HDFS có kiến

trúc kiểu master/slave Trong chương này, chúng ta chủ yếu tập trung vào cụm HDFS

với một NameNode đơn là một máy chủ master quản lý siêu dữ liệu của tệp và quy định việc truy xuất tệp của người dùng HDFS, và nhiều DataNodes lưu trử dữ liệu thật

Trang 14

Hình 2.1: Tổng quan về Kiến trúc HDFS

Trong HDFS, một tệp được chia thành một hoặc nhiều khối và các khối này được lưu trên các DataNodes NameNode xác định ánh xạ của các khối này vào các DataNodes Nó cũng thực hiện các tác vụ liên quan đến hệ thống tệp như mở, đóng và đặt lại tên tệp DataNodes có trách nhiệm xử lý các yêu cầu đọc và ghi từ các người dùng HDFS DataNodes cũng thực hiện việc tạo ra, xóa bỏ và sao chép khối dựa theo chỉ thị

1 Chương trình bắt đầu khi người dùng yêu cầu đọc một tệp Để lấy vị trí

Read

Trang 15

của các khối chứa tệp, ClientNode gửi fileInfo đến NameNode

2 NameNode tìm các khối và datanodes lưu các khối này và sắp xếp các

datanodes này theo khoảng cách tăng dần với người dùng Sau khi sắp xếp, NameNode gởi blockLocation tới ClientNode

3 ClientNode chọn một datanode khả dụng phụ thuộc vào blockLocation và gởi blockInfo tới datanode được chọn DataNode gửi blockData đến

ClientNode

Hình 2.2: Tổng quan về Đọc tệp

4 ClientNode gởi thông điệp checksumOk tới DataNode, thông báo rằng dữ

liệu đã được đọc thành công

Hình 2.3 cho thấy quy trình của một thao tác ghi Ba nút đại diện cho ba thành phần của HDFS đang tương tác Ở đây, nó liên quan đến giao tiếp giữa hai DataNode Khi chương trình người dùng yêu cầu ghi một tệp, chuỗi hành động sau sẽ xảy ra:

1 Chương trình bắt đầu với yêu cầu ghi Để tạo một tệp ClientNode gởi

fileName tới NameNode

2 NameNode kiểm tra xem coi tệp có trên hệ thống tệp hay không Nếu tệp không tồn tại và được tạo ra thành công, NameNode sẽ tạo ra một khế ước tệp với ClientNode và cấp phát datanodes để lưu các khối của tệp Sau đó,

NameNode gởi DInfo tới ClientNode

3 ClientNode chọn một datanode khả dụng phụ thuộc vào DInfo và gởi

DataNode

1.fileInfo

2.blockLocation 3.blockInfo

4.blockData

5.checksumOk

Trang 16

blockinfo tới DataNode được chọn

4 Nhận xong blockinfo, DataNode được chọn sẽ gởi Ok để báo ClientNode

hãy gởi dữ liệu

5 ClientNode gởi dữ liệu của các khối blockData tới DataNode được chọn,

DataNode được chọn gởi blockData tới DataNode thứ hai trong đường

dẫn Sau đó DataNode thứ hai sẽ gởi blockData tới DataNode cuối cùng

6 Khi nhận được thông điệp Ack từ các datanodes khác, DataNode được chọn gởi Ack để thông báo ClientNode rằng dữ liệu đã được ghi thành

5.blockData

4.Ok

DataNode NameNode

Trang 17

hóa như một tiến trình CSP Clock(i)

1 DataNode gửi một yêu cầu đến Clock (i)

2 Clock(i) trả thời gian hiện hành i về DataNode Nếu khoảng thời gian giữa

i và lastTime lớn hơn HBeatInterval, thì nó sẽ thực hiện bước 3 Ngược

lại, nó sẽ lập lại bước 1 và 2 Ở đây, lastTime chỉ thời gian của nhịp đập sau cùng và HBeatInterval chỉ khoảng thời gian giữa hai nhịp đập

3 DataNode gửi heartbeat đến NameNode

4 NameNode trả về một command cho DataNode

Hình 2.4: Tổng quan về Cơ chế nhịp tim

2.2 Giới thiệu tóm tắt về CSP và PAT

Trình bày các khái niệm lý thuyết về ngôn ngữ đại số tiến trình CSP và PAT

2.2.1 Tổng quan về ngôn ngữ đại số tiến trình CSP

2.i

Trang 18

thức và hệ thống thành công [11, 12, 13, 16] CSP được hình thành để xác định và lập luận về các hệ thống tương tranh có các tiến trình thành phần tương tác với nhau bằng cách truyền thông

Chú giải các ký hiệu trong ngôn ngữ đại số CSP

∃𝑥  𝑃 tồn tại một 𝑥 sao cho 𝑃 ∃𝑥  𝑥 > 𝑦

{𝑥 | 𝑃(𝑥)} tập hợp của tất cả 𝑥 sao cho 𝑃(𝑥) {𝑎} = {𝑥 | 𝑥 = 𝑎}

𝑥 ∶ 𝐴 | 𝑃(𝑥)} tập hợp của 𝑥 trong A sao cho 𝑃(𝑥)

Trang 19

f(x)| P(x)} tập hợp được tạo thành bằng cách áp

dụng 𝑓 với mọi 𝑥 sao cho 𝑃(𝑥)

{𝑥 | 𝑃(𝑥)} tập hợp của tất cả 𝑥 sao cho 𝑃(𝑥)

𝜆𝑥  𝑓(𝑥) hàm ánh xạ từng giá trị của x thành 𝑓(𝑥) (𝜆𝑥  𝑓(𝑥))(18) = 𝑓(18)

Các sự kiện đặt biệt

 thành công (chấm dứt thành công)

𝑙 𝑎 tham gia vào sự kiện a bởi một tiến trình có tên 𝑙

𝑐 𝑣 truyền thông giá trị 𝑣 trên kênh 𝑐

𝑙 𝑐 kênh 𝑐 của một tiến trình có tên 𝑙

𝑙 𝑐 𝑣 truyền thông của một tin nhắn 𝑣 trên kênh 𝑙 𝑐

Các tiến trình

𝛼𝑃 bảng chữ cái của tiến trình 𝑃

𝛼𝑐 tập hợp các thông điệp được truyền tải trên kênh c

𝑏! 𝑒 trên (kênh) 𝑏 đầu ra (giá trị của) 𝑒

𝑏? 𝑥 trên (kênh) 𝑏 đầu vào cho 𝑥

Trang 20

𝑃 ⊲ 𝑏 ⊳ 𝑄 lựa chọn có điều kiện giữa 𝑃 và 𝑄

𝑃; 𝑄 𝑃 (thành công) theo sau là 𝑄

Tiến trình

Một tiến trình thể hiện một kiểu hành vi trong đó nó đưa ra những sự kiện nhất định để đồng bộ hóa với môi trường của nó

 Mỗi sự kiện tạo thành một sự tương tác giữa tiến trình và môi trường của nó

 Nếu tương tác không xảy ra, thì tiến trình sẽ bị chặn

Trong trường hợp của một máy bán hàng tự động đơn giản, có hai loại sự kiện:

xu – việc nhét đồng xu vào khe của máy bán hàng tự động;

socola – chiết xuất sô cô la từ bộ phân phối của máy

Trong trường hợp máy bán hàng tự động phức tạp hơn, có thể có nhiều sự kiện hơn:

vao1xu – việc chèn một xu;

vao2xu – việc chèn một đồng xu hai xu;

nho – chiết xuất một chiếc bánh quy nhỏ hoặc bánh quy;

lon – chiết xuất một chiếc bánh quy lớn hoặc bánh quy;

ra1xu – trích một xu để thay đổi

Tập hợp tên các sự kiện được coi là có liên quan đến mô tả cụ thể của một đối tượng được gọi là bảng chữ cái Bảng chữ cái là thuộc tính được xác định trước vĩnh viễn của một đối tượng Về mặt logic, một đối tượng không thể tham gia vào một sự kiện ngoài bảng chữ cái của nó Chẳng hạn, một chiếc máy bán hàng tự động được thiết kế

để bán sô cô la không thể bất ngờ cung cấp một chiếc máy bay đồ chơi Vì một chiếc máy được thiết kế để bán sô cô la thực sự có thể không bao giờ làm như vậy, có lẽ vì nó

Trang 21

chưa được chứa đầy hay bị hỏng hoặc không ai muốn sô cô la Nhưng một khi người ta

quyết định rằng socola nằm trong bảng chữ cái của máy bán hàng tự động, máy bán hàng

tự động nó vẫn là như vậy ngay cả khi sự kiện đó không bao giờ thực sự xảy ra

Bây giờ hãy bắt đầu sử dụng tiến trình để đại diện cho mẫu hành vi của một đối

tượng, trong chừng mực nó có thể được mô tả dưới dạng tập hợp giới hạn các sự kiện được chọn làm bảng chữ cái của nó và sẽ sử dụng các quy ước sau đây

1 Các từ ở dạng chữ thường biểu thị các sự kiện riêng biệt, ví dụ:

xu, socola, vao2xu, ra1xu

và các chữ cái a, b, c, d, e cũng vậy

2 Các từ ở dạng chữ hoa biểu thị các tiến trình cụ thể được xác định, ví dụ: MBHDG – máy bán hàng tự động đơn giản

MBHPT – máy bán hàng tự động phức tạp

và các chữ cái P, Q, R là viết tắt của các tiến trình

3 Các chữ cái x, y, z là các biến biểu thị các sự kiện

4 Các chữ cái A, B, C là viết tắt của các sự kiện

5 Các chữ cái X, Y là các biến biểu thị tiến trình

6 Bảng chữ cái của tiến trình P được ký hiệu là αP, ví dụ:

αMBHDG = {xu,socola}

αMBHPT = {vao1xu, vao2xu, nho, lon,ra1xu}

Tiến trình với bảng chữ cái 𝐴 không bao giờ thực sự tham gia vào bất kỳ sự kiện nào của 𝐴 được gọi là 𝑆𝑇𝑂𝑃𝐴 Việc này mô tả hành vi của đối tượng bị hỏng: mặc dù nó được trang bị các khả năng vật lý để tham gia vào các sự kiện của 𝐴, nó không bao giờ thực hiện những khả năng đó Các đối tượng có bảng chữ cái khác nhau được phân biệt, ngay cả khi chúng không bao giờ làm bất cứ điều gì Vì vậy, 𝑆𝑇𝑂𝑃𝛼𝑀𝐵𝐻𝐷𝐺 có thể cho

ra một sô cô la, trong khi 𝑆𝑇𝑂𝑃𝛼𝑀𝐵𝐻𝑃𝑇 không bao giờ có thể cho ra một sô cô la, mà nó chỉ đưa ra một cái bánh quy Một khách hàng của một trong hai máy bán hàng tự động

Trang 22

này đều biết những điều này, ngay cả khi họ biết rằng cả hai máy đều bị hỏng

2.2.1.2 Các toán tử đại số

CSP có một loạt các toán tử đại số Những toán tử chính là:

Tiếp đầu ngữ

Gọi 𝑎 là một sự kiện và 𝑃 là một tiến trình

(𝑎 ⟶ 𝑃) - 𝑎 là tiếp đầu ngữ của 𝑃 còn được phát âm như sau: “𝑎 rồi đến 𝑃” Sau đó mô tả một đối tượng đầu tiên tham gia vào sự kiện a và đợi vô thời hạn cho đến khi giao tiếp xảy ra, sau khi giao tiếp được mô tả như 𝑃 Tiến trình (𝑎 ⟶ 𝑃) được định nghĩa là có cùng bảng chữ cái với 𝑃, vì vậy ký hiệu này không được

sử dụng trừ khi a nằm trong bảng chữ cái đó; chính thức hơn được thể hiện như sau: 𝛼(𝑎 ⟶ 𝑃)= 𝛼𝑃 với điều kiện 𝑎 ∈ 𝛼𝑃

Thành phần song song

Khi hai tiến trình được kết hợp với nhau để tiến triển đồng thời, mục đích thông thường sẽ tương tác với nhau Những tương tác này có thể được coi là những sự kiện đòi hỏi sự tham gia đồng thời của cả hai tiến trình liên quan Trong lúc này, hãy giới hạn sự chú ý vào những sự kiện như vậy và bỏ qua tất cả những sự kiện khác Vì vậy, phải giả định rằng các bảng chữ cái của hai tiến trình là giống nhau

Nếu 𝑃 và 𝑄 là các tiến trình có cùng bảng chữ cái, thì ký hiệu như sau: 𝑃||𝑄

Để biểu thị tiến trình hoạt động giống như hệ thống bao gồm các tiến trình 𝑃 và

𝑄 tương tác trong đồng bộ hóa bước khóa như được mô tả ở trên

Các luật của thành phần song song:

Các luật điều chỉnh hành vi của 𝑃||𝑄 đặc biệt đơn giản và thường xuyên Luật đầu tiên thể hiện sự đối xứng hợp lý giữa một tiến trình và môi trường của nó

Luật A: 𝑃||𝑄 = 𝑄||𝑃

Luật tiếp theo cho ta thấy rằng khi ba tiến trình được tập hợp chung sẽ không quan trọng thứ tự

Luật B: 𝑃||(𝑄||𝑅)= (𝑃||𝑄)||𝑅

Trang 23

Tiếp theo một luật nữa, một tiến trình bị bế tắc sẽ lây nhiễm cho toàn bộ hệ thống Luật C: 𝑃||𝑆𝑇𝑂𝑃 = 𝑆𝑇𝑂𝑃

Các luật tiếp theo chỉ ra cách một cặp tiến trình tham gia cùng lúc vào cùng một hành động hoặc bế tắc nếu chúng không thống nhất với nhau về hành động đầu tiên phải làm như thế nào

Luật D.1: (𝑐 ⟶ 𝑃) || (𝑐 ⟶ 𝑄) = (𝑐 ⟶ (𝑃||𝑄))

Luật D.2: (𝑐 ⟶ 𝑃) || (𝑑 ⟶ 𝑄) = 𝑆𝑇𝑂𝑃 nếu 𝑐 ≠ 𝑑

Lựa chọn không xác định

Nếu 𝑃 và 𝑄 là các tiến trình, thì ký hiệu như sau: 𝑃 ⊓ 𝑄 (P hoặc Q)

Các luật của lựa chọn không xác định:

Các luật của đại số chi phối sự lựa chọn không xác định là đặc biệt đơn giản và hiển nhiên Một sự lựa chọn giữa 𝑃 và 𝑃 là không có

vì môi trường phải được chuẩn bị để đối phó với 𝑃 hoặc 𝑄 và một trong hai phải riêng biệt sẽ dễ dàng giải quyết hơn Do đó sẽ cần phải có lựa chọn xác định

Lựa chọn xác định

Toán tử (𝑃𝑄), mà môi trường có thể kiểm soát một trong 𝑃 và 𝑄 sẽ được chọn, miễn là kiểm soát này được thực hiện ngay từ hành động đầu tiên Nếu hành động này không phải là hành động đầu tiên có thể có của 𝑃, thì 𝑄 sẽ được chọn; nhưng nếu 𝑄

Trang 24

không thể tham gia vào hành động ban đầu, thì 𝑃 sẽ được chọn Tuy nhiên, nếu hành động đầu tiên có thể thực hiện được cho cả 𝑃 và 𝑄, thì sự lựa chọn giữa chúng là không xác định

𝛼(𝑃𝑄) = 𝛼𝑃= 𝛼𝑄 Trong trường hợp không có sự kiện ban đầu nào của 𝑃 cũng có thể xảy ra đối với

𝑄, thì toán tử lựa chọn tổng quát giống với toán tử |, đã được sử dụng cho đến nay để thể hiện sự lựa chọn giữa các sự kiện khác nhau

(𝑐 ⟶ 𝑃  d ⟶ 𝑄) = (𝑐 ⟶ 𝑃 | d ⟶ 𝑄) nếu 𝑐 ≠ 𝑑

Nếu các sự kiện ban đầu giống nhau, 𝑃𝑄 suy biến thành lựa chọn không xác định

(𝑐 ⟶ 𝑃  c ⟶ 𝑄) = (𝑐 ⟶ 𝑃 ⊓ c ⟶ 𝑄)

Các luật của lựa chọn xác định:

Giống như tất cả các toán tử khác được giới thiệu cho đến nay (ngoài đệ quy),  phân phối thông qua ⊓

Luật A: P  (Q ⊓ R) = (𝑃  Q) ⊓ (𝑃  R)

Điều có vẻ ngạc nhiên hơn là ⊓ phân phối thông qua 

Luật B: P ⊓ (Q  R) = (𝑃 ⊓ Q) (𝑃 ⊓ R)

Lựa chọn có điều kiện

Nếu 𝑏 là một vị từ và 𝑃 và 𝑄 là các tiến trình thì thể hiện tiến trình hoạt động giống như 𝑃; ngược lại, như 𝑄 : Ký hiệu như sau: 𝑃 ⊲ 𝑏 ⊳ 𝑄

Các luật của lựa chọn có điều kiện:

Lựa chọn có điều kiện thỏa mãn các luật mệnh đề

Trang 25

𝑃 ⊲ 𝑏 ⊳ (𝑄 ⊓ 𝑅) = (𝑃 ⊲ 𝑏 ⊳ 𝑄) ⊓ (𝑃 ⊲ 𝑏 ⊳ 𝑅) (𝑃𝑄) ⊲ 𝑏 ⊳ 𝑅 = (𝑃 ⊲ 𝑏 ⊳ 𝑅)(𝑄 ⊲ 𝑏 ⊳ 𝑅)

𝛼𝑐(𝑃) = {𝑣|𝑐 𝑣 ∈ 𝛼𝑃}

Trích xuất các thành phần kênh và phần thông điệp của một truyền thông được xác định như sau:

𝑐ℎ𝑎𝑛𝑛𝑒𝑙(𝑐 𝑣) = 𝑐 𝑚𝑒𝑠𝑠𝑎𝑔𝑒(𝑐 𝑣) = 𝑣

Đầu vào và đầu ra của truyền thông

Gọi 𝑣 là phần tử bất kỳ của 𝛼𝑐(𝑃) Một tiến trình đầu tiên xuất ra 𝑣 trên kênh 𝑐

và sau đó hành vi như (𝑃) được định nghĩa như sau:

Trang 26

vào sẽ được gọi là kênh đầu vào Trong hai trường hợp đều nói rằng tên kênh là phần tử của bảng chữ cái của tiến trình

Đặt 𝑃 và 𝑄 là các tiến trình và gọi c là kênh đầu ra của 𝑃 và kênh đầu vào của 𝑄 Khi 𝑃 và 𝑄 được đồng bộ trong hệ thống (𝑃||𝑄), truyền thông sẽ xảy ra trên kênh c trong mỗi trường hợp 𝑃 xuất ra một thông điệp và 𝑄 đồng thời nhập thông điệp

Tiến trình xuất ra chỉ định một giá trị duy nhất cho thông điệp, trong khi tiến trình nhập được chuẩn bị để chấp nhận bất kỳ giá trị có thể truyền được vào Sự kiện sẽ thực

sự xảy ra là 𝑐 𝑣 truyền thông, trong đó 𝑣 là giá trị được chỉ định bởi tiến trình xuất Điều này đòi hỏi ràng buộc rõ ràng là kênh 𝑐 phải có cùng một bảng chữ cái ở cả hai đầu là:

𝛼𝑐(𝑃) = 𝛼𝑐(𝑄) Giá trị được xuất ra bởi một tiến trình được chỉ định bằng một biểu thức có chứa các biến mà giá trị đã được gán bởi một số đầu vào trước đó, như trong ví dụ sau:

Một tiến trình sao chép ngay lập tức mọi thông điệp mà nó có đầu vào từ bên trái bằng cách xuất nó sang bên phải

𝛼𝑙𝑒𝑓𝑡(𝐶𝑂𝑃𝑌) = 𝛼𝑟𝑖𝑔ℎ𝑡(𝐶𝑂𝑃𝑌) 𝐶𝑂𝑃𝑌 = 𝜇𝑋(𝑙𝑒𝑓𝑡? 𝑥 ⟶ 𝑟𝑖𝑔ℎ𝑡! 𝑥 ⟶ 𝑋)

Các truyền thông

Nếu gọi 𝑃 và 𝑄 là tiến trình, và gọi c là một kênh được sử dụng cho đầu ra của 𝑃

và cho đầu vào của 𝑄 Do đó, tập hợp chứa tất cả các sự kiện truyền thông 𝑐 𝑣 nằm trong giao điểm bảng chữ cái của 𝑃 với bảng chữ cái của 𝑄 Khi các tiến trình này được cấu tạo đồng thời trong hệ thống (𝑃||𝑄), một truyền thông 𝑐 𝑣 chỉ có thể xảy ra khi cả hai tiến trình tham gia đồng thời vào sự kiện đó, tức là bất cứ khi nào 𝑃 xuất ra giá trị 𝑣 trên kênh 𝑐 và 𝑄 đồng thời nhập cùng một giá trị Tiến trình đầu vào được chuẩn bị để chấp nhận bất kỳ giá trị nào có thể truyền được, vì vậy tiến trình đầu ra sẽ xác định giá trị thông báo thực tế nào được truyền Do đó, đầu ra có thể được coi là một trường hợp tách biệt của toán tử tiền tố và đầu vào là một trường hợp lựa chọn đặc biệt

Các luật của các truyền thông

Trang 27

Các luật của tiến trình tuần tự

Các luật cho thành phần tuần tự tương tự như luật cho phân loại, với SKIP đóng

vai trò của đơn vị

Cú pháp của một tập hợp con của CSP

Cú pháp của một tập hợp con của CSP được đưa ra như dưới đây Ở đây, 𝑃 và 𝑄

Trang 28

là các tiến trình 𝑎 và 𝑑 có nghĩa là các sự kiện trong khi b biểu thị một biến Boolean 𝑐

là tên của một kênh

𝑃, 𝑄 ∷= 𝑺𝒌𝒊𝒑|𝑺𝒕𝒐𝒑|𝑎 ⟶ 𝑃|𝑃; 𝑄|𝑃Q|P|||𝑄|𝑃||𝑄 𝑃 ⊲ 𝑏 ⊳ 𝑄|c! e ⟶ 𝑃|𝑐? 𝑥

⟶ 𝑃|𝑃[|𝑋|]𝑄

 𝑺𝒌𝒊𝒑 cho biết một tiến trình cơ bản kết thúc thành công

 𝑺𝒕𝒐𝒑 trình bày rằng một tiến trình không thể làm bất cứ điều gì nữa

 𝑎 ⟶ 𝑃 biểu thị một tiến trình đầu tiên tham gia vào hành động 𝑎, sau đó hoạt động như tiến trình 𝑃

 𝑃; 𝑄 cho biết chỉ khi tiến trình 𝑃 kết thúc thì tiến trình 𝑄 mới có thể bắt đầu thực hiện

 𝑃Q viết tắt của sự lựa chọn bên ngoài Một tiến trình hoạt động theo đặc điểm

kỹ thuật của 𝑃 hoặc 𝑄 Tuy nhiên, sự lựa chọn phụ thuộc vào môi trường

 𝑃|||𝑄 mô tả hai tiến trình chạy đồng thời mà không có đồng bộ hóa, trong đó ||| biểu thị sự xen kẽ

 𝑃||𝑄 có nghĩa là tiến trình 𝑃 và tiến trình 𝑄 thực hiện song song Phải đồng bộ hóa khi đối mặt với các sự kiện giống nhau

 𝑃 ⊲ 𝑏 ⊳ 𝑄 hiển thị sự lựa chọn có điều kiện Nếu điều kiện b đúng, nó hoạt động giống như 𝑃; ngược lại, như 𝑄

 𝑐! 𝑒 ⟶ 𝑃 mô tả một tiến trình gửi một giá trị 𝑒 qua kênh 𝑐, sau đó hoạt động như một tiến trình 𝑃

 𝑐? 𝑥 ⟶ 𝑃 đại diện cho một tiến trình nhận một giá trị và gán nó cho biến 𝑥, và sau đó, hành vi tiếp theo giống như tiến trình 𝑃

 𝑃[|𝑋|]𝑄 chỉ rằng các tiến trình P và Q thực hiện các biến cố đồng bộ trên tập hợp

X của các kênh

2.2.2 Tổng quát về bộ công cụ phân tích tiến trình PAT

PAT, là viết tắt của Process Analysis Toolkit – Bộ công cụ phân tích tiến trình,

Trang 29

một công cụ dựa trên CSP và được thiết kế để áp dụng các kỹ thuật kiểm chứng mô hình

để phân tích hệ thống tự động [10, 12] Nó đi kèm với giao diện thân thiện với người dùng, trình soạn thảo mô hình đặc trưng và giả lập hoạt hình Nó hỗ trợ xác định và kiểm chứng hệ thống bằng nhiều ngôn ngữ mô hình hóa khác nhau và đã có nhiều hệ thống khác nhau như hệ thống thời gian thực tương tranh, hệ thống cân bằng, nhận dạng hoạt động và trong các lĩnh vực khác đã được kiểm chứng trong PAT

PAT là một khuôn khổ độc lập để hỗ trợ soạn thảo, mô phỏng và lập luận các hệ thống đồng thời, thời gian thực và các miền khả thi khác Nó đi kèm với giao diện thân thiện với người dùng, trình chỉnh sửa mô hình nổi bật và trình mô phỏng hoạt hình Quan trọng nhất, PAT thực hiện các kỹ thuật kiểm tra mô hình khác nhau phục vụ cho các thuộc tính khác nhau như không có bế tắc, không có phân kỳ, khả năng tiếp cận, thuộc tính LTL với các giả định công bằng, kiểm tra sàng lọc và kiểm tra mô hình xác suất [18, 19] Để đạt được hiệu suất tốt, các kỹ thuật tối ưu hóa nâng cao được thực hiện trong PAT, ví dụ như giảm thứ tự từng phần, giảm đối xứng, trừu tượng bộ đếm tiến trình, kiểm tra mô hình song song Cho đến nay, PAT đã có 4370+ người dùng đã đăng ký từ 1341+ tổ chức trong 150 quốc gia và khu vực

2.2.2.1 Các chức năng chính của PAT

Môi trường chỉnh sửa của PAT thân thiện với người dùng (nhiều tài liệu, đa ngôn ngữ và các tính năng chỉnh sửa cú pháp nâng cao) để giới thiệu các mô hình

Trình mô phỏng thân thiện với người dùng để mô phỏng tương tác và trực quan các hành vi của hệ thống; bằng cách mô phỏng ngẫu nhiên, mô phỏng từng bước do người dùng hướng dẫn, tạo biểu đồ trạng thái hoàn chỉnh, phát lại theo dõi, trực quan hóa v.v

Dễ dàng xác minh để phân tích không có bế tắc, phân tích khả năng tiếp cận, kiểm tra logic thời gian tuyến tính trạng thái / sự kiện (có hoặc có công bằng) và kiểm tra sàng

Trang 30

lọc Một loạt các ví dụ tích hợp khác nhau, từ hệ thống điểm chuẩn đến các thuật toán / giao thức mới được phát triển

Hình 2.5: Kiến trúc PAT

Kiến trúc này cho phép dễ dàng phát triển các ngôn ngữ mới bằng cách cung cấp các quy tắc cú pháp và ngữ nghĩa Đến nay, PAT có 11 mô-đun đã được phát triển, cụ thể là Communicating Sequential Processes (CSP) Module, Real-Time System Module, Probability CSP Module, Probability RTS Module, Labeled Transition System Module, Timed Automata Module, NesC Module, OCR Module, Stateflow(MDL) Module, Security Module and Web Service (WS) Module Trong đó mô-đun CSP có chức năng

hỗ trợ mô hình hóa và kiểm chứng

Trang 31

- Các ký hiệu dành riêng cho định nghĩa tiến trình được hiển thị bằng màu đỏ

- Công thức LTL trong các xác nhận sẽ được in đậm và được hiển thị bằng màu đỏ

- Ví dụ, ghi chú, nhận xét thì có màu xanh lá cây, v.v

có thể được thực hiện được mô tả như sau:

- Nhấp vào nút Mô phỏng để thực hiện mô phỏng ngẫu nhiên hệ thống Trình

mô phỏng sẽ chọn ngẫu nhiên một sự kiện đã bật ở trạng thái hiện tại để thực thi Mô phỏng sẽ dừng khi không còn sự kiện nào được kích hoạt hoặc số trạng thái được truy cập lớn hơn giới hạn Trạng thái hiện tại được thể hiện bằng

Trang 32

màu đỏ trong biểu đồ

- Nhấp đúp vào sự kiện trong danh sách những sự kiện được kích hoạt để thực hiện mô phỏng từng bước Danh sách những sự kiện được kích hoạt sẽ chỉ hiển thị các sự kiện đã bật cho trạng thái hiện tại (được hiển thị bằng màu đỏ trong biểu đồ) Các sự kiện được hiển thị bằng màu xanh dương là các sự kiện không được truy cập trong khi màu đen là các sự kiện được truy cập cho trạng thái hiện tại

- Nút Tạo đồ thị sẽ tạo biểu đồ trạng thái hoàn chỉnh trong một cú nhấp chuột

Số trạng thái được hiển thị bị giới hạn bởi giới hạn hiển thị (300 theo mặc định) để tránh việc mô hình không kết thúc

- Chọn bất kỳ trạng thái nào trong danh sách Chuỗi sự kiện, sau đó nhấp vào nút Biểu diễn chuổi sự kiện tự động bắt đầu từ trạng thái đã chọn Bạn có thể quay lại bất kỳ trạng thái nào trước đó

- Nút Simulate Trace cho phép người dùng viết script để thực hiện mô phỏng

lệ Trình xác minh PAT còn cung cấp hai chế độ để xác minh, ví dụ: chế độ nhấp chuột

và chế độ hàng loạt

Chế độ nhấp chuột: Sử dụng chế độ này để xác minh các thuộc tính, bạn phải nhấp thủ công lần lượt vào các xác nhận và chọn các tùy chọn bổ sung được mô tả ở trên

xem Hình 2.7 Lưu ý: Nhiều lựa chọn xác nhận được hỗ trợ từ phiên bản 3.4

Chế độ hàng loạt: Sử dụng chế độ này, bạn có thể nhận được tất cả các thuộc tính

Trang 33

của một loạt tệp mô hình được xác minh với các lựa chọn tùy chọn nhất định trong một lần Toàn bộ kết quả xác minh sẽ được ghi vào một tệp đầu ra mà bạn đã xác định Các kết quả này có thể chuyển sang excel bằng cách nhấp vào nút Tạo Báo cáo Excel

Trang 34

Hình 2.8: Mô-đun CSP

Quy trình xử lý của Mô-đun CSP như sau:

- Các thông tin đầu vào bao gồm: Mô hình hệ thống được đặc tả bằng ngôn ngữ CSP (system models), các tính chất của hệ thống cần kiểm tra (Xác nhận LTL, xác nhận khả năng tiếp cận, xác nhận bế tắc, xác nhận sàng lọc)

- Mô hình hệ thống được chuyển đổi thành dạng biểu diễn nội bộ (internal processes collection) bởi bộ phân tích ngôn ngữ (language parse), đồng thời các tính chất cần kiểm tra cũng được chuyển thành dạng biểu diễn nội bộ (assersions collection) bởi bộ phân tích các khẳng định và bộ chuyển đổi (assersions parser and buchi automata translator)

- Từ các dữ liệu biểu diễn nội bộ PAT có thể tiến hành mô phỏng hệ thống

- Cũng với các dữ liệu biểu diễn nội bộ, các thuật toán kiểm chứng mô hình tương ứng với các loại thuộc tính cần kiểm tra được áp dụng Nếu thuộc tính không thỏa mãn sẽ có một phản ví dụ được chỉ ra, phản ví dụ này có thể được chuyển tới bộ mô phỏng để mô phỏng chuỗi hành vi dẫn tới kết quả không

Ngày đăng: 18/03/2024, 15:25

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Wanling Xie, Huibiao Zhu, Xi Wu, Shuangqing Xiang, Jian Guo & Phan Cong Vinh (2017): Modeling and Verifying HDFS Using Process Algebra. Mobile Netw Appl (2017) 22:318-331. doi: 10.1007/s11036-017-0812-2 Khác
[2]. Azzedin F (2013) Towards a scalable HDFS architecture 2013 International conference on collaboration technologies and systems, CTS 2013, San Diego, CA, USA, May 20-24, 2013, pp 155–161. doi:10.1109/CTS.2013.6567222 Khác
[3]. Bergstra JA, Klop JW (1985) Algebra of communicating processes with abstraction. Theor Comput Sci 37:77–121. doi:10.1016/0304-3975(85)90088-X[4].Bui D, Hussain S, Huh E, Lee S (2016) Adaptive replication management inHDFS based on supervised learning. IEEE Trans Knowl Data Eng 28(6):1369–1382.doi:/10.1109/TKDE.2016.2523510 Khác
[5]. Buyya R, Yeo CS, Venugopal S, Broberg J, Brandic I (2009) Cloud computing and emerging IT platforms: Vision, hype, and reality for delivering computing as the 5th utility. Future Generation Comp Syst 25(6):599–616.doi:10.1016/j.future.2008.12.001 Khác
[6]. Dean J, Ghemawat S (2008) Mapreduce: simplified data processing on large clusters. Commun ACM 51(1):107–113. doi:10.1145/1327452.1327492 Khác
[7]. Ghemawat S, Gobioff H, Leung S (2003) The google file system Proceedings of the 19th ACM symposium on operating systems principles 2003, SOSP 2003, Bolton Landing, NY, USA, October 19-22, 2003, pp 29–43. doi:10.1145/945445.945450 [8]. Roscoe AW (2007) Understanding Concurrent Systems (Texts in ComputerScience) 2010th Edition. ISBN: 978-1-84882-257-3. doi:10.1007/978-1-84882-258- 0 Khác
[9]. Shvachko K, Kuang H, Radia S, Chansler R (2010) The Hadoop distributed file system. In: IEEE 26th symposium on mass storage systems and technologies, MSST 2012, Lake Tahoe, Nevada, USA, May 3-7, 2010, pp 1–10 Khác
[10]. Si Y, Sun J, Liu Y, Dong JS, Pang J, Zhang SJ, Yang X (2014) Model checking with fairness assumptions using PAT. Frontiers of Computer Science 8(1):1–16.doi:10.1007/s11704-013-3091-5 Khác
[11]. Sun J, Liu Y, Dong JS (2008) Model checking CSP revisited: Introducing a process analysis toolkit. In: Proceedings of the Leveraging Applications of Formal Methods, Verification and Validation, 3rd International Symposium, ISoLA 2008, Porto Sani, Greece, October 13-15, 2008, pp 307–322. doi:10.1007/978-3-540- 88479-8 22 Khác
[12]. Sun J, Liu Y, Dong JS, Pang J (2009) Pat: Towards flexible verification under fairness. In: Proceedings of the 21th international conference on computer aided verification (CAV’09), Springer, lecture notes in computer science, vol 5643, pp 709–714. doi:10.1007/978-3-642-02658-4 59 Khác
[13]. Sun J, Liu Y, Dong JS, Liu Y, Shi L, Andre´ E (2013) Modeling and verifying hierarchical real-time systems using stateful timed CSP. ACM Trans Softw Eng [14]. Zhang Q, Cheng L, Boutaba R (2010) Cloud computing: state-ofthe-art andresearch challenges. J Internet Services and Applications 1(1):7–18.doi:10.1007/s13174-010-0007-6 Khác
[17]. Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung (2003) Proceedings of the 19th ACM Symposium on Operating Systems Principles, ACM, Bolton Landing, NY (2003), pp. 20-43. doi:10.1145/945445.945450 Khác
[18]. Remco Dijkman, Sander Peters, Arthur ter Hofstede (2016) A Toolkit for Streaming Process Data Analysis. In: 2016 IEEE 20th International Enterprise Distributed Object Computing Workshop (EDOCW). ISSN: 2325-6605. doi Khác

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w