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

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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

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 [...]... http://staff.um.edu.mt/csta1//courses/lectures/csm202 /os2 2.html • http://www.cs.vu.nl/pub /amoeba/ • 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 1 2 3 Họ tên Nguyễn Thị Thu Hà Cao Minh Quỳnh Nguyễn Thị Minh Công việc Tổng quan hệ điều hành AMOEBA Quản lý tiến trình + Báo cáo Di trú tiến trình + Báo cáo 13 Nhóm Hệ điều hành tiên tiến –... 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 • http://amoebaos.org/ • http://en.wikipedia.org/wiki /Amoeba_ distributed_operating_system... 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... 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ày đăng: 02/05/2015, 19:19

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan