1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

13 602 2

Đ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

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 854,67 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

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

Trang 2

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

Trang 3

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

Trang 4

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 …

Trang 5

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:

Trang 6

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

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 8

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

Trang 9

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

Trang 10

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)

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 11

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

ơ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 12

V 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 13

Phâ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

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

🧩 Sản phẩm bạn có thể quan tâm

w