Tải bản đầy đủ (.doc) (20 trang)

KHẢ NĂNG PHÂN TÁN CỦA CỦA HỆ ĐIỀU HÀNH UNIX.DOC

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (367.68 KB, 20 trang )

BỘ GIÁO DỤC & ĐÀO TẠO
BỘ GIÁO DỤC & ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG

BÀI TIỂU LUẬN
HỆ PHÂN TÁN
Giảng viên: PGS-TS. Lê Văn Sơn
Học viên : Nguyễn Văn Hà
Lớp: Khoa học máy tính K10

Đà Nẵng, tháng 07 năm 2014
HVTH. Nguyễn Văn Hà KHMT K10 Trang 1
Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
LỜI NÓI ĐẦU

Sự phát triển mạnh mẽ của Công nghệ thông tin đã làm thay đổi lớn lao về
kinh tế-xã hội ở nước ta. Hiện tại, tin học được trang bị đến từng ngành, từng nhà.
Người ta có thể trao đổi thông tin với khối lượng lớn ở những khoảng cách khác
nhau thông qua hệ thống mạng toàn cầu với sự hỗ trợ của phương tiện truyền
thông.
Hệ tin học phân tán là lĩnh vực còn khá mới mẽ, nhưng những ứng dụng của nó
ngày càng rộng rãi, giải quyết hiệu quả nhiều bài toán mà hệ tin học tập trung không
đáp ứng được hoặc chỉ đáp ứng được một phần.
Hiện tại, các nội dung mang tính lý thuyết nguyên lý của hệ tin học phân tán còn
nhiều vấn đề chưa được giải quyết triệt để và đang là mục tiêu khám phá của nhiều
nhà nghiên cứu về công nghệ thông tin.
Trong phạm vi tiểu luận của mình, tôi trình bày được những vấn đề sau:
Phần I: Lý thuyết: Các khả năng phân tán của hệ điều hành UNIX
Phần II: Bài tập
Trong hệ phân tán, người ta chấp nhận có sự cố như đứt đường truyền, sụp trạm. Hoạt
động của mạng viễn thông có đặc tính như sau :


1. Hoặc giả một thông điệp truyền đi đến đích một cách trọn vẹn.
2. Hoặc giả một thông điệp truyền đi nhưng không đến đích, và nguồn (nơi
phát) của nó lúc này được dự phòng sau một khoản thời gian xác định.
Hãy nghiên cứu kỹ các sửa đổi nhằm đem lại cho các thuật toán khác nhau về
quản lý nhiều bản sao nhằm mục tiêu tính đến các sự cố kỹ thuật sau :
1. Chỉ có một sự cố duy nhất.
2. Khi đang xử lý một sự cố, thì sự cố khác lại đến.
Xin chân thành cảm ơn Thầy Lê Văn Sơn đã trang bị những kiến thức và thông
tin về môn học và giới thiệu những tài liệu tài liệu thiết thực để tôi có thể hoàn thành
tiểu luận này.
HVTH. Nguyễn Văn Hà KHMT K10 Trang 2
Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
Chương 1.
KHẢ NĂNG PHÂN TÁN CỦA HỆ ĐIỀU HÀNH UNIX
I. Hệ tin học phân tán
I.1. Định nghĩa
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.
I.2. Các đặc điểm cơ bản của hệ tin học phân tán
Căn cứ vào thành phần của hệ tin học, ta nhận thấy hệ tin học phân tán có thể
bao gồm bốn thực thể như hình vẽ
Trong các tài liệu hiện nay, có rất nhiều lý lẽ xung quanh vấn đề nguyên tắc
xây dựng một hệ phân tán, nhưng chung quy có thể liệt kê trong bốn điểm 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 ở một 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ự động 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: Đây là một khái niệm mới về phân tán tải. Một tính toán lớn nào
đó, nếu chỉ sử dụng một trạm, thì thời gian trả kết quả sẽ rất lớn. Tính toán này sẽ
HVTH. Nguyễn Văn Hà KHMT K10 Trang 3
Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
được chia nhỏ và thực hiện song song trên các trạm. Điều này cũng rất cần thiết
đối với những trạm bị quá tải.
II. Quá trình hình thành và phát triển hệ điều hành UNIX
II.1 Lịch sử phát triển
Hệ điều hành Unix được xây dựng vào năm 1969. Tác giả của hệ là Ken
Thompson thuộc nhóm nghiên cứu của phòng thí nghiệm ATT-Bell Lab. Hệ cho
phép người sử dụng làm việc theo kiểu chia sẻ thời gian trong chế độ đa nhiệm.
Sau đó không lâu, Denis Ritchie cùng phối hợp nghiên cứu các phiên bản tiếp
theo.
Với sự phát triển của ngôn ngữ C chuyên cho biên soạn chương trình hệ điều
hành được thành lập tại Bell đã cho phép Unix phát triển thành phiên bản mới 3.0
Phiên bản 6.0 được phát triển vào khoảng năm 1976 với sự tham gia của nhiều
trường đại học Mỹ. Phải đến năm 1978 phiên bản 7.0 mới là tiền thân của các
phiên bản hiện nay. Phiên bản này dựa trên mô hình PDP-11 cho máy tính lớn
VAX.
Năm 1982, Unix support Group trong công ty AT&T tạo ra Unix mới gọi là
System III. Hệ này dựa trên cơ sở liên hợp ba phiên bản 7.0, 32V cho VAX và
UNIX/RT. System V được công bố năm 1983 do các công ty con Bell của AT&T.
Công trình nghiên cứu trên hệ 4BSD của Defense Advanced Reasearch
Projects Agency cho phép Unix hỗ trợ họ giao thức TCP/IP trên mạng Internet.
II.2 Các ý tưởng lớn
UNIX là hệ thống làm việc theo chế độ phân chia thời gian. Hệ quản lý các tập

tin có cấu trúc hình cây nhiều mức cho phép người sử dụng có thể tạo các thư mục
con của mình một cách dễ dàng. Mỗi tập tin dữ liệu của người sử dụng chỉ đơn
giản bao gồm một dãy các ô nhớ.
Hệ Unix quản lý nhiều tiến trình theo kiểu một tiến trình nào đó có thể dễ dàng
tạo lập các tiến trình mới khác. Các scheduling của CPU là một thuật toán giản
đơn với các hệ số ưu tiên.
Hệ 4.3 BSD sử dụng nguyên lý quản lý bộ nhớ theo trang cho các yêu cầu như
là cơ chế cho các tác vụ bộ nhớ trong và ra các quyết định về scheduling của
CPU. Ngoài ra, người ta cũng sử dụng swapping nếu hệ thống bị quá trang.
Hệ Unix được thành lập bởi các lập trình viên để cho cá lập trình viên khác sử
dụng nên nó chứa đựng các utility hệ thống cho phép phát triển chương trình và có
hệ số ưu tiên cao trong quá trình hoạt động.
III. Khả năng phân tán của hệ điều hành UNIX
III.1 Quản lý các tập tin
HVTH. Nguyễn Văn Hà KHMT K10 Trang 4
Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
Tập tin(file) là dãy các ô nhớ. Các chương trình khác nhau cần đến đến mức
cấu trúc khác nhau, nhưng hạt nhân lại áp đặt cấu trúc bất kỳ cho các tập tin.
Các tập tin được tổ chức theo thư mục có cấu trúc cây. Các thư mục lại chính
là các tập tin chứa thông tin nhằm cho phép tìm kiếm các tập tin khác. Đường dẫn
đến tập tin là một dãy các kí tự chỉ ra một tập tin bằng con đường thông qua các
cấu trúc thư mục.
Cấu trúc đường dẫn không cho phép ta phân biệt được tập tin hay thư mục
con. Unix có hai loại đường dẫn là đường dẫn tuyệt đối và đường dẫn tương đối.
Đường dẫn tuyệt đối là đường dẫn xuất phát từ gốc của hệ thống tập tin và ta
có thể phân biệt nhờ vào dấu chéo sắc ( / ) ngay ở đầu.
Đường dẫn tương đối bắt đầu bằng thư mục hiện hành- biểu hiện của tiến trình
vào đường dẫn
Một số lời gọi chính cho hệ thống cho các phép xử lý cơ bản về tập tin như
sau:

CREAT: lời gọi hệ thống này dùng để tạo một tập tin (rỗng) hay cắt cụt một
tập tin đang tồn tại.
OPEN: mở một tập tin đang tồn tại và tiếp nhận như là các thông số của một
đường dẫn hay một kiểu như đọc, ghi, đọc-ghi và trả về một giá trị nguyên bé.
READ: với một địa chỉ của bộ đệm và một số lượng nhất định các ô nhớ cần
chuyển nhằm cho phép chuyển dữ liệu từ một tập tin hay đến một tập tin.
WRITE: tương tự như trường hợp trên.
CLOSE: đóng tập tin diễn ra.
LINK: tạo liên hệ vật lý cho một tập tin đang tồn tại bằng cách lập ra một tên
mới cho tập tin này.
UNLINK: ngược lại với tác dụng của lời gọi LINK
TRUNC: lời gọi rút gọn kích cỡ của tập tin thành 0.
LSEEK: cho phép khởi động lại vị trí con trỏ tập tin.
DUP và DUP2: phát sinh một bộ mô tả tập tin mới. Đó là bản sao của bộ đang
tồn tại.
FCNTL:kiểm tra và xác định các thông số khác nhau của một tập tin đã được
mở
HVTH. Nguyễn Văn Hà KHMT K10 Trang 5
Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
STAT:cung cấp các thông tin cần thiết về tập tin.
RENAME: đổi tên tập tin.
CHMOD:đổi kiểu bảo vệ.
CHOWN: đổi chủ sở hữu tập tin và nhóm.
Hệ thống quản lý tập tin của Unix dùng để xử lý hai đối tượng cơ bản là tập
tin và thư mục. Các thư mục được xem một cách đơn giản là các tập tin với khuôn
dạng đặc biệt.
Khối và đoạn
Đơn vị cơ bản của các tập tin trong hệ Unix là khối dữ liệu. Các khối này
chứa tất cả các thông tin mà người sử dụng muốn đặt vào trong tập tin.
Inode

Inode đó chính là phép ghi cho phép lưu trữ phần lớn các thông tin trong một
tập tin trên đĩa. Inode chứa các bộ định danh của người sử dụng và của nhóm các
tập tin, thời điểm cập nhật cuối cùng, công tơ với số lượng liên kết vật lý (lối vào
của các thư mục) của tập tin và loại tập tin. Ngoài ra, inode chứa 15 con trỏ đến
các khối đĩa có mang dữ liệu của tập tin trong đó 12 con trỏ trỏ đến các khối trực
tiếp hay nói cách khác chúng chứa các địa chỉ khối dữ liệu của tập tin, 3 con trỏ
tiếp theo chỉ các khối gián tiếp.
Các Inode được phân biệt nhau theo chỉ số của inode: đó chính là số thứ tự
của inode trong danh sách inode trên hệ thống file. Thông thường, hệ thống dùng 2
bytes để lưu trữ chỉ số của inode. Với cách lưu trữ như thế, không có nhiều hơn
65535 inode trong 1 hệ thống file.
Một Inode bao gồm các trường thông tin sau:
+ Kiểu file: file thông thường, thư mục, đặc tả kí tự, đặc tả khối.
+ Quyền truy cập file: mức chủ của file, mức nhóm người dùng của chủ nhân
của file và mức người dùng khác.
+ Số lượng liên kết đối với inode.
+ Định danh nhóm chủ nhân.
+ Bảng địa chỉ chứa các địa chỉ khối nhớ chứa nội dung file.
Vùng dữ liệu
Vùng dữ liệu bao gồm các khối dữ liệu, mỗi khối dữ liệu được đánh chỉ số để
phân biệt. Khối trên vùng dữ liệu được dùng để chứa nội dung các file, nội dung
các thư mục và nội dung các khối định vị địa chỉ của các file.
III.2 Quản lý các tiến trình
Tiến trình được hiểu như là một chương trình hay đoạn chương trình đang
trong quá trình thực hiện.
HVTH. Nguyễn Văn Hà KHMT K10 Trang 6
Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
Các tiến trình được định danh bởi các bộ định danh tiến trình của chúng, đó là
các giá trị nguyên. Ta có thể tạo ra các tiến trình mới bằng cách sử dụng lời gọi hệ
thống fork.

Tiến trình mới này được cấu tạo từ một bản sao vùng địa chỉ của tiến trình gốc
cùng chương trình và số liệu dành riêng. Cả hai tiến trình cha và con này tiếp tục
việc thực hiện của mình với lệnh kề liền sau fork. Ta cần lưu ý rằng, chỉ có một
điểm khác nhau là mã trả về cho fork là 0 cho tiến trình mới (tiến trình con), trong
khi đó bộ định danh cho tiến trình (khác 0) của tiến trình con được gửi cho tiến
trình cha.
Một tiến trình có thể kết thúc bằng cách sử dụng lời gọi hệ thống exit và tiến
trình cha của nó có thể chờ sự kiện này bằng cách sử dụng lời gọi hệ thống wait.
Nếu tiến trình con rơi vào trạng thái sự cố thì hệ thống mô phỏng lời gọi exit. Lời
gọi hệ thống wait cung cấp bộ định danh của 1 trong các tiến trình con được kết
thúc để tiến trình cha có thể nói điều đó (tiến trình kết thúc) với tất cả các tiến
trình con, tương đối nhiều về số lượng, đã kết thúc.
Một cách đơn giản nhất để liên lạc giữa các tiến trình là chuyển qua ống (tube)
bằng cách thành lập nó trước fork, do vậy mức cuối cùng của nó thành lập giữa
fork và execve. Một ống được hiểu là hàng đợi bao gồm các ô nhớ giữa hai tiến
trình. Ta truy cập vào ống thông qua bộ mô tả tập tin, như là một tập tin bình
thường. Một tiến trình ghi vào ống, còn tiến trình kia thì đọc ống. Kích cỡ của hệ
thống các ống ban đầu đã được quy định bởi hệ điều hành. Việc đọc một ống rỗng
hay một ống đầy dẫn đến chặn tiến trình cho đến khi thay đổi trạng thái ống. Ta
cần một sự dàn xếp đặc biệt đặt một ống giữa cha và con theo kiểu chỉ có một duy
nhất đọc và một duy nhất ghi.
Tất cả các tiến trình NSD đều là con cháu của một tiến trình ban đầu nào đó
gọi là tiến trình khởi tạo (init). Tiến trình khởi tạo có bộ định danh tiến trình 1.
Mỗi một cổng của thiết bị cuối cho việc sử dụng tương tác đều có một tiến trình
getty được tạo ra bởi init.
Vấn đề biểu diễn các tiến trình là một vấn đề quan trọng của công tác thiết kế
chính của các hệ điều hành. Hệ điều hành Unix có đặc điểm là dễ dàng tạo ra và
xử lý nhiều tiến trình. Các tiến trình được biểu diễn trong Unix bằng nhiều khối
kiểm soát tiến trình. Không tồn tại bất kỳ khối kiểm soát tiến trình nào của hệ có
thể truy cập vào vùng không gian địa chỉ ảo của một tiến trình NSD. Các khối

kiểm soát phối hợp với một tiến trình được lưu trữ trong hạt nhân. Hạt nhân sử
dụng thông tin trong các khối kiểm soát này để điều khiển các tiến trình và
scheduling của CPU.
Khối kiểm soát tiến trình chịu trách nhiệm đồng bộ hoá sự tương tác liên tiến
trình, quản lý bộ nhớ và lập lịch thực hiện đối với các tiến trình đang tồn tại.
Tiến trình trên hệ phân tán
HVTH. Nguyễn Văn Hà KHMT K10 Trang 7
Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
Có nhiều công việc được tiến hành bằng những tiến trình riêng lẻ nhưng cũng
có khá nhiều công việc đòi hỏi ta phải thực hiện bằng liên tiến trình.
Sự trao đổi mang tính chất liên tiến vốn không phải là truyền thống mạnh của
hệ điều hành UNIX. Trước đây, tuyệt đại bộ phận các phiên bản của hệ điều hành
đều không đưa ra chiến lược sử dụng bộ nhớ chia sẻ được. Solais 2 cung cấp bộ
nhớ chia sẻ được và tạo nên phiên bản mới của hệ.
Socket
Ống là cơ chế liên lạc tiến trình rất đặc trung của hệ điều hành Unix và cho
phép trao đổi các luồng thông tin một chiều và khá ổn định giữa 2 tiến trình. Nó
được xem là một tập tin và có các đặc điểm sau:
- Không có tên trong hệ thống quản lý các tập tin.
- Kích thước của ống cố định (4.096 ô nhớ)
- Khi có một tiến trình nào đó cố gắng ghi vào một ống đã đầy, ta dùng tiến
trình này lại.
- Mỗi khi tất cả dữ liệu trong ống đã được đọc hết, việc ghi được bắt đầu ngay
từ đầu của tập tin.
- Các ống không phải là các bộ nhớ đệm
- Dữ liệu của ống thường ít ghi xuống đĩa. Nó thường được ghi vào cache.
Trong hệ 4.3 BSD, người ta sử dụng ống như là trường hợp đặc biệt của cơ
chế socket. Thông thường, trên cùng một máy , một ống chỉ được sử dụng cho 2
tiến trình liên lạc với nhau thông qua lời gọi hệ thống fork. Cơ chế socket còn có
thể áp dụng cho các tiến trình không ở trong tình trạng liên lạc với nhau.

III.3 Quản lý bộ nhớ
Hầu hết các phiên bản được phát triển trong thời kỳ đầu của Unix đều được
kiểm nghiệm trên hệ thống PDP-11. Toàn bộ các tài nguyên bộ nhớ của hệ thống
này không đủ để thử nghiệm, đánh giá và hỗ trợ các thuật toán phức tạp nhằm
phục vụ cho việc quản lý bộ nhớ. Như vậy, hệ điều hành UNIX phải chuyển vào
bộ nhớ bổ sung các ảnh bộ nhớ của các tiến trình.
III.3.1 Cơ chế Swapping
Trước khi có 3.0 BSD, các hệ Unix thường sử dụng swapping có tính chất
ngoại lệ để xử lý xung đột giữa các tiến trình trong khi dùng bộ nhớ. Nếu có nhiều
xung đột diễn ra thì hệ sẽ sơ tán bớt các tiến trình ra bộ nhớ phụ hay bộ nhớ bổ
sung cho đến khi có được vùng nhớ đủ và ở trạng thái sẵn sàng.
Một số tiến trình lớn có thể bao gồm nhiều tiến trình nhỏ đang thiếu bộ nhớ và
tiến trình có kích cỡ lớn hơn bộ nhớ chính sẽ có nguy cơ là không bao giờ được
thực hiện. Việc cung cấp bộ nhớ chính và không gian swap được tiến hành theo
chiến lược đầu tiên tìm thấy.
HVTH. Nguyễn Văn Hà KHMT K10 Trang 8
Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
Trong hệ 4.3 BSD, ta cung cấp không gian swap theo từng phần một với kích
cỡ tối thiểu là bội số của 2 và kích cỡ tối đa được xác định trên cơ sở kích cỡ của
partition của không gian swap trên đĩa. Tất cả các hệ UNIX của Berkeley, về
nguyên tắc, lại phụ thuộc vào chiến lược phân trang để điều khiển các xung đột sử
dụng bộ nhớ và coi swapping như là một biện pháp thứ yếu.
III.3.2. Cơ chế phân trang
Hệ 3.4 BSD là hệ thống làm việc trên cơ sở bộ nhớ ảo được phân thành các
trang ngay khi có yêu cầu. Việc phân trang khi có yêu cầu được thực hiện một
cách trực tiếp. Mỗi khi có một tiến trình nào đó được quyền sử dụng một trang và
trang đó lại không tìm thấy trong bộ nhớ chính, thì nó tự phát sinh một trang ngầm
định cho hạt nhân, lúc này ta cung cấp một khung của trang bộ nhớ chính và tại đó
ta đặt trang đĩa thích hợp.
KẾT LUẬN

Hệ điều hành Unix là hệ đa chương trình và quản lý việc chia sẻ tài nguyên.
Khi hoạt động, các chương trình có thể tạo ra các tiến trình theo nhu cầu bởi lời
gọi hệ thống có sẵn. Các tiến trình có thể liên lạc với các ống hoặc thường với
socket. Người ta có thể nhóm chúng lại theo những nhóm nhất định và được điều
khiển bằng các tín hiệu.
Trong quá trình vận dụng lý thuyết hệ tin học phân tán vào công tác thiết kế
hệ, người ta chú trọng đến :
- Sự đồng bộ hóa giữa các hoạt động của tiến trình, đặc biệt là quan hệ
giữa tiến trình cha và tiến trình con.
- Sử dụng cơ chế trao đổi qua hộp thư bằng các thông điệp ngắn
- Vấn đề đề phòng các sự cố và phương pháp phục hồi các thông tin sau
sự cố.
Các nhà thiết kế hệ hệ điều hành Unix đã cố gắng trong việc vận dụng lý
thuyết phân tầng trên cơ sở tham chiếu mô hình cơ sở ISO để tăng khả năng huy
động ngày càng nhiều các chuyên gia phần mềm tham gia phát triển hệ.
Cuối cùng, hệ điều hành Unix là hệ hỗ trợ có hiệu quả cho người sử dụng và
các nhà cung cấp dịch vụ thông tin trên mạng toàn cầu Internet.
HVTH. Nguyễn Văn Hà KHMT K10 Trang 9
Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
Chương 2
BẾ TẮC TRONG HỆ PHÂN TÁN
1. Một số khái niệm
Trong chương này, sẽ đề cập cách giải quyết các vấn đề đặt ra và trình bày
các giải pháp thể hiện dưới dạng các giải thuật riêng cho hệ phân tán.
Trong hệ phân tán, thông thường người ta hay sử dụng khái niệm giao
dịch như là thực thể sử dụng các tài nguyên chẳng hạn.
Giao dịch là phép toán hợp thành một logich 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ác
trạm ở xa là đối tượng mà ta cần phải quan tâm nghiên cứu trong chương này.

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 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ế, rõ ràng là 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,….
Mộ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 thủ các quy tắc nhất định.
Có hai điều kiện làm cho tiến trình mất khả năng sử dụng tài nguyên đã được
cung cấp trước đó. Đó là:
STT Tên gọi
Điều kiện
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.
HVTH. Nguyễn Văn Hà KHMT K10 Trang 10
Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
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ống cò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 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.
Hình vẽ 2.1 sau đây 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 T
1
, T

2
, T
3
và T
4
và có 3 nhu cầu tài
nguyên là Tr
1
, Tr
2
và Tr
3.
Cả ba tiến trình này đang ở trong tình trạng bế tắc. Tiến
trình Tr
2
chờ tài nguyên T
3
do Tr
3
đang chiếm giữ. Tiến trình Tr
3
chờ tài nguyên T
2
được giải phóng bởi Tr
1
và .Thêm vào đó, tiến trình chờ tiền trình Tr
2
giải phóng
T
1

.
Lúc này, ta thấy có hai chu trình kín trong đồ thị là:
Tr
1
– T
1
– Tr
2
– T
3
– Tr
3
– T
2
– Tr
1

Tr
3
– T
2
– Tr
2
– T
3
– Tr
3
Hình 2.1. Đồ thị cung cấp tài nguyên bị bế tắc
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 có nhiều, nhưng ta có thể chỉ ra ví dụ thường gặp là do sử dụng luật ưu
tiên để cung cấp tài nguyên.
Một chiến lược cung cấp tài nguyên tồi cũng có thể là nguồn gốc huỷ 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à
HVTH. Nguyễn Văn Hà KHMT K10 Trang 11
T1
T3
T2
T4
Tr1 Tr3
Tr2
Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
không được đáp ứng của một số tài nguyên. Ví dụ như sự sụp đổ của hệ đa chương
trình.
Để tránh các hiện tượng đó, bộ cung cấp tài nguyên cần phải đảm bảo chức
năng điều khiển
Ta có thể phân chia thành hai phương diện để nghiên cứu:
1. Phân tán các yêu cầu giữa các tài nguyên tương đương có khả năng thoả
mãn. Chức năng này gọi là phân phối tải. Trong hệ phân tán, nó cần phải tạo điều
kiện để tránh tình hình mà ở đó các yêu cầu đợi đến lượt được thoả mãn trên một
trạm đầy, trong khi đó các tài nguyên tương đương lại rỗi rãi trên các trạm khác.
2. Giới hạn số lượng các yêu cầu được phép cho một số tài nguyên. Việc
đó có thể thực hiện bằng cách hạn chế (tĩnh hay động) số các tiến trình hay số các
giao dịch được chọn (trúng tuyển) sử dụng toàn bộ hay từng phần tài nguyên.Ta
gọi trường hợp này là điều khiển tải tổng quát.
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ể thoả 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. Cung cấp tài nguyên duy nhất

Vấn đề cung cấp tài nguyên duy nhất trên một trạm trong hệ phân tán liên
quan đến việc phân phối tài nguyên này cho một tập hợp các tiến trình trên cơ sở
quy tắc : truy cập loại trừ hay chia sẻ, có hệ số ưu tiên, không được mất,…Các tiến
trình có thể đề nghị sử dụng tại nguyên ngay tại trạm có tài nguyên mà cũng có thể
ở các trạm khác từ xa.
Việc quản lý các truy cập đến một tài nguyên duy nhất có thể được thực
hiện theo hai cách:
STT Kiểu thực hiện
1 Truy cập bằng một tiến trình duy nhất
2 Truy cập bằng các tiền trình tương tranh
3. Truy cập bởi server duy nhất
Một tiến trình duy nhất hay còn gọi là server được giao nhiệm vụ quản lý
tài nguyên. Nó xử lý tất cả các yêu cầu truy cập từ các tiến trình và các khách
HVTH. Nguyễn Văn Hà KHMT K10 Trang 12
Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
(client). Sự loại trừ truy cập được đảm bảo bởi tính duy nhất của server. Server
đồng thời cũng là chương trình đánh thức.
Chương trình có thể viết như sau:
Vòng lặp
m:= cho-thong-diep(nil) {treo}
<Chương trình xử lý các yêu cầu và gửi trả kết
quả>
Kết thúc vòng lặp
Do vậy, sơ đồ này loại bỏ tất cả các đặc tính song song để truy cập vào tài
nguyên. Tiến trình server có thể được lập trình để triển khai toàn bộ chiến lược
liên quan đến loại trừ tương hỗ của các yêu cầu (độ ưu tiên, quyền truy cập tài
nguyên).
Hình 2.2 Đồ thị truy cập vào tài nguyên bằng server duy nhất
4. Truy cập tương tranh có điều khiển
Trong trường hợp này, tài nguyên được truy cập bởi nhiều server, thông

thường, có số lượng không cố định. Các server này thực hiện các truy cập tương
ứng với các yêu cầu dưới dạng gọi thực hiện các thủ tục.Việc thực hiện các thủ tục
này được điều khiển bởi cơ chế đảm bảo tôn trọng các quy tắc truy cập.
Các quy tắc được khởi sự bằng hai cách bởi các tiến trình khách. Hình vẽ
2.3 cho thấy việc truy cập được tiến hành bằng một chương trình trực duy nhất.
HVTH. Nguyễn Văn Hà KHMT K10 Trang 13
Tr1
Tr
n
Tr2 S T
T- Tài nguyên Tr- Ti?n trình khách S-
Server
Tr1
Tr
n
Tr2 D T
T- Tài nguyên Tr- Ti?n trình khách
Si- Server D-Ðánh th?c
S1
Sn
S2
Hàng d?i các yêu c?u
Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
Hình 2.3. Đồ thị truy cập vào tài nguyên bằng một chương trình trực duy nhất
Trong cách thứ hai, việc truy cập được tiến hành trực tiếp với các server và
thể hiện bằng hình vẽ 2.4.
Hình 2.4. Truy cập trực tiếp vào các server
Trong hình 2.3, ta thấy một tiến trình đánh thức D duy nhất sau hàng đợi
làm nhiệm vụ phân phối yêu cầu cho các server cục bộ . Các tiến trình khách
không biết server.

Ngược lại, trong hình vẽ 2.4, các máy server đều được các tiến trình khách
biết trước.
5. Cung cấp một tập hợp các tài nguyên. Vấn đề bế tắc
Trước hết, ta tìm hiểu một số thuật ngữ và khái niệm có quan hệ mật thiết
với nhưng vấn đề sẽ sử dụng trong phần này.
Tiến trình p đưa ra yêu cầu cung cấp tài nguyên e để thực hiện phép toán cài
then có tính loại trừ v_loai_tru_th(e). Ngoại trừ một số trường hợp đặc biệt, tất cả
các tài nguyên đều được truy cập theo kiểu loại trừ. Nếu việc cung cấp hoán toàn
hợp thức thì tài nguyên này được trao cho p sử dụng. Ta nói rằng tài nguyên này
đã được p cài then, nếu không thì p bị treo và đương nhiên p không cài then được
tài nguyên này.
Trong hệ phân tán, ta sẽ tập trung xem xét các giao dịch T
i
có thể sử dụng
các tài nguyên được định vị trên các trạm. Mỗi một giao dịch được triển khai nhờ
HVTH. Nguyễn Văn Hà KHMT K10 Trang 14
Tr1
Tr
n
Tr2 T
S1
Sn
S2

Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
một tập hợp các tiến trình thể hiện là các đại diện của chúng trên các trạm khác
nhau. Hai tiến trình của cùng một giao dịch được định vị trên các trạm khác nhau
có thể được thực hiện song song. Nhằm thu hồi lại tài nguyên e trên trạm S
j
, giao

dịch T
i
cho thực hiện phép toán v_loai_tru_th(e) thông qua đại diện p
ij
của mình
trên trạm này.
Ngoại trừ một số trường hợp đặc biệt, việc cung cấp diễn ra không có thu
hồi. Một tài nguyên bị khoá bởi một tiến trình không thể rút nó trở về được. Như
thế, nó cần phải được giải phóng bởi tiến trình này một cách tường minh nhờ vào
phép toán mở then cài mo_then(e).
Bế tắc có thể được giải quyết bằng cách dự báo và vòng tránh (gọi chung
là dự phòng) có nghĩa là tài nguyên được cung cấp theo kiểu có đề phòng trường
hợp bế tắc. Một phương pháp khác có liên quan đến vấn đề này là phát hiện và
chữa trị có nghiã là khi có sự cố thì quay trở về trạng thái trước đó.
Các thuật toán dự phòng, phát hiện và chữa trị được nghiên cứu cho trường
hợp là tất cả các tài nguyên đều được quản lý bởi bộ cung cấp duy nhất. Bộ cung
cấp này tiếp nhận tất cả các yêu cầu và biết rõ trạng thái của tất cả các tài nguyên.
Ta bắt đầu việc nghiên cứu trong phần này bằng cách nhắc lại các kết quả
chủ yếu của trường hợp nêu trên, trước khi phát triển các vấn dề về hướng tin học
phân tán.
6. Các phương pháp cung cấp sử dụng trạng thái tổng quát
Bây giờ, vấn đề quan trọng được đặt ra là tại sao có thể áp dụng thuật
toán dự phòng bế tắc của các hệ tập trung vào môi trường phân tán theo kiểu duy
trì trên mỗi trạm một bản sao trạng thái cung cấp của tất cả các tài nguyên.
Nội dung của các bản sao trên các trạm của hệ có thể phản ảnh trong bảng
sau đây:
STT Nội dung của bản sao
1 Tập hợp tất cả các tài nguyên còn chưa được cung cấp
2 Tập hợp các tài nguyên đã cung cấp
3 Đối tượng đang chiếm giữ tài nguyên

5 Kiểu sử dụng
HVTH. Nguyễn Văn Hà KHMT K10 Trang 15
Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
6 Tập hợp các yêu cầu không được thoả mãn
7 Tập hợp các thông điệp dành cho trường hợp đã được sử dụng
8 Tập hợp các thông điệp dành cho trường hợp thất bại
9 …
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:
1. Các thông điệp của mình.
2. Các yêu cầu của mình.
3. Các thông điệp giải phóng của mình.
Các bản sao 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ầm 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. Có thể sử dụng các kỹ thuật
đã được kiểm tra trong chương IV như dấu, bộ tuần tự tuần hoàn,… để giải quyết
vấn đề đồng bộ thông tin.
Ta sẽ sử dụng với tư cách là ví dụ nguyên lý triển khai thuật toán trình bày
trong ấn phẩm của Lomet và ứng dụng kỹ thuật thông cáo hợp thức.
Khi bắt đầu thực hiện giao dịch T
i
thì giao dịch này cần phải phát thông
điệp hợp thức của tập hợp các tài nguyên mà nó định sử dụng. Một tài nguyên chỉ
có thể thu hồi, nếu đó là một phần của thông điệp.
Ta định nghĩa một quan hệ gọi là phụ thuộc thế năng giữa hai giao dịch T

j

T
k
và ký hiệu T
j
> T
k
điều đó nói lên rằng

T
j
chậm hơn T
k.
T
j
> T
k
nghĩa là tồn tại ít nhất một tài nguyên bị cài then bởi T
j
và là thành
phần thuộc thông điệp của T
k
.
Quan hệ này có thể được biểu diễn bằng đồ thị G, biến theo thời gian gọi là
đồ thị các xung đột thế năng.Tồn tại vòng lặp trong đồ thị này sinh ra bế tắc.
HVTH. Nguyễn Văn Hà KHMT K10 Trang 16
Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
Ví dụ 1
Hãy đánh giá 3 giao dịch T

1
, T
2
và T
3
sử dụng 3 tài nguyên e
1
, e
2
và e
3.
Ta
ký hiệu a_loai_tru_th() là phép toán thông điệp.
Giao dịch T
1
t
11
: a_loai_tru_th(e
1
, e
2
)
…….
t
12
: v_loai_tru_th(e1)
…….
t
13
: v_loai_tru_th(e2)

Giao dịch T
2
t
21
: a_loai_tru_th(e
2
, e
3
)
…….
t
22
: v_loai_tru_th(e2)
…….
t
23
: v_loai_tru_th(e3)
Giao dịch T
3
t
31
: a_loai_tru_th(e
3
, e
1
)
…….
t
32
: v_loai_tru(e3)

…….
t
33
: v_loai_tru_th(e1)
Giả sử rằng các lệnh thực hiện theo trình tự t
11
, t
21
, t
31
, t
12
, t
22
, t
32
, vào thời
điểm t sau khi thực hiện các lệnh này, đồ thị G có thể biểu diễn như sau. Bế tắc
không tránh khỏi được.
Để tránh bế tắc diễn ra, ta duy trì mỗi trạm một bản sao của đồ thị G và ta
chỉ được cung cấp tài nguyên, nếu việc cung cấp đó không phát sinh vòng lặp
trong đồ thị này.
HVTH. Nguyễn Văn Hà KHMT K10 Trang 17
Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
Mỗi một thông cáo, thông điệp hay khuyến nghị giải phóng đều nhận một
dấu, rồi phát ra cho tất cả các trạm.Để cập nhật bản sao của mình về đồ thị G, mỗi
trạm xử lý các thông điệp mà nó nhận được trong một trật tự chặt chẽ
7. Vấn đề cập nhật dữ liệu
Khi xảy ra lỗi hệ thống thì tính nhất quán của CSDL bị mất. Hệ quản trị
CSDL lưu trữ một số thông tin về trạng thái nó tại thời điểm lỗi, gọi là thông tin

khôi phục mà hệ thống lưu trữ phụ thuộc vào phương pháp cập nhật: Cập nhật tại
chỗ và Cập nhật xa vị trí.
Cập nhật tại chỗ:
Thực hiện tao tác cập nhật





Trong trường hợp này các trang CSDL không nhất quán được cập nhật bởi
T1 không được ghi vào CSDL ổn định tại thời điểm lỗi. Do đó khi khôi phục phải
làm lại các thao tác T1.
HVTH. Nguyễn Văn Hà KHMT K10 Trang 18
Bắt đầu T1
Kết thúc
Bắt đầu T2
0 t (thời gian)
(Sự xuất hiện lỗi hệ thống)
Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
Quá trình làm lại
Tương tự quản lý bộ dệm phải ghi vào CSDL ổn định một số trang CSDL
không nhất quán được cập nhật bởi T2. Khi khôi phục phải xóa hết các thao tác
của T2
TÀI LIỆU THAM KHẢO
1. TS. Lê Văn Sơn – Giáo trình Kỹ Thuật mạng máy tính, Trường đại học Bách
khoa Đà Nẵng, Đà Nẵng 1994.
2. TS. Lê Văn Sơn – Giáo trình Lập trình hệ thống và hệ điều hành các máy
tính, Trường đại học Kỹ Thuật - Đại học Đà Nẵng, Đà Nẵng 1996.
3. TS. Lê Văn Sơn – Giáo trình Hệ tin học phân tán cho học viên cao học
CNTT, Đại học Đà Nẵng, Đà Nẵng 2002.

4. Học liệu mở của Việt Nam về hệ phân tán trong tin học:

5. Tổng kết các công cụ xây dựng HPT:
/>6. Distributed systems engineering: />7. Introduction for distributed systems:
/>8. Thuật toán wait-die system: />Những example về distributed systems: />doid=320251.320260
HVTH. Nguyễn Văn Hà KHMT K10 Trang 19
Tiểu luận môn học Hệ phân tán GVHD: PGS-TS Lê Văn Sơn
MỤC LỤC
LỜI NÓI ĐẦU 2
Chương 1.
KHẢ NĂNG PHÂN TÁN CỦA HỆ ĐIỀU HÀNH UNIX 3
I. Hệ tin học phân tán 3
I.1. Định nghĩa 3
I.2. Các đặc điểm cơ bản của hệ tin học phân tán 3
II. Quá trình hình thành và phát triển hệ điều hành UNIX 4
II.1 Lịch sử phát triển 4
II.2 Các ý tưởng lớn 4
III. Khả năng phân tán của hệ điều hành UNIX 4
III.1 Quản lý các tập tin 4
III.2 Quản lý các tiến trình 6
III.3 Quản lý bộ nhớ 8
KẾT LUẬN 9
Chương 2
BẾ TẮC TRONG HỆ PHÂN TÁN 10
1. Một số khái niệm 10
2. Cung cấp tài nguyên duy nhất 12
3. Truy cập bởi server duy nhất 12
4. Truy cập tương tranh có điều khiển 13
5. Cung cấp một tập hợp các tài nguyên. Vấn đề bế tắc 14
6. Các phương pháp cung cấp sử dụng trạng thái tổng quát 15

7. Vấn đề cập nhật dữ liệu 18
TÀI LIỆU THAM KHẢO 19
HVTH. Nguyễn Văn Hà KHMT K10 Trang 20

×