Hệ tin học phân tán hay nói ngắn gọn là hệ phân tán Distributed System là hệ thống xử lý thông tin bao gồm nhiều bộ xử lý hoặc bộ vi xử lý nằm tại các vị trí khác nhau và được liên kết v
Trang 1LỜI MỞ ĐẦU
Cùng với sự phát triển ngày càng cao của công nghệ thông tin Sự ra đời và phát triển ồ
ạt của máy vi tính và các phương tiện xử lý thông tin khác, cũng như nhu cầu trao đổi thông tin trong mọi hoạt động xã hội loài người Đòi hỏi sự phát triển đồng bộ các phương pháp truyền thông Mạng máy tính ra đời làm cho mọi người trên thế giới trở nên gần nhau hơn Hệ tin học phân tán ra đời nhằm phát triển nhu cầu của công nghệ thông tin
Hệ tin học phân tán hay nói ngắn gọn là hệ phân tán (Distributed System) là hệ thống
xử lý thông tin bao gồm nhiều bộ xử lý hoặc bộ vi xử lý nằm tại các vị trí khác nhau và được liên kết với nhau thông qua phương tiện viễn thông dưới sự điều khiển thống nhất của một hệ điều hành.
Để đả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 Trình tự và đồng bộ các tiến trình trong hệ phân tán chỉ ra cho ta các vấn đề đồng bộ có thể sẽ dẫn đến phải thiết chế một trật tự tổng quát của các sự kiện diễn ra trong hệ Cần phải xác định mối liên hệ trao đổi thông qua các thông điệp với thời gian truyền khác nhau, những thông tin tạm thời trao đổi không có giá trị tuyệt đối và trình tự tổng quát cần phải được thể hiện bằng phương tiện giải thuật đảm bảo hoạt động nhịp nhàng giữa các tiến trình có liên quan với nhau.
Trong giới hạn của tiểu luận kết thúc môn học này, với vấn đề chính việc “Đồng bộ hóa nhờ dấu”, tiểu luận chủ yếu tập trung phân tích cách giải quyết vấn đề dựa vào các thuật toán liên quan đến đồng bộ của Lamport Ví dụ của bài toán kinh điển – bãi đậu xe ô tô, được sử dụng để minh họa cho các yêu cầu đồng bộ và gắn bó dữ liệu nội dung của tiểu luận gồm những phần chính sau :
- Khái quát chung về hệ phân tán
- Bài toán bãi để xe ôtô và vấn đề đồng bộ hoá giữa các tiến trình.
Bài tập : Bài số 4 chương IV – Trang 195
Để 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 Tuy nhiên chắc hẳn vẫn còn nhiều thiếu sót, kính mong sự góp ý của thầy giáo và các bạn
Trang 2MỤC LỤC
ĐỒNG BỘ HÓA NHỜ DẤU……… …… 3
CHƯƠNG I : KHÁI QUÁT CHUNG VỀ HỆ TIN HỌC PHÂN TÁN I.1.Tổng quan về hệ tin học: ……….… 3
I.2 Hệ tin học phân tán ………4
CHƯƠNG II : BÀI TOÁN BÃI ĐẬU XE Ô TÔ VÀ VẤN ĐỀ ĐỒNG BỘ GIỮA CÁC TIẾN TRÌNH ……… 7
II.1 Đặt vấn đề:……….………… 7
II.2 Bài toán bãi để xe ô tô……….7
II.3 Vấn đề đồng bộ giữa các tiến trình……….…… 11
II.4 Sắp xếp kiểu đóng dấu:……… …12
II.5 Loại trừ tương hỗ nhờ dấu………17
KẾT LUẬN……… 19
TÀI LIỆU THAM KHẢO……… 20
Trang 3PHẦN LÝ THUYẾT
ĐỒNG BỘ HÓA NHỜ DẤU
CHƯƠNG I : KHÁI QUÁT CHUNG VỀ HỆ TIN HỌC PHÂN TÁN
I.1.Tổng quan về hệ tin học:
Một cách tổng quát, hệ tin học có thể bao gồm các thành phần bản như phần cứng, hệ điều hành, các chương trình ứng dụng và người sử dụng (NSD) … và có thể được mô tả như hình sau :
Các thiết bị phần cứng bao gồm các thiết bị xử lý trung tâm, bộ nhớ và các thiết bị ngoại vi đóng vai trò là một trong hai loại tài nguyên cơ sở của hệ thống tin học Các chương trình ứng dụng là thành phần tiếp theo sau hệ điều hành được hiểu như là các phần mềm cơ sở phục vụ cho viểc triển khai các ứng dụng cụ thể như chương trình dịch, hệ quản trị cơ sở dữ liệu, các chương trình trợ giúp sử dụng các thiết bị chuyên dụng, các trò chơi điện tử
Người sử dụng ở đây được hiểu theo nghĩa rộng, dưới góc độ của hệ điều hành, có thể là các nhà chuyên môn, các máy tính, các hệ tự động vận hành, gắn với máy tính đang khai thác hệ thông qua lệnh điều khiển theo một thuật toán nào đó nhằm đạt được mục tiêu xác định từ trước
text
PhÇn cøng
2 M
1
2 1
2 1
Q 1
hÖ ®iÒu hµnh
II
I
III
IV
H×nh I-1 Thµnh phÇn cña hÖ tin häc
2 P
N
Trang 4Hệ điều hành các máy tính và mạng máy tính gọi tắt là hệ điều hành được đặt sát phần cứng, nó gắn kết chặt chẽ với phần thiết bị bởi một hệ thống các chương trình, điều khiển và sắp xếp nhằm khai thác phần cứng phục vụ cho các chương trình ứng dụng khác nhau của NSD khác nhau với kết quả và hiệu năng chấp nhận được
Như vậy, hệ tin học bao gồm ba thực thể : phần cứng, phần mềm và dữ liệu , được mô tả ở hình I-2
PhÇn cøng
PhÇn mÒm D÷ liÖu
H×nh I-2 Ba thùc thÓ cña hÖ tin häc.
Vậy hệ thống tin học (Informatic System ) là một hệ thống bao gồm hai thành phần cơ bản phần cứng (hardware) và phần mềm (software) gắn bó hữu cơ với nhau
và có khả năng xử lý thông tin
I.2 Hệ tin học phân tán
I.2.1.Định nghĩa
Hệ tin học phân tán hay nói ngắn gọn là hệ phân tán (Distributed System) là
hệ thống xử lý thông tin bao gồm nhiều bộ xử lý hoặc bộ vi xử lý nằm tại các vị trí khác nhau được liên kết với nhau thông qua phương tiện viễn thông dưới sự điều khiển thống nhất của một hệ điều hành
I.2.2 Các thực thể trong hệ phân tán
Hệ phân tán gồm 4 thực thể :
Trang 5hÖ thèng phÇn mÒm
HÖ thèng d÷ liÖu
H×nh I-6 Bèn thùc thÓ cña hÖ tin häc ph©n t¸n
HÖ thèng truyÒn th«ng
TËp hî p phÇn cøng
I.2.3 Đặc điểm của hệ phân tán :
Đặc điểm cần nhấn mạnh của hệ là các hệ xử lý thông tin thành phần :
Không dùng chung hoặc chia sẻ bộ nhớ
Không sử dụng chung đồng hồ xung nhịp
Chúng liên lạc với nhau thông qua mạng truyền thông
Mỗi hệ xử lý có bộ xử lý, bộ nhớ và hệ điều hành riêng của nó Thành phần của hệ phân tán bao gồm các hệ thống cục bộ trong đó mỗi một hay nhiều hệ thống phát các yêu cầu thông tin còn các hệ khác trả lời các yêu cầu có liên quan đến phần dữ liệu của mình Nói một cách tổng quát là trong hệ luôn luôn diễn ra việc thực hiện các công việc do các hệ thống yêu cầu Các hệ thống truyền thống như hệ rời rạc hay tập trung không thể đáp ứng nhanh chóng và chính xác các yêu cầu thông tin từ xa với lưu lượng thông tin lớn
I.2.4.Các ưu điểm của tài nguyên dùng chung trong hệ phân tán :
Hệ tin học phân tán thực hiện hàng loạt các chức năng phức tạp nhưng chức năng cơ bản nhất là đảm bảo cung cấp cho người sử dụng khả năng truy cập có kết quả đến các tài nguyên vốn có và rất đa dạng của hệ thống như tài nguyên dùng chung
Trang 6Việc định nghĩa các tài nguyên của hệ như tài nguyên dùng chung sẽ mang đến cho
hệ những hiệu năng tốt trong khai thác ứng dụng
- Tăng tốc độ bình quân trong tính toán xử lý
- Cải thiện tình trạng luôn sẵn sàng của các loại tài nguyên
- Tăng độ an toàn cho dữ liệu
- Đa dạng hóa các loại hình dịch vụ tin học
- Bảo đảm tính toàn vẹn của thông tin
Tuy nhiên nó cũng dẫn đến hàng loạt các vấn đề khó khăn trong việc thiết lập
hệ liên quan việc cấp phát tài nguyên dùng chung cho các tiến trình
Điều quan trọng là để đảm bảo các chức năng, yêu cầu nêu ra trên, hệ tin học phân tán cần phải có các cơ chế kỹ thuật đủ mạnh nhằm đồng bộ hóa hoạt động của các tiến trình và sự trao đổi thông tin với nhau sao cho hệ thống tránh được các trường hợp có thể dẫn đến bế tắc
I.2.5.Các thao tác chuẩn của hệ phân tán :
- Tiếp nhận và ghi yêu cầu chỉ dẫn
- Dịch yêu cầu để có các thông tin cần thiết Thực hiện một số công việc của
hệ thống cục bộ như kiểm tra quyền truy cập thông tin, lập hóa đơn dịch vụ
- Gửi kết quả cho hệ thống đã phát yêu cầu
CHƯƠNG II : BÀI TOÁN BÃI ĐẬU XE Ô TÔ
VÀ VẤN ĐỀ ĐỒNG BỘ GIỮA CÁC TIẾN TRÌNH
II.1 Đặt vấn đề:
Mọi hệ thống tin học, đều cần cung cấp cơ chế đủ mạnh và hiệu quả để có thể
đồng bộ hóa các tiến trình, điều này thể hiện ở hai nguyên do cơ bản sau :
Trang 71) Nhìn chung, các tiến trình kể cả các tiến trình xuất phát từ các ứng dụng độc lập muốn truy cập vào các tài nguyên với số lượng vốn rất hạn chế hay truy cập
vào thông tin dùng chung cùng một lúc Trường hợp này gọi là truy cập tương tranh.
Tương tranh chính là nguyên nhân chính của các xung đột của giữa các tiến trình
muốn truy cập vào tài nguyên dùng chung
2) Các tiến trình của cùng một hệ ứng dụng hoạt động theo kiểu hợp lực để
giải quyết các bài toán đặt ra và cho kết quả nhanh chóng nhất Điều này cho phép
tăng hiệu năng sử dụng thiết bị và hiệu quả hoạt động của chương trình Hợp lực là nguyên nhân chính của sự tác động tương hỗ được lập trình giữa các tiến trình nhằm
cho phép chúng tham gia vào các hành động chung
Vì vậy, Sự tương tranh và hợp lực giữa các tiến trình đòi hỏi phải có trao đổi
thông điệp qua lại với nhau Trong các hệ thống tập trung, điều đó được thực hiện nhờ thuật toán loại trừ tương hỗ thông qua các biến cùng tác động trong một vùng nhớ chung Trong hệ tin học phân tán, các thông tin cần trao đổi thông qua các kênh thuộc hệ thống viễn thông
II.2 Bài toán bãi để xe ô tô.
II.2.1 Bài toán bãi để xe :
Để rút ra các vấn đề đang đặt ra
trong hệ phân tán về việc đồng bộ hóa
kinh điển, đó là bài toán bãi để xe ô tô,
với nội dung được nêu ra như sau :
Hình II-1 mô phỏng bãi để xe ô tô
hiện đại Trong đó BV (người bảo vệ) có
Trang 8nhiệm vụ phân phối chỗ cho các xe ô tô, VT(vị trí) cho từng xe ôtô cụ thể Các mũi tên hai chiều được sử dụng để mô tả dòng vào ra của ô tô
Bài toán nêu ra một số tình huống sau:
Tình huống thứ 1:
Giả sử 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 trạng thái của 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 tiếp tục vào bãi nữa, mặc 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ứ 2:
Nếu ta có bãi để xe với nhiều cổng và tại mỗi cổng có một NBV thì mỗi NBV chỉ có thể biết trạng thái với độ trễ nhất định và điều đó dẫn đến tình huống thứ 2
Đó là tình huống có nhiều trung tâm ra quyết định (hợp lực) như trường hợp minh
họa của hình 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 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 NBV giải quyết các xe vào cùng một vị trí trong bãi (tương tranh) do vì
họ thiếu thông tin
Tình huống thứ 2, đặt ra ở đây liên quan trực tiếp đến vấn đề cung cấp tài nguyên của hệ, chức năng cung cấp được phân tán trên nhiều trạm của hệ Trong đó một người bảo vệ có vai trò như là chương trình cung cấp của bãi để xe, Ở đây, chỗ
để xe được xem là tài nguyên của hệ, các ô tô vào bãi là các tiến trình của hệ
Như vậy, các NBV phải hợp lực với nhau để phân phối chính xác các chỗ
trống trong bãi, đặc biệt là số lượng chỗ còn trống càng ít (tài nguyên hạn chế) thì
vai trò của hợp lực càng quan trọng
Trang 9Sự 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.2.2 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ả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ì các NBV sẽ có thông tin về số lượng chỗ
trống 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
trật tự
xử lý
Thông điệp
giá trị
Thông điệp
giá trị Thông
điệp
giá trị
Thông điệp
giá trị
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 để quét dọn bãi Bảng II-1
Trang 103 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ệ
II.2.3 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
Trang 11Qui tắc thứ ba, 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 Vấn đề nghiên cứu 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 được trình bày ở phần sau
II.3 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.3.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.3.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
Trang 12 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ể
+ Yêu cầu miền găng
+ Thi hành miền găng
+ Hoặc không làm gì cả đối với miền găng (thi hành trong đoạn không phải miền găng)
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 thiếu, các yêu cầu được thi hành theo thứ tự chúng được tạo, có thể vẫn hoạt động khi có sự cố tại một hoặc nhiều trạm
II.4 Sắp xếp kiểu đóng dấu:
Đóng dấu là hành vi gán giá trị nguyên cho một thông điệp nhằm ghi nhận thời điểm truyền trên cơ sở tham chiếu đồng hồ lôgic Tức là trạm phát được gắn một giá trị gọi là dấu Giá trị này có tính chất thời điểm cho trạm phát thông tin và đưa vào đồng hồ lôgic cục bộ của chính trạm Các đồng hồ này được lấy lại thông tin qua hội thoại giữa các trạm
II.4.1 Các khái niệm :
* Đồng hồ lôgic :
Đố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ồ lôgic 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ồ lôgic 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