Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
1,48 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG -----o0o----- BÁO CÁO TIỂU LUẬN MÔN HỌC HỆ PHÂN TÁN ĐỀ SỐ 17 I. Trậttựtừngphầnvàvấnđềđồngbộhóacáctiếntrình II. Tự mình đặt ra 1 bài toán (ví dụ giải phương trình bậc 2), lập trình giải trên máy đơn rồi trên mạng máy tính. Hãy rút ra những kết luận quan trọng về phân tán. Giáo viên hướng dẫn: PGS TS Lê Văn Sơn Học viên : Bùi Tấn Ngọc Đà Nẵng – 2012 Tiểu luận môn học Hệ phân tán Học viên: Bùi Tấn Ngọc 1 Lời mở đầu Ngày nay, công nghệ thông tin đang phát triển rất mạnh mẽ. Từcác quốc gia có nền kinh tế kém phát triển đến các cường quốc kinh tế cũng đều có nhu cầu rất lớn về xử lý thông tin. Nhu cầu thu thập thông tin có thể xuất phát từ nhiều nguồn khác nhau và ở cách xa nhau. Vấnđề đặt ra là làm thế nào chúng ta có thể xử lý thông tin ở cách xa nhau một cách nhanh nhất và hiệu quả nhất giữa các hệ thống tin học, mà không xảy ra tranh chấp trong việc thu thập và xử lý thông tin giữa các hệ thống tin học ở khắp nơi trên thế giới. Để giải quyết vấnđề này thì việc thiết kế các chiến lược đồngbộhóacáctiếntrình trong các hệ thống tin học phân tán là rất cần thiết và được quan tâm chú ý rất nhiều. Phân tán hóacá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ácvấ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à đồngbộhóacáctiế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 đồngbộ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 đồngbộhóa thường chỉ dừng lại ở mức chấp nhận được đối với mỗi hệ . Trong phạm vi của tiểu luận này tôi chỉ đề cập đến một khía cạnh nhỏ trong hệ tin học phân tán đó là “Trật tựtừngphầnvàvấnđềđồngbộhóacáctiến trình”, và viết chương trình giải phương trình bậc hai bằng máy đơn và bằng hệ phân tán. Để 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 . Tiểu luận môn học Hệ phân tán Học viên: Bùi Tấn Ngọc 2 PHẦN I: LÝ THUYẾT TRẬTTỰTỪNGPHẦNVÀVẤNĐỀĐỒNGBỘHÓACÁCTIẾNTRÌNH CHƯƠNG 1: TỔNG QUAN VỀ HỆ PHÂN TÁN 1. Định nghĩa hệ p 1.1. Hệ phân tán là một hệ thống. Trong đó, các chức năng và dữ liệu được phân tán trên các trạm kết nối với nhau thông qua một mạng máy tính 1.2 Hệ phân tán là tập hợp các máy tính độc lập, được kết nối với nhau bởi một mạng máy tính và được cài đặt phần mềm phân tán. Tiểu luận môn học Hệ phân tán Học viên: Bùi Tấn Ngọc 3 Hệ phân tán = Mạng máy tính + phần mềm phân tán 1.3 Hệ phân tán là một tập hợp cácbộ đôi vi xử lí + bộ nhớ được kết nối qua mạng truyền thông và tích hợp logic bằng hệ điều hành phân tán hay một hệ cơ sở dữ liệu phân tán. Ví dụ về các hệ phân tán: – Tổ hợp các Web server: cơ sở dữ liệu phân tán cho siêu văn bản và tài liệu đa phương tiện – Hệ thống file phân tán trong một mạng LAN – Dịch vụ tên miền (Domain Name Service - DNS) – Cray XT5 & CLE (multiprocessor quy mô lớn) Tiểu luận môn học Hệ phân tán Học viên: Bùi Tấn Ngọc 4 Như vậy, hệ tin học phân tán có thể bao gồm bốn thực thể như sau: Tóm lại: Hệ tin học phân tán (hệ phân tán) là hệ thống xử lý thông tin bao gồm nhiều bộ xử lý hay 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. Hệ phân tán có các ưu điểm căn bản so với hệ tập trung, như sau: - 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 hoácác loại hình dịch vụ tin học. - Đảm bảo tính toàn vẹn của thông tin. 2. Ưu và nhược - Cơ - - à Phần cứng Phần mềm Dữ liệu Truyền thông Tiểu luận môn học Hệ phân tán Học viên: Bùi Tấn Ngọc 5 - Thời hạn truyền thông tin trong hệ không giống nhau, các thông điệp có thể bị mất trong quá trình chuyển tải, các thông điệp có thể được truyền kép và hệ thống có thể rơi vào sự cố. - Một (hay nhiều) máy tính cấu thành của hệ phân tán có thể bị sự cố và hoạt động của toàn hệ trở nên kém hiệu quả. - phân liên à Tiểu luận môn học Hệ phân tán Học viên: Bùi Tấn Ngọc 6 CHƯƠNG 2: TRẬTTỰTỪNGPHẦNVÀVẤNĐỀĐỒNGBỘHÓACÁCTIẾNTRÌNH 1. Đồngbộtiếntrình 1.1 Bài toán đồngbộhóa Công việc không thể được tiến hành nếu nó không được bộ xử lý tiếp nhận và thực hiện: bộ xử lý là một tài nguyên của hệ thống được sử dụng để hoàn thành công việc. Có thể coi chương trình đang thực hiện như một tiến trình. Cáctiếntrình không tồn tại một cách độc lập trong máy tính, chúng hợp tác với nhau để thực hiện các công việc của người sử dụng và chúng cạnh tranh với nhau để sử dụng chung các tài nguyên hữu hạn: cácbộ xử lý hoặc các file thông tin. Hai đặc trưng hợp tác và cạnh tranh dẫn tới sự cần thiết của các liên lạc giữa cáctiến trình. Để làm rõ tính quan trọng của việc đồngbộhóatiếntrình chúng ta xét ví dụ sau: Giả sử rằng: - Một chương trình có biến counter = 5 - Người sử dụng 1 và 2 thực thi đồng hành câu lệnh “counter++” và “counter--”. - Sau việc thực thi hai câu lệnh này, giá trị của biến counter có thể là 4, 5 hay 6? - Kết quả chỉ đúng khi biến counter == 5, được tạo ra đúng nếu tiếntrình người sử dụng 1 và 2 thực thi riêng biệt. Chúng ta có thể minh hoạ giá trị của counter có thể không đúng như sau : register1 = counter register1 = register1 + 1 counter = register1 Tiểu luận môn học Hệ phân tán Học viên: Bùi Tấn Ngọc 7 Ở đây register1 là một thanh ghi CPU cục bộ. Tương tự, câu lệnh “counter--” được cài đặt như sau: register2 = counter register2 = register2 - 1 counter = register2 Ở đây register2 là thanh ghi CPU cục bộ. Dù là register1 và register2 có thể dùng cùng thanh ghi vật lý, nhưng nội dung của thanh ghi sẽ được lưu lại và lấy lại bởi bộ quản lý ngắt. Thực thi đồng hành của “counter++” và “counter--” là tương tự như thực thi tuần tự ở đây các câu lệnh cấp thấp hơn được hiện diện trước bị phủ lắp trong thứ tự bất kỳ. Một sự phủ lắp là: T0: Người 1 thực thi register1 = counter {register1 = 5} T1: Người 1 thực thi register1 = register1 + 1 {register1 = 6} T2: Người 2 thực thi register2 = counter {register2 = 5} T3: Người 2 thực thi register2 = register2 – 1{register2 = 4} T4: Người 1 thực thi counter = register1 {counter = 6} T5: Người 2 thực thi counter = register2 {counter = 4} Chú ý rằng, chúng ta xem xét tình trạng không đúng “counter == 4”, theo đó có 4 vùng đệm đầy, nhưng thực tế khi đó có 5 vùng đệm đầy. Nếu chúng đổi ngược lại thứ tự của câu lệnh T4 và T5, chúng ta sẽ có trạng thái không đúng “counter == 6”. Chúng ta đi đến trạng thái không đúng này vì chúng ta cho phép cả hai quá trình thao tác đồng thời trên biến counter. Trường hợp tương tự, ở đây nhiều quá trình truy xuất và thao tác cùng dữ liệu đồng hành và kết quả của việc thực thi phụ thuộc vào thứ tự xác định trong đó việc truy xuất xảy ra, được gọi là điều kiện cạnh tranh (race condition). Để ngăn chặn điều kiện cạnh tranh ở trên, chúng ta cần đảm bảo rằng chỉ một quá trình tại một thời điểm có thể được thao tác biến counter. Để thực hiện việc Tiểu luận môn học Hệ phân tán Học viên: Bùi Tấn Ngọc 8 đảm bảo như thế, chúng ta yêu cầu một vài hình thức đồngbộhoá quá trình. Những trường hợp như thế xảy ra thường xuyên trong các hệ điều hành khi cácphần khác nhau của hệ thống thao tác các tài nguyên và chúng ta muốn các thay đổi không gây trở ngại một sự thay đổi khác. 1.2 Miền găng Xét một hệ thống gồm n tiếntrình (P 0 , P 1 , … ,P n-1 ). Mỗi tiếntrình có một phân đoạn mã, được gọi là miền găng, trong đó quá trình này có thể thay đổi những biến dùng chung, cập nhật một bảng, viết đến tập tin .Đặc điểm quan trọng của hệ thống là ở chỗ, khi một quá trình đang thực thi trong vùng tương trục, không có tiếntrình nào khác được phép thực thi trong vùng tương trục của nó. Do đó, việc thực thi của các vùng tương trục bởi cáctiếntrình là sự loại trừ hỗ tương. Vấnđề miền găng là thiết kế một giao thức mà các quá trình có thể dùng để cộng tác. Mỗi tiếntrình phải yêu cầu quyền để đi vào vùng tương trục của nó. Vùng mã thực hiện yêu cầu này là phần đi vào (entry section). Vùng tương trục có thể được theo sau bởi một phần kết thúc (exit section). Mã còn lại là phần còn lại (remainder section). Cấu trúc chung của một quá trình điển hình P i : do { entry section critical section exit section remainder section } while (1); Một giải pháp đối với vấnđề miền găng phải thoả mãn ba yêu cầu sau: Loại trừ hỗ tương: Nếu quá trình Pi đang thực thi trong miền găng của nó thì không tiếntrình nào khác đang được thực thi trong miền găng đó. Progress: nếu không có tiếntrình nào đang thực thi trong miền găng và có vài tiếntrình muốn vào miền găng thì chỉ những tiếntrình không đang thực thi phần còn lại mới Tiểu luận môn học Hệ phân tán Học viên: Bùi Tấn Ngọc 9 có thể tham gia vào việc quyết định tiếntrình nào sẽ đi vào vùng găng tiếp theo và chọn lựa này không thể trì hoãn vô hạn định. Chờ đợi có giới hạn (bounded wait): giới hạn số lần cáctiếntrình khác được phép đi vào miền găng sau khi một tiếntrình thực hiện yêu cầu để đi vào miền găng của nó và trước khi yêu cầu đó được gán. 1.3 Vấnđềđồngbộhóacáctiếntrình trong hệ phân tán Trìnhtựvàđồngbộcáctiếntrình chỉ ra cácvấnđềđồngbộ có thể dẫn đến phải thiết chế một trậttự tổng quát của các sự kiện diễn ra trong hệ. Cần xác định mối liên hệ trao đổi thông qua các thông điệp với thời hạn 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ìnhtự 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áctiếntrình có liên quan. Trong tất cả các hệ thống tin học, đồngbộhóacáctiếntrình mang tính cấp thiết về mặt nguyên lý và kỹ thuật thể hiện ở hai nguyên do cơ bản sau đây: Cáctiếntrình kể cả cáctiếntrình xuất phát từcác ứng dụng độc lập muốn truy cập vào tài nguyên với các 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. Vì vậy, tương tranh là nguyên nhân chính của các xung đột giữa cáctiếntrình muốn truy cập vào tài nguyên dùng chung. Cáctiếntrì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. Vì vậy 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áctiếntrình nhằm cho phép chúng tham gia vào các hoạt động chung. 2. Đồngbộhóa bằng phương pháp trậttựtừngphần Trong các hệ thống tin học tập trung vấnđềđồngbộ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ậttự hoàn toàn các sự