Tải bản đầy đủ (.docx) (13 trang)

báo cáo Hệ Điều Hành Amoeba OS

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 (322 KB, 13 trang )

Mục lục
Tài Liệu tham khảo……………………………………………………………………………….12
1
Nhóm Hệ điều hành tiên tiến – Lớp Khoa học máy tính K51
I. Lời nói đầu
Trong những năm qua, cùng với sự phát triển như vũ bão của khoa học kĩ
thuật, ngành công nghệ thông tin cũng biến đổi không ngừng để đáp ứng với
mọi nhu cầu mới của con người. Trong số những phát minh vĩ đại nhất của thế kỉ
trước, mạng máy tính ( Computer Network) là một hệ thống đem lại nhiều lợi ích
to lớn nhất cho nhân loại. Mạng máy tính ngày nay cho phép hàng tỉ máy tính
trêntrái đất đã và đang kết nối và làm việc việc với nhau với tốc độ cao ( từ vài
chục đến hàng nghìn kbps).
Điều kì diệu trên đã trở thành hiện thực và ngày càng phát triển mạnh mẽ
hơn nữa chỉ khi có một nhân tố quan trọng làm nền tảng cơ sở lí thuyết cho
chúng đã được nghiên cứu. Đó chính là những lí thuyết nghiên cứu liên quan
đến hệ phân tán. Nhờ có lí thuyết hệ phân tán, mà các vi xử lí đơn lẻ - nằm trên các
máy tính đơn lẻ (kèm theo là các thiết bị ngoại vi và các thiết bị đầu cuối làm việc
từ xa)- mà chúng vẫn thường được gọi là các hệ thống tập trung(Centralized
Systems) đã được kết nối lại, làm việc trên nhiều giao thức, nhiều kiểu kết nối và
trên nhiều lãnh thổ khác nhau. Và khi các hệ thống tập trung đó đã được kết nối lại
theo nhiều nhóm, nhiều cách thức khác nhau và làm việc dựa trên những nguyên lí
cơ bản của hệ phân tán thì chúng sẽ được gọi là các hệ thống phân tán (Distributed
Systems), điển hình nhất của các hệ phân tán chính là mạng máy tính mà chúng đa
đang sử dụng ngày nay.
2
Nhóm Hệ điều hành tiên tiến – Lớp Khoa học máy tính K51
II. Tổng quan Hệ Điều Hành Amoeba
1. Lịch sử hình thành Hệ điều hành Amoeba:
Hệ Điều hành Amoeba là một hệ điều hành phân tán được phát triển bởi Giáo
sư Andrew S. Tanenbaum và nhóm sinh viên của ông gồm Frans Kaashock, Sape J.
Mullender, Robbert van Renesse, Leendert van Doorn, Kees Verstoep tại đại học


Vrije , Amsterdam, Netherland vào năm 1981.
Phiên bản đầu tiên của hệ điều hành được ra đời vào năm 1983 (Version 1.0)
phiên bản gần đây nhất được công bố là Amoeba Version 5.3 vào năm 1996, hỗ trợ
nhiều kiến trúc vi xử lý như 68030, i80386, i486, SPARC, Sun 3/60
3
Nhóm Hệ điều hành tiên tiến – Lớp Khoa học máy tính K51
2. Mục tiêu của hệ điều hành Amoeba:
Amoeba được xây dựng từ những scratch, không dựa trên bất kỳ một hệ điều
hành nào trước đó và sử dụng ngôn ngữ Python để xây dựng nên Platform này. Nó
có giao diện tương tác với người dùng giống như UNIX Timesharing System. Ban
đầu Amoeba được xây dựng là 1 hệ điều hành chia sẻ thời gian chạy trên máy trạm
trong mạng máy tính.
Một trong những mục đích cơ bản của những người phát triển Hệ điều Amoeba
là muốn thiết kế một hệ thống phân tán cho phép người dùng có thể đăng nhập vào
hệ thống một cách trong suốt, có nghĩa là ẩn đi những phần phức tạp của hệ phân
tán đối với người dùng, người dùng Amoeba không cần tập trung vào số lượng
Processors trong hệ thống cũng như họ có thể không biết địa chỉ của những máy
client khác và servers (giống như Filesystem server…).
Điểm phân biệt Hệ điều hành Amoeba với các hệ thống phân tán khác đó là
Amoeba không có khái niệm một“home machine”.Bên cạnh đó Amoeba còn cung
cấp cho người dùng một môi trường để phân loại và tính toán song song. Một hệ
thống Amoeba thì một chuwong trình hay dòng lệnh có thể sử dụng nhiều
processors để tăng hiệu năng tính toán. Người dùng đơn giản chỉ cần yêu cầu một
thao tác và Amoeba OS sẽ quyết định cách tốt nhất để thực thi yêu cầu đó. Amoeba
sẽ quyết định những processor nào là thích hợp cho yêu cầu thực hiện yêu cầu đó
thêm nữa người dùng có thể tự tạo một môi trường để có thể làm việc tiện lợi hơn
dựa trên môi trường mà Amoeba đã cung cấp. Ví dụ như Amoeba hỗ trợ cho
deverlopment tự tạo một chương trình song song…ví dụ như Ngôn ngữ lập trình
song song Orca …
4

Nhóm Hệ điều hành tiên tiến – Lớp Khoa học máy tính K51
Ameoba còn cung cấp cho một giao thức mạng để thực thi tính toán hiệu năng
cao trên mạng là FLIP (Fast Local Internet Protocol). Khi FLIP được phát triển thì
không một protocols nào vào thởi điểm đó có thể hỗ trợ cho hệ phân tán, FLIP thực
thi rất gọn gàng, đơn giản và hiệu quả việc truyền thông, kế nối giữa các nodes
trong hệ thống.
Trong báo cáo này chúng ta sẽ tìm hiểu về vấn đề quản lý tiến trình trong hệ
điều hành Amoeba.
III. Quản lý tiến trình trong Amoeba:
1. Tiến trình trong Hệ điều hành Amoeba
Một Process là một đối tượng trong Amoeba. Thông tin về 1 process trong
Amoeba được chứa trong 1 Process Capability và được mô tả chi tiết trong 1
cấu trúc dữ liệu được gọi là Process decriptor, thứ mà thường được sử dụng tạo
process và dừng process hoặc di trú process. Process Decriptor bao gồm 4 thành
phần sau:
5
Nhóm Hệ điều hành tiên tiến – Lớp Khoa học máy tính K51
Process Descriptor
• Host Descriptior cung cấp những yêu cầu cho hệ thống nơi mà process
phải chạy bởi những mô tả những gì mà máy có thể chạy
• Capabilities bao gồm khả năng của process với thứ mà mọi client cần và
quyền hạn với 1 handler – thứ mà giao tiếp với signals và giải phóng
process.
• Segment mô tả layout của không gian địa chỉ mức thấp.
• Thread mô tả trạng thái của mỗi thread ở mức tháp trong process và các
thông tin của nó như IP, Stack…
Amoeba hỗ trợ mô hình đơn thread, khi 1 process khởi động nó sẽ có ít nhất
một thread, số lượng thread là biến động, trong quá trình thực thi thì process có
thể tạo thêm thread và có thể ngắt các thread đang tồn tại. Tất cả các threads
được quản lý bởi kernel. Điểm tiện lợi của thiết kế này là 1 thread sẽ làm 1 RPC

6
Nhóm Hệ điều hành tiên tiến – Lớp Khoa học máy tính K51
( Remote procedure call ), kernel có thể ngăn chặn thread và lập lịch cho thread
khác trong cùng process nếu nó sẵn sàng.
Ba phương pháp được Amoeba cung cấp cho việc đồng bộ thread là
• Mutexes: giống như một cờ nhị phân, có thể cho 1 trong 2 trạng thái là : locked hay
unlocked. Khi cố gắng locked một unlocked mutex sẽ làm cho thread bị khóa sau đó
quá trình gọi thead vẫn tiếp tục. Nếu cố gắng khóa 1 mutex thì nó sẽ ngay lập tức bị
locked đó là nguyên nhân khi gọi thread để ngăn chặn cho đến khi 1 thread khác
unlock mutex.
• Semaphores: là cách thứ hai để đồng bộ threads (đếm cờ Semaphores). Chậm hơn
phương pháp mutexe nhưng đôi khi cần phương pháp này. 1 semaphore không thể
phủ định ví dụ như khi cố gắng giảm 1 zero semaphore sẽ là cho việc gọi thread bị
khóa cho đến khí 1 thread thực thi hành động up semaphore.
• Signals: là những ngắt không đồng bộ đã gửi từ 1 thread đến thread khác trong cùng 1
process. Tín hiệu có thể được tăng, bắt lấy hoặc bỏ qua. Ngắt bất đồng bộ giữa các
process sử dụng để dừng hệ thống đang chạy.
7
Nhóm Hệ điều hành tiên tiến – Lớp Khoa học máy tính K51
Khi một process được tạo thì process cha của nó sẽ được trao quyền đối với
process con vừa được tạo như quyền suspended, restarted, signaled, or
destroyed.
2. Quản lý tiến trình trong mô hình Amoeba Distributed System:
Quản lý tiến trình trong Amoeba được chia làm 3 mức
• Quản lý bởi Process Servers đây là nhiệm vụ của Microkenel
• Quản lý bởi Library procedures được hoạt động như 1 interfaces
• Quản lý bởi server nơi quyết định process nào sẽ được chạy.
Hầu hết tiến trình sẽ được tạo ra và quản lý bởi các bộ biên dịch dòng lệnh,
nhưng có một số tiến trình cũng có thể tạo theo một cách mới. Tất cả đều được yêu
cầu là khả năng cho phép truyền thông với Amoeba Kernel. Hầu hết người sử dụng

sẽ có thể truy cập đến cluster tạo ra khả năng cho Amoeba Kernel chạy được trên
trạm làm việc của chính chúng. Điều này có nghĩa rằng, người sử dụng có thể tạo
ra một tiến trình mới trên trạm làm việc của chính chúng.
Khả năng cho việc tạo ra tiến trình trên bộ xử lý chung sẽ được đặc trưng bởi
dịch vụ “Processor Pool” mà sẽ hoạt động như là một tác nhân cho chương trình
đang chạy thay cho tiến trình của người sử dụng. Số còn lại được lưu trữ bởi dịch
vụ Processor Pool khi nó dùng bộ xử lý chung một cách thận trọng.
8
Nhóm Hệ điều hành tiên tiến – Lớp Khoa học máy tính K51
Processor pool
Mặc dù cluster hiếm khi di chuyển đến một host mới sau khi khởi động, nhưng
di trú là một khái niệm trung tâm trong cơ chế quản lý tiến trình của AMOEBA.
Bởi vì đó là việc load cluster mới trong bộ nhớ, thực hiện check-point, và gỡ lỗi từ
xa. Tất cả tương tự như là sự di trú cluster. Thực tế, nếu chúng ta có thể di trú một
cluster từ một máy này sang máy khác thì việc download, checkpoint, gỡ lỗi sẽ là
đơn giản.
Phần load còn lại bởi sự di trú cluster là khu vực ít được hiểu và nó không rõ
ràng không biết nó rất hữu ích với các loại hiện tại của trạm làm việc và mạng. Cho
ví dụ, việc di trú 5MB cluster sẽ mất tối thiểu 7s, bởi vì đó là thời gian một giao
thức truyền nhanh để copy nội dung bộ nhớ trên 10Mbit Ethernet. Chương trình
5MB là không phổ biến, đặc biệt như là ứng cử viên cho sự di trú: Những cluster
cũ cũng thường rộng như thế. Do đó sự di trú là khá đắt, và lợi ích của hoạt động di
trú phải lớn để xứng đáng với sự trả giá ở trên.
9
Nhóm Hệ điều hành tiên tiến – Lớp Khoa học máy tính K51
Mặc dù như thế, nhưng chúng ta tin tưởng rằng di trú hữu ích. Khi một
owner của trạm làm việc log off vào buổi tối, trạm làm việc có thể trở thành Pool
Processor và tạo dịch vụ thực thi tiến trình cho phần còn lại của hệ thống. Tuy
nhiên, khi owner quay trở lại vào buổi sáng và log on, thì cluster khách đang chạy
ở đó có thể bị đánh bật ra bởi việc di trú chúng sang một trạm làm việc khác.

Kernel thực thi cơ chế di trú cluster. Chúng không thực thi chính sách, sự
quyết định di trú một cluster và nơi để di trú nó được thực hiện trong cấp độ cao
của dịch vụ. Chúng ta sẽ không đi theo việc quyết định đó sẽ làm như thế nào. Tiến
trình mà ra lệnh di trú sẽ được gọi là Process Server.
Khi một cluster di chuyển từ một máy này đến máy khác, kernel ở một máy
cũ tạo ra nội dung bộ nhớ và nhãn cluster của cluster sẵn sàng đến kernel của máy
mới. Kernel trên máy mới tải cluster vào trong bộ nhớ và khởi động nó. Chúng ta
sẽ gọi hai kernel này là Old Host và New Host. Ví dụ di trú cluster từ điểm mà
Process Server đã quyết định di trú cluster đến New Host. Processor phải thiết lập
để giải quyết các tín hiệu cluster như là gỡ lỗi cluster.
Đầu tiên, Process Server gửi tín hiệu đến cluster, cái mà làm cho Old Host
đóng băng nó trong track của nó và gửi nhãn cluster đến Process Server (Process
Server hoạt động như là bộ gỡ lỗi cho cluster đó.) Sau đó, Process Server gửi nhãn
cluster đến New Host trong một yêu cầu RunCluster.
New Host, khi nó nhận yêu cầu RunCluster thì sẽ tạo phân đoạn cần thiết,
khởi tạo chúng bởi việc gửi yêu cầu Seg_Read đến Old Host và sắp xếp chúng vào
một không gian địa chỉ cluster mới. Cả hai client (New Host) và server (Old Host)
10
Nhóm Hệ điều hành tiên tiến – Lớp Khoa học máy tính K51
có thể gửi và nhận trực tiếp mà không cần sắp xếp bộ nhớ, do đó nội dung bộ nhớ
có thể được copy trên Ethernet với tốc độ tốt như trên (khoảng ½ MB/s)
Khi tất cả nội dung của phân đoạn được copy, New Host khởi động cluster
và gửi một reply có chứa dung lượng cluster mới đến Process Server . Sau đó,
Process Server xóa cluster cũ đồng thời yêu cầu DeleteCluster đến Old Host.
Chú ý rằng, trong khi di trú đang tiến hành, cluster tồn tại trên old host của
nó với điều kiện “đóng băng”. Do đó, Kernel phải reply đến tất cả message cho
cluster đóng băng với 1 message “Hãy thử lại lần nữa, Cluster này đang bị đóng
băng”. Sau khi cluster đã bị xóa, message của chúng sẽ đi lại trong một vài điểm,
và sau đó kernel sẽ reply tương tự như “Cổng này không có trong địa chỉ này.”
Tiếp theo, sender thực hiện hoạt động định vị để tìm ra phía mới của cluster, và quá

trình truyền thông sẽ được thiết lập lại.
Giao thức cho việc giải quyết giao dịch message trong suốt quá trình di trú là
phức tạp hơn miêu tả ở trên. Để đảm bảo ngữ nghĩa “at-most-once” của giao dịch
message Amoeba, client và server cần để sử dụng cổng truyền thông duy nhất để
hoạt động định vị có thể không chịu thua địa chỉ của một server sai.
IV. Kết Luận
Hệ điều hành Amoeba tuy chưa được ứng dụng rộng rãi nhưng với ưu thế là
miễn phí và mã nguồn mở , Amoeba đang là một hệ điều hành phân tán tiềm
năng trong việc nghiên cứu khoa học, tính toán song song trong tương lai.
Cuối cùng do thời gian nghiên cứu còn chưa được nhiều chưa có dịp thực
hành trên hệ điều hành Amoeba nên báo cáo của chúng em còn nhiều thiếu
xót mong thầy chỉ dẫn thêm cho chúng em ạ. Nhóm chúng em cũng xin cảm
11
Nhóm Hệ điều hành tiên tiến – Lớp Khoa học máy tính K51
ơn thầy giáo Đỗ Tuấn Anh đã hướng dẫn và giúp đỡ về tài liệu để chúng em
hoàn thành bài tập lớn môn học này.
Nhóm sinh viên
V. Tài liệu tham khảo




• Distributed_systems_principles_and_paradigms_prentice_hall_2002
12
Nhóm Hệ điều hành tiên tiến – Lớp Khoa học máy tính K51
Phân công công việc:
TT Họ tên Công việc
1 Nguyễn Thị Thu Hà Tổng quan hệ điều hành AMOEBA
2 Cao Minh Quỳnh Quản lý tiến trình + Báo cáo
3 Nguyễn Thị Minh Di trú tiến trình + Báo cáo

13
Nhóm Hệ điều hành tiên tiến – Lớp Khoa học máy tính K51

×