Mục lục I. Lời nói đầu 2 II. Tổng quan Hệ Điều Hành Amoeba 1 Lịch sử hình thành 3 2 Hệ điều hành Amoeba 4 III. Quản lý tiến trình Hệ Điều Hành Amoeba…………………………………………………………..5 1 Tiến trình 5 2 Quản lý tiến trình 8 IV. Kết Luận………………………………………………………………………………………….11 V. Tài Liệu tham khảo……………………………………………………………………………….12 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. 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 Do
Trang 1Mục lục
I Lời nói đầu 2
II Tổng quan Hệ Điều Hành Amoeba 1 Lịch sử hình thành 3
2 Hệ điều hành Amoeba 4
III Quản lý tiến trình Hệ Điều Hành Amoeba……… 5
1 Tiến trình 5
2 Quản lý tiến trình 8
IV Kết Luận……….11
V Tài Liệu tham khảo……….12
Trang 2I 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
Trang 3II 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
Trang 42 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 …
Trang 5Ameoba 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:
Trang 6Process 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
Trang 7( 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
Trang 8Khi 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
Trang 9Processor 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
Trang 10Mặ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)
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ớ
Trang 11Khi 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
ơ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
Trang 12V Tài liệu tham khảo
http://amoebaos.org/
http://en.wikipedia.org/wiki/Amoeba_distributed_operating_system
http://staff.um.edu.mt/csta1//courses/lectures/csm202/os22.html
http://www.cs.vu.nl/pub/amoeba/
Distributed_systems_principles_and_paradigms_prentice_hall_2002
Trang 13Phân công 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