Hệ điều hành phân tán
Website: http://www.docs.vn Email : lienhe@docs.vn Tel (: 0918.775.368 PHẦN I: TỔNG QUAN VỀ HỆ PHÂN TÁN. I. HỆ PHÂN TÁN 1. Mở đầu Hệ phân tán là tập hợp nhiều máy tính độc lập kết nối với nhau qua mạng và được cài đặt phần mềm của hệ phân tán. Các phần mềm của hệ phân tán được thiết kế để giúp cho các máy phối hợp hoạt động với nhau, cùng sử dụng những tài nguyên chung của hệ như phần cứng, phần mềm và dữ liệu. Khi sử dụng một hệ phân tán có thiết kế tốt có thể nhận được một tiện ích tính toán thong nhất, ngay cả khi tiện ích đó được sử dụng ở nhiều máy tính đặt ở những vị trí khác nhau. Các hệ phân tán được lắp đặt trên cơ sở các phần cứng với phạm vi khác nhau, từ một số ít trạm làm việc kết nối bằng mạng LAN vào INTERNET, đến tập hợp các mạng LAN và WAN rộng khắp thế giới kết nối hàng triệu máy tính với nhau. Hệ phân tán có phạm vi ứng dụng rất rộng, từ cung cấp các tiện ích tính toán dung cho mục đích chug của nhiều nhóm người sử dụng đến các hệ thống tryền thông đa phương tiện, hệ thống thu ngân ngân hang tự động, và hầu như chúng chứa đựng hầu hết các ứng dụng kỹ thuật và thương mại về máy tính. Hiện nay, chúng ta đã có nhiều nghiên cứu phát triển về thiết kế các hệ điều hành phân tán và những nguyên tắc cơ sở của chùng. Nhiều hệ điều hành phân tán đã ra đời và các ứng dụng của chúng ngày càng có hiệu quả hơn. 2. Những đặc trưng chủ yếu của hệ phân tán Hệ phân tán mang tính hữu dụng là nhờ có đặc tính chủ yếu, đó là: chia sẻ tài nguyên, tính mở, tính đồng thời, tính quy mô, tính chịu lỗi, và tính trong suốt. Trong phần này ta sẽ xét từng đặc tính cụ thể. Cần lưu ý rằng, những đặc tính đó không phải là kết quả tự nhiên của sự phân tán, mà là do thiết kế của hệ thống và phần mềm ứng dụng. a. Chia sẻ tài nguyên Tài nguyên bao gồm những thành phần phần cứng như: đĩa, máy in, và những thành phần phần mềm như: file, cơ sở dữ liệu và những đối tượng dữ liệu khác.Lợi ích của viêc truy cập vào hệ thống chứa các cơ sở dữ liệu, chương trình, tài liệu vào những thông tin chung khác được thể hiện rõ trong hệ thống chia sẻ thời gian hoặc hệ thống nhiều người sử dụng vào đầu những năm 1960, vào các hệ thống UNIX MultiUser vào những năm 1970. Tài nguyên của máy tính nhiều người dung thường được dùng chung cho tất cả những người sử dụng nó, những người làm việc trong các máy trạm đơn lẻ vào của các máy tính cá nhân không có đặc tính hữu ích này. Các tài nguyên chung trong hệ phân tán được đóng gói vật lý trong một máy tính của hệ, và từ các máy khác chỉ có thể truy cập vào bằng con đường truyền thông. Để dùng chung một cách hiệu quả, tài nguyên phải được quản lý bằng một chương trình cung cấp giao diện truyền thông cho phép truy cập vào tài nguyên chung, sử dụng và cập nhật tài nguyên thường xuyên và chắc chắn. - 1 - Website: http://www.docs.vn Email : lienhe@docs.vn Tel (: 0918.775.368 Thuật ngữ quản lý tài nguyên đôi khi dung để biểu thị module phần mềm quản lý những tài nguyên thộc một dạng đặc biệt. Mỗi dạng tài nguyên đòi hỏi có phương thức và biện pháp quản lý riêng, nhưng cũng có những cái chung. Đó là việc cung cấp sơ đồ đặt tên cho mỗi nhóm tài nguyên, giúp truy cập vào các tài nguyên riêng lẻ từ bất kỳ vị trú nào, việc đưa tài nguyên vào địa chỉ truyền thông và việc phối hơp các truy cập đồng thời làm thay đổi trạng thái của các tài nguyên chung, bảo đảm tính nhất quán của chúng. Hệ phân tán gồm tập hợp các quản lý tài nguyên và tập hợp chương trình sử dụng tài nguyên. Những người sử dụng tài nguyên liên lạc với bộ quản lý tài nguyên để truy cập vào tài nguyên chung của hệ. Chúng ta có thể phát triển phối cảnh này để tạo ra 2 mô hình rất thú vị cho các hệ phân tán, mô hình khách- chủ( client-Server model ) và mô hình dựa trên đối tượng (object- based model). • Mô hình khách chủ: Hiện nay nó là mô hình nổi tiếng nhất và sử dụng rộng rãi nhất cho các hệ phân tán. Máy chủ có nhiều tiến trình, mỗi tiến trình đóng vai trò là một trình quản lý tài nguyên của nhiều tài nguyên thuộc một dạng nhất định, máy khách ( client ) cũng có nhiều tiến trình, mỗi tiến trình thực hiện một nhiệm vụ, đòi hỏi phải truy cập vào tài nguyên chung mà tiến trình khác quản lý, do đó một só tiến trình vừa là trình khách, vừa là trình chủ. Trong mô hình khách - chủ, tất cả các tài nguyên chung đều được lưu giữ và quản lý bởi các trìh chủ. Trình khách đưa ra yêu cầu cho Server mỗi khi chúng cần truy cập vào một trong những tài nguyên của Server. Nếu yêu cầu hợp lệ, thì Server thực hiện yêu cầu và gửi phúc đáp cho trình khách. Trong mô hình khách chủ mỗi trình chủ có thể coi là nơi cung cấp tập trung tài nguyên mà nó quản lý. Việc cung cấp tài nguyên là bất đắc dĩ trong các hệ phân tán với nhiều lý do. Một trong những lý do đó là sự phân biệt giữa các dịch vụ cung cấp tài nguyên cho client và Server cung cấp dịch vụ đó. Dịch vụ được coi là một thực thể trừu tượng cung cấp từ nhiều trình chủ chạy ở nhiều máy riêng lẻ liên kết qua mạng. Mô hình khách chủ được khai thác rất hiệu quả trong hệ thống hiện nay, chúng có nhiều dịch vụ quản lý các dạng tài nguyên chung khác nhau: thư tín điện tử (email), các thông báo (message ), file, giờ đồng bộ toàn mạng, lưu trữ lên đĩa, máy in, truyền thông diện rộng và thậm chí cả không gian hiển thị cửa sổ trên màn hình các máy nối mạng. Nhưng không thể quản lý và dung chung tất cả các tài nguyên trong hệ phân tán theo cách này. Để hoạt động có hiệu quả hơn, một số loại tài nguyên phụ giữ nguyên tại chỗ của mỗi máy. Bộ nhớ truy cập ngẫu nhiên, bộ xử lý trung tâm và giao diện mạng LAN thường được coi là tập hợp tối thiểu những tài nguyên đó. Những tài nguyên chủ chốt này được quản lý riêng biệt trong hệ điều hành của mỗi máy, chúng chỉ được dùng chung cho các tiến trình trong cùng một máy. Trong một số ứng dụng đòi hỏi sự phối hợp trực tiếp giữa các máy khách, mô hình khách-chủ không đáp ứng được tất cả các yêu cầu, nhưng nó lại đáp - 2 - Website: http://www.docs.vn Email : lienhe@docs.vn Tel (: 0918.775.368 ứng được hầu hết các ứng dụng hiện tại và là cơ sở cho các hệ điều hành phát triển mục đích chung. • Mô hình dựa trên đối tượng: Mô hình này không giống mô hình lập trình hướng đối tượng truyền thống, ở mô hình lập trình hướng đối tượng truyền thống mỗi thực thể trong chương trình thực hiện đều được coi là một đối tượng có giao diện xử lý thông báo co phép truy cập vào các hoạt động của nó. Còn trong mô hình dựa trên đối tượng dùng cho các hệ phân tán, mỗi tài nguyên chung được coi là một đối tượng. Đối tượng được xác định là duy nhất và di chuyển đến mọi chỗ trên mạng không cần thay đổi tính nhận dạng của chúng. Mỗi khi chương trình dung tài nguyên muốn truy cập vào tài nguyên phải gửu đi thông báo yêu cầu đến đối tượng tương ứng. Thông báo được chuyển đến cho thủ tục hoặc tiến trình thích hựp thực hiện yêu cầu đó và gửi thông báo trả lời cho tiến trình yêu cầu nếu cần thiết. Nó nổi trội hơn ở tính đơn giản và tính linh hoạt. Nó giúp người sử dụng xem xét tài nguyên theo một chá thông nhất. Cũng như trong mô hình khách chủ, các đối tượng có thể đóng vài trò vừa là người sử dụng tài nguyên, vừa là trình quản lý tài nguyên. Tài nguyên mô hình khách chủ, sơ đồ đặt tên dùng cho tài nguyên theo một cách thống nhất. Việc ứng dụng mô hình dựa trên đối tượng làm nảy sinh một số vấn đề khó khăn. Vì các đối tượng bao hàm cả sự biểu diễn trạng thái của chúng, nên để trình quản lý mỗi đối tượng có thể truy cập trạng thái của đối tượng đó, thì nó phải được định vị ở nơi mà đối tượng đó định vị. Điều này thể hiện rất rõ ràng, khi các đối tượng không thể di chuyển tự do chỉ mới ứng dụng trong các hệ thử nghiệm như Arjuna(1989), Clouds và Êmerald (1987 ). Trong mô hình đó các đối tượng được định vị bằng một tập hợp các trình quản lý đối tượng ở dạng tương ứng, và bộ quản lý đối tượng tương ứng được sao chép lại ở vị trí mới mỗi khi có một đối tượng di chuyển. b. Tính mở Tính mở của hệ thống máy tính là đặc trưng để xác định xem hệ thống có thể mở rộng theo nhiều cấp độ khác nhau hay không. Tính mở hoặc đóng của hệ thống được xét dựa theo khả năng hỗ trợ việc mở rộng của thiết bị phần cứng (ví dụ: bổ sung các thiết bị ngoại vi, bộ nhớ và các giao diện truyền thông ) và hỗ trợ việc mở rộng các phần mềm, như: bổ sung thêm các tính năng của hệ điều hành, các giao thức truyền thông và các dịch vụ chia sẻ tài nguyên. Tính mở của các hệ phân tán được đánh giá theo mức độ bổ sung các dịch vụ chía sẻ tài nguyên mà không phá vỡ hoặc lặp lại các dịch vụ hiện có. Tính mở được thể hiện nhờ những giao diện phần mềm chủ chốt của hệ thống giao diện đó được xác định rõ và lập thành tài liệu sẵn cho những người phát triển phần mềm. Về mặt lịch sử, các hệ máy tính đã từng mang tích chất đóng. Chúng thực hiện các chương trình trong phạm vi các ngôn ngữ lập trình, nhưng không cho phép những người phát triển trình ứng dụng mở rộng ngữ nghĩa để khai thác - 3 - Website: http://www.docs.vn Email : lienhe@docs.vn Tel (: 0918.775.368 các phần cứng hoặc các tính năng mới của hệ điều hành. UNIX là hệ thống có thiết kế mang tính mở đầu tiên. Ngôn ngữ lập trình C mà nó cung cấp cho phép người lập trình truy cập vào ttất cả các tài nguyên mà hệ điều hành quản lý. C là ngôn ngữ cấp cao, cho phép các chương trình có thể biên dịch và thực hiện trên nhiều máy tính khác nhau. Việc truy cập tài nguyên của hệ điều hành UNIX được thực hiện thông qua một tập hợp thủ tục gọi là các lời gọi hệ thống, tập hợp thủ tục này được lập thành tài liệu sẵn dùng cho các chương trình viết bằng ngôn ngữ C và những ngôn ngữ khác hỗ trợ các tiện ích theo thủ tục thông thường. Khi có một thiết bị ngoại vi mới được cài đặt vào UNIX, hệ điều hành có thể được mở rộng để giúp cho các chương trình ứng dụng có thể truy cập được tới thiết bị này bằng việc bổ sung thêm các lời gọi hệ thống mới hoặc phổ biến hơn là bằng việc cài đặt một số giá trị tham số bổ sung cho các lời gọi hệ thống hiện có. So với các hệ thống trước, UNIX có tích chất mở hơn vì : • Đối với những người phát triển ứng dụng : chúng có thể truy cập tới toàn bộ những tiện ích mà hệ thống cung cấp. • Đối với những người cung cấp phần cứng và những người quản lý hệ thống: hệ điều hành có thể mở rộng để bổ sung các thiết bị ngoại vi mới hoặc trình điều khiển mạng tương đối dễ dàng. • Đối với người bán phần mềm và người sử dụng: Do hệ điều hành không phụ thộc phần cứng, nên những người phát triển phần mềm có thể tạo ra những chương trình chạ được ở nhiều máy thuộc các hãn sản xuất khác nhau, mà không cần thay đổi gì. (Điều này chỉ đúng khi các nhà sản xuất máy tính thống nhất hoàn toàn về phiên bản UNIX mà họ sẽ cung cấp). Tính mở thông qua truyền thông: Những tài nguyên mà lõi của UNIX đầu tiên cung cấp là file và tiến trình. File với cấu trúc đặt tên của chúng rất hữu dụng cho việc lưu trữ cố định và chúng còn được dung để truy cập trực tiếp vào một số loại thiết bị ngoại vi khác. Các tiến trình cung cấp cơ chế thực hiện đồng thời các chương trình. Tính sẵn dùng của truyền thông giữa các tiến trình trong UNIX và các hệ điều hành khác cùng tính sẵn dụng của các giao thức chuẩn trong truyền thông đã mở ra nhiều cơ hội để đạt được tính mở trong thiết kế hệ thống máy tính. Nhờ đó, các tiến trình chủ chạy được ở bất kỳ máy nào, bất kỳ hệ điều hành nào. c. Tính đồng thời Khi một số tiến trình cùng tồn tại trong một máy tính, ta nói rằng, chúng được thực hiện đồng thời. Nếu máy tính chỉ có một bộ xử lý trung tâm, thì tính đồng thời xảy ra khi thực hiện xen kẽ, các phần của một tiến trình. Nếu máy có n bộ xử lý thì sẽ có n tiến trình được thực hiện đồng thời, tăng hiệu xuất tính toán lên n lần. Trong hệ phân tán thường có nhiều máy, mỗi máy co một hoặc nhiều bộ xử lý trung tâm. Nếu có m máy, mỗi máy có một bộ xử lý trung tâm, thì sẽ có tới m tiến trình chạy song song, miễn là các tiến trình định vị ở các máy khác nhau. Hệ phân - 4 - Website: http://www.docs.vn Email : lienhe@docs.vn Tel (: 0918.775.368 tán dựa trên mô hình chia sẻ tài nguyên như mô tả ở trên có nhiều cơ hội để thực hiện song song với 2 lý do: • Nhiều người sử dụng đồng thời gọi tới lệnh hoặc tương tác với các chương trình ứng dụng. • Nhiều trình chủ chạy đồng thời, mỗi trình chủ đáp ứng với yêu cầu mà trình khách đưa ra. Trường hợp một xuất hiện do một hoặc nhiều tiến trình ứng dụng đang chạy đại diện cho một người sử dụng đang hoạt động. Trong phần lớn các kiến trúc của hệ phân tán, các tiến trình ứng dụng chạy trong trạm làm việc của người sử dụng và chúng không xung đột với tiến trình ứng dụng của những người sử dụng khác để xử lý tài nguyên. Nếu trạm làm việc chỉ có một bộ xử lý nhưng có nhiều tiến trình ứng dụng, thì các tiến trình đó được thực hiện theo cách xen kẽ. Trạm làm việc có nhiều bộ xử lý cho phép người sử dụng thực hiện các phép tính một cách song song hoặc cho phép thực hiện các trình ứng dụng có khả năng khai thác nhiều bộ xử lý. Trường hơp 2: là nảy sinh do mỗi loại tài nguyên đều có một hoặc nhiều tiến trình chủ. Các tiến trình chủ được xử lý song song với nhau và với các tiến trình khách đang chạy trên các trạm làm việc. Những yêu cầu truy cập tài nguyên của một Server và được giải quyết một cách tuần tự hoặcgiải quyết đông thời một số yêu cầu bằng tiến trình quản lý tài nguyên. Khi một số chương trình sử dụng tài nguyên đồng thời truy cập cùng một tài nguyên, thì trình chủ phải đông bộ hoá các hoạt động của chúng, để chúng không xung đột với nhau.Việc đồng bộ hoá phải được lập kế hoạch cẩn thận, không làm mất đi tính hữu ích của việc thực hiện đồng thời. Tóm lại tính đồng thời náy sinh một cách tự nhiên trong các hệ phân tán, xuất phát từ các hoạt động riêng biệt của người sử dụng, tính độc lập của tài nguyên và vị trí của các trình chủ nằm ở các máy khác nhau. Sự tách biệt của các hoạt động cho phép việc xử lý được tiến hành song song ở các máy khác nhau. Việc truy cập đồng thời và cập nhật tài nguyên chung phải được đồng bộ hoá. d. Tính quy mô Hệ phân tán hoạt động hiệu quả ở nhiều quy mô khác nhau. Hệ phân tán nhỏ nhất chỉ gồm 2 trạm làm việc và một file Server, trong khi đó hệ phân tán xây dựng từ một mạng LAN có thể bao gồm vài trăm trạm làm việc và một số file Server, print Server và các Server có mục đích đặc biệt khác nhau. Một số mạng LAN thường được kết nối với nhau thành các liên mạng và liên mạng có thể bao gồm hàng nghìn máy, nhưng chúng chỉ tạo thành một hệ phân tán nhờ khả năng chia sẻ tài nguyên của chúng. Phần mềm hệ thống và phần mềm ứng dụng không cần thay đổi khi quy mô của hệ thống tăng lên. Đặc tính này có được nhờ khả năng mở rộng của hầu hết các hệ phân tán hiện nay và các thành phần của chúng. Tuy nhiên, cần có những nghiên cứu sâu hơn về lĩnh vực này trong sự phát triển các hệ thống và các phần mềm có quy mô rất rộng, hoặc khi xuất hiện các mạng hiệu suất cao. - 5 - Website: http://www.docs.vn Email : lienhe@docs.vn Tel (: 0918.775.368 Nhu cầu về tính quy mô không chỉ là vấn đề của phần cứng hay hoạt động của mạng. Vấn đề này sẽ xuyên suốt toàn bộ các mặt thiết kể của hệ phân tán. Trong các hệ máy tính tập trung, những tài nguyên chung cố định như bộ nhớ, bộ xử lý, kênh vào ra, đều thuộc tài nguyên cung cấp hạn chế và không thể thay thế một cách vô định. Hệ phân tán không bị hạn chế về vấn đề đó vì chúng có tiềm năng không hạn chế về số máy tính, mỗi máy đều có bộ nhớ, có một hoặc nhiều bộ xử lý trung tâm và kênh vào ra. Nhưng chúng có thể có hạn chế khác nếu thiết kế của hệ thống không nhận thấy rõ nhu cầu về tính quy mô. Yêu cầu về tính quy mô trong các hệ phân tán đòi hỏi một thiết kế mà trong đó không có tài nguyên nào (phần cứng hoặc phần mềm) bị coi là tài nguyên cung cấp hạn chế. Như vậy phải mở rộng hệ thống để đáp ứng yêu cầu phát triển tài nguyên. Có thể phải bổ sung các Server để tránh tình trạng tắc nghẽn xảy ra khi một file Server phải xử lý tất cả các yêu cầu truy cập file. Một số file có thể được truy cập thường xuyên đến mức chỉ xử lý những yêu cầu truy cập file cũng có thể gây ra tắc nghẽn. Trong trường hợp đó, các file phải được sao chép lạị ở nhiều Server và hệ thống phải được thiết kế để sao cho khi các file sao chép được cập nhật thì cập nhật đó được áp dụng cho toàn bộ các bản sao. Khi quy mô và độ phức tạp của mạng máy tính tăng lên, thì thách thức chủ yếu là việc thiết kế các phần mềm hệ phân tán có hiệu lực đối với các cấu hình mới của mạng. Hiện nay, Internet đã kết nối hàng triệu máy tính. Yêu cầu là phải thiết kế những dịch vụ phân tán có khả năng hoạt động hiệu quả với hàng nghìn hoặc hàng triệu khách hàng. Việc xử lý bất kỳ yêu cầu truy cập nguồn tài nguyên chung nào cũng cần phải độc lập, gần như không phụ thuộc vào kích cỡ của mạng. e. Tính chịu lỗi Các hệ máy tính đôi khi vẫn bị hỏng. Khi phần cứng hoặc phần mềm xuất hiện hư hỏng, các chương trình sẽ cho kết quả sai, hoặc bị dừng trước khi hoàn thành phép xử lý đã định. Các thiết kế của các hệ máy tính chịu lỗi hiện nay thường sử dụng các phương pháp sau: • Dùng dư phần cứng (hardware redundancy): sử dụng các thành phần dư để khác phục lỗi. • Khôi phục bằng phần mềm: thiết kế các phần mềm sử dụng. Để tăng khả năng của các hệ thống có khả năng chịu lỗi bằng phần cứng, người ta thường sử dụng hai máy cho một ứng dụng, một trong hai máy đóng vai trò là máy dự phòng cho 2 máy kia. Đây là giải pháp khá tốn kém để có thể cung cấp gấp đôi phần cứng, giá thành sẽ tăng gấp đôi. Trong các hệ phân tán, phần dư dự trữ như vậy có rất ít chỉ những Server dạng riêng lẻ cần thiết cho việc hoạt động của các ứng dụng quan trọng mới thường có phần dư để có thể thay thế. Một điểm cần lưư ý là cần phải thiết kế việc cấp phát phần cứng dư, sao cho phần cứng khác có thể khai thác được cho các hoạt động tới hạn, không nguy kịch (non critical) những lúc không bị lỗi. Ví dụ, có thể thay thế cơ sở dữ liệu trong một số Server để bảo đảm có thể truy cập được sau khi bị lỗi ở bất kì Server nào. Các - 6 - Website: http://www.docs.vn Email : lienhe@docs.vn Tel (: 0918.775.368 Server được thiết kế để phát hiện lỗi ở cấp của chúng: Mỗi khi phát hiện thấy lỗi ở một Server, các khách hàng sẽ được chỉ những Server còn lại. Vớí những kỹ thuật này, các hệ phân tán có khả năng chịu được của một số loại lỗi phần cứng với giá thành tương đối thấp. Việc khôi phục lỗi bằng phần mềm đòi hỏi thiết kế phần mềm, sao cho chúng có thể phục hồi được của trạng thái dữ liệu thường có khi thấy lỗi. Nói chung các phép xử lý của chương trình sẽ thực hiện không hoàn tất khi có lỗi, và dữ liệu mà đang dùng chưa được cập nhật (file và các dữ liệu lưu thường xuyên lâu dài) không còn ở trạng thái nhất quán nữa. trong phần sau sẽ mô tả một cách số cơ chế làm cho file và các dữ liệu lâu dài khác có thể tái lưu lại trạng thái ban đầu của chúng. Các hệ phân tán có tính sẵn dùng cao, mặc dù có các lỗi phần cứng. Tính sẵn dùng của hệ thống là phép đo tỉ lệ thời gian mà chúng sẵn sàng cho sử dụng. Một lỗi trong hệ thống máy tính đa người dùng thường dẫn đến việc hệ thống không sẵn sàng cho tất cả những người sử dụng nó. Khi một trong các thành phần của hệ thống phân tán bị lỗi, thì chỉ hành động đó ảnh hưởng. Người sử dụng có thể di chuyển đến trạm làm việc mới nếu trạm của họ bị hỏng, tiến trình của một Server cũng có thể khởi động lại được ở máy tính khác. Trong các mạng thành phần của hệ phân tán thường không có phần dư, do đó lỗi của mạng sẽ làm cho các chương trình sử dụng mạng phải cho tạm dừng cho đến khi khôi phục lại thông tin, làm gián đoạn các dịch vụ của người sử dụng. Sự quá tải của mạng làm suy thái các hoạt động và làm cho các hoạt động của mạng trở nên không trong cậy. Do đó, người ta thường cố gắng những mạng tin cậy và chịu lỗi. Để đáp ứng các yêu cầu thực tế, cần phải thiết kế các phần mềm đặc biệt để xử lý tính năng đồng thời một cách đầy đủ và có khả năng chịu lỗi cao hơn so với hệ khách chủ thông thường. Mô hình lý tưởng dể xây dựng các chương trình đồng thời liên quan đến việc thay thế là mô hình nhóm tiến trình. Mô hình này giúp cho nhiều tiến trình đồng thời hợp tác với nhau bằng cách có chung một cơ chế thông tin “mạng máy tính thực” gồm một tập hợp những tiến trình có thể được tạo lập, mở rộng hoặc thu nhỏ kích cỡ theo yêu cầu. f. Tính trong suốt Tính trong suốt chính là việc che dấu không cho người sử dụng hoặc người lập trình ứng dụng thấy sự tách biệt giữa các thành phần trong hệ phân tán, và như vậy người sử dụng chỉ thấy hệ phân tán như một tổng thể, chứ không phải là tập hợp các thành phần độc lập. Tính trong suốt có ảnh hưởng lớn đến thiết kế các phần mềm của hệ phân tán. Sự tách biệt giữa các thành phần là một đặc tính cố hữư của các hệ phân tán. Sổ tay tra cứu của ANSA (ANSA 1989) và mô hình tham khảo của tổ chức tiêu chuẩn quốc tế về xử lý phân tán mở RM-ODP (ISO 1992) đã định rõ 8 dạng của tính trong suốt đó là: • Truy cập trong suốt: cho phép truy cập vào các đối tượng thông tin cục bộ và các thông tin từ xa sử dụng các thao tác thống nhất. - 7 - Website: http://www.docs.vn Email : lienhe@docs.vn Tel (: 0918.775.368 • Định vị trong suốt: cho phép các đối tượng thông tin có thể truy cập, mà không cần biết đến vị trí của nó. • Tính tương tranh: Cho phép một số tiến trình hoạt động đồng thời sử dụng những đối tượng thông tin chung mà không gây trở ngại cho nhau. • Thay thế trong suốt: Cho phép sử dụng thường xuyên nhiều đối tượng thông tin để tăng độ tin cậy và hiệu suất hoạt động, không cần biết các thay thế mà người sử dụng thực hiện hay các chương trình ứng dụng thực hiện. • Lỗi trong suốt: giúp che dấu các lỗi, cho phép người sử dụng và các chương trình ứng dụng hoàn tất công việc của mình mặc dù có lỗi ở các thành phần phần cứng hoặc phần mềm. • Tính trong suốt di trú: Cho phép các đối tượng thông tin di chuyển trong hệ thống mà không ảnh hưởng đến hoạt động của người sử dụng hoặc các chương trình ứng dụng. • Thực hiện trong suốt: Cho phép cấu hình lại hệ thống để cải tiến việc thực hiện, khi lượng nạp thay đổi. • Tính quy mô trong suốt: Cho phép mở rộng hệ thống và các ứng dụng không cần thay đổi cấu trúc hệ thống hay các thuật toán ứng dụng. Hai thuộc tính trong suốt quan trọng nhất là: Truy cập trong suốt và định vị trong suốt. Đôi khi chúng được xem là tính trong suốt của mạng. Tính trong suốt của mạng cung cấp mức độ che dấu tài nguyên tương tự như trong các hệ tập trung. g. Một số kết luận Hệ phân tán đã trở thành điển hình về tổ chức các tiện ích tính toán. Chúng được dùng để khai thác các hệ máy tính tương tác lẫn nhau vì mục đích chung theo kiểu UNIX, khai thác các ứng dụng thương mại và công nghiệp của các máy tính ở một phạm vi lớn. Chúng càng ngày càng được sử dụng nhiều hơn, làm cơ sở cho các ứng dụng mới trong các lĩnh vực như: các dịch vụ thông tin nối mạng và các ứng dụng đa phương tiện, trong đó việc truyên thông là một yêu cầu cơ bản 3. Vấn đề phối hợp thời gian trong hệ phân tán a. Một số khái niệm Thời gian là một vấn đề thú vị và quan trọng và thú vị trong hệ phân tán, nó là một đại lượng mà ta luôn luôn đo được chính xác. Muốn biết biến cố đã xẩy ra ở thời điểm nào đó. Việc này được gọi là đồng bộ hoá ngoài. Nếu đồng hồ trong các máy tính được đồng bộ hoá lẫn nhau theo một mức độ chính xác nhất định, thì sẽ đo được khoảng thời gian giữa hai biến cố xảy ra ở hai máy khác nhau, căn cứ theo đồng hồ tại chỗ của chúng: điều này được gọi là đồng bộ hoá trong. Khi các máy được đồng bộ hoá trong thì không cần đồng bộ hoá ngoài, ví chúng có thể bị lệch so với thời gian bên ngoài. Cần chú ý là nhiều thuật toán dựa trên đồng bộ hoá đồng hồ để giải quyết những vấn đề phân tán như: vấn đề duy trì tính nhất quán của dữ liệu phân tán(ví dụ sử - 8 - Website: http://www.docs.vn Email : lienhe@docs.vn Tel (: 0918.775.368 dụng nhãn thời gian để sắp xếp thứ tự các giao dịch), vấn đề kiểm tra tính xác thực của các yêu cầu gửi đến máy chủ (như trong giao thức xác nhận tính xác thực- kerberos) dựa vào các đồng hồ đồng bộ hoá, vấn đề không xử lý những gì được cập nhật hai lần . Khái niệm thời gian vật lý vẫn còn là một vấn đề cần bàn trong hệ phân tán. Vấn đề không phải là do hiệu ứng không đáng kể của tính tưng đối trong máy tính thường( trừ khi tính đến cả những máy đang di chuyển trên tàu vũ trụ), mà là các vấn đề liên quan đến khả năng hạn chế trong việc truyền thông tin từ máy này đến máy khác. Bởi vì, trong phần lớn các trường hợp, đồng hồ ở các máy khác nhau chỉ có thể đồng bộ hoá bằng con đường truyền thông mạng. Thông báo truyền đi bị hạn chế bởi tốc độ, nhưng điều đó không quan trọng nếu ta biết việc chuyển thông báo mất bao nhiêu thời gian. Vấn đề là ở chỗ ta không thể đoán biết được thời gian cần để gửi thông báo đi. Phần sau nêu những phưng pháp đồng bộ hoá xấp xỉ các đồng hồ máy tính bằng cách chuyển thông báo. Song trong nhiều trường hợp vẫn không thể xác định chính xác trật tự của các biến cố ở các máy khác nhau, Một điều may mắn là chúng ta có thể xác lập trật tự của mọt số biến cố căn cứ theo luồng giữ liệu giữa các tiến trình trong hệ phân tán. Trong phần này xem xét đến những đồng hồ logic dùng để xác định trật tự biến cố không cần đo thời gian vật lý mà chúng xẩy ra. b. Đồng bộ hoá các đồng hồ vật lý Mỗi máy đều có một đồng hồ vật lý riêng: đó là một thiết bị điện tử đếm số dao động trong tinh thể với tần số xác định, và chỉ số giao động đếm được, đồng thời lưu kết quả vào thanh ghi đếm. Có thể lập trình cho đồng hồ để tạo ra những quãng ngắt đều đặn, tuy nhiên ta sẽ không đi sâu vào phương tiện hoạt động này. Có thể đọc đồng hồ bằng phần mềm và có giá trị đọc được này dùng để dán nhãn thời gian cho bất cứ biến cố nào của tiến trình thực hiện ở máy này. ở đây ta hiểu “biến cố” là hoạt động đột nhiên xảy ra không chia tách được- như gửi hoặc nhận thông báo. Các biến cố kế tiếp nhau chỉ tương ứng với các nhãn thời gian khác nhau nếu độ phân giải của đồng hồ( quãng thời gian giữa lần cập nhật cho thanh ghi giờ) nhỏ hơn tốc độ xẩy ra biến cố. Trong những ứng dụng, chỉ cần quan tâm đến trật tự biến cố, chứ không cần qua tâm đến thời gian tuyệt đối mà biến cố xẩy ra, tức là, chỉ đòi hỏi giá trị trong bộ đếm để dán nhãn cho biến cố. Tuy nhiên có thể tính được cả ngày và thời gian trong ngày từ giá trị của bộ đếm, miễn là đã biết một vái giá trị thời gian gần đây của bộ đếm. Độ lệch giờ: Đồng hồ tinh thể trong máy tính, cũng như các đồng hồ khác, đều bị lệch giờ, tức là chúng ta đếm giờ với tốc độ khác nhau và do đó lệch nhau. Những thiết kế hiện có đều cố gắng khắc phục sự biến đổi này, nhưng vẫn không triệt để. Sự khác biệt về chu kỳ dao động sẽ dấn đến khác biệt rõ ràng trong thanh ghi đếm mà hai đồng hồ ghi được, dù chúng khởi động cùng giá trị. Độ lệch giờ chính là sự thay đổi từng đối giữa một đồng hồ với đồng hồ tham chiếu trong một đn vị thời - 9 - Website: http://www.docs.vn Email : lienhe@docs.vn Tel (: 0918.775.368 gian của đồng hồ tham chiếu. Trong những đồng hồ tinh thể Quartz, độ lệch này khong 10-6 tức là cứ 1.000.000 giây hay 11,6 ngày thì lệch 1 giây. Phối hợp thời gian toàn cầu: Nững đồng hồ vật lý nối tiếp chính xác nhất đều dùng bộ tạo giao động nguyên tử, độ chính xác của chúng khong 10-13. Đầu ra của đồng hồ nguyên tử được dùng để làm chuẩn cho thời gian thực, gọi là thời gian nguyên tử quốc tế. Từ năm 1967, một giây chuẩn được xác định là 9.192.631.770 chu kỳ dịch chuyển giữa hai mức trạng thái siêu mịn của caseium-133. Thời gian phối hợp toàn cầu ( viết tắt là UTP ) là một tiêu chuẩn quốc tế dựa trên thời gian nguyên tử, nhưng dôi khi phi chèn thêm hoặc xoá di một giây dể bằng với thời gian thiên văn.Tín hiệu UTC được dồng bộ hoá và truyền qung bá thường xuyên từ các dài radio mặt dất và vệ tinh trên khắp thề giới.Ví dụ, ở Mỹ, đài radio WWV phát tín hiệu thời gian trên một tần số sóng ngắn. Các nguồn vệ tinh gồm có vệ tinh môi trường hoạt động địa tĩnh (GOES) và hệ thống định vị toàn cầu (GPS Global Positioning System). Sóng radio có tồc độ gần bằng tốc độ ánh sáng (3 108 m/s ), vì vậy trễ truyền chúng khá bé.Ví dụ, thời gian để truyền thời gian suốt dọc chiều dài nước Mỹ (khoảng 1000km ) chỉ mất khong 3 miligiây. Trễ truyền dẫn có thể tính được nếu biết chính xác tốc độ chuyền tín hiệu radio và khoảng cách từ nguồn. Rủi thay tốc độ truyền lại thay đổi theo điều kiện khí quuyển và do đó làm tang sai số. Nói chung, sự chính xác của tín hiệu thu được là mọt hàm bao gồm cả sự chính xác của nguồn, và khoảng cách của nguồn qua khí quyển. Đài thu có sẵn trên thị trường. So sánh với UTC “hoàn hảo”, tín hiệu thu được từ các đài mặt đất có độ chính xác từ 0, 1-10 miligiây, tuỳ theo vị trí của đài. Tín hiệu thu từ vệ tinh GOES có độ chính xác khoảng 0,1 miligiay. Những máycó đài thu gắn liền có thể đồng bộ các đồng hồ của chúng với những tín hiệu thời gian này. Đáng tiếc là đài thu đắt tiền hơn so với trạm làm việc đặc biệt là những đài thu dùng để đồng bộ hoá với nguồn thời gian vệ tinh. Cần chú ý rằng: độ đo thời gian có độ chính xác 10 miligiây rất hạn chế trong việc cho biết chật tự từng đối của biến cố xẩy ra ở nhiều máy khác nhau trong hệ phân tán. Trong 10 miligiay với bộ sử lý tôc độ10 triệu lệnh/giâycó thể thục hiện 100000 lệnh, và thời gian đó có thể chuyển đưc một số thông báo ngắn. Bù vì lệch giờ: Nếu thời gian nhận được từ một dịch vụ thời gian (chẳng hạn dịch vụ tín hiệu thời gian phối hợp toàn cầu ), lớn hơn thời gian của máy cần đồng bộ, thì chỉ cần để đồng hồ trong máy bằng thời gian của dịch vụ, bởi vì làm như vậy sẽ gây ra sự đo lộn những ứng dụng dựa trên giả thuyết là thời gian luôn tăng. Giải pháp cho trường hợp này không phải là chỉnh lại đồng bộ, mà là làm cho nó chạy chậm hơn trong các chu kỳ tiếp theo, cho đến khi nó phù hợp với thời gian cập nhật cho các ứng dụng bằng phần mềm, mà không cần thay dổi tốc độ của đồng hồ phần cứng (một việc không phải lúc nào cũng làm được với các đồng hồ phần cứng). Ta gọi thời gian cung cấp cho các ứng dụng (số ghi của đồng hồ phần mềm) là S và thời gian trong đồng hồ phần cứng là H. Giả sử hệ số bù là δ, như vậy - 10 - [...]... trách Hình 2.1 Kiến trúc mạng phân tán Kiến trúc của mạng của một hệ phân tán với thành phần là hệ điều hành hệ phân tán với hệ trung gian: Hình 2.2 Kiến trúc hệ phân tán và middleware 1 Mục đích hệ điều hành phân tán Ngoài các mục đích cơ bản của hệ điều hành đó là: độ tin cậy cao, an toàn, hiệu quả trong xử lý, tính kế thừa, thuận tiện cao Thì trong hệ điều hành phân tán còn phải đáp ứng các tính... mạng về các tài nguyên • Hệ điều hành phân tán: hệ điều hành phân tán nhìn qua thì cũng tương tự như hệ điều hành mạng nhưng có điểm khác là tính chất trong suốt Do đó, chúng ta khi sử dụng hệ điều hành hệ phân tán chúng ta không hề cảm thấy khó khăn bởi vì toàn bộ hệ thống phân tán đều được che dấu đối với người sử dụng Trong hệ điều hành này, đối với người sử dụng không có sự phân biệt giữa truy nhập... xa hay ngay trong hệ thống của các tài nguyên được truy nhập đến II TIẾN TRÌNH HỆ ĐIỀU HÀNH PHÂN TÁN Trước khi chúng ta nghiên cứu về các tiến trình trong hệ điều hành phân tán chúng ta cần xem kiến trúc nói chung của một hệ phân tán Qua đó, chúng ta thấy được các chức năng, vai trò của hệ điều hành phân tán Từ đó, chúng ta có thể phân tích các tiến trình trong hệ điều hành phân tán - 19 - Website:... là hệ thống có khả năng tự khởi động lại tới trạng thái mà ở đó tính toàn vẹn của hệ thống được duy trì với một số hiệu năng bị giảm sút Chính nhờ khả năng này mà nó giúp cho hệ điều hành phân tán tăng cường độ tin cậy, an toàn và điều khiển truy nhập do chính nó thực hiện - 20 - Website: http://www.docs.vn Email : lienhe@docs.vn Tel (: 0918.775.368 2 Kiến trúc hệ điều hành phân tán Hệ điều hành phân. .. xử lý nhóm tuỳ theo vào yêu cầu và mục đích của mạng phân tán Hình 2.3 Kiến trúc hệ điều hành phân tán Như vậy các kiến trúc của hệ điều hành phân tán có 5 thành phân chính • Process manager: quản lý tiến trình đặt ở mức cao nhất là thành phần giao tiếp trực tiếp với người sử dụng • Communication manager: Quản lý truyền thông đóng vai trò như một thành phần giao tiếp giữa các tiến trìn các luồng cũng... máy khác nhau trong hệ thống • Thread manager: quản lý các tiểu tiến trình • Memory manager: quản lý tài nguyên hệ thống • Supervisor: Thực hiện quản lý mức thấp nhất của hệ điều hành 3 Kiến trúc của tiến trình trong hệ điều hành phân tán a Tiến trình hệ điều hành phân tán Tiến trình là một chương trình đang xử lý, sỡ hữu một con trỏ lệnh, tập các thanh ghi và các biến Để hoàn thành tác vụ của mình,... chúng ta có thể chia làm ba loại hệ điều chính như sau: • Hệ điều hành tập trung: Các hệ điều hành này có thể là đơn xử lý hoặc đa xử lý Hệ thống này cung cấp các khả năng tốt nhất dùng để cho một người hay một số lượng nhỏ người sử dụng yêu cầu xử lý có độ phức tạp về việc quản lý file, bộ nhớ và các bộ vi xử lý • Hệ điều hành mạng: cấu trúc cũng giống như hệ điều hành trên nhưng chúng tập trung quản... dụng một lời gọi hệ thống để yêu cầu hệ điều hành hủy bỏ nó Đôi khi một tiến trình có thể yêu cầu hệ điều hành kết thúc xử lý của một tiến trình khác Khi một tiến trình kết thúc, hệ điều hành thực hiện các công việc : • thu hồi các tài nguyên hệ thống đã cấp phát cho tiến trình • hủy tiến trình khỏi tất cả các danh sách quản lý của hệ thống • hủy bỏ PCB của tiến trình Hầu hết các hệ điều hành không cho... ei và ei+1, điều này có nghĩa là chúng xảy ra liên tiếp trong cùng tiến trình, hoặc có một thông báo m nào đó mà e i=gửi(m) và ei+1=nhận(m) dãy các biến cố e1, e2, e3…en không cần thiết phải duy nhất - 17 - Website: http://www.docs.vn Email : lienhe@docs.vn Tel (: 0918.775.368 PHẦN II: TIẾN TRÌNH HỆ ĐIỀU HÀNH PHÂN TÁN I TỔNG QUAN VỀ HỆ ĐIỀU HÀNH Hệ điều hành là một chương trình hay một hệ chương trình... dụng (user) và phần cứng của máy tính Mục tiêu của hệ điều hành là cung cấp một môi trường để người sử dụng có thể thi hành các chương trình Nó làm cho máy tính dể sử dụng hơn, thuận lợi hơn và hiệu quả hơn Hệ điều hành là một phần quan trọng của hầu hết các hệ thống máy tính Một hệ thống máy tính thường được chia làm bốn phần chí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