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 “Vai trò của việc đồng bộ hoá các tiến trình trong việc cung cấp tài nguyên trong... CHƯƠNG 1 VẤN ĐỀ ĐỒNG BỘ HÓATại sa
Trang 1B GIÁO D C & ÀO T O Ộ Ụ Đ Ạ
Giáo viên h ướ ng d n ẫ : PGS.TS Lê V n S n ă ơ
H c viên th c hi n: Lê Thanh Duy ọ ự ệ
Trang 2
à N ng tháng 07 n m 2014
LỜI MỞ ĐẦU
Cùng với sự bùng nổ của các mạng cục bộ và các mạng diện rộng đặc biệt
là mạng Internet nhu cầu trao đổi thông tin trong mọi hoạt động trên mọi lĩnh vực
vì thế 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 phát huy tính ưu việc của các mạng trên nhất là Internet
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áctiế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ácvấ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ácthông điệp với thời gian truyền khác nhau, những thông tin tạm thời trao đổikhông có giá trị tuyệt đối và trình tự tổng quát cần phải được thể hiện bằngphương tiện giải thuật đảm bảo hoạt động nhịp nhàn giữa các tiến trình có liênquan 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 “Vai
trò của việc đồng bộ hoá các tiến trình trong việc cung cấp tài nguyên trong
Trang 3pháp đồng bộ hoá và rút ra vai trò đồng bộ hoá tài nguyên trong hệ tin học phântán
Để hoàn thành tiểu luận này Em xin chân thành cám ơn sự chỉ bảo tậntình của Thầy: PGS.TS.Lê Văn Sơn và các bạn học viên trong lớp Tuy nhiênchắc hẳn vẫn còn nhiều thiếu sót, kính mong sự góp ý của Thầy và các bạn
Trang 4CHƯƠNG 1 VẤN ĐỀ ĐỒNG BỘ HÓA
Tại sao phải đồng bộ hóa các tiến trình trong việc cung cấp tài nguyên trong hệ phântán ?
Một trong những hướng nghiên cứu quan trọng trong hệ thống phân tán đó làvấn đề đồng bộ hóa các tiến trình sử dụng tài nguyên dùng chung Để đạt được điều
đó thì chúng ta phải đảm bảo được trật tự như nhau các thông điệp yêu cầu tàinguyên ở tất cả các máy trạm/máy chủ có trong hệ để nghiên cứu vấn đề đồng bộhóa các tiến trình với hệ thống thời gian vector (Vector time) Giải pháp này có thểđảm bảo được trật tự nhân quả chặt chẽ của các sự kiện diễn ra trong hệ thống phântán, đảm bảo các tiến trình trong bài toán hoạt động hoàn toàn ăn khớp với nhau vàđạt được trạng thái gắn bó tài nguyên thông tin dùng chung
1 Yêu cầu động bộ (Synchronization)
– Tốc độ thực hiện của các tiến trình là không thể biết trước được
– Các tiến trình cần hợp tác để hoàn thành tác vụ, cần đồng bộ hoá
Tại sao phải đồng bộ hóa các tiến trình?
- Truy xuất đồng thời vào vùng dữ liệu dùng chung có thể gây ra sự mâuthuẫn ( tương tranh) dữ liệu
- Quản lý sự toàn vẹn dữ liệu yêu cầu các cơ chế để đảm bảo việc phối hợp của các tiến trình một cách có thứ tự
Vd : Rút tiền trong ngân hàng như sau:
taikhoan: biến dùng chung
P1, P2: 2 tiến trình thực hiện công việc kế toán
taikhoan = 800P1 muốn rút 500P2 muốn rút 400
if (taikhoan – tierut >=0)
taikhoan= taikhoan – tienrut;
else
error(“khong the rut tien”);
-Trong tất cả các hệ thống tin học ta cần phải nghiên cứu các công cụ đủ mạnh và
Trang 52.Nguyên do
Nguyên do thứ nhất: ( tương tranh)
Các tiến trình kể cả các tiến tiến trình xuất phát từ các ứng dụng độclậ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àocác 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
Vì vậy tương tranh là nguyên nhân chính của các xung đột giữa các tiến trình muốntruy cập vào tài nguyên dùng chung
Nguyên do thứ hai: (hợp lực )
Các tiến trình của cùng một hệ ứng dụng hoạt động hoạt động theokiể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ềunày cho phép tăng hiệu năng sử dụng thiết bị và hoạt động của chương trình Vì vậyhợ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ếntrình nhằm cho phép chúng tham gia vào các hành động chung
Sự tương tranh và hợp lực giữa các tiến trình đòi hỏi có sự thông tin qua lạivới nhau Trong hệ tin học phân tán, các thông tin cần trao đổi thông qua các kênhthuộc hệ thống viễn thông
3.Trật tự từng phần :
Trong hệ phân tán việc đồng bộ hoá chỉ đặt ra duy nhất các vấn đềthiết lập một trật tự giữa các sự kiện các trạm khác nhau trật tự đó chỉ thể hiệnthông qua trao đổi các thông điệp với nhau
Giả sử rằng ta có thể xác định một trật tự giữa các sự kiện của hệ phân tánnhờ vào qua hệ ký hiệu là và gọi là “có trước” hay “ở ngay trước” Quan hệ nàytối thiểu thoả mãn được các ràng buộc thể hiện trong bảng sau đây:
C1: Nếu A và B là hai sự kiện cùng một trạm và nếu A được thực hiện trước
B thì theo trật tự của trạm ta có A B
C2 : Nếu A là phát thông điệp bởi một trạm nào đó và nếu B là thu thông điệpthì ta có A B
Trang 6t
Trang 7CHƯƠNG 2CÁC PHƯƠNG PHÁP ĐỒNG BỘ HÓA
Trang 8Trong hệ thống tin học phân tán, người ta có thể vận dụng hợp lực này theo kiểunhư sau:
+ Trên trạm P một biến NP Thể hiện số lượng chính xác sản xuất đã có.+ Trên trạm C một biến NC thể hiện số lượng chính xác tiêu thụ đã thực hiện.+ Trên trạm P một biến NC’ ảnh của NC mà P gia tăng mỗi một lần nó nhậnđược thông điệp từ C báo cho nó biết là tiêu thụ mới đã diễn ra
+ Trên trạm C một biến NP’ ảnh của NP mà C gia tăng mỗi một lần nó nhậnthông điệp từ P báo cho nó biết một sản xuất mới đã diễn ra
Ta sẽ chứng minh rằng một sự đồng bộ hóa chính xác được đảm bảo bằngviệc xác nhận trên mỗi trạm các điều kiện sau đây:
1/ Trên trạm sản xuất:
NP’ – NC > 02/ Trên trạm tiêu thụ:
NP – NC’ < N
Ta có thể viết:
NP = NP’ + np, với np ≥ 0Trong đó, np số lượng thông tin đã sản xuất bởi P mà C không biết
NC = NC’ + nc, với nc ≥ 0Trong đó, nc số lượng thông tin đã tiêu thụ bởi C mà P không biết
Ta có thể khái quát hóa phương pháp này cho điều kiện đồng bộ hóa bằngcông thức:
3/ ∑CiXi > K (theo i)Trong đó, Ci và K là các hằng số Ta hoàn toàn có khả năng và điều kiệnmạnh hơn bằng cách thay thế tất cả các Xi mà hệ số của nó là đại lượng dương bằngcác ảnh của nó X’i , nếu và chỉ nếu các Xi là các biến không lùi
Vì nguyên nhân xa cách giữa người sản xuất và người tiêu thụ mà trật tựtổng quát này không cần thiết và chỉ cần sử dụng để đồng bộ hóa các bản sao cácbiến trạng thái gần đúng là đủ
Trong hệ thống người sản xuất - người tiêu thụ, nếu N=1, thì có sự liên kếtchặt chẽ giữa hai tiến trình cho phép xác định một trật tự chặt chẽ giữa các sự kiện
Cơ chế đồng bộ ở đây là dùng Các công tơ sự kiện phù hợp với từng vấn đề
đặt ra Mỗi một công tơ biến thiên không lùi, được kết hợp với một nhóm đặc biệtcác sự kiện
Trên một công tơ sự kiện nào đó có phối hợp với nhóm E nào đó, được xácđịnh bởi ba hàm nguyên thủy:
Trang 9+ Tang_len(E): Tăng nội dung công tơ lên 1 đơn vị Cũng có nghĩa là một sựkiện nhóm E đến.
+ Truy_van(E): Cung cấp giá trị hiện hành của công tơ phối hợp với E
+ Cho(E,n): Treo tiến trình gọi chừng nào giá trị công tơ còn nhỏ hơn n.Mỗi công tơ được khởi động ngay khi thành lập nó Việc triển khai các công
tơ sự kiện có thể được thực hiện bằng cách giao cho bộ xử lý duy nhất đảm tráchviệc điều khiển toàn bộ công việc này
2/ Đồng bộ hóa bằng phương pháp trao đổi thông điệp.
Đây là một trong những phương pháp quan trong trong việc đồng bộ hoá cáctiến trình trong việc cung cấp tài nguyên trong hệ phân tán Phương pháp này dựatrên cơ sở trao đổi thông điệp với hai Primitive Send và Receive để thực hiện sựđồng bộ hóa:
+ Send(destination, message): gởi một thông điệp đến một tiến trình hay
gởi vào hộp thư
+ Receive(source, message): nhận một thông điệp từ một tiến trình hay từ
bất kỳ một tiến trình nào, tiến trình gọi sẽ chờ nếu không có thông điệp nào để nhận
Có nhiều cách thức để thực hiện việc truy xuất độc quyền bằng cơ chế traođổi thông điệp Đây là một mô hình đơn giản: một tiến trình kiểm soát việc sử dụngtài nguyên và nhiều tiến trình khác yêu cầu tài nguyên này Tiến trình có yêu cầu tàinguyên sẽ gởi một thông điệp đến tiến trình kiểm soát và sau đó chuyển sang trạngthái blocked cho đến khi nhận được một thông điệp chấp nhận cho truy xuất từ tiếntrình kiểm soát tài nguyên Khi sử dụng xong tài nguyên, tiến trình gởi một thôngđiệp khác đến tiến trình kiểm soát để báo kết thúc truy xuất Về phần tiến trình kiểmsoát, khi nhận được thông điệp yêu cầu tài nguyên, nó sẽ chờ đến khi tài nguyên sẵnsàng để cấp phát thì gởi một thông điệp đến tiến trình đang bị khóa trên tài nguyên
đó để đánh thức tiến trình này
while (TRUE) {
Send(process controler, request message);
Receive(process controler, accept message);
critical-section ();
Send(process controler, end message);
Noncritical-section ();}
Trang 10Trong những hệ thống phân tán mà mỗi bộ xử lý sỡ hữu một bộ nhớ riêng biệt vàliên lạc thông qua mạng, cơ chế trao đổi thông điệp tỏ ra hữu hiệu và được dùngnhiều để giải quyết bài toán đồng bộ hóa
3 Đồng bộ hóa bằng phương pháp trật tự tổng quát chặt chẽ.
Phương pháp này được áp dụng trong một số trường hợp cần phải sắp xếptoàn bộ theo kiểu chặt chẽ các sự kiện của hệ
Nguyên lý của phương pháp này được khái quát như sau:
Một tiến trình nào đó gửi thông điệp để yêu cầu sử dụng tài nguyên, một tiếntrình sử dụng xong tài nguyên nào đó truyền một thông tin giải phóng khi nó ngừngchiếm dụng
Trong các hệ phân tán, chương trình cung cấp nằm trên một trạm và các tiếntrình đề nghị lại ở trên các trạm khác, các yêu cầu giải phóng được truyền cho cácchương trình cung cấp thông qua hình thức thông điệp, chuyển theo các kênh của hệthống viễn thông Chính vì vậy nhu cầu sắp xếp các yêu cầu này theo một trật tựnhất định nào đó luôn luôn được đặt ra
Nếu chỉ có một thông điệp đến chương trình cung cấp thì trật tự đến thể hiệnmột trật tự chặt chẽ Ngược lại nếu có nhiều thông điệp đến cùng một lúc thì việcsắp xếp chúng phải theo kiểu loại trừ tương hỗ trong hàng đợi cục bộ của trạm cóchứa chương trình cung cấp Điều đó cũng cho phép ta có được một trật tự chặt chẽ
Trật tự có được tại trạm cung cấp có thể không giống như trật tự phát, nếuthời gian truyền không được cố định Trường hợp này khá phổ biến trong mạng máytính Nhưng nếu ta muốn xử lý các thông điệp theo trình tự không tính tới thời giantruyền, thì cần phải tính đến một trật tự tổng quát của các lần truyền thông điệp từcác trạm khác nhau Những cơ chế thể hiện chức năng này được mô tả sau đây:
Giải thuật được trình bày ở đây là giải thuật Lamport nhằm cho phép ghi lạicác sự kiện của hệ tin học phân tán
Mỗi trạm s đều có trang bị công tơ với các giá trị nguyên gọi là Hs Đó chính
là đồng hồ logic tăng lên giữa hai sự kiện kế tiếp Trạm e phát thông điệp ghi dấu Ecủa mình dựa trên giá trị hiện hành của He Khi nhận được thông điệp, trạm nhận rcập nhật đồng hồ Hr riêng của mình bằng giải thuật sau đây:
Nếu Hr thì
Hr := E+1Kết thúc nếu
Trang 11Sự kiện “nhận thông điệp” lúc này được ghi nhận bằng giá trị của Hr Thuậttoán này đảm bảo rằng thời gian nhận thông điệp là sau thời gian phát nó đi Thờigian này cho phép xác định một quan hệ trật tự toàn bộ mà ta đã ký hiệu và chophép kiểm tra được các điều kiện trong C1 và C2.
Một sự kiện a sinh ra trong trạm i và được đánh dấu bởi đồng hồ cục bộ gọi
là Hi(a) Nếu a và b đều là hai sự kiện trên hai trạm i và j, ta luôn luôn có quan hệxác định như sau:
a b ⇔ Hi(a) < Hi(b)
Đó là trật tự không chặt chẽ do hai sự kiện trên hai trạm khác nhau có thể đếncùng một thời điểm giống nhau Ta có thể mở rộng quan hệ thành quan hệ trật tựchặt chẽ bằng cách kết hợp một số khác cố định cho mỗi trạm và bằng cách đánhdấu thời gian cho mỗi sự kiện a của trạm i bằng cặp (Hi(a),i) Theo định nghĩa ta có:
a ⇒ b ⇒ (Hi(a) < Hi(b))
hay(Hi(a) = Hi(b) và i<j)
CHƯƠNG 3 CHIẾN LƯỢC CUNG CẤP TÀI NGUYÊN
Vấn đề cung cấp tài nguyên trong hệ tin học phân tán là một trong những lĩnhrất quan trọng vì nó vận dụng thường xuyên trong quá trình triển khai nghiên cứu,khảo sát, phân tích, thiết kế và xây dựng các hệ điều hành nói chung, hệ tin họcphân tán nói riêng
Vấn đề cung cấp tài nguyên và các giải pháp hữu hiệu nhằm vào hệ tập trung với
bộ nhớ chung đã có rất nhiều tài liệu đề cập đến Trong chương này sẽ tập trungnghiên cứu vấn đề về tài nguyên và các chiến lược cung cấp tài nguyên cho hệ phântán
I/ Một số khái niệm
3.1 Tài nguyên
Tài nguyên là một đối tượng mà trong đó các quy tắc sử dụng và chia sẻ đượckết hợp với nhau Nói chính xác, đó là những vấn đề quyền truy cập loại trừ haytruy cập chia sẻ, có hạn chế người sử dụng hay không
Trang 12Tài nguyên truy cập theo kiểu loại trừ chỉ cung cấp cho một giao dịch và tàinguyên truy cập theo kiểu chia sẻ được cung cấp cho một tập hợp bất kỳ các giaodịch.
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 cơ bảnnhấ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ácloại tài nguyên vốn có và rất đa dạng của hệ thống như là những tài nguyên dùngchung
Việc định nghĩa các tài nguyên của hệ như là tài nguyên dùng chung sẽ mangđến cho người sử dụng những tiện ích và đem lại cho hệ những hiệu năng tốt trongkhai thác ứng dụng
Năm ưu điểm căn bản của việc sử dụng chung tài nguyên được phản ánh trongbảng sau:
1 Tăng tốc độ trong tính toán- xử lý
2 Cải thiện tình trạng luôn luôn sẵn sàng của các loại tài nguyên
3 Tăng an toàn cho dữ liệu
4 Đảm bảo tính toàn vẹn thông tin
5 Đa dạng hoá các loại hình dịch vụ tin học
Chia sẻ tài nguyên có thể là chia sẻ Database( dữ liệu) , chia sẻ máy in, đốitượng nào đó,…
3.2 Giao dịch
Giao dịch là phép toán hợp thành một lô gích hoàn chỉnh mà việc triển khai nó
có thể dẫn đến thực hiện một tiến trình duy nhất hay nhiều tiến trình được định vịtrên các trạm khác nhau Trường hợp dẫn đến thực hiện nhiều tiến trình trên cáctrạm ở xa là đối tượng mà ta cần quan tâm nghiên cứu
Thông điệp yêu cầu và bộ cung cấp
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ìnhphải yêu cầu cung cấp tài nguyên bằng cách gửi thông điệp yêu cầu Như thế mộttiến trình có nhu cầu cần 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ó
Bộ cung cấp có thể áp dụng nhiều kiểu cung cấp khác nhau như tiến trình duy
Trang 13Một yêu cầu được thoả mãn bởi bộ cung cấp tài nguyên cho tiến trình đề nghịvới điều kiện là yêu cầu đó phải tuân theo các quy tắc nhất định.
Có 2 điều kiện làm cho tiến trình mất khả năng sử dụng tài nguyên đã được cungcấp trước đó Đó là:
1 Giải phóng Tiến trình phát tín hiệu ngừng sử dụng tài nguyên
2 Thu hồi Sự lấy lại tài nguyên đã được cung cấp cho tiến trình
Bộ cung cấp tài nguyên sẽ tiến hành công việc này
Trong hệ phân tán, hoạt động của một tập hợp các tiến trình trên một tập hợpcác tài nguyên dùng chung được cho là tốt nhất , nếu không xảy ra bế tắc hay thiếuthốn tài nguyên
Bế tắc
Bế tắc hay còn gọi là khoá tương hỗ là sự kẹt chéo lẫn nhau có tính chất sốngcòn của các tiến trình Bế tắc diễn ra khi hai tiến trình đang sử dụng tài nguyên lạiphát yêu cầu về nhu cầu sử dụng tài nguyên mà tiến trình kia còn đang sử dụng
Ví dụ như hình vẽ sau đây:
T4 T3
Hình 3 - Đồ thị cung cấp tài nguyên bị bế tắc
Hình 3 cho phép chúng ta hình dung vấn đề một cách rõ ràng hơn Theo hình vẽnày, ta có 4 tài nguyên T1,T2, T3, T4 và có ba tiến trình nhu cầu tài nguyên là Tr1, Tr2,