Bài giảng Hệ điều hành - Chương 8, Phần 1: Hệ thống phân tán - Đặng Minh Quân
Tại sao cần hệ thống phân tán
Chia sẻ tài nguyên
Chia sẻ và in các file từ xa
Xử lý thông tin trên các cơ sở dữ liệu phân tán
Sử dụng các thiết bị đặc biệt từ xa
Tăng tốc độ tính toán – chia sẻ tải
Tăng độ tin cậy – phát hiện và hồi phục các vùng bị lỗi, chuyển chức năng sang vùng khác, tích hợp lại vùng đã bị lỗi
Thông tin liên lạc – truyền thông điệp
Hệ điều hành hướng mạng
Người dùng biết về sự hiện diện của rất nhiều các máy tính khác nhau. Truy cập tới tài nguyên của các máy tính được thực hiện bằng cách:
Đăng nhập từ xa vào máy phù hợp.
Chuyển dữ liệu từ các máy ở xa về máy địa phương thông qua các giao thức như FTP, HTTP.
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành - Chương 8, Phần 1: Hệ thống phân tán - Đặng Minh Quân", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Hệ điều hành - Chương 8, Phần 1: Hệ thống phân tán - Đặng Minh Quân
![Bài giảng Hệ điều hành - Chương 8, Phần 1: Hệ thống phân tán - Đặng Minh Quân Bài giảng Hệ điều hành - Chương 8, Phần 1: Hệ thống phân tán - Đặng Minh Quân](https://s1.tailieubachkhoa.net/rl6k7x3q9zfh00j8/thumb/2021/12/03/bai-giang-he-dieu-hanh-chuong-8-phan-1-he-thong-phan-tan-dan_2TVKZbzH6r.jpg)
Operating System Chapter 8: Hệ thống phân tán Overview Basic concept I/O model I/O-System implementation Access I/O-System A Distributed System Tại sao cần hệ thống phân tán Chia sẻ tài nguyên Chia sẻ và in các file từ xa Xử lý thông tin trên các cơ sở dữ liệu phân tán Sử dụng các thiết bị đặc biệt từ xa Tăng tốc độ tính toán – chia sẻ tải Tăng độ tin cậy – phát hiện và hồi phục các vùng bị lỗi , chuyển chức năng sang vùng khác , tích hợp lại vùng đã bị lỗi Thông tin liên lạc – truyền thông điệp Hệ điều hành hướng mạng Người dùng biết về sự hiện diện của rất nhiều các máy tính khác nhau . Truy cập tới tài nguyên của các máy tính được thực hiện bằng cách : Đăng nhập từ xa vào máy phù hợp . Chuyển dữ liệu từ các máy ở xa về máy địa phương thông qua các giao thức như FTP, HTTP. Hệ điều hành phân tán Người dùng không cần biết về sự hiện diện của các máy tính khác . Truy cập tới tài nguyên ở xa cũng tương tự như truy cập tới tài nguyên địa phương . Di cư dữ liệu – chuyển dữ liệu bằng cách chuyển toàn bộ hay một phần của file cần thiết cho tác vụ tức thời . Di cư tính toán – chuyển việc tính toán , chứ không phải là dữ liệu , dọc ngang hệ thống . Hệ điều hành phân tán Di cư tiến trình – chạy toàn bộ tiến trình hay một phần của nó tại các địa điểm khác nhau . Cân bằng tải – phân tán các tiến trình trên toàn hệ thống để cân bằng tải . Tăng tốc độ tính toán – các tiến trình con có thể được chạy đồng thời tại các địa điểm khác nhau . Yêu cầu đặc biệt về phần cứng – chạy tiến trình có thể yêu cầu một bô VXL dặc biệt . Yêu cầu đặc biệt về phần mềm – phần mềm cần thiết chỉ có ở một địa điểm nhất định . Truy cập dữ liệu – chay các tiến trình từ xa thay vì truyền dữ liệu từ xa về . Các dịch vụ từ xa Các yêu cầu truy cập file từ xa được chuyển đến server. Các yêu cầu truy cập được phiên dịch thành các thông điệp cho server và phản hồi từ server cũng được đóng gói thành các thông điệp và chuyển về cho người dùng . Cách phổ biến để thực hiện như trên là dùng Remote Procedure Call (RPC). Các thông điệp được gửi tới một tiến trình RPC đang nghe ở một cổng trên máy ở xa có chứa tên tiến trình cần chạy và các tham số . Tiến trình được chạy theo yêu cầu và kết quả được gửi lại cho người yêu cầu trong một thông điệp riêng biệt . Một cổng là một số được thêm vào ở phần đầu của goi thông điệp . Một hệ thống có thể có nhiều cổng với cùng một địa chỉ mạng để phân biệt các dịch vụ mạng khác nhau . Hệ thống file phân tán Một hệ thống file phân tán (DFS) có thể được xây dựng như là một tập các tiến trình RPC server và clients. Thông điệp có địa chỉ tới cổng DFS trên một máy chủ mà tác vụ về file sẽ được thực hiện . Thông điệp chứa các tác vụ đĩa cần được thực hiện (i.e., read, write, rename, delete or status ). Thông điệp trả lại sẽ chứa các dữ liệu kết quả của lời gọi đó . Tiến trình DFS thực hiện lời gọi thay mặt cho client. Các luồng Các luồng có thể gửi và nhận thông điệp trong khi các tác vụ khác có thể được thực hiện một cách không đồng bộ . Luồng Pop-up – được tạo ra khi có RPC mới . Tạo mới thuận tiện hơn là khôi phục cái sẵn có . Không cần phải khóa luồng để đợi công việc mới ; không cần ghi lại hay khôi phục hoàn cảnh . Incoming RPCs do not have to copied to a buffer within a server thread. RPCs tới các tiến trình trên cùng một máy có thể được làm hiệu quả hơn nữa thông qua liên lạc giữa các luồng bằng chia sẻ bộ nhớ . Sự khỏe mạnh của hệ thống Phát hiện lỗi . Đường truyền Vị trí Thiết đặt lại hệ thống để việc tính toán có thể tiếp tục . Khôi phục khi một vị trí hay một đường truyền đã được sửa chữa . Để đảm bảo hệ thống là khỏe mạnh , chúng ta phải : Phát hiện lỗi - Thủ tục bắt tay Trong khoảng thời gian cố định, các vị trí A và B gửi cho nhau một thông báo I-am-up. Nếu vị trí A không nhận được thông báo này trong một khoảng thời gian định trước, nó có thể giả định rằng vị trí B đã bị lỗi , rằng sự liên kết giữa A và B đã bị lỗi hoặc các tin nhắn từ B đã bị mất. Tại thời điểm vị trí A gửi thông điệp Are - you -up?, nó xác định một khoảng thời gian mà nó sẵn sàng chờ đợi câu trả lời từ B. Nếu A không nhận được tin nhắn trả lời từ B trong khoảng thời gian, A có thể kết luận rằng một hoặc nhiều tình h uống sau đã xảy ra: - Vị trí B bị lỗi - Liên kết trực tiếp (nếu có) từ A đến B bị lỗi - Các con đường thay thế từ A đến B bị lỗi . - Thông điệp này đã bị mất. Thiết đặt lại Thủ tục cho phép hệ thống cấu hình lại và tiếp tục chế độ hoạt động bình thường của nó. Nếu một liên kết trực tiếp từ A đến B đã bị lỗi , thông tin này phải được báo cho mọi vị trí trong hệ thống, do đó, các bảng định tuyến khác nhau có thể được cập nhật cho phù hợp. Nếu ta tin rằng một vị trí đã bị lỗi , tất cả các vị trí trong hệ thống phải được thông báo, do đó chúng sẽ không còn cố gắng sử dụng các dịch vụ của các vị trí bị lỗi . Khôi phục từ lỗi Khi một liên kết hoặc một vị trí đã được sửa chữa, nó phải được tích hợp vào hệ thống một cách thuận lợi. Giả sử rằng một liên kết giữa A và B đã bị lỗi . Khi nó được sửa chữa, cả A và B phải được thông báo. Chúng t a có thể thực hiện thông báo này bằng cách liên tục lặp đi lặp lại các thủ tục bắt tay. Giả sử vị trí B đã bị lỗi . Khi nó phục hồi, nó phải thông báo cho tất cả các vị trí khác l à nó hoạt động trở lại. Vị trí B sau đó có thể phải nhận từ các vị trí khác các thông tin khác nhau để cập nhật bảng địa phương. Các vấn đề về thiết kế Tính trong suốt và địa phương - hệ thống phân tán phải trông giống như hệ thống tập trung thông thường và không phân biệt giữa các tài nguyên địa phương và từ xa. Người sử dụng di động - mang lại môi trường của người sử dụng (ví dụ, thư mục) ở bất cứ nơi nào Khả năng chịu lỗi - hệ thống cần phải tiếp tục hoạt động khi phải đối mặt với nhiều loại hình lỗi . Khả năng mở rộng - hệ thống nên thích ứng với tăng tải dịch vụ. Cấu trúc tiến trình máy chủ - máy chủ nên hoạt động hiệu quả trong thời gian cao điểm, sử dụng các tiến trình nhẹ hoặc luồng . Xử lý tắc nghẽn trong hệ thống phân tán Giới thiệu về tắc nghẽn Phát hiện tắc nghẽn Ngăn chặn tắc nghẽn Giới thiệu về tắc nghẽn Giới thiệu về tắc nghẽn Giới thiệu về tắc nghẽn X1 sở hữu hướng H1 X1 muốn đi hướng H2 Giới thiệu về tắc nghẽn Điều kiện để xảy ra tắc nghẽn: Một tài nguyên chỉ có thể bị nắm giữ bởi một đối tượng Đối tượng đang giữ tài nguyên có thể đợi để có một tài nguyên khác Một tài nguyên khi đã bị nắm giữ thì không thể lấy ra khỏi đối tượng nắm giữ Tài nguyên được chờ đợi theo chu trình Tắc nghẽn trong hệ thống phân tán Điều kiện để xảy ra tắc nghẽn: Một tài nguyên chỉ có thể bị nắm giữ bởi một tiến trình Tiến trình đang giữ tài nguyên có thể đợi để có một tài nguyên khác Một tài nguyên khi đã bị nắm giữ thì không thể lấy ra khỏi tiến trình nắm giữ Tài nguyên được chờ đợi theo chu trình Tiến trình p1sở hữu tài nguyên r1 Tiến trình p1 muốn độc quyền sử dụng tài nguyên r2 Hãy chỉ ra hệ thống có tắc nghẽn Hệ thống 1 Hệ thống 2 Phương pháp chung xử lý tắc nghẽn Bỏ qua Phát hiện tắc nghẽn Ngăn ngừa tắc nghẽn Phòng tránh tắc nghẽn Chủ yếu áp dụng cho hệ thống phân tán mà Mỗi tiến trình là một giao dịch có tính nguyên tử Phát hiện tắc nghẽn tập trung Mỗi máy tính duy trì một đồ thị sử dụng tài nguyên của các tiến trình địa phương Một bộ điều phối trung tâm duy trì đồ thị sử dụng tài nguyên của toàn bộ hệ thống Thông điệp sẽ được gửi tới bộ điều phối khi một cạnh của đồ thị được thêm vào hay xóa đi Phát hiện tắc nghẽn tập trung Đồ thị tài nguyên tại A Đồ thị tài nguyên tại B Đồ thị tài nguyên toàn cục tại bộ điều phối Phát hiện tắc nghẽn tập trung Nếu tiến trình P1 đòi hỏi tài nguyên T của máy B B sẽ gửi thông điệp đợi T cho bộ điều phối Bộ điều phối phát hiện chu trình và quyết định máy sẽ gửi thông báo đến để kết thúc tiến trình Phát hiện tắc nghẽn tập trung Tiến trình P1 giải phóng tài nguyên R Tiến trình P1 đòi hỏi tài nguyên T của máy B 2 thông điệp được gửi tới bộ điều phối 1 (từ A) giải phóng R 2 (từ B) đợi T Nếu thông điệp 2 đến trước -> tắc nghẽn sai Bộ điều phối hỏi các máy có thông điệp giải phóng tài nguyên nào không Phát hiện tắc nghẽn tập trung Đồ thị tài nguyên của các máy trong 1 hệ thống phân tán được biểu diễn như hình sau. Hệ thống sau có tắc nghẽn hay không Máy 1 Máy 2 Máy 3 Ngăn chặn tắc nghẽn Thiết kế hệ thống để tắc nghẽn không thể xảy ra Với giả sử rằng mỗi tiến trình tương ứng với một giao dịch nguyên tử Mỗi tiến trình sẽ có một nhãn thời gian toàn cục khi nó được khởi tạo Ngăn chặn tắc nghẽn Thuật toán đợi - chết Nếu tiến trình già muốn có tài nguyên nắm giữ bởi tiến trình trẻ: Tiến trình già được phép đợi Nếu tiến trình trẻ muốn có tài nguyên nắm giữ bởi tiến trình già: Tiến trình trẻ tự chết Ngăn chặn tắc nghẽn Hãy chỉ ra các tiến trình bị kết thúc theo thuật toán đợi - chết Ngăn chặn tắc nghẽn Thuật toán bị thương -đợi Nếu tiến trình già muốn có tài nguyên nắm giữ bởi tiến trình trẻ: Tiến trình già kết thúc tiến trình trẻ Nếu tiến trình trẻ muốn có tài nguyên nắm giữ bởi tiến trình già: Tiến trình trẻ được phép đợi Ngăn chặn tắc nghẽn Hãy chỉ ra các tiến trình bị kết thúc theo thuật toán bị thương - đợi
File đính kèm:
bai_giang_he_dieu_hanh_chuong_8_phan_1_he_thong_phan_tan_dan.ppt