Tiểu luận Hệ Tin Học Phân Tán
LỜI MỞ ĐẦU
Hệ tin học phân tán là hệ thống rất đa dạng, đa diện, phức tạp về mặt cấu trúc, là vùng
tri thức hiện đại đang được các chuyên gia công nghệ thông tin đặc biệt quan tâm và đổi
mới rất nhanh chóng.
Một trong những tư tưởng lớn của các hệ phân tán là phân tán hóa các q trình xử lý
thơng tin và thực hiện các cơng việc đó trên các trạm xa nhau. Đó là cơ sở để xây dựng
các hệ ứng dụng lớn như thương mại điện tử, giáo dục điện tử, chính phủ điện tử. . .
Phân tán hóa các q trình xử lý, tạo nên ưu thế của hệ có thể đáp ứng việc giải quyết
các bài toán lớn, một cách nhanh chóng, nhưng cũng tạo tính phức tạp, nan giải trong các
yêu cầu thiết lập hệ. Việc hợp lực của các thành viên trong hệ, dẫn đến hàng loạt các vấn
đề như: định danh, cấp phát tài nguyên dùng chung (đảm bảo tránh tương tranh), giải
quyết sự cố tạo nên tính tin cậy của hệ. . . Để đảm bảo tính gắn bó của hệ, yêu cầu đặt ra
trước hết là đồng bộ hóa các tiến trình. Với hệ phân tán (khơng có bộ nhớ chung, bộ tạo
xung đồng hồ chung), khả năng gắn bó và việc đồng bộ hóa cho hệ chỉ dựa trên phương
tiện duy nhất là truyền thông điệp, nên lời giải cho yêu cầu đồng bộ hóa thường chỉ dừng
lại ở mức chấp nhận được đối với mỗi hệ
Trong giới hạn của một báo cáo tiểu luận kết thúc môn học, nội dung của bản báo
cáo sẽ được trình bày theo chủ đề trong phần “ Đề tài tiểu luận và bài tập môn Hệ Tin
Học Phân Tán” của PGS TS. Lê Văn Sơn, bao gồm :
Chương I: MƠ HÌNH CLIENT/SERVER .
Chương II: VIẾT CHƯƠNG TRÌNH MƠ PHỎNG Q TRÌNH ĐỒNG BỘ
CỦA BÃI ĐẬU XE Ơ TƠ CĨ n CỔNG ( n 2).).
Để hoàn thành tiểu luận này, tôi xin chân thành cám ơn sự chỉ bảo tận tình của Thầy
giáo: PGS,TS.Lê Văn Sơn và các bạn học viên trong lớp đã nhiệt tình góp ý.
Huỳnh Cơng Trường – Khoa học máy tính K24 Trang 1
Tiểu luận Hệ Tin Học Phân Tán
Chương I
MƠ HÌNH CLIENT / SERVER
I.1. NGUN TẮC HOẠT ĐỘNG CLIENT/SERVER :
Mơ hình Client/Server là một hệ thống gồm ít nhất một máy chủ ( Server ) và các
máy trạm ( Workstation hay Client ) nối vào máy chủ đó thơng qua mơi trường mạng.
Trên Server cài đặt hệ điều hành mạng ( Network Operating System ) để điều khiển hệ
thống. Trên Client có thể cài đặt bất cứ phần mềm nào, miễn là có khả năng giao tiếp với
Server. Hệ thống mạng ở đây có thể là mạng cục bộ hay mạng diện rộng. Đôi khi Server
cũng đóng vai trị của một Client khi nó yêu cầu tài nguyên từ một Server khác. Có thể
nói mơ hình Client/Server là mơ hình có ảnh hưởng lớn đến ngành Công nghệ thông tin.
Mơ hình Client/Server đã biến những máy tính riêng lẻ có khả năng xử lí thấp thành
một mạng các máy chủ và các máy trạm có khả năng xử lí gấp hàng ngàn lần những
chiếc máy tính mạnh nhất.
Mơ hình Client/Server cho phép một ứng dụng được chia thành nhiều nhiệm vụ. Mỗi
nhiệm vụ có thể thực hiện trên các môi trường khác nhau dưới hệ điều hành khác nhau,
giao thức mạng khác nhau, được phát triển và duy trì độc lập cũng như thực hiện trên
nhiều máy tính khác nhau trong mạng.
Vấn đề quan trọng ở đây là sự phân chia nhiệm vụ đối với từng thành phần. Tổ chức
thực hiện, phân chia tài nguyên cho từng thành phần cũng là vấn đề quan tâm. Tất nhiên,
việc tổ chức tốt sẽ đem lại hiệu quả cao.
Client thông qua phần mềm gởi yêu cầu truy vấn thông tin hoặc cập nhật thông tin
như xem dung lượng đĩa, sửa đổi hay xoá bỏ tập tin, thư mục.v.v....... về cho Server,
Server nhận được yêu cầu, sau khi kiểm tra quyền truy cập của người dùng, tiến hành giải
quyết yêu cầu đó rồi gởi trả về cho Client.
Khi nhận được yêu cầu cập nhật thơng tin, ngồi việc kiểm tra quyền cập nhật,
Server cịn đảm bảo tính hồn thiện của việc cập nhật. Mơ hình Client/Server đã giúp
phát triển một phương thức ứng dụng mới là việc phân chia ứng dụng thành nhiều thành
phần, mỗi thành phần thực hiện những chức năng chuyên biệt. Thông thường một ứng
dụng được chia làm 03 phần :
Giao diện người dùng ( User interface ) : Thành phần này liên quan đến các chức
năng tương tác với người dùng như phát ra yêu cầu dữ liệu đối với người dùng hoặc cách
thức đón nhận dữ liệu từ người sử dụng. Để tiến hành thực hiện giao diện này thuộc về
phần Logic trình bày.
Logic trình bày ( Presentation Logic ) : Thành phần này là cầu nối giữa người dùng
và ứng dụng như cung cấp chức năng của ứng dụng cho người dùng và nhận những lệnh
từ người dùng cho ứng dụng. Vì thành phần này đảm đương trách nhiệm hiển thị, định
dạng các thành phần giao tiếp với người dùng như định dạng màn hình, quản lí các hộp
Huỳnh Cơng Trường – Khoa học máy tính K24 Trang 2
Tiểu luận Hệ Tin Học Phân Tán
thoại, các cửa sổ, đọc ghi các thông tin trên màn hình, điều khiển bàn phím, chuột, ....
hoặc các cơ chế trợ giúp theo ngữ cảnh, kiểm tra quyền truy cập cho nên thành phần này
được thiết kế sao cho càng thân thiện với người dùng càng tốt.
Logic ứng dụng ( Application Logic ) : Thành phần này đóng vai trị quan trọng, là
phần lõi của một chương trình. Nó đảm đương việc thực thi ứng dụng, cung cấp tất cả các
chức năng có thể có của chương trình cho thành phần logic trình bày ở trên như đáp ứng
các yêu cầu từ người dùng, quản lí các cơ sở dữ liệu, ... Thơng thường nó gồm hai phần :
Thao tác dữ liệu ( Data Processing logic ) và Xử lí dữ liệu (Database Processing).
Mạng Server
Clien
t
CSD
L
Mơ hình Client/Server
Như vậy, một hệ thống tổ chức theo mơ hình Client/Server gồm ba thành phần :
Client, Server và mạng. Mỗi thành phần đều có yêu cầu về phần cứng và phần mềm.
I.1.1. CLIENT :
Yêu cầu tối thiểu của Client là có khả năng phát ra yêu cầu tới Server và hiển thị kết
quả trả về từ Server. Nó có thể là các trạm làm việc, máy tính để bàn ( Desktop) hoặc
minicomputer. Client có thể chạy bất cứ hệ điều hành nào cũng như phần mềm nào,
không phụ thuộc vào hệ điều hành mạng. Dĩ nhiên ta đã tính tới khả năng giao tiếp với
các thiết bị truyền thông để thực hiện trao đổi dữ liệu với Server cũng như các Client
khác.
Tuỳ theo loại ứng dụng mà có thể yêu cầu cấu hình đối với Client. Client có thể tổ
chức thực hiện các cơng việc riêng của mình, xử lí dữ liệu trước khi gởi tới Server hoặc
Huỳnh Công Trường – Khoa học máy tính K24 Trang 3
Tiểu luận Hệ Tin Học Phân Tán
dữ liệu gởi về từ Server. Tự nó điều độ các tài ngun cục bộ của nó mà khơng ảnh
hưởng tới Server.
I.1.2).. SERVER:
Vì Server thực hiện nhiều cơng việc cho nên nó phải là một máy đủ mạnh như khả
năng bộ xử lí, khơng gian bộ nhớ, dung lượng đĩa cứng và độ tin cậy cao, ....
Máy Server cần có hệ điều hành thích hợp để chạy. Tuỳ theo yêu cầu của hệ thống
mà lựa chọn phần mềm cho Server một cách hợp lí. Nó có thể là phần mềm quản trị cơ sở
dữ liệu, một phần hoặc toàn bộ phần mềm mạng.... Server cung cấp dữ liệu cho các
Client khi có các yêu cầu. Đảm bảo hệ thống hoạt động một cách hiệu quả, thông suốt
tránh tình trạng tắc nghẽn, xung đột khi có các u cầu giống nhau từ phía các Client.
Trên Server cần có các giải pháp tối ưu để chia sẻ tài nguyên dùng chung cho các nhiệm
vụ cũng như cho các Client.
Trong hệ thống có nhiều Server, một Server có thể gởi yêu cầu đến các Server khác,
khi đó nó đóng vai trị là một Client. Như vậy, việc xác định đâu là Client, đâu là server
chỉ có tính tương đối. Điều này tạo ra tính mềm dẻo trong hệ thống.
Trên hệ thống có nhiều Server, mỗi Server có một chức năng nhất định. Người ta
phân Server ra làm 06 loại tuỳ theo chức năng của chúng như sau :
Application Server : Server này đóng vai trị Host trong các hệ thống Host base
Processing.
File Server : Quản lý file của hệ thống.
Data Server : Xử lí dữ liệu, tổ chức, lưu trử dữ liệu, thực hiện các truy vấn dữ liệu
và các cơ chế toàn vẹn dữ liệu.
Compute Server : Tương tác dữ liệu, Server này hoạt động dựa trên Compute Server
và Data Server. Khi nó yêu cầu thao tác dữ liệu, Compute Server chuyển giao tác vụ và
Data Server xử lí dữ liệu.
Communication Server : Đảm đương chức năng cầu nối với một Server khác ở xa
hoặc mạng khác.
I.1.3. MẠNG:
Mạng là yếu tố quan trọng của mô hình Client/Server. Trước hết nó là nền tảng trên
đó ta triển khai mơ hình.... Mạng đảm bảo cho việc giao tiếp giữa Client và Server thông
qua các hoạt động truyền thông. Mạng cũng là môi trường đảm bảo sự phân tán chức
năng đến Client.
Phần cứng yêu cầu của mạng là mạng máy tính thực sự, cung cấp khả năng giao tiếp
với nhau giữa các thành phần trong mạng. Các thành phần cụ thể như cáp, card mạng, các
thiết bị liên kết Client với Server ( router, gateway, bridge ).
Phần mềm mạng đảm bảo duy trì các hoạt động truyền thơng trên mạng. Hệ điều
hành mạng chịu trách nhiệm quản lí các vấn đề liên quan đến việc truy xuất trên mạng
Huỳnh Cơng Trường – Khoa học máy tính K24 Trang 4
Tiểu luận Hệ Tin Học Phân Tán
của Server. Mỗi một hệ điều hành mạng có các qui tắc giao tiếp khác nhau giữa Client và
Server. Các qui tắc này được gọi là giao thức.
I.1.3.1 GIAO THỨC
Để máy tính có thể liên lạc với nhau qua mạng, chúng phải sử dụng cùng 1 ngơn ngữ
hay cịn gọi là giao thức (Protocol). Giao thức là một hệ luật chuẩn cho phép các máy
tính trong mạng liên lạc với nhau
- TCP/IP là viết tắt của Transmission Control Protocol (Giao thức Điều Khiển
Truyền Thông) / Internet Protocol (Giao thức Internet).
- TCP/IP khơng chỉ gồm 2 giao thức mà thực tế nó là tập hợp của nhiều giao
thức. Chúng ta gọi đó là 1 Hệ Giao Thức hay Bộ Giao Thức (Suite Of Protocols).
- Để cho các máy tính trao đổi dữ liệu với nhau TCP/IP sử dụng mơ hình truyền
thơng 4 tầng hay cịn gọi là Mơ Hình DoD (Mơ hình của Bộ Quốc Phịng Mỹ). Các tầng
trong mơ hình này là (Theo thứ tự từ trên xuống)
- Tầng ứng dụng (Application Layer)
- Tầng Giao Vận (Transport Layer)
- Tầng Liên Mạng (Internet Layer)
- Tầng Giao Diện Mạng (Network Interface Layer)
I..1.3.1.1 Tầng Giao Diện Mạng (Network Interface Layer):
- Tầng Giao Diện Mạng có trách nhiệm đưa dữ liệu tới và nhận dữ liệu từ phương
tiện truyền dẫn. Tầng này gồm các thiết bị phần cứng vật lí chẳng hạn như Card Mạng và
Cáp mạng
- 1 Card Mạng chẳng hạn card Ethernet chứa 1 số HEX 12 kí tự (00-18-37-03-C0-F4)
được gọi là Địa Chỉ MAC (Media Access Control) hay Địa Chỉ Truy Nhập Phương Tiện .
MAC đóng vai trị quan trọng trong việc gán địa chỉ và truyền dữ liệu.
- Một số giao thức tiêu biểu thuộc tầng này gồm :
+ ATM (Asynchronous Transfer Mode)
+ Ethernet
+ Token Ring
+ FDDI (Fiber Distributed Data Interface)
+ Frame Relay
I..1.3.1.2 Tầng Liên Mạng (Internet Layer):
Nằm bên trên tầng giao diện mạng. Tầng này có chức năng gán địa chỉ, đóng gói và
định tuyến (Route) dữ liệu. 4 giao thức quan trọng nhất trong tầng này gồm:
+ IP (Internet Protocol): Có chức năng gán địa chỉ cho dữ liệu trước khi truyền và
định tuyến chúng tới đích.
+ ARP (Address Resolution Protocol): Có chức năng biên dịch địa chỉ IP của máy
đích thành địa chỉ MAC.
+ ICMP (Internet Control Message Protocol): Có chức năng thông báo lỗi trong
trường hợp truyền dữ liệu bị hỏng.
Huỳnh Cơng Trường – Khoa học máy tính K24 Trang 5
Tiểu luận Hệ Tin Học Phân Tán
+ IGMP (Internet Group Management Protocol): Có chức năng điều khiển truyền đa
hướng (Multicast)
I..1.3.1.3 Tầng Giao Vận (Transport Layer):
Có trách nhiệm thiết lập phiên truyền thơng giữa các máy tính và quy định cách
truyền dữ liệu. 2 giao thức chính trong tầng này gồm:
+ UDP (User Datagram Protocol): Còn gọi là Giao Thức Gói Người Dùng. UDP
cung cấp các kênh truyền thơng phi kết nối nên nó khơng đảm bảo truyền dữ liệu 1 cách
tin cậy. Các ứng dụng dùng UDP thường chỉ truyền những gói có kích thước nhỏ, độ tin
cậy dữ liệu phụ thuộc vào từng ứng dụng
+ TCP (Transmission Control Protocol): Ngược lại với UDP, TCP cung cấp các kênh
truyền thông hướng kết nối và đảm bảo truyền dữ liệu 1 cách tin cậy. TCP thường truyền
các gói tin có kích thước lớn và u cầu phía nhận xác nhận về các gói tin đã nhận.
I..1.3.1.4 Tầng Ứng Dụng (Application Layer):
Gồm nhiều giao thức cung cấp cho các ứng dụng người dùng. Được sử dụng để định
dạng và trao đổi thông tin người dùng. 1 số giao thức thông dụng trong tầng này là:
+ DHCP (Dynamic Host Configuration Protocol): Giao Thức Cấu Hình Trạm Động
+ DNS (Domain Name System): Hệ Thống Tên Miền
+ SNMP (Simple Network Management Protocol): Giao Thức Quản Lý Mạng Đơn
Giản
+ FTP (File Transfer Protocol): Giao Thức Truyền Tập Tin
+ TFTP (Trivial File Transfer Protocol): Giao Thức Truyền Tập Tin Bình Thường
+ SMTP (Simple Mail Transfer Protocol): Giao Thức Truyền Thư Đơn Giản
+ TELNET
Bảng sau mô tả khái quát về Bộ giao thức TCP/IP
Huỳnh Công Trường – Khoa học máy tính K24 Trang 6
Tiểu luận Hệ Tin Học Phân Tán
I.2).. PHÂN LOẠI ỨNG DỤNG CLIENT/SERVER
Đối với các ứng dụng Client/Server tuỳ thuộc vào yêu cầu của nó mà giao nhiệm vụ
cho Client hay Server để thực hiện một cách có hiệu quả nhất. Căn cứ vào sự bố trí nhiệm
vụ trên Client hay Server mà ta phân thành các loại ứng dụng Client/Server như sau :
I.2)..1. HOST BASE PROCESSING
Đây là mơ hình tương tự như mơ hình Host-Termainal. Mọi cơng việc đều do Server
xử lí, Client chỉ có nhiệm vụ hiển thị kết quả. Khi đó các thành phần của ứng dụng đều
đặt tại cùng một hệ thống. Như vậy ứng dụng bị hạn chế tài nguyên từ Client hay các
Server khác.
I.2)..2).. CLIENT BASE PROCESSING
Đối với loại này thì thành phần Logic ứng dụng được đặt tại Client, Server chỉ có
nhiệm vụ phân phối xử lí cho các Client. Tuy nhiên, có nhiều cách phân chia thành phần
xử lí ứng dụng giữa Client ( thường gồm Logic trình bày và một phần Logic ứng dụng )
và Server. Trên quan điểm phân phối các thành phần đó ta có thể chọn các mơ hình cụ
thể:
Client đảm đương việc trình bày.
Client nắm vai trò quản trị cơ sở dữ liệu.
Server xử lí hầu hết dữ liệu nhưng Client có thể thao tác dữ liệu.
Mơ hình này tỏ ra tiên tiến hơn ở sự phân tán chức năng giữa Client và Server tuỳ
theo yêu cầu cụ thể.
I.2)..3. COOPERATIVE PROCESSING
Loại này được xử lí theo cơ chế Peer - to Peer, trong đó vai trịi của Client và Server
như nhau. Mỗi thành phần có thể yêu cầu các thành phần khác cung cấp dịch vụ và ngược
lại. Như vậy, vai trò Client và Server thay đổi tuỳ theo đối tượng nào yêu cầu.
I.3 ƯU NHƯỢC ĐIỂM CỦA MÔ HÌNH CLIENT/SERVER
I.3.1. ƯU ĐIỂM
Mơ hình Client/Server tạo ra khả năng mềm dẻo trong quan hệ giữa Client và Server.
Client có thể đảm đương một số nhiệm vụ thay cho Server và Server có thể phân phối tác
vụ cho nó. Điều này làm giảm bớt gánh nặng cho Server, tận dụng khả năng của Client.
Như vậy chi phí cũng giảm đáng kể.
Client/Server mở ra khả năng sử dụng tài nguyên dùng chung trên mạng như phần
mềm, máy in đĩa cứng,.... Các tài nguyên này trước đây chỉ nằm trên một hệ thống do đó
chỉ được khai thác trực tiếp với Host đó. Nay nó được phân phát cho các nhiệm vụ, các
trạm làm việc cũng như các Server khác trong cùng hệ thống.
Client/Server cho phép phối hợp quản lý tập trung và khơng tập trung. Các chức
năng có thể được phân tán trên các nút khác nhau, do đó làm tăng tính an toàn của hệ
thống cũng như khả năng quá tải tập trung trên một Server.
Huỳnh Công Trường – Khoa học máy tính K24 Trang 7
Tiểu luận Hệ Tin Học Phân Tán
Client/Server cho phép dùng giao diện đồ hoạ trên các trạm giúp cho việc sử dụng dễ
dàng hơn, các ứng dụng được phát triển nhanh, dễ được người dùng chấp nhận.
Client/Server cũng chú ý và khuyến khích các hệ thống mở. Client và Server có thể
chạy trên các cấu hình cứng và mềm khác nhau, giải phóng sự phụ thuộc của người sử
dụng vào một cấu hình cụ thể, một nhà cung cấp cụ thể.
I.3.2).. NHƯỢC ĐIỂM
Bên cạnh những ưu điểm trên, Client/Server cũng thể hiện những nhược điểm của
chính nó :
Khi ứng dụng chủ yếu đặt ở Server, Server có nhiều nguy cơ tắc nghẽn, xung đột. Do
đó địi hỏi các chiến lược phân chia tài nguyên, phân phối nhiệm vụ cũng như đáp ứng
các nhu cầu một cách có hiệu quả.
Đối với các ứng dụng phân tán, khi phân chia nhiệm vụ phức tạp hơn nhiều so với
các ứng dụng khơng phân tán.
Mơi trường có nhiều người sử dụng đòi hỏi các cơ chế bảo mật dữ liệu. Cần phải có
hiểu biết và phương pháp kỹ thuật mới có thể giải quyết vấn đề một cách tối ưu.
I.4 MỘT SỐ ỨNG DỤNG: Kiến trúc Client-Server của BOINC
Công nghệ Client-Server đề cập đến mơ hình client-server mà Boinc hoạt động dựa
trên nó. Framework của Boinc bao gồm 2 lớp hoạt động theo kiển trúc Client-Server.
Một khi phần mềm Boinc server được cài đặt trên 1 máy, nó sẽ bắt đầu gửi các task đến
cho Clients. Các hoạt động tính tốn được thực hiện phía Client (client-side) và kết quả
sau đó sẽ được upload lên phía server (server-side)
I.4.1. THIẾT KẾ KIẾN TRÚC CỦA BOINC
- Boinc được thiết kế để trở thành một kiến trúc mở và miễn phí cho các dự án tính
tốn phân tán
- Boinc bao gồm một hệ thống server và phần mềm client giao tiếp với nhau để
phân chia, xử lý và trả về kết quả của các workunit.
I.4.2. KIẾN TRÚC CỦA BOINC SERVER
Một thành phần chính của Boinc là server backend (xương sống). Server này có thể
chạy trên 1 hay nhiều máy, để cho phép Boinc có thể dễ dàng mở rộng phạm vi, quy mô
của các dự án. Boinc server chạy trên các máy tính với hệ điều hành Linux, và dùng
APACHE, PHP, MySQL làm nền tảng cho hệ thống web và hệ cơ sở dữ liệu của nó.
Các hoạt động tính tốn khoa học chạy trên các máy thành viên và các kết quả sẽ
được phân tích sau khi nó được gửi từ các máy PC của người tình nguyện lên cơ sở dữ
liệu của các nhà nghiên cứu khoa học và được kiểm tra (validator) bởi server backend.
Q trình kiểm tra này địi hỏi chạy tất cả các task (nhiệm vụ, workunit) trên nhiều máy
tình nguyện và so sánh các kết quả của 1 workunit với nhau.
Boinc server cũng cung cấp các chức năng khác như :
- Homogeneous redundancy (Chỉ gửi các workunit đến các máy có cùng platform.
VD : các máy có HDH Window XP SP 2) để giúp cho q trình validator được dễ dàng
và chính xác hơn.
- Workunit trickling (Gửi các thông tin đến server trước khi các workunit hoàn
thành) giúp cho việc đánh giá để có thể gửi 1 workunit mới kịp thời, giảm tối thiểu thời
gian nhàn rỗi của máy tình nguyện.
Huỳnh Cơng Trường – Khoa học máy tính K24 Trang 8
Tiểu luận Hệ Tin Học Phân Tán
- Locality Scheduling (Gửi các workunit đến các máy tính đã có các file cần thiết để
có thể thực thi ngay và tạo các work theo yêu cầu).
- Phân phát công việc dựa trên các tham số của host (VD : workunit u cầu 512Mb
RAM, thì nó sẽ chỉ được gửi tới các host có ít nhất từng ấy RAM.)
Phía Server thường gồm 2 chương trình CGI và 5 deamons (chương trình hay tiến
trình ngầm), được viết bằng ngơn ngữ C++. Viêc tính tốn được thực hiện ở phía Client
được gọi là workunit. Một kết quả (result) là 1 thể hiện (instance) của workunit, thậm chí
ngay cả khi workunit chưa hồn thành. Một project khơng nhất thiết phải tạo ra các result
mà chính server đã tạo ra các result 1 cách tự động tương ứng với các workunit.
Một chương trình CGI lập lịch xử lý các yêu cầu từ phía client, nhận các workunit đã
hồn thành và gửi đi các cơng việc mới. (cgi)
Một chương trình CGI xử lý việc upload file. (file_upload_handler)
Bộ lập lịch không lấy các result (workunit chưa hoàn thành – Thực chất các result là
đã được tạo ngay từ lần đầu tiên các workunit được tạo ra và được lưu sẵn trong CSDL.
Tuy nhiên chỉ khi nào workunit tương ứng xử lý xong, gửi lên server thì result tương ứng
đó mới được đánh dấu là đã hồn thành. Do đó khái niệm result ở đây có thể coi là
workunit chưa hồn thành) sẵn có một cách trực tiếp từ CSDL. Thay vào đó, có 1 chương
trình ngầm feeder sẽ nạp các task(thực chất 1 workunit được chia thành các task, mỗi task
sẽ có tương ứng 1 result tương ứng để « đặt chỗ » sẵn trong CSDL, task nào hoàn thành,
upload lên server thì result tương ứng sẽ được đánh dấu là hoàn thành) từ CSDL và lưu
chúng trong các khối nhớ để cho bộ lập lịch đọc ra. Feeder sẽ định kì làm rỗng các «khe
» trong khối nhớ sau khi các task được gửi đến client.
Khi tất cả các result của 1 workunit đã thực hiện xong và được gửi trả về cho server,
thành phần validator sẽ so sánh chúng. Thành phần validator có thể có các thành phần
code do người phát triển project đặt ra để thực hiện sự so sánh mờ (so sánh tương đồi, ví
dụ như trừ cho nhau hay dùng 1 hàm đánh giá..) giữa các kết quả, hoặc nó có thể chỉ là so
sánh các bit. Nếu các kết quả khớp với nhau, workunit sẽ được đánh dấu là hợp lệ, người
tình nguyện sẽ được « gán » credit và 1 kết quả (result) thích hợp sẽ được chọn cho
workunit đó.
Tiếp đó, deamon assimilator (đồng hoá, xử lý kết quả) xử lý các result hợp lệ, sử
dụng các code chuyên dụng của dự án. Ví dụ : một vài dự án có thể phân tích các file và
lưu trữ thông tin vào trong CSDL, mặt khác có thể đơn giản chỉ là copy file sang 1 chỗ
khác. Một bộ đồng hố cũng có thể sinh ra các workunit mới dựa trên các kết quả hay dữ
liệu trả về bởi client.
Deamon file_deleter sẽ xoá các file output sau khi assimilator đã xử lý chúng, đồng thời
xoá các file input không cần thiết nữa.
Deamon transitioner xử lý các chuyển trạng thái của các workunit và result (hoàn thành,
chưa hồn thành, valid, not valid). Nó cũng đồng thời sinh ra các result (tương ứng với
các task chưa hoàn thành) từ workunit khi workunit được tạo ra lần đầu tiên và có thể
thêm các result nữa nếu cần thêm (VD : khi 1 result không hợp lệ - do khơng vượt qua
được q trình validator hoặc thậm chí là do được gửi lên server quá chậm)
Huỳnh Công Trường – Khoa học máy tính K24 Trang 9
Tiểu luận Hệ Tin Học Phân Tán
Chương II
VIẾT CHƯƠNG TRÌNH MƠ PHỎNG QUÁ TRÌNH ĐỒNG BỘ CỦA BÃI
ĐẬU XE Ơ TƠ CĨ n CỔNG ( n 2).)
CƠ SỞ LÝ THUYẾT :
Trong phần chương trình mơ phỏng q trình đồng bộ hóa của bãi đậu xe ơ tơ có n cổng
(n 2).), cơ sở lý thuyết chúng ta cần quan tâm đến là “Bài tốn bãi đậu xe ơ tơ” và “Đồng
bộ hóa các tiến trình trong Hệ Phân tán”
II.1 BÀI TỐN BÃI ĐẬU XE Ơ TƠ:
1. Phát biểu bài tốn : Cho hình vẽ sau
BV Trong đó
BV - người bảo vệ có nhiệm vụ phân
VT phối chổ cho các xe ô tô.
VT - Vị trí cho từng xe ơ tơ cụ thể.
VT
Trong bài toán
VT - Bãi đậu xe chính là tài nguyên
- Xe chính là các tiến trình
VT VT BV
VT VT
BV VT VT
BV
VT VT
VT
VT VT VT VT
VT
VT VT
VT VT
BV BV
Hình III.1. Mô phỏng bãi đậu xe ô tô
Bài toán bãi đậu xe đặt ra hai tình huống như sau :
* Tình huống thứ nhất :
Ta giả sử rằng bãi để xe ô tơ là loại bãi lớn có một cổng vào dưới sự kiểm soát của
một người bảo vệ (NBV) duy nhất. NBV chỉ biết được một phần của trạng thái bãi để xe.
Trong khi anh ta nghĩ rằng bãi xe đã bị đầy, khi đó lại có nhiều lái xe đang cho xe chạy ra
cổng. Vì suy nghĩ như vậy, trong trường hợp này anh ta không giải quyết cho các xe khác
tiếp tục vào bãi nữa, mặt dù lúc này trong bãi đang có chỗ trống. Như vậy, NBV khơng
nắm được trạng thái hiện hành của bãi.
* Tình huống thứ hai :
Nếu ta có bãi để xe với nhiều cổng vào và tại mỗi cổng vào có một người bảo vệ thì
mỗi người bảo vệ chỉ có thể được biết trạng thái với độ trễ nhất định và điều đó dẫn đến
tính huống thứ hai. Đó là tình huống với nhiều trung tâm ra quyết định như trong hình vẽ
III.1 ở trên.
Trên thực tế, một người bảo vệ nào đó tin rằng khơng cịn chỗ trống nữa, trong khi
một người bảo vệ khác lại vừa mới cho ra khỏi bãi một số xe mà anh ta chưa kịp báo cho
Huỳnh Công Trường – Khoa học máy tính K24 Trang 10
Tiểu luận Hệ Tin Học Phân Tán
các người bảo vệ khác. Cũng có thể diễn ra trường hợp là cùng một lúc các người bảo vệ
giải quyết các xe vào cùng một vị trí trong bãi do vì họ thiếu thơng tin.
Như vậy, các người bảo vệ phải hợp lực với nhau để phân phối chính xác các chỗ trong
bãi, đặc biệt là số lượng chỗ cịn trống càng ít thì vai trò của hợp lực càng quan trọng.
Sự hoạt động gắn bó với nhau giữa các chương trình cung cấp là rất cần thiết để đảm
bảo cho hoạt động cung cấp được hồn tồn chính xác.
II.1.1 VÍ DỤ VỀ KHƠNG GẮN BĨ:
Để thấy được tầm quan trọng mang tính quyết định của trình tự xử lý thơng điệp đối
với u cầu gắn bó của hệ, ta hãy tiếp tục xem xét một trường hợp về khơng gắn bó của
bài tốn bãi để xe : giả sử rằng ở thời điểm cho trước ta có 4 người bảo vệ và có 100 chỗ
cịn trống. Tất cả các NBV để có thơng tin đó, trạng thái của hệ lúc này là gắn bó. Ba
trong số họ phát đi thông tin cho ở Bảng II-1 sau:
Bảo vệ 1 Bảo vệ 2 Bảo vệ 3 Bảo vệ 4
Bảng II-1 M1
Stt ký hiệu thông tin phát đi
1 M1 Thêm 20 chỗ trống
2 M2 có 10 chỗ bị chiếm
3 M3 Dành 10% chỗ trống để t M1 M2
quét dọn bãi M3 M3 M M3
2
M2 M1
Bảng II-2: cho thấy, nếu ta khơng có ràng buộc nào đối với trình tự xử lý các thơng
điệp nhận được của các người bảo vệ thì mỗi NBV sẽ có thơng tin về số lượng chỗ trống
Trật tự Bảo vệ 1 Bảo vệ 2). Bảo vệ 3 Bảo vệ 4
xử lý Thông giá trị Thôn giá trị Thôn giá trị Thông giá trị
điệp g điệp g điệp
điệp
100 100 100 100
1 M1 120 M1 120 M3 90 M2 90
2 M3 108 M2 110 M1 110 M3 81
3 M2 98 M3 99 M2 100 M1 101
Bảng II-2: Sự khơng gắn bó giữa 4 người bảo vệ
khác nhau. Để bảo đảm các bản cập nhật giống nhau thì trình tự cập nhật nhất thiết phải
giống nhau trên tất cả các trạm.
Huỳnh Công Trường – Khoa học máy tính K24 Trang 11
Tiểu luận Hệ Tin Học Phân Tán
II.1.2). QUI TẮC CHO CÁC THUẬT TOÁN CUNG CẤP TRONG HỆ PHÂN
TÁN:
Một sự hoạt động gắn bó của các chương trình cung cấp phân tán quản lý trên cùng một tập
hợp các tài nguyên chỉ đạt được nếu tuân thủ các qui tắc sau:
Stt Qui tắc
1 Các bộ cung cấp bắt buộc phải thực hiện cùng một giải thuật
2). Các bộ cung cấp đều nhận tất cả các thơng điệp phát đi từ các tiến trình
3 Các thông điệp phải được xử lý cùng một trật tự như nhau trong các chương
trình cung cấp.
Qui tắc cuối, nhấn mạnh đến sự thiết yếu phải có một trật tự duy nhất trên tập hợp
các thơng điệp của hệ. Trật tự này có thể được thực hiện thơng qua việc hợp lực của các
tiến trình cung cấp. Ở phần sau chúng ta nghiên cứu một số phương pháp sắp xếp nhằm
xác lập một trật tự đảm bảo cho yêu cầu đồng bộ hóa.
II.2). VẤN ĐỀ ĐỒNG BỘ GIỮA CÁC TIẾN TRÌNH:
Trong các hệ tin học tập trung, vấn đề đồng bộ hóa được giải quyết thơng qua cơ chế loại trừ
tương hỗ. Cơ chế này cho phép xác lập trật tự hoàn toàn các sự kiện.
Trong hệ phân tán, việc đồng bộ hóa chủ yếu yêu cầu thiết lập một trật tự giữa các sự
kiện. Giữa các trạm khác nhau, trật tự đó có thể thể hiện thơng qua việc trao đổi các
thơng điệp với nhau.
Một tiến trình nào đó cần sử dụng tài nguyên để phát triển cơng việc của mình, phải
u cầu bộ cung cấp một cách hợp thức bằng cách gửi thông điệp yêu cầu. Như thế, một
tiến trình có nhu cầu tài ngun sẽ bị treo chừng nào tài ngun đó cịn chưa được giải
phóng hay chưa được cung cấp cho nó.
II.2)..1 MIỀN GĂNG:
Miền găng: đoạn chương trình mà truy cập vào tài nguyên dùng chung.
Vấn đề miền găng: các sự truy cập chồng lên nhau có thể dẫn đến các kết quả khác
với truy cập tuần tự. Do đó làm thế nào bảo đảm rằng các tiến trình thi hành miền
găng một cách tuần tự chứ không phải là đồng thời; hay nói cách khác là làm thế nào
tuân theo giải thuật loại trừ tương hỗ.
II.2)..2). PHÂN NHĨM CÁC THUẬT TỐN TRUY CẬP LOẠI TRỪ TƯƠNG
HỖ:
Truy cập vào miền găng dựa trên sự xác nhận (contention based): Mỗi tiến trình xác
nhận yêu cầu của nó để truy cập vào miền găng. Hay nói cách khác, các tiến trình
cạnh tranh hay tranh giành nhau quyền truy cập vào miền găng.
Truy cập vào miền găng dựa trên (Token based): Việc truy cập vào miền găng được
điều khiển bởi một token. Người giữ token có quyền thi hành đoạn găng của nó.
Tổng quát
Một trạm bất kỳ trong hệ thống có thể (1) yêu cầu miền găng CS (critical section),
(2) thi hành CS, hoặc (3) khơng làm gì cả đối với CS (thi hành trong đoạn không
phải miền găng.)
Huỳnh Cơng Trường – Khoa học máy tính K24 Trang 12
Tiểu luận Hệ Tin Học Phân Tán
Các thuật toán nên thỏa mãn các u cầu: Khơng bế tắc, Khơng đói ,Cơng bằng
(các yêu cầu được thi hành theo thứ tự chúng được tạo), Dung thứ lỗi (có thể vẫn
hoạt động khi có sự cố tại một hoặc nhiều trạm)
Một số thông số:
số thông điệp/yêu cầu miền găng
sd (trễ đồng bộ): thời gian giữa thời điểm kết thúc một miền găng và bắt đầu miền
găng tiếp theo.
Thời gian đáp ứng, được đo từ khi thông điệp yêu cầu miền găng được gửi đi cho
đến khi miền găng được thi hành.
Thông lượng hệ thống: tỷ lệ mà hệ thống thi hành các miền găng.
Thông lượng = 1/(sd + thời gian thi hành trung bình E của một miền găng).
Hoạt động với tải
Với tải thấp, một số miền găng được thi hành. Khi một tiến trình muốn đi vào
miền găng, nó thường sẽ được cấp quyền ngay lập tức sau khi thi hành thuật toán
loại trừ tương hỗ. Đối với trường hợp hợp tải cao hoặc nặng, ln ln có các yêu
cầu miền găng phải chờ đợi. Ngay khi một trạm kết thúc miền găng của mình, nó
sẽ có thể cố gắng khởi tạo miền găng khác.
Nếu gọi E là thời gian trung bình thi hành một miền găng, và T là độ trễ thông điệp trung
bình, thì trong hầu hết các thuật tốn, thời gian cho trường hợp tốt nhất có cận trên là (2T +
E). Điều này cho phép trao đổi thơng điệp vịng trịn cộng với sự thi hành miền găng. Thời
gian cho trường hợp xấu nhất là rất nhiều.
II.2)..3 SẮP XẾP KIỂU ĐÓNG DẤU:
II.2.3.1 CÁC KHÁI NIỆM:
ĐỒNG HỒ LOGIC:
Đối với nhiều ứng dụng, các sự kiện không cần lập lịch hay đồng bộ đối với thời
gian thực. Nó chỉ là thứ tự sự kiện hoạt động liên quan. Trong trường hợp như vậy, đồng
hồ logic có thể được dùng để biểu thị thứ tự thông tin cho các sự kiện, đặc biệt trong hệ
phân tán, nó khó giữ được đồng hồ vật lý chung giữa tất cả các tiến trình đang sắp xếp.
Đồng hồ logic Lamport là khái niệm cơ bản để sắp xếp các tiến trình và các sự kiện trong
hệ phân tán.
TRẬT TỰ TỪNG PHẦN:
Trong thực tế một số hệ thống khi đồng bộ hóa chỉ địi hỏi trật tự từng phần. Chính vì
vậy, trật tự hóa từng phần giữa các sự kiện mà tiến trình của nó cần phải đồng bộ là vấn
đề cần phải quan tâm .
Giả sử rằng ta có thể xác định một trật . P a b
tự giữa các sự kiện của hệ phân tán nhờ vào a “có trước” b (a b)
quan hệ “có trước” () hay “ở ngay trước”:
Huỳnh Cơng Trường – Khoa học máy tính K24 Trang 13
Tiểu luận Hệ Tin Học Phân Tán
2.. P b c
. a
Q
(a b) - nhân quả -
3.. P
. a
Q b c
(a c) - bắc cầu -
Trật tự các sự kiện được xác định dựa trên các nguyên tắc sau:
1. Nếu A và B là hai sự kiện của cùng một trạm và A xảy ra trước B thì ta có AB (trật
tự cục bộ).
2. Nếu A là phát thơng điệp từ một trạm nào đó và B là nhận thơng điệp thì ta có A B.
(nhân-quả)
3. Nếu AB và BC, thì AC. (bắc cầu)
Sơ đồ của “có trước”:
P Q R
r1
p1 q1 r2
r3
q2 r4
p2
q3
p3 q4
q5
p4
q6
Huỳnh Công Trường – Khoa học máy tính K24 Trang 14
Tiểu luận Hệ Tin Học Phân Tán
a b có nghĩa: chúng ta có thể đi từ a đến b theo sơ đồ bằng cách di chuyển về
phía trước theo thời gian dọc theo các đường tiến trình và thơng điệp, ví dụ p1
r4
Chúng ta nói rằng a tác động nhân quả đến b
Hai sự kiện là hợp lực nếu chúng có tác động nhân quả với nhau, ví dụ p3 và q3 là
hợp lực.
Cho dù q3 xảy ra tại thời điểm vật lý sớm hơn p3 , tiến trình P khơng biết tiến
trình Q đã làm gì tại thời điểm q3 cho đến khi nó nhận được thơng điệp tại thời
điểm p4.
GẮN THỜI GIAN LOGIC VỚI CÁC SỰ KIỆN
Các đồng hồ lôgic: gán một số cho mỗi sự kiện cục bộ.
Hệ thống các đồng hồ lơgic phải chính xác :
Điều kiện đồng hồ
sự kiện a,b : nếu a b thì C(a) < C(b)
Để thực thi các đồng hồ thỏa mãn Điều kiện Đồng hồ, ta có thể áp dụng thuật tốn
đóng dấu thời gian .
II.2)..4 ĐỒNG HỒ THEO TRẬT TỰ TỔNG QUÁT CHẶT CHẼ
(LAMPORRT):
Trật tự từng phần chỉ có thể áp dụng cho một số hệ thống , điều này có nghĩa là một
số hệ thống có thể gắn bó được thơng qua việc sắp xếp các sự kiện theo trật tự bằng quan
hệ “có trước”. Tuy nhiên có rất nhiều hệ phân tán các sự kiện không thể sắp được bằng
trật thứ từng phần, do vậy phải cần đến trật tự chặt chẽ (=>)của các sự kiện.
CẤU TRÚC TRẬT TỰ TỔNG QUÁT CHẶT CHẼ (LAMPORRT):
Lamport định nghĩa trật tự chặt chẽ dựa trên quan hệ “có trước”, nó gán cho mỗi
trạm một số duy nhất và sau đó sử dụng số này để lập trật tự cho các sự kiện
không sắp xếp được thứ tự bằng quan hệ “có trước”.
Trật tự nhất quán của các sự kiện phát:
Định dạng thông điệp từ Pi : (m, Tm, i)
Tại tiến trình Pi, một sự kiện phát (m, Tm, j) từ Pj được gọi là có trước sự kiện phát
(n, Tn, k) từ Pk nếu :
Nếu Tm < Tn, hoặc
Nếu Tm = Tn và j < k
Huỳnh Công Trường – Khoa học máy tính K24 Trang 15
Tiểu luận Hệ Tin Học Phân Tán
Hình sau minh họa cho dạng thông điệp với trật tự
P1 P2 P3 P4
0
0 0 0
(b,1,4)
(a,1,1)
2
3
2
2 2
3
GIẢI THUẬT ĐÓNG DẤU THỜI GIAN CỦA LAMPORRT
Đồng hồ lơgic cho phép đóng dấu thời gian, nhằm xác lập trật tự cho từng sự kiện
trong hệ phân tán để với mỗi cặp sự kiện A và B ta có: nếu A có trước B (A B)
thì đồng hồ lơgic của A nhỏ hơn đồng hồ lôgic của B.
Nguyên tắc thiết lập: Mỗi trạm S đều có trang bị cơng tơ với các giá trị nguyên Cs
đó chính là đồng hồ logic, hoạt động theo các qui tắc sau:
Gia tăng Ci thêm một trị số giữa hai sự kiện kế tiếp
Ci a Ci+1
Trạm e phát thông điệp m , ghi dấu dấu thời gian cho các thông điệp m gửi đi,
Tm = Ce (a)
Ci a Ci+1
(Tm = Ce (a) )
Khi nhận được thông điệp m, trạm nhận r cập nhật đồng hồ Cr riêng theo :
Cr = Tm + 1 (điều này đảm bảo tính nhân-quả theo trật tự từng phần)
(m, Tm ,s)
Pj Cr Cr = Tm + 1
Trật tự sự kiện toàn bộ: Một sự kiện a sinh ra trên trạm i được đánh dấu bởi đồng
hồ cục bộ Ci , nến a và b là hai sự kiện trên hai trạm i và j ta quan hệ sau:
a b nếu Ci (a) < Cj (b)
hoặc
Ci (a) = Cj (b) và i < j
Huỳnh Công Trường – Khoa học máy tính K24 Trang 16
Tiểu luận Hệ Tin Học Phân Tán
II.2)..5 GIẢI THUẬT LOẠI TRỪ TƯƠNG HỖ TRÊN CƠ SỞ ĐÓNG DẤU:
II.2.5.1 THUẬT TỐN LAMPORT:
Thuật tốn này được Lamport (1978) đưa ra, nó sử dụng cơ chế đóng dấu thời gian
cho việc đồng bộ các đồng hồ lôgic.
Các giả định:
Chúng ra giả định mơ hình mạng kết nối hồn tồn trong đó các tiến trình liên lạc
thông qua các kênh FIFO tin cậy. Tức là, các thông điệp không thể sắp xếp lại
theo trật tự khác.
Các giả định được thực thi một cách dễ dàng ở tầng giao vận.
Các kiểu thông điệp:
(REQ, Ci, i) : Một yêu cầu cho việc truy cập vào miền găng CS của tiến trình Pi.
Yêu cầu này được phát đi cho tất các các tiến trình khác.
(REP, Ci, i) : Hồi âm từ tiến trình Pi cho tiến trình Pj khi Pi nhận được yêu cầu từ
Pj.
(REL, Ci, i) : Thơng điệp giải phóng từ Pi thơng báo cho biết nó đã rời khỏi CS.
Thông điệp này được gửi cho tất cả các tiến trình khác.
Các biến tiến trình:
Ci : Đồng hồ cục bộ của Pi, khởi tạo từ 0.
qi : Hàng đợi [0 … n-1] chứa các thông điệp.
Thuật toán:
Khi một tiến trình tại trạm Si muốn thi hành đoạn găng: nó sẽ gửi thơng điệp
REQ có đánh dấu thời gian cho tất cả các trạm trong hệ thống kể cả trạm Si.
Mỗi trạm, Si, duy trì một hàng đợi chứa các thơng điệp u cầu được sắp xếp
theo trật tự các dấu thời gian; các đồng hồ logic và quan hệ trật tự toàn bộ được
sử dụng để gắn các dấu thời gian.
Khi một trạm nhận được u cầu, nó sẽ đưa thơng điệp đó vào hàng đợi yêu cầu
của nó theo thứ tự dấu thời gian và gửi một thông điệp trả lời REP. Nếu cần,
quan hệ trật tự toàn bộ được sử dụng để phá vỡ các sự ràng buộc.
Ý tưởng chung là một tiến trình khơng thể thi hành đoạn găng của nó cho đến
khi nó nhận được trả lời từ tất cả các trạm khác.
Tóm lại, một trạm thi hành miền găng của nó khi:
Nhận được thông điệp trả lời từ tất cả các trạm còn lại và
Yêu cầu REQ của nó là ở trên đỉnh của hàng đợi cục bộ của nó.
Khi một trạm hoàn thành miền găng của nó: nó sẽ gửi khuyến nghị giải phóng
REL đến tất cả các trạm. Yêu cầu của nó được loại khỏi tất cả các hàng đợi tại
thời điểm này. Nếu các trạm khác đang chờ để thi hành miền găng của chúng,
một trong các trạm đó bây giờ có thể bắt đầu thực hiện miền găng của mình.
Nhận thấy :
Huỳnh Công Trường – Khoa học máy tính K24 Trang 17
Tiểu luận Hệ Tin Học Phân Tán
Hoạt động: 3(N-1) thông điệp cần thiết cho mỗi miền găng được thi hành. (N-
1) thông điệp REQ, (N-1) thông điệp REP và (N-1) thông điệp REL.
Độ trễ đồng bộ: T (trong đó T thời gian trung bình truyền thông điệp). Khi
nhận được thông điệp giải phóng, tiến trình tiếp theo có thể bắt đầu thi hành.
Loại trừ tương hỗ là đạt được: Các dấu thời gian là duy nhất, vì vậy tất cả các
hàng đợi sẽ giữ các yêu cầu trong cùng một thứ tự. Chỉ một tiến trình duy nhất
sẽ nằm ở đỉnh của các hàng đợi.
Không đói: Các yêu cầu được cấp quyền dựa trên cơ sở của trật tự dấu thời
gian và các tiến trình gửi các thơng điệp REL.
II. 3 SƠ ĐỒ THUẬT TOÁN
REP RELEAS HEL
E D
- (Vào
Khởi tạo trạng thái miền
TRẠM Si N-1 găng)
REQ (wanted) REL TRẠM Sn
Nếu TT: TRẠM S1 TRẠM S2). ………. REQ Xóa
TĐ2 REQ
Wanted(T) REQ REQ … của Si
Held TĐ2 TĐ2 tại
… … hàng
+ đợi
Huỳnh Cơng Trường – Khoa học máy tính K24 Trang 18
Tiểu luận Hệ Tin Học Phân Tán
II.4 GIẢI THUẬT CHƯƠNG TRÌNH
{Thuật tốn được cài đặt trên một trạm của hệ}
On initialization
state := released; //Các tài nguyên trong các trạm là bình thường
To enter the section // chuẩn bị vào đoạn găng
state := wanted; //Chuẩn bị vào
Multicast request to all processes; request processing deferred here
T := request’s timestamp; // Thiết lập thời gian
Wait until (number of replies received = (N – 1));
state := held; // đã vào đoạn găng
On receipt of a request <Ti, pi> at pj (i ≠ j)//Nhận được yêu cầu tại thời điểm j
if (state = held or (state = wanted and (T, pj) < (Ti, pi)))
then
queue request from pi without replying; // đưa vào hàng đợi
else
reply immediately to pi; // gởi lại
end if
To exit the critical section // thoát khỏi vùng găng
state := released;
reply to any queued requests; //gởi lại
Huỳnh Công Trường – Khoa học máy tính K24 Trang 19
Tiểu luận Hệ Tin Học Phân Tán
TÀI LIỆU THAM KHẢO
1. Lê Văn Sơn, Hệ tin học phân tán, Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chí
Minh, năm 2002.
2. Vn-Guide, Mạng căn bản, Nhà xuất bản thống kê, năm 1998
3. Lê Văn Sơn, Giáo trình lập trình mạng máy tính, Tài liệu giảng dạy cho học viên
Công nghệ thông tin, trường Đại học Sư phạm - Đại học Đà Nẵng, Đà Nẵng, năm 2001.
4. Phạm Minh Việt và Trần Công nhượng, Cơ sở kỹ thuật mạng Internet, Nhà xuất bản
Giáo dục, Hà Nội, năm 2000.
Huỳnh Cơng Trường – Khoa học máy tính K24 Trang 20