Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
547 KB
Nội dung
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 quá 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 quá 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 QUÁ 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 NGUYÊN 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, ngoài việc kiểm tra quyền cập nhật, Server còn đảm bảo tính hoà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 nguyên 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 yê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à yê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 toá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 toá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 toá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 Quá 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 quá 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 yê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 toá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 hoà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 đã hoà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à đã hoàn thành Do đó khái niệm result ở đây có thể coi là workunit chưa hoà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 hoá 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 hoà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 quá 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 quá 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 toá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 TOÁN BÃI ĐẬU XE Ô TÔ: 1 Phát biểu bài toá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 hoàn toà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 yê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 toá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 yê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 nguyên sẽ bị treo chừng nào tài nguyên đó 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 TOÁ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 yê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, luôn luôn 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 toá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 toá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 TOÁN LAMPORT: Thuật toá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 hoàn toà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 yê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 yê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 toá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 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 ... lu? ?n Hệ Tin Học Ph? ?n T? ?n 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).) CƠ SỞ LÝ THUYẾT : Trong ph? ?n chương trình mơ q trình đồng hóa bãi đậu. .. hóa bãi đậu xe tơ có n cổng (n 2).), sở lý thuyết c? ?n quan tâm đ? ?n ? ?Bài to? ?n bãi đậu xe tơ” “Đồng hóa ti? ?n trình Hệ Ph? ?n t? ?n? ?? II.1 BÀI T? ?N BÃI ĐẬU XE Ơ TƠ: Phát biểu t? ?n : Cho hình vẽ sau ... BV Hình III.1 Mơ bãi đậu xe ô tô Bài to? ?n bãi đậu xe đặt hai tình sau : * Tình thứ : Ta giả sử bãi để xe tơ loại bãi l? ?n có cổng vào kiểm soát người bảo vệ (NBV) NBV biết ph? ?n trạng thái bãi