Một tiến trình trên một trạm nào đó có thể yêu cầu được cung cấp tài nguyên dùng chung ở 1 trạm khác.. Trong lĩnh vực tin học, vấn đề cung cấp tài nguyên được đánh giá là một trong những
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG
Đề tài:
NGUYÊN NHÂN THIẾU THỐN TÀI NGUYÊN
Môn học
HỆ TIN HỌC PHÂN TÁN
Giáo viên hướng dẫn : PGS.TS Lê Văn Sơn Người thực hiện: Huỳnh Thị Tâm Thương Lớp: Cao học Khoa học Máy tính - Khoá 12
Trang 2LỜI MỞ ĐẦU
Thế kỷ 21 được nhận định là khởi đầu của kỷ nguyên tri thức, là thế kỷ của thời đại công nghệ thông tin Các thành tựu của ngành khoa học trí tuệ này đã góp phần quan trọng vào việc thay đổi bộ mặt thế giới cả về bề mặt lẫn chiều sâu Và việc ứng dụng các thành tựu của nền công nghệ hiện đại này trở thành vấn đề chủ chốt quyết định sự thành bại của các thành phần tham gia vào lĩnh vực hoạt động trên thế giới từ kinh tế, văn hoá, chính trị đến quân sự.
Hệ tin học phân tán ra đời nhằm đáp ứng một phần cho công nghệ trí tuệ đó, bởi vì nó là một hệ thống tin học hiện đại, bao gồm những lĩnh vực kiến thức tiên tiến nhằm trợ giúp cho các chuyên viên công nghệ thông tin trong công tác nghiên cứu, phân tích và thiết kế các hệ thống tin học Đây là lĩnh vực có tầm ứng dụng cao đang trên đà phát triển nhanh chóng và đã đạt được những thành tựu đáng kể.
Hệ tin học phân tán cho ta khả năng xử lý phân tán nhằm thích ứng tốt hơn với việc phân bố ngày càng rộng rãi của các công ty, xí nghiệp, đồng thời một hệ thống như thế phải có độ tin cậy cao hơn và khả năng đáp ứng tốt hơn Quan trọng hơn, nhiều ứng dụng hiện tại của công nghệ máy tính được phân tán như một hệ quả tất yếu Giao thương điện tử trên Internet các ứng dụng đa phương tiện như việc cung cấp tin tức theo yêu cầu, các kỹ thuật chẩn đoán hình ảnh trong y khoa hoặc các
hệ thống điều khiển sản xuất đều minh hoạ cho những ứng dụng phân tán.
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ủ đề sau:
Phần lí thuyết: Thiếu thốn vô hạn là tình trạng không biết đến bao giờ một tiến trình mới được cung cấp tài nguyên Bạn hãy chỉ ra các nguyên nhân có thể của hiện tượng đó
Phần bài tập: Giả sử có 3 Server phục vụ quản lý các số điện thoại di động của các nhà cung cấp Mobifone, Vinafone, Viettel Anh/chị hãy xây dựng chương trình đảm bảo gắn bó dữ liệu khi truy cập tìm kiếm, thêm và hủy các số thuê bao.
Được sự hướng dẫn tận tình của Thầy giáo Lê Văn Sơn và sự giúp đỡ của các bạn, tôi đã hoàn thành được những nhiệm vụ cơ bản đề ra Tuy nhiên, với thời gian và kiến thức có hạn, bản báo cáo này chắc chắn còn nhiều khuyết điểm, tôi rất mong nhận được góp ý chân thành của Thầy giáo và các bạn Nhân dịp này cho phép tôi xin được bày tỏ lòng biết ơn đối với Thầy giáo Lê Văn Sơn và các bạn đã giúp tôi hoàn thành nội dung bản báo cáo.
Trân trọng cám ơn!
Trang 3CHƯƠNG I : LÝ THUYẾT
1 Một số khái niệm
1.1 Hệ tin học phân tán.
Hệ tin học phân tán hay còn gọi 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.
Trong hệ tin học phân tán, cấu hình phần cứng có thể khác nhau về khả năng và tốc độ, có chức năng xử lý không giống nhau Chúng có thể là các bộ vi xử lý, các trạm làm việc, máy tính tập trung hay loại máy tính điện tử vạn năng lớn khác Ngoài hệ thống phần cứng, phần mềm, dữ liệu, và các hệ thống truyền thông như đã mô tả, điều cơ bản
để nhận biết hệ phân tán chính là nguyên tắc xây dựng hệ Từ nhiều nguồn tài liệu, có thể đúc kết lại thành 4 nguyên tắc xây dựng hệ cơ bản sau đây:
- Chia sẻ tài nguyên: mạng máy tính có thể dùng chung tài nguyên Một tiến trình trên một trạm nào đó có thể yêu cầu được cung cấp tài nguyên dùng chung ở 1 trạm khác
- Liên lạc: Khi hệ thống được mắc nối với nhau, các thực thể của hệ có thể trao đổi thông tin cho nhau
- Tin cậy: một trạm của hệ bị sự cố không làm cho toàn hệ bị ảnh hưởng, mà ngược lại, công việc của trạm đó được phân cho các trạm khác đảm nhiệm Ngoài ra, trạm bị sự cố có thể tự phục hồi lại các trạng thái trước khi bị sự cố hay trạng thái ban đầu của nó
- Tăng tốc: một tính toán lớn nào đó, nếu chỉ sử dụng 1 trạm, thì thời gian trả kết quả sẽ rất lớn Tính toán này được chia nhỏ và thực hiện song song trên các trạm
1.2 Cung cấp tài nguyên.
Trong lĩnh vực tin học, vấn đề cung cấp tài nguyên được đánh giá là một trong những lĩnh vực rấ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ọc phân tán nói riêng
Chúng ta định nghĩa tài nguyên như là một đối tượng mà trong đó các quy tắc sử dụng và chia sẻ được kết hợp với nhau Nói chính xác, đó là những vấn đề quyền truy cập
Trang 4Mộ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 cần 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ó
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 nhất, tập hợp các tiến trình, tập hợp các thủ tục, Các thông điệp yêu cầu sử dụng tài nguyên cũng có thể có các dạng khác nhau như gọi thủ tục, thông báo, thực hiện các lệnh đặc biệt
1.3 Tải:
Tải là tập hợp các yêu cầu phục tùng các qui tắc của một bộ cung cấp
Các tham số đặc trưng của tải là :
1 Số lượng các yêu cầu được cung cấp tài nguyên
2 Bản chất của các yêu cầu
3 Phân tán theo thời gian các yêu cầu tạo ra nó Chức năng quan trọng nhất của việc điều khiển tải là duy trì một cách nhịp nhàng các yêu cầu về tài nguyên của hệ trong một giới hạn chấp nhận được trên cơ sở số lượng tài nguyên hiện hành và các thông số hiệu năng cần phải tuân thủ
Nói một cách ngắn gọn, vai trò của việc điều khiển tải trong hệ được thể hiện dưới hai phương diện sau đây:
1 Điều khiển tổng quát
Điều kiển tải một cách tổng quan trong hệ như là người giữ nhịp cho các hoạt động cung cấp tài nguyên
2 Điều kiển phân tán
Phân tán tải cho các đối tượng có khả năng cung cấp như là người điều kiển hợp lý việc phân bổ các tài nguyên
1.4 Bế tắc:
Bế tắc là sự kẹt chéo lẫn nhau có tính chất sống còn của các tiến trình, nó diễn ra khi hai tiến trình đang sử dụng hai tài nguyên lại phá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:
Trang 5Hình 1 Đồ thị cung cấp tài nguyên bị bế tắc Hình1 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,
và Tr3 Cả 3 tiến trình này đang ở tình trạng bế tắc Tiến trình Tr2 chờ tài nguyên T3 do Tr3 đang chiếm giữ Tiến trình Tr3 chờ tài nguyên T2 được giải phóng bởi Tr1 trạm Tr2 Thêm vào đó, tiến trình Tr1 chờ tiến trình Tr2 giải phóng T1
Lúc này, ta thấy có 2 chu trình kín trong đồ thị là:
Để tránh hiện tượng đó, bộ cung cấp tài nguyên cần phải bảo đảm chức năng điều khiển
Tóm lại: Bộ cung cấp cần phải phân phối các tài nguyên trên cơ sở tuân thủ các quy tắc sử dụng, tránh xảy ra bế tắc và thiếu thốn vô hạn, phân bố tải tương đối đồng đều giữa các tài nguyên cùng loại (cũng có thể thỏa mãn) và giới hạn nhu cầu nhằm duy trì hệ thống hoạt động đạt mức hiệu quả nhất định
Tr1 - T1 - Tr2 - T3 - Tr3 - T2 - Tr1
và
Tr3 - T2 - Tr2 - T3 - Tr3
Tr1
T
T 4 T
2
Trang 62 Nguyên nhân của hiện tượng thiếu thốn vô hạn nguồn tài nguyên:
Thiếu tài nguyên vĩnh viễn là sự chờ đợi bất tận của một tiến trình mà yêu cầu của
nó trễ đến mức không thể xác định được Một chiến lược cung cấp tài nguyên tồi cũng có thể là nguồn gốc hủy hoại hiệu năng hoạt động của hệ do các hiện tượng “sốc” làm tăng các yêu cầu mà không được đáp ứng của một số tài nguyên
Bộ cung cấp cần phải phân phối các tài nguyên trên cơ sở tuân thủ các qui tắc sử dụng, tránh xảy ra bế tắc và thiếu thốn vô hạn, phân bổ tải tương đối đồng đều giữa các tài nguyên cùng loại (cùng có thể thỏa mãn) và giới hạn nhu cầu nhằm duy trì hệ thống hoạt động đạt mức hiệu quả nhất định
2.1 Điều kiện làm cho một tiến trình mất khả năng sử dụng tài nguyên.
Một yêu cầu được thỏa 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 thủ các qui tắc nhất định
Có hai điều kiện làm cho một tiến trình mất khả năng sử dụng tài nguyên đã được cung cấ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ệ, hoạt động của một tập hợp các tiến trình trên một tập hợp các tài nguyên dùng chung được xem là tuyệt vời, nếu không để xảy ra bế tắc và thiếu thốn tài nguyên vĩnh viễn
2.2 Cung cấp tài nguyên.
Cung cấp tài nguyên chỉ được chấp nhận, nếu trạng thái xuất phát từ việc cung cấp
đó được đánh giá là chấp nhận được theo thuật toán đã sử dụng Trên cơ sở thực hiện cùng một thuật toán và có cùng thông tin, mỗi trạm ra quyết định cung cấp căn cứ vào bản sao trạng thái cục bộ của nó Việc cung cấp cho tiến trình đề nghị sẽ được thực hiện ngay trên trạm có tài nguyên
Để cập nhật thông tin, mỗi tiến trình phát đi cho một tập hợp nhất định các trạm: + Thông điệp của mình
+ Các yêu cầu của mình
+ Các thông điệp giải phóng của mình
Trang 7Nếu N(T2)<N(T1) thì <T2 bị chặn>
Nếu không <T2 bị hủy rồi được khởi sự lại>
Chấm dứt nếu
Các bản sao trạng thái tổng quát trên các trạm phải có cùng các bước chuyển trạng thái Để đảm bảo điều đó, cần phải xử lý các yêu cầu trong cùng một trật tự trên tất cả các trạm Trật tự này có thể khác với trật tự đến
Hay nói cách khác một tiến trình không được cung cấp tài nguyên khi nó không tuân thủ các qui tắc sau: không cùng một thuật toán, không cùng thông tin và tại các trạm không có cùng các bước chuyển trạng thái
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 cần 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ó
2.3 Thực hiện việc truy cập thông tin.
Nếu các giao dịch thực hiện truy cập đồng thời lên cơ sở dữ liệu trên môi trường phân tán sẽ có rất nhiều vấn đề nảy sinh và không đảm bảo gắn bó thông tin lúc truy cập
Ví dụ: Giả sử rằng T1 và T2 là hai giao dịch đang ở trạng thái xung đột để truy cập vào một đối tượng chung e T1 đã thực hiện động tác đầu tiên trên e Ta gọi các N(T1) và N(T2) là các dấu kết hợp lần lượt với từng giao dịch khi khởi sự
Khi diễn ra xung đột, việc lựa chọn được thực hiện bằng bộ điều khiển của trạm e được tiến hành như sau:
Nói cách khác, nếu giao dịch T2 là trước hơn thì nó vẫn trong tình trạng bị chặn cho đến khi T1 kết thúc bình thường hay đến lượt bị hủy bỏ Nếu giao dịch T2 là mới nhất thì nó bị hủy và khởi động lại bắt đầu từ trạm sinh ra nó
Thiếu tài nguyên vĩnh viễn là sự chờ đợi bất tận của một tiến trình mà yêu cầu của
nó trễ đến mức không thể xác định được Nguyên nhân của hiện tượng vừa nêu là do sử dụng luật ưu tiên để cung cấp tài nguyên
2.4 Điều khiển tải.
Chức năng quan trọng nhất của việc điều khiển tải là duy trì một cách nhịp nhàng các yêu cầu về tài nguyên của hệ trong một giới hạn chấp nhận được trên cơ sở số lượng tài nguyên hiện hành và các thông số hiệu năng cần phải tuân thủ
Trang 8Trong việc điều khiển tải tổng quát: về mặt tổ chức, các yêu cầu về sử dụng tài nguyên được gửi đến hệ thống qua sự trung gian của một tiến trình được gọi là bộ phận phối tải và được thể hiện trong hình vẽ dưới đây
Hình 2 Sơ đồ tổ chức điều khiển tải tổng quát Trình tự làm việc như sau: đầu tiên tài nguyên được hình thành bởi một đề nghị nào đó cho một server xác định trong số các server có khả năng phục vụ Bộ điều khiển tải có chức năng cung cấp thông tin kịp thời và tương đối chính xác về khả năng của các server chấp nhận hay không chấp nhận các yêu cầu
Trong khi vận hành hệ, bộ điểu khiển tải chỉ biết được giá trị gần đúng của tải này,
đó chính là nguyên nhân cơ bản của hai vấn đề khó khăn sau đây:
1
Nếu tải vượt quá mức cho phép, bộ điểu khiển tải có thể quyết định
sai là ném các yêu cầu ra ngoài tầm phục vụ Điều đó có thể dẫn đến
việc sử dụng dưới mức giới hạn cho phép của các tài nguyên được
điều khiển bởi các server
2
Nếu tải còn dưới mức cho phép, bộ điều khiển tải chấp nhận một yêu
cầu; nếu các server không có sự điều khiển tải riêng của mình Điều
đó dẫn đến việc sử dụng quá mức giới hạn của các tài nguyên
Cần lưu ý rằng, chức năng của các server là đảm bảo cho hệ nói chung mỗi khi tiếp nhận các yêu cầu mới cần phải tính ngay đến việc là các yêu cầu này sẽ cần phải kết thúc một cách bình thường
Vậy để sử dụng tài nguyên một cách có hiệu quả nhất tránh xảy ra trường hợp thiếu tài nguyên thì bộ điều khiển tải hoạt động phải chính xác, và cung cấp các thông tin một cách kịp thời
T
Bộ phân phối tải
Tr1
Tr2
S1
S2
S3 Tr3
Trang 9CHƯƠNG 2: BÀI TẬP
1 Gắn bó dữ liệu
Vấn đề gắn bó dữ liệu trong các hệ thống phân tán nói chung và các hệ thống thông tin đăng ký trên mạng nói riêng đã trở thành một lĩnh vực thu hút nhiều sự quan tâm của các nhà nghiên cứu lý thuyết lẫn các nhà sản xuất phần mềm nhằm tìm ra các giải pháp hữu hiệu đảm bảo tính gắn bó thông tin trong các cơ sở dữ liệu truy cập ngẫu nhiên với
số lượng truy cập lớn
Việc nghiên cứu, phát triển các phương pháp đảm bảo gắn bó dữ liệu trong môi trường phân tán đến nay đã có một số thành công đáng kể Trước hết, phải nói đến sự tích hợp hàng loạt các hàm vào các hệ điều hành, hệ quản trị cơ sở dữ liệu, ngôn ngữ lập trình với phương thức riêng rẽ của từng hệ cho phép đảm bảo phần cơ bản của việc gắn bó thông tin nói chung trong quá trình đa truy cập thông qua hệ thống viễn thông Việc triển khai phương pháp cho phép gắn bó dữ liệu trong môi trường phân tán trong điều kiện lý tưởng (không có bất kỳ sự cố nào) đã được áp dụng và mang lại những hiệu quả nhất định cho các hệ thống đăng ký
Một cơ sở dữ liệu nào đó được gọi là gắn bó, nếu nó thõa mãn một tập các ràng buộc về toàn vẹn ngữ nghĩa Để đảm bảo tính gắn bó dữ liệu nhiều cơ chế khác nhau như điều khiển hoạt động đồng thời, kiểm soát tính toàn vẹn ngữ nghĩa, được sử dụng
Việc kiểm soát tính toàn vẹn ngữ nghĩa tốt sẽ đảm bảo được tính gắn bó dữ liệu của
hệ thống thông tin Hiện nay, người ta đang áp dụng hai phương pháp chủ yếu :
1 Loại bỏ các chương trình/thủ tục cập nhật có thể dẫn đến trạng thái không gắn
bó dữ liệu trong các cơ sở dữ liệu
2 Triệu gọi các chương trình/thủ tục đặc biệt đã được cài đặt trên hệ thống nhằm khôi phục trạng thái ban đầu trước khi cập nhật
Các ràng buộc toàn vẹn được phân làm hai loại chủ yếu :
1 Ràng buộc cấu trúc (Structural Constraint) diễn tả những đặc tính ngữ nghĩa cơ bản vốn có trong mô hình Ví dụ như ràng buộc thể hiện bằng khóa duy nhất trong mô hình quan hệ hoặc các liên kết theo kiểu 1 – n, (n > 1) giữa các đối tượng trong mô hình mạng
2 Ràng buộc hành vi (Behavioral Constraint) nhằm điều hòa các hoạt động của các ứng dụng
Trang 102 Bài tập.
Giả sử có 3 Server phục vụ quản lý các số điện thoại di động của các nhà cung cấp Mobifone, Vinafone, Viettel
Xây dựng chương trình đảm bảo gắn bó dữ liệu khi truy cập tìm kiếm, thêm và hủy các số thuê bao
2.1 Đảm bảo gắn bó dữ liêêu
Để dễ dàng mô tả giải thuật đảm bảo gắn bó dữ liệu phân tán, chúng ta giả thiết rằng, tại vị trí nguồn của giao dịch một tiến trình thực hiện các thao tác của nó, tiến trình này được gọi là điều phối viên (Coordinator) Điều phối viên trao đổi với các thành viên (Participant) tại những vị trí có tham gia vào việc thực hiện các thao tác của giao dịch
Ta có sơ đồ hoạt động của giải pháp kỹ thuật đảm bảo gắn bó dữ liệu như sau
Theo mô hình trong hình vẽ, ta có các đối tượng sau :
1 C 1 , C 2 , , C n là các Client truy cập Web Server bằng trình duyệt Web
2 Servlets là các đối tượng xử lý yêu cầu được gửi từ các C i , i=1,n
3 TPC-Server-App1, TPC-Server-App2, TPC-Server-App3 là các RMI Server cài
đặt thuật toán 2PC tuyến tính, hay nói cách khác là nó cài đặt một giao diện cung cấp phương thức xử lý theo thuật toán 2PC tuyến tính với tham số là danh sách di chuyển, chỉ
3 2
1
Database2
ConnectionPool
Database1
ConnectionPool
Database3
ConnectionPool
C1
C2
Cn
1.WebSever
Hình 3 Sơ đồ hoạt động của giải pháp kỹ thuật đảm bảo gắn bó dữ liệu cho 3 Server