1. Trang chủ
  2. » Công Nghệ Thông Tin

Nghiên cứu kiến trúc máy ảo hệ thống và triển khai hệ thống đa nền tảng

88 301 0

Đ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 88
Dung lượng 3,59 MB

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

Nội dung

Số lượng thực các bộ xử lý, bộ nhớ và các nguồn lưu trữ … cần có cho hệ thống sẽ được điều chỉnh và quyết định bởi các khả năng tính toán của ảo hóa để tối ưu hóa công suất sử dụng phần

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

-

NGUYỄN ĐÌNH THIẾT

NGHIÊN CỨU KIẾN TRÚC MÁY ẢO HỆ THỐNG VÀ

TRIỂN KHAI HỆ THỐNG ĐA NỀN TẢNG

Chuyên ngành: CÔNG NGHỆ THÔNG TIN

Trang 2

1

MỤC LỤC

Nội dung Trang

Lời cam đoan……… ……… 4

Lời cảm ơn ……… 5

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT ……… 6

DANH SÁCH CÁC HÌNH VẼ, CÁC BIỂU BẢNG ……… 7

PHẦN MỞ ĐẦU ……… 8

CHƯƠNG 1: TÌM HIỂU TỔNG QUAN VỀ MÁY ẢO ……… 11

1.1 Giới thiệu về kiến trúc của máy ảo ……… ……… 11

1.2 Giao diện kiến trúc … ……… 14

1.3 Kiến trúc tập lệnh ……… 15

1.4 Giao diện ứng dụng nhị phân …… ……… 16

1.5 Giao diện lập trình ứng dụng …… ……… 16

1.6 Máy ảo tiến trình và Máy ảo hệ thống ……… ……… 16

CHƯƠNG 2: NGHIÊN CỨU CHI TIẾT VỀ MÁY ẢO HỆ THỐNG 19 2.1 Một số khái niệm cơ bản ……… ……… 19

2.1.1 Biểu hiện bên ngoài …… ……… 19

2.1.2 Quản lý các trạng thái ……… 20

2.1.3 Kiểm soát tài nguyên ……… 22

2.1.4 Nguồn gốc và tổ chức máy ảo ……… 25

2.2 Ảo hóa tài nguyên của Vi xử lý ……… 27

2.2.1 Điều kiện để ảo hóa ISA ……… 28

2.2.2 Sự tái lập quá trình ảo hóa ……… 32

2.2.3 Vá lỗi của các lệnh quan trọng ……… 33

2.2.4 Mã mô phỏng bộ nhớ Cache 35 2.3 Ảo hóa tài nguyên của bộ nhớ ……… 36

2.3.1 Hỗ trợ bộ nhớ ảo trong một môi trường máy ảo hệ thống … 36

Trang 3

2

2.3.2 Ảo hoá kiến trúc Page Tables ……… 38

2.3.3 Ảo hoá kiến trúc TLB ……… 41

2.4 Ảo hóa nguồn tài nguyên vào/ra ……… 43

2.4.1 Ảo hoá thiết bị ……… 44

2.4.1.1 Thiết bị chuyên dụng ……… 44

2.4.1.2 Thiết bị phân chia ……… 44

2.4.1.3 Thiết bị chia sẻ ……… 45

2.4.1.4 Thiết bị spooled ……… 45

CHƯƠNG 3: NGHIÊN CỨU VỀ ẢO HÓA ĐA NỀN TẢNG ………… 48

3.1 Nền tảng sản phẩm máy ảo ……… 48

3.2 Bộ vi xử lý ảo hóa ……… 50

3.3 Ảo hóa vào/ra ……… 52

3.3.1 Mô phỏng trong VMMonitor ……… 52

3.3.2 Sử dụng các dịch vụ của hệ điều hành máy chủ ……… 53

3.4 Ảo hóa Bộ nhớ ……… 56

CHƯƠNG 4: XÂY DỰNG MÔ HÌNH KIẾN TRÚC ẢO HÓA MÁY CHỦ TẠI CỤC THUẾ TỈNH HÀ TĨNH ………… 57

4.1 Giới thiệu về Cục thuế tỉnh Hà Tĩnh ……… 57

4.2 Nhu cầu sử dụng và hiện trạng hệ thống Công nghệ thông tin 57 4.2.1 Nhu cầu sử dụng……… 57

4.2.2 Hiện trạng Hệ thống CNTT tại Cục thuế ……… 58

4.2.2.1 Về trang thiết bị ……… 58

4.2.2.2 Về ứng dụng, có thể chia ra các nhóm theo chức năng sau … 62 4.3 Giải pháp kiến trúc hệ thống máy ảo vào hệ thống thông tin của Cục thuế tỉnh Hà Tĩnh ……… 63

4.3.1 Mục tiêu giải pháp ……… 63

4.3.2 Mô hình giải pháp triển khai ……… 64

4.3.3 Cấu hình thông số máy ảo ……… 74

4.3.4 Tạo các vSwitch……… 76

Trang 4

3

4.3.5 Tạo ổ cứng……… 77

4.3.6 Gán ổ cho máy ảo ……… 80

4.3.7 Đánh giá mô hình giải pháp……… 82

KẾT LUẬN ……… 84

TÀI LIỆU THAM KHẢO ……… 85

Trang 5

4

LỜI CAM ĐOAN

Luận văn thạc sĩ này do tôi nghiên cứu và thực hiện dưới sự hướng dẫn của

Thầy giáo TS Nguyễn Kim Khánh Với mục đích học tập, nghiên cứu để nâng cao

kiến thức và trình độ chuyên môn nên tôi đã làm luận văn này một cách nghiêm túc

và hoàn toàn trung thực

Để hoàn thành bản luận văn này, ngoài các tài liệu tham khảo đã liệt kê, tôi cam đoan không sao chép toàn văn các công trình hoặc thiết kế tốt nghiệp của người khác

Hà Nội, tháng 10 năm 2015

Học viên

Nguyễn Đình Thiết

Trang 6

5

LỜI CẢM ƠN

Trước tiên, tôi xin phép bày tỏ sự biết ơn chân thành đến TS Nguyễn Kim Khánh đã trực tiếp, tận tình hướng dẫn, định hướng cho tôi giải quyết các vấn đề trong luận văn để luận văn được hoàn thành

Tôi cũng xin chân thành cảm ơn các thầy, các cô ở viện Công nghệ Thông tin

và Truyền thông Đại học Bách khoa Hà Nội đã tận tình giảng dạy, truyền đạt cho tôi những kiến thức quí báu trong suốt thời gian của khóa học Thạc sĩ 2013

Xin cảm ơn các học viên cùng khóa, các đồng nghiệp cơ quan ở Cục thuế tỉnh Hà Tĩnh, Cục công nghệ thông tin - Tổng Cục thuế đã tạo điều kiện, động viên tôi trong thời gian thực hiện luận văn

Xin cảm ơn Ban Lãnh đạo Cục thuế tỉnh Hà Tĩnh đã giúp tôi trang thiết bị, điều kiện thử nghiệm và triển khai hệ thống

Cuối cùng học viên xin được gửi lời chia vui cùng gia đình, người thân, bạn

bè và các đồng nghiệp

Hà Nội, tháng 10 năm 2015

HỌC VIÊN

Nguyễn Đình Thiết

Trang 7

6

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

LPSW Load the processor status word: nạp vào vi xử lý từ bản sao trạng

thái

duy nhất

volume do bản chất IOPS càng cao thì càng nhiều thao tác có thể thực hiện đồng thời một lúc, tốc độ xử lý càng nhanh Điều đó trực tiếp dẫn tới tốc độ hoạt động ứng dụng

Trang 8

7

DANH SÁCH CÁC HÌNH VẼ, CÁC BIỂU BẢNG

chiều đứng qua các kiến trúc tập lệnh (ISA), giao diện ứng dụng nhị

phân (ABI), và giao diện lập trình ứng dụng (API)

hoạt máy ảo tiếp theo

quan trọng

thiết bị Giao diện ảo đến một giao diện thiết bị phần cứng

Trang 9

hệ điều hành cùng chạy trên một máy tính được phân bố ổ cứng, card mạng và các tài nguyên phần cứng khác một cách hợp lý Lúc này mỗi hệ điều hành trên máy ảo thực thi các tác vụ trong môi trường ảo được tạo riêng cho chúng và tạo cảm giác như đang làm việc trực tiếp với môi trường phần cứng máy thật

Ví dụ về một ích lợi của ảo hóa là đơn giản hóa quá trình nâng cấp các hệ thống (trong một số trường hợp, không cần nâng cấp hệ thống), bằng việc cho phép người sử dụng nắm bắt được trạng thái của máy ảo và sau đó chuyển trạng thái đó trong tình trạng nguyên vẹn từ hệ thống cũ sang một hệ thống mới Ngoài ra, ảo hóa cũng tạo ra khả năng điện toán với hiệu quả cao hơn Số lượng thực các bộ xử lý, bộ nhớ và các nguồn lưu trữ … cần có cho hệ thống sẽ được điều chỉnh và quyết định bởi các khả năng tính toán của ảo hóa để tối ưu hóa công suất sử dụng phần cứng, thông thường, một hệ thống máy chủ ở các trung tâm dữ liệu thường hoạt động chỉ với một tỷ lệ % nào đó trên tổng hiệu suất của hệ thống Nói cách khác, tài nguyên

hệ thống còn dư thừa, công suất của máy không được dùng đến có thể còn khá lớn

Xuất phát từ nhu cầu và bài toán thực tế tại cơ quan, học viên chọn đề tài

“Nghiên cứu kiến trúc máy ảo hệ thống và trển khai hệ thống đa nền tảng” để làm

cơ sở kiến trúc và xây dựng mô hình ảo hóa tại Cục thuế tỉnh Hà Tĩnh

2 Lịch sử nghiên cứu

Như vậy, trong một hệ thống chưa dùng hết công suất đã nói ở phần 1, chính

là sự lãng phí tài nguyên thiết bị, lãng phí chi phí vận hành hoạt động Đây chính là

Trang 10

9

sự lãng phí biết mà không tránh được Các công nghệ trước đây chưa giải quyết được và đến bây giờ với kiến trúc máy ảo hệ thống cộng với hệ thống xử lý đa nền tảng đã khắc phục được điều này

3 Mục đích, đối tƣợng và phạm vi nghiên cứu

Luận văn này nghiên cứu về kiến trúc máy ảo hệ thống và xử lý đa nền tảng

để có cơ sở kiến trúc, thiết kế và xây dựng nền tảng cho việc ảo hóa, điện toán đám mây, là cơ sở cho việc xử lý đa nền tảng các hệ ứng dụng trên tài nguyên hệ thống phần cứng, sử dụng tối ưu nguồn tài nguyên đó Thông qua kiến trúc máy ảo hệ thống và xử lý đa nền tảng để đáp ứng nhu cầu lưu trữ và xử lý dữ liệu ngày càng lớn, dễ quản trị, giúp triển khai các máy chủ nhanh chóng, dễ dàng và tự động quản

lý các tài nguyên trong máy chủ tối ưu hơn như: Đơn giản hóa việc quản lý hạ tầng bằng cách quản lý tập trung, tự động hóa việc quản lý các nguồn tài nguyên máy chủ giúp các nhân viên IT không còn tốn quá nhiều thời gian vào việc quản lý các máy chủ và đặc biệt là giảm các chi phí tốn kém trong việc mua sắm, trang bị các máy chủ và thiết bị đi kèm

4 Tóm tắt các luận điểm cơ bản và đóng góp của luận văn

Về lý thuyết: làm cơ sở để kiến trúc, thiết kế và xây dựng nền tảng cho việc

ảo hóa, điện toán đám mây trên tài nguyên hệ thống phần cứng, sử dụng tối ưu nguồn tài nguyên hệ thống và thiết bị Luận văn cũng đã đưa ra cái nhìn tổng quát

về sự tích hợp và đồng bộ hóa các ứng dụng chạy trên các môi trường kiến trúc máy tính hay các hệ điều hành khác nhau, là cơ sở cho việc triển khai đa nền tảng các hệ ứng dụng

Về ứng dụng: từ cơ sở lý thuyết trên, luận văn đã đi sâu vào thiết kế mô hình kiến trúc và xây dựng hệ thống máy ảo tại Cục thuế tỉnh Hà Tĩnh với việc đánh giá tài nguyên hệ thống hiện có của các máy chủ để thiết kế hợp lý các máy chủ ảo trên

hệ thống Từ đó làm nền tảng cho việc triển khai hệ thống ứng dụng của cơ quan đảm bảo toàn vẹn dữ liệu, dễ dàng quản trị và sử dụng

Về bố cục luận văn: Luận văn được chia làm 4 chương

Trang 11

10

* Chương 1: Tìm hiểu tổng quan về máy ảo Giới thiệu về kiến trúc và các giao diện của máy ảo Đồng thời cũng đưa ra cái nhìn tổng quan về máy ảo tiến trình và máy ảo hệ thống

* Chương 2: Nghiên cứu chi tiết về máy ảo hệ thống Chương này đưa ra một

số khai niệm cơ bản, cơ chế ảo hóa các tài nguyên vi xử lý, bộ nhớ, thiết bị vào ra… đưa ra những kiến thức chuyên sâu về nguyên lý và cơ chế hoạt động của tài nguyên phần cứng khi ảo hóa

* Chương 3: Nghiên cứu về ảo hóa đa nền tảng Cung cấp thêm kiến thức về

đa nền tảng trong ảo hóa, cơ chế làm việc của một hệ thống kép máy ảo trong môi trường nhiều hệ điều hành

* Chương 4: Tập trung về xây dựng mô hình kiến trúc máy ảo, đưa ra giải pháp phân chia các Host sau khi ảo hóa trên hệ thống máy chủ hiện tại của Cục thuế tỉnh Hà Tĩnh và từ đó đưa ra mô hình phân bố hệ thống ứng dụng cho hợp lý

5 Phương pháp nghiên cứu

Về lý thuyết: với phương pháp nghiên cứu phân loại, hệ thống hóa lý thuyết cùng với phương pháp mô hình hóa, sắp xếp các nội dung khoa học theo từng mãng, từng lĩnh vực, từng nhóm vấn đề có cùng chức năng và bản chất kiến trúc; cùng một hướng phát triển tri thức thành một hệ thống trên cơ sở một mô hình lý thuyết làm cho sự hiểu biết về lĩnh vực và đối tượng đầy đủ hơn bằng cách xây dựng gần giống với đối tượng, mô tả, tái hiện lại đối tượng theo các cơ cấu, chức năng của đối tượng

Về thực nghiệm: Học viên đã tiến hành khảo sát, đánh giá hệ thống công nghệ thông tin hiện tại của đơn vị, với tình trạng manh mún trong quy hoạch, bố trí các máy chủ, các ứng dụng; khó quản trị, khó nâng cấp để đáp ứng các yêu cầu lâu dài và đặc biệt là tiết kiệm chi phí mua sắm thêm các máy chủ mới và máy chủ thay thế của cơ quan Từ đó, nắm vững các nguyên tắc tổ chức và thiết kế hệ thống của đơn vị, đề xuất và thử nghiệm mô hình nghiên cứu mới

Trang 12

11

Chương 1: TÌM HIỂU TỔNG QUAN VỀ MÁY ẢO

1.1 Giới thiệu về kiến trúc của máy ảo

Ảo hóa đã trở thành một công cụ quan trọng trong việc thiết kế hệ thống máy tính và các máy ảo được sử dụng trong một số lĩnh vực khác nhau, từ hệ điều hành đến các ngôn ngữ lập trình và kiến trúc vi xử lý Được thiết kế bởi các nhà phát triển và người dùng bằng cách giải phóng các giao diện và tài nguyên truyền thống còn hạn chế, máy ảo nâng cao khả năng tương tác giữa các phần mềm và là hệ thống đảm bảo vững chắc và nền tảng linh hoạt

Máy ảo (VM) là sản phẩm của các nhà phát triển với mục tiêu khác nhau Tuy nhiên, hiện vẫn có rất ít sự thống nhất về khái niệm máy ảo Do đó, sẽ là hữu ích để có một bước trở lại, xem xét sự đa dạng của kiến trúc máy ảo và mô tả chúng một cách thống nhất, đưa các khái niệm ảo hóa và các loại máy ảo trong cùng một quan điểm

Trìu tượng và sự ảo hóa: Ảo hoá có thể xây dựng bằng nhiều cách khác nhau,

Để hiểu được vấn đề, chúng ta cần nắm vững 4 loại giao diện tương ứng với 4 mức khác nhau trong một hệ thống máy tính

1 Giao diện giữa phần cứng và phần mềm, gồm các lệnh máy, được đưa ra bởi bất kỳ chương trình nào

2 Giao diện giữa phần cứng và phần mềm, gồm các lệnh máy, chỉ được gọi bởi một số chương trình đặc biệt, ví dụ như hệ điều hành

3 Giao diện giữa hệ điều hành và chương trình người dùng: gồm các lời gọi

hệ thống (system call) được cung cấp bởi hệ điều hành

4 Giao diện giữa các thư viện: tập các giao diện chương trình ứng dụng (APIs) Trong nhiều trường hợp các lời gọi hệ thống được che dấu bởi APIs

Bản chất của ảo hoá là sự mô tả lại hành vi của các giao diện này

Trang 13

12

Hướng tiếp cận ở đây là ảo hoá diễn ra theo cách là cung cấp một tần suất phần cứng có đầy đủ các tập lệnh như một giao diện thật sự Điểm cốt yếu là giao diện này cung cấp đồng thời cho các chương trình khác nhau, kết quả là các hệ điều hành khác nhau có thể chạy độc lập và đồng thời trên cùng một nền tảng (platform)

Ví dụ điển hình của dạng này là VMware, VMware ngày càng đáp ứng tính tin cậy

và bảo mật của các hệ phân tán, chúng cho phép cách ly một ứng dụng hoàn thiện với môi trường của nó, sai sót xảy ra do lỗi hay tấn công về bảo mật sẽ không thể tác động lên toàn bộ hệ thống

Mặc dù tính phức tạp khó tin của chúng, song hệ thống máy tính vẫn tồn tại

và tiếp tục phát triển vì chúng được thiết kế với các giao diện như hệ thống phân cấp có mức độ trừu tượng riêng biệt Khi giao diện được sử dụng, thì sẽ xác định cụ thể điều kiện để phát triển hệ thống con (computer subsystems) độc lập của cả hai nhà thiết kế phần cứng và phần mềm tương đương Các khái niệm về trừu tượng làm đơn giản hóa sự mô tả chi tiết thực hiện ở cấp thấp hơn, do đó làm giảm sự phức tạp của quá trình thiết kế

Hình 1.2(a) cho thấy một ví dụ của sự trừu tượng ảo hoá áp dụng để lưu trữ đĩa Các hệ điều hành trừu tượng hóa chi tiết địa chỉ ổ cứng, ví dụ, rằng nó bao gồm các sector và các track – để các đĩa sẽ xuất hiện với các phần mềm ứng dụng như một bộ các tập tin có kích thước biến đổi Sau đó các lập trình ứng dụng có thể tạo

Trang 14

(b) Ảo hóa: cung cấp giao diện khác nhau hoặc các tài nguyên khác tại cùng một mức độ trừu tượng

Kiến trúc tập lệnh của máy tính (ISA) sẽ minh họa rõ ràng những ưu điểm của các giao diện cụ thể Các giao diện này cho phép phát triển tương tác với hệ thống con của máy tính với các nhà cung cấp và tại các thời điểm khác nhau Ví dụ, Intel và AMD thiết kế phát triển các bộ vi xử lý Intel IA-32 (x86), trong khi các nhà phát triển Microsoft thực hiện biên soạn viết hướng dẫn cài đặt phần mềm đối với các tập lệnh tương tự Bởi vì cả hai nhà phát triển đáp ứng các đặc điểm kỹ thuật của ISA, phần mềm có thể sẽ được thực hiện một cách chính xác trên bất kỳ PC nào được xây dựng với một bộ vi xử lý IA-32

Không may, giao diện được xác định cũng có những hạn chế của chúng Hệ thống con và các thành phần thiết kế chi tiết kỹ thuật cho giao diện đó sẽ không làm việc với những thiết kế khác Ví dụ, chương trình ứng dụng, khi phân phối như

Trang 15

14

những chương trình biên soạn, được gắn với một ISA cụ thể và phụ thuộc vào một giao diện hệ điều hành cụ thể Sự thiếu khả năng tương tác có thể được giới hạn, đặc biệt là trong một thế giới của máy tính nối mạng, nơi đó là thuận lợi để di chuyển các phần mềm tự do cũng như dữ liệu

Ảo hóa cung cấp một cách để nhận biết được các ràng buộc xung quanh nó

Ảo hóa một hệ thống hoặc một thành phần như một bộ xử lý, bộ nhớ, hoặc một thiết

bị I/O, ở một lớp trừu tượng có thể nhìn thấy các giao diện trên các bản đồ giao diện của nó và các tài nguyên ở mức trên và mức dưới giao diện đó, có thể là một hệ thống thực Do đó, hệ thống thực xuất hiện như một hệ thống ảo khác nhau hoặc thậm chí là nhiều hệ thống ảo

Không giống như trừu tượng, ảo hóa không nhất thiết nhằm đơn giản hóa hoặc ẩn thông tin chi tiết Ví dụ, trong hình 1(b), ảo hóa biến đổi một đĩa lớn thành hai đĩa ảo nhỏ hơn, mỗi trong số đó xuất hiện để có các bài hát và các lĩnh vực riêng của mình Ảo hóa sử dụng phần mềm trừu tượng tập tin như một bước trung gian để cung cấp một ánh xạ giữa các ổ đĩa ảo và thực Một đĩa ảo được chuyển thành một tập tin ghi Lưu ý rằng mức độ chi tiết được cung cấp tại các giao diện ổ đĩa ảo các sector / track là không có sự khác nhau cho một đĩa thực

1.2 Giao diện kiến trúc

Một cuộc thảo luận về các máy ảo cũng là một cuộc thảo luận về kiến trúc máy tính theo nghĩa thuần túy của thuật ngữ này Bởi vì việc cài đặt máy ảo (VM) nằm ở giao diện kiến trúc, một trong các công việc chủ yếu để xây dựng một VM chính là độ tin cậy mà nó thực hiện các giao diện này

Kiến trúc, khi áp dụng cho các hệ thống máy tính, ta đề cập đến một đặc điểm kỹ thuật chính của giao diện trong hệ thống, bao gồm các hành động logic của các nguồn tài nguyên được quản lý thông qua giao diện đó Thực hiện mô tả các phương án thực tế của kiến trúc Mức độ trừu tượng tương ứng với các lớp hoạt động, cho dù trong phần cứng hay phần mềm, mỗi cái kết hợp với giao diện hoặc kiến trúc của riêng mình

Trang 16

15

Hình 1.3 cho thấy một số giao diện quan trọng và các lớp hoat động trong một hệ thống máy tính điển hình Ba trong số các giao diện này là tại hoặc gần ranh giới HW/SW - kiến trúc tập lệnh, giao diện nhị phân ứng dụng và giao diện lập trình ứng dụng, đặc biệt quan trọng cho việc xây dựng VM

Hình 1.3 Kiến trúc hệ thống máy tính Các lớp giao tiếp hoạt động chủ yếu theo chiều đứng qua các kiến trúc tập lệnh (ISA), giao diện ứng dụng nhị phân (ABI), và giao diện lập trình ứng dụng (API)[4]

1.3 Kiến trúc tập lệnh

ISA đánh dấu sự phân chia giữa phần cứng và phần mềm, bao gồm các giao diện 3 và 4 trong Hình 1.3 Giao diện 4 đại diện cho người sử dụng ISA và bao gồm những khía cạnh có thể nhìn thấy một chương trình ứng dụng Giao diện 3, hệ thống ISA, là một tập cha của người dùng ISA và bao gồm những khía cạnh chỉ để có thể

Trang 17

16

nhìn thấy phần mềm hệ điều hành chịu trách nhiệm về việc quản lý tài nguyên phần cứng

1.4 Giao diện ứng dụng nhị phân

ABI cho một chương trình truy cập vào các tài nguyên phần cứng và các dịch

vụ có sẵn trong hệ thống thông qua việc sử dụng ISA (giao diện 4) và giao diện hệ thống (giao diện 2) ABI không bao gồm các lệnh hệ thống, thay vào đó, tất cả các chương trình ứng dụng tương tác với các tài nguyên phần cứng gián tiếp bằng cách gọi dịch vụ của hệ điều hành thông qua giao diện hệ thống (system call) Giao diện

hệ thống cung cấp cho hệ điều hành thực hiện các hoạt động trên danh nghĩa của một chương trình sử dụng sau khi xác nhận tính xác thực và an toàn của chúng

1.5 Giao diện lập trình ứng dụng

Các API cho phép các chương trình truy cập vào các tài nguyên phần cứng

và các dịch vụ có sẵn trong hệ thống thông qua việc sử dụng ISA (giao diện 4) bổ sung với ngôn ngữ cấp cao (HLL) trong lời gọi thư viện (giao diện 1- Libraries) Bất kỳ lời gọi nào của hệ thống này thường được thực hiện thông qua các thư viện

Sử dụng một API cho phép các phần mềm ứng dụng được chuyển một cách dễ dàng, thông qua biên dịch lại, với các hệ thống khác có cùng hỗ trợ các API

1.6 Máy ảo tiến trình và Máy ảo hệ thống

Để hiểu một máy ảo là gì, điều đầu tiên đó là cần thiết xem xét ý nghĩa của

"máy" từ cả hai góc độ tiến trình và hệ thống

Từ góc nhìn của một tiến trình khi sử dụng một chương trình, “máy” bao gồm một không gian địa chỉ bộ nhớ logic được gán cho tiến trình cùng với các hướng dẫn người sử dụng cấp và đăng ký cho phép thực thi các mã thuộc vào quá trình này Các máy thiết bị I/O (vào ra) có thể hiển thị thông qua các hệ điều hành,

và cách duy nhất quá trình này có thể tương tác với các hệ thống I/O là thông qua các lời gọi của hệ điều hành Do đó, ABI định nghĩa máy theo cách nhìn của một tiến trình Tương tự như vậy, các API xác định các đặc điểm máy theo cách nhìn của chương trình ứng dụng HLL

Trang 18

17

Từ góc độ các hệ điều hành và các ứng dụng nó hỗ trợ, toàn bộ hệ thống chạy trên một máy tính cơ bản Hệ thống là một môi trường thực thi đầy đủ mà có thể hỗ trợ rất nhiều các tiến trình cùng một lúc Các tiến trình chia sẻ một tập tin hệ thống và các tài nguyên I/O khác Môi trường hệ thống vẫn tiếp diễn theo thời gian khi các tiến trình đến và đi Hệ thống phân phối bộ nhớ thực và các tài nguyên I/O cho các tiến trình và cho phép các tiến trình tương tác với các tài nguyên của chúng

Từ góc nhìn hệ thống, cơ bản đặc điểm phần cứng là xác định máy tính; ISA (kiến trúc tập lệnh) cung cấp giao diện giữa hệ thống và máy

Cũng có nhiều quan điểm về tiến trình và hệ thống của "máy", về máy ảo tiến trình và máy hệ thống Máy ảo tiến trình là một nền tảng ảo mà thực hiện một tiến trình độc lập Đây là loại VM tồn tại chỉ để hỗ trợ tiến trình; nó được tạo khi tiến trình được tạo ra và chấm dứt khi tiến trình này kết thúc Ngược lại, một máy

ảo hệ thống cung cấp đầy đủ, môi trường hệ thống liên tục, có hệ điều hành hỗ trợ cùng với nhiều tiến trình sử dụng Nó cung cấp các hệ điều hành khách có quyền truy cập vào tài nguyên phần cứng ảo, bao gồm mạng, thiết bị I/O, và có thể một giao diện người dùng đồ họa cùng với một bộ xử lý và bộ nhớ

Tiến trình hoặc hệ thống chạy trên một máy ảo như là vị khách, trong khi các nền tảng cơ bản để hỗ trợ các máy ảo là máy chủ Các phần mềm ảo hóa mà thực hiện một tiến trình VM thường được gọi là thời gian chạy Các phần mềm ảo hóa trong một hệ thống máy ảo thường được gọi là màn hình (giao diện) máy ảo (VMM)

Trang 19

18

Hình 1.4 mô tả máy ảo tiến trình và hệ thống, với giao diện tương thích minh họa bằng đồ thị chia lưới để làm ranh giới Trong một máy ảo tiến trình, các phần mềm ảo hóa là tại ABI hoặc API, Hệ điều hành và HW kết hợp Thời gian chạy mô phỏng tập lệnh người sử dụng cung cấp cho hệ điều hành hoặc lời gọi thư viện Trong một hệ thống máy ảo, phần mềm ảo hóa là giữa các phần cứng máy máy chủ

và phần mềm của khách VMM mô phỏng các ISA (kiến trúc tập lệnh) phần cứng

để phần mềm của khách có khả năng thực hiện một ISA khác từ một trong những nhiệm vụ đang thực hiện trên máy chủ Tuy nhiên, trong nhiều ứng dụng máy ảo hệ thống, VMM không thực hiện mô phỏng tập lệnh; đúng hơn, vai trò chính của nó là cung cấp các nguồn tài nguyên phần cứng ảo hóa

Hình 1.4 Máy ảo tiến trình và hệ thống [5]

(a) Trong máy ảo tiến trình, phần mềm ảo hóa tập hợp các hệ điều hành dịch

từ tập lệnh người sử dụng cung cấp từ một trong những nền tảng khác

(b) Trong một máy ảo hệ thống, phần mềm ảo hóa dịch ISA sử dụng bởi một nền tảng phần cứng của người khác

Trang 20

19

Chương 2: NGHIÊN CỨU CHI TIẾT VỀ MÁY ẢO HỆ THỐNG

2.1 Một số khái niệm cơ bản

Trong phần này chúng ta sẽ được giới thiệu về các bộ phận khác nhau của một nền tảng phần cứng, với một cái nhìn để hiểu được cách ảo hóa có thể đạt được

2.1.1 Biểu hiện bên ngoài

Những ý tưởng về máy tính đa nhiệm là một phần quan trọng của máy ảo hệ thống (VM systems) Ý tưởng này có thể được thực hiện hoàn toàn bằng phần mềm hoặc thông qua một bản sao của một tập hợp con của các tài nguyên phần cứng Ví

dụ, có thể có trường hợp các tài nguyên vật lý được sử dụng trực tiếp bởi người dùng cá nhân, cụ thể là bàn phím, màn hình và các thiết bị ngoại vi cá nhân, chẳng hạn như một ổ đĩa CD ROM, được nhân rộng, với một bộ dành riêng cho mỗi người dùng, trong khi phần còn lại của phần cứng được chia sẻ thông qua các phần mềm

ảo hóa

Ngoài ra, khi một người dùng duy nhất muốn chạy hai hệ điều hành trên cùng một phần cứng, không cần nhân rộng bất kỳ các thiết bị vật lý Người sử dụng

có thể được cung cấp một ảo hóa chạy cả hai hệ điều hành cùng một lúc Bằng cách

sử dụng một bộ chuyển mạch phần cứng hay, thông thường hơn, bằng cách nhập vào một dãy phím đặc biệt trên bàn phím, tất cả các thiết bị cá nhân có thể được chuyển từ một máy ảo khác đến

Trong một số môi trường máy ảo hệ thống, hệ điều hành có thể được coi là một trong những chức năng quan trọng hơn so với những cái khác Giao diện của người dùng đầu tiên sẽ cung cấp một cửa sổ hiển thị giao diện đầy đủ của người dùng thứ hai, tương tác với các ứng dụng chạy trên hệ điều hành thứ hai diễn ra trong cửa sổ này Trong một máy ảo được lưu trữ, ví dụ, nếu các hệ điều hành máy chủ là Windows, một cửa sổ đồ họa có thể được thiết lập trên giao diện máy tính để bàn tương tác với một máy ảo trên cùng một nền tảng Giải pháp này cũng tương tự như cửa sổ DOS có thể được đưa lên trong giao diện desktop của Windows để chạy các ứng dụng DOS cũ

Trang 21

20

2.1.2 Quản lý các trạng thái

Các trạng thái kiến trúc của một máy tính được chứa trong và duy trì bởi các tài nguyên phần cứng của máy Trên khía cạnh hiệu suất (thực hiện), tất cả các tài nguyên phần cứng là không tương đương Thường có một hệ thống phân cấp kiến trúc của các tài nguyên phần cứng, từ đăng ký ở mức trên cùng của hệ thống phân cấp đến các bộ lưu trữ thứ cấp (ví dụ như các ổ đĩa) vào cuối cùng của hệ thống phân cấp Trong một máy ảo hệ thống, mỗi máy ảo có thông tin trạng thái kiến trúc riêng của mình và có thể có hoặc có thể không có đủ tài nguyên trong một nền tảng phần cứng máy chủ để ánh xạ mỗi phần tử của một trạng thái máy khách đến cấp độ gốc của nó trong hệ thống phân cấp bộ nhớ của máy chủ Ví dụ, một trạng thái đăng

ký máy khách thực sự có thể được tổ chức trong bộ nhớ chính của các nền tảng máy chủ như là một phần của một khối đăng ký chung

Trong hoạt động bình thường, định kỳ các VMM (giao diện máy ảo) chuyển mạch kiểm soát giữa các máy ảo khách Không phân biệt nơi mà các trạng thái đang diễn ra các hoạt động thực sự về tình trạng của máy ảo khách đang được thực hiện, việc duy trì các trạng thái trên các máy chủ sẽ được điều chỉnh vì các trạng thái đó

là trên nền tảng cơ bản của máy khách Có hai cách cơ bản để quản lý tình trạng của khách

Một cách là sử dụng một mức gián tiếp, bằng cách tổ chức trạng thái cho mỗi máy khách tại các địa điểm cố định trong hệ thống phân cấp bộ nhớ của máy chủ với một màn hình VMM quản lý con trỏ chỉ ra trạng thái của máy khách đang hoạt động Khi VMM chuyển mạch giữa các hệ thống của máy khách, nó thay đổi con trỏ để phù hợp với sự hiện hành của máy khách Điều này được minh họa trong hình 2.1, nơi con trỏ thực sự chỉ đến khối đăng ký của máy ảo khách đang hoạt động Điều này tương tự với tình trạng trong hệ thống bộ nhớ ảo, nơi bảng con trỏ được sử dụng bởi hệ điều hành để trỏ đến các không gian địa chỉ của tiến trình đang hoạt động

Cách tiếp cận của việc sử dụng gián tiếp có thể tương đối không hiệu quả nếu các tài nguyên bộ nhớ mà giữ trạng thái trong các máy ảo khách (VM) có đặc điểm

Trang 22

21

khác biệt so với những cái trên nền tảng gốc (cơ bản), như trong ví dụ của hình 2.1, nơi mà trạng thái đăng ký thực sự là được tổ chức trong bộ nhớ Trong trường hợp như vậy, để thực hiện một hoạt động sao chép từ một đăng ký ở máy ảo 2 đến một đăng ký B ở cùng máy ảo, VMM sẽ phải thực hiện một bản sao bộ nhớ - tới - bộ nhớ bằng cách tải các giá trị trong vị trí bộ nhớ đại diện đăng ký A vào một số đăng

ký tạm thời và sau đó lưu trữ các giá trị trong vị trí bộ nhớ tương ứng để đăng ký B Bản sao này có hai lệnh truy cập bộ nhớ và có thể đưa ra thêm câu lệnh nếu một địa chỉ đăng ký được nạp với một vị trí con trỏ đến các tập tin đăng ký trong bộ nhớ

Hình 2.1: Các phương pháp duy trì trạng thái ảo minh họa cho một File đăng ký (a) Sử dụng gián tiếp, (b) Bằng sao chép Hộp ở bên phải chỉ ra các hành

Trang 23

22

động thực hiện khi kích hoạt một máy ảo và sao chép một giá trị đăng ký Trong trường hợp đầu tiên, giá trị tương ứng với một thanh ghi được nạp từ một bảng trong bộ nhớ và sao chép lại cho một vị trí trong bảng Trong trường hợp thứ hai, các thanh ghi được sử dụng trực tiếp để thực hiện việc di chuyển [6]

Để tránh việc thiếu hiệu quả này, một cách tiếp cận thứ hai cho việc quản lý trạng thái của máy khách là sao chép thông tin trạng thái của một máy khách ở mức

độ nguyên sơ (ban đầu) của nó trong hệ thống phân cấp bộ nhớ, bất cứ khi nào nó được kích hoạt bởi các VMM và sao chép nó trở lại khi các máy khách khác nhau được kích hoạt Ví dụ, trong hình 2.1.b, VMM bản sao toàn bộ các nội dung đăng

ký của khách vào tập tin đăng ký của máy chủ lúc máy ảo 2 được kích hoạt bởi các VMM (sau khi lưu sổ đăng ký của máy khách trước) Với phương pháp này, các hoạt động di chuyển một giá trị từ đăng ký A đến đăng ký B được thực hiện bằng cách trực tiếp thực hiện một lệnh di chuyển đăng ký ban đầu Trong nhiều hệ thống cài đặt VM, mục tiêu là để thực thi mã của máy khách nguyên bản (nghĩa là không

có mô phỏng) trên các nền tảng máy chủ Vì vậy, trong ví dụ trên, sau thời gian đầu của việc chuyển đổi ra các đăng ký máy ảo cũ và chuyển đổi trong việc đăng ký của máy ảo 2, có thể tiến hành thực hiện ở mức tương tự như trên một máy khách chạy

mô phỏng

Sự lựa chọn giữa gián tiếp và sao chép tùy thuộc vào tần suất sử dụng và cho

dù trạng thái của máy khách được quản lý bởi VMM là chiếm giữ một cách khác nhiều hơn các tài nguyên phần cứng so với trên nền tảng ban đầu Để biết thông tin trạng thái thường xuyên được sử dụng, chẳng hạn như việc đăng ký mục đích chung, để trao đổi các trạng thái của máy ảo, để các tài nguyên thực sự tương ứng mỗi khi máy ảo được kích hoạt

2.1.3 Kiểm soát tài nguyên

Trong một môi trường máy ảo hệ thống, tài nguyên phần cứng, bao gồm tài nguyên bộ vi xử lý, được gán cho một máy ảo tại thời điểm nó được tạo ra theo thông số kỹ thuật cấu hình Một khi các tài nguyên được trao cho một máy ảo khách, điều quan trọng là phải có một cách cho VMM nhận được chúng trở lại để

Trang 24

23

chúng có thể được gán cho một máy ảo khác Như vậy, VMM phải duy trì kiểm soát tổng thể của tất cả các tài nguyên phần cứng, mặc dù chúng đang tạm thời được sử dụng bởi các máy ảo khách đang chạy Phần này xem xét các cách thức mà điều này

có thể đạt được

Lưu ý, đầu tiên là một vấn đề tương tự phát sinh trong trường hợp thời gian quy ước hệ thống chia sẻ nhiều công việc được đồng thời thực thi trên máy, với mỗi công việc có thể truy cập tức thì vào tài nguyên của mình tại bất kỳ thời gian nhất định nào Tuy nhiên, có một số tài nguyên trong máy mà không thể truy cập trực tiếp đến các ứng dụng người dùng có thể truy cập, nhưng chỉ cho hệ điều hành Một tài nguyên như vậy là khoảng thời gian đếm, trong đó, sau khi được nạp với một giá trị của các hệ điều hành, đếm ngược đồng hồ và kích hoạt một ngắt khi giá trị nó giữ trở thành số không Trước khi truyền cho điều khiển một tiến trình sử dụng, hệ điều hành khởi tạo bộ đếm thời gian với thời gian tối đa thời gian nó sẽ cho phép tiến trình sử dụng để chạy Các bộ đếm thời gian sẽ đảm bảo việc kiểm soát được việc chuyển giao lại cho các hệ điều hành trong khoảng thời gian tối đa gián đoạn sau đó Như vậy, các hệ điều hành sử dụng bộ đếm thời gian để giữ quyền kiểm soát của các bộ vi xử lý bằng cách đảm bảo rằng không có ứng dụng người dùng có thể chạy trong một thời gian nhất định Vì các hệ điều hành có quyền kiểm soát các bộ

vi xử lý, nên nó có thể kiểm soát tất cả các tài nguyên khác

Tình trạng này cũng tương tự như trong môi trường máy ảo hệ thống Ở đây, vấn đề chính là thời gian chia sẻ tài nguyên giữa các máy ảo Chúng ta sẽ thấy trong phần 2.2.1 rằng một cách thuận tiện để cung cấp các VMM với sự kiểm soát tổng thể là cho VMM chặn tất cả các truy cập đến cái gọi là tài nguyên đặc quyền, chẳng hạn như bộ đếm thời gian Vì vậy, các tài nguyên đặc quyền không được sử dụng trực tiếp bởi các máy ảo riêng biệt - đúng hơn là VMM mô phỏng các hoạt động của các tài nguyên ở tất cả các thời gian Thay vì cho phép hệ điều hành trong một máy

ảo với trường bộ đếm thời gian gián đoạn, ví dụ, các VMM đầu tiên xử lý các ngắt của chính nó Việc xử lý bao gồm đối với cả các mã ngắt bộ đếm thời gian dành cho trạng thái của máy ảo khách hiện tại, xác định các máy ảo tiếp theo được kích hoạt,

Trang 25

24

và tải (load) trạng thái cho các máy ảo tiếp theo sẽ được chạy Việc hoàn thành này, như đã đề cập trước đó, bằng cách thay đổi con trỏ, bằng cách sao chép trạng thái thành tài nguyên phần cứng, hoặc bằng cả hai cách làm Hình 2.2 - mô tả lịch trình các hoạt động thực hiện bởi VMM

Hình 2.2- Hoạt động chụp bởi VMM trong một Virtual Machine nghỉ và kích hoạt máy ảo tiếp theo [7]

Có thể có thêm cơ hội cho các VMM để có được quyền kiểm soát hệ thống khác thông qua ngắt đếm khoảng thời gian Ví dụ, từ các lệnh đặc quyền gặp phải trong chế độ người dùng, như đã nói, bị chặn và mô phỏng bởi các VMM, VMM tăng kiểm soát bất cứ khi nào các lệnh đặc quyền của hệ điều hành máy khách (cơ chế để làm như vậy được mô tả trong mục 2.2)

Một hệ thống công bằng trong phân bổ tài nguyên phần cứng cho các máy ảo

là một trong các máy ảo có được quyền sở hữu của tài nguyên trong lần lượt một lượng khoảng thời gian bằng nhau Vấn đề ở đây là tương tự như các vấn đề phát sinh trong hệ điều hành multiprogrammed (đa chương trình) Nếu thời gian phân bổ cho mỗi máy ảo là lớn, có khả năng rằng các tài nguyên không sử dụng một cách tối

ưu Mặt khác, nếu thời gian phân bổ là nhỏ, các phí phát sinh trong chuyển đổi giữa các máy ảo bắt đầu suy giảm hiệu suất

Để một chương trình làm việc, hệ điều hành máy khách trên một máy ảo phải

bị từ chối truy cập trực tiếp đến các thiết bị đếm khoảng thời gian để nó không thể sắp xếp lại bộ đếm thời gian gián đoạn tiếp theo Hơn nữa, để thực hiện hoạt động theo một máy ảo hoàn toàn rõ ràng, hệ điều hành khách nên không được phép đọc các giá trị bộ đếm thời gian thực được thiết lập bởi VMM (Sự minh bạch này là cần

Trang 26

25

thiết để ngăn chặn các hệ điều hành tự hành xử một cách khác nhau khi chạy theo một VMM nó phải chịu trên một máy thật) Tuy nhiên, như chúng ta sẽ thấy sau này trong các chương, các VMM có thể cung cấp những máy khách với một mô phỏng đếm khoảng thời gian ảo

VMM mô phỏng chặt chẽ khoảng thời giờ tiềm năng của khách có thể dẫn đến một số người sử dụng mã để chạy quá lâu trong một thời gian, tuy nhiên, thiếu các máy ảo khác từ việc sử dụng các tài nguyên phần cứng Do đó, các VMM phải kiểm tra tất cả các thiết lập của khách trong giờ gián đoạn và ghi đè lên các giá trị yêu cầu nếu nó có khả năng là không công bằng cho các máy ảo khác có thể được chạy trên hệ thống Đây là một ví dụ nơi mô phỏng của các tài nguyên đặc quyền được thực hiện bởi các VMM nhằm hoạt động hiệu quả và công bằng của toàn bộ

hệ thống máy ảo hơn là để thực hiện một cá nhân máy khách

2.1.4 Nguồn gốc và tổ chức máy ảo

Hình 2.3- Nguồn gốc và tổ chức máy ảo hệ thống (a) Các hệ điều hành của một bộ xử lý đơn truyền thống thực hiện trong chế độ đặc quyền (b) Trong một máy

ảo hệ thống ban đầu (gốc), các VMM hoạt động ở chế độ đặc quyền (c, d) Một hệ điều hành máy chủ đáng tin cậy thực hiện trong chế độ đặc quyền trong một tổ chức máy ảo hệ thống Trong cả hai hệ thống, hệ điều hành khách nằm trong các máy ảo

và hoạt động ở một mức độ ít đặc quyền VMM của một tổ chức hệ thống có thể làm việc hoàn toàn trong chế độ người dùng (c) hoặc ở chế độ kép (d) khi các bộ phận

Trang 27

26

Rõ ràng bây giờ VMM là thành phần quan trọng trong bất kỳ môi trường hệ thống máy ảo nào VMM có trách nhiệm lập kế hoạch và quản lý việc phân bổ các nguồn tài nguyên phần cứng cho các máy ảo khác nhau Do đó nó cũng là các điểm kiểm soát đối với các tài nguyên dùng chung trong hệ thống Những tài nguyên này bao gồm các thanh ghi trong CPU, bộ nhớ thực sự trong hệ thống và các thiết bị I/O khác nhau gắn liền với hệ thống Để hệ thống hoạt động có hiệu quả, do đó, ít nhất

là một phần của việc VMM thực hiện nên có đặc quyền cao hơn so với thực tế đặc quyền của các máy ảo khách mà nó hỗ trợ

Như đã chỉ ra trước, mối quan hệ giữa các VMM và máy ảo là tương tự như mối quan hệ giữa hệ điều hành và chương trình ứng dụng trong một thời gian quy ước - chia sẻ hệ thống Sau này, các hệ điều hành thường hoạt động ở một mức độ đặc quyền cao hơn so với các ứng dụng, ví dụ, trong chế độ hệ thống so với chế độ người dùng, như thể hiện trong hình 2.3(a) Một hệ thống máy ảo mà trong đó VMM hoạt động trong một chế độ đặc quyền cao hơn chế độ của các máy ảo khách được gọi là một hệ thống máy ảo gốc Trong một VM gốc, các VMM là phần mềm duy nhất, được thực hiện ở các cấp có quyền cao nhất được xác định bởi các kiến trúc hệ thống, như mô tả trong hình 2.3(b) Về mặt khái niệm, các VMM lần đầu tiên được cài đặt trên các phần cứng mới và các hệ điều hành khách, sau đó được cài đặt trên đầu trang của VMM Các hệ điều hành khách và các ứng dụng ít đặc quyền khác chạy ở mức ưu đãi thấp hơn so với các VMM Điều này thường có nghĩa là mức độ đặc quyền của hệ điều hành khách được mô phỏng bởi VMM Hệ thống gốc của máy ảo đã được sử dụng và nghiên cứu rộng rãi và được thảo luận chi tiết trong phần sau

Để thuận tiện cho người sử dụng và thực hiện đơn giản để cài đặt một hệ thống máy ảo trên một nền tảng máy chủ đã chạy một hệ điều hành hiện có Một hệ thống như vậy được gọi là một tổ chức hệ thống VM (trong trường hợp này các máy chủ hạn đề cập đến các hệ điều hành nằm bên dưới) Trong một tổ chức hệ thống máy ảo, các VMM sử dụng các chức năng đã có sẵn trên hệ điều hành máy chủ để kiểm soát và quản lý các nguồn tài nguyên mong muốn của mỗi máy ảo Sửa đổi

Trang 28

27

một hệ điều hành độc quyền thương mại thường là không thể, hoặc là bởi vì mã nguồn là không có hoặc vì các thỏa thuận cấp phép Trong những trường hợp này, các VMM có thể được thực hiện ở cấp độ người dùng, một mức độ đặc quyền dưới đây là của các hệ điều hành máy chủ, như trong hình 2.3(c) Một hệ thống như vậy thường được gọi là một người sử dụng - Chế độ tổ chức hệ thống VM Đối với lý

do hiệu quả, đó là mong muốn có ít nhất một phần của công việc VMM trong chế

độ đặc quyền nhất Điều này thường có thể đạt được bằng cách thay đổi các hệ điều hành máy chủ thông qua cơ chế thường được cung cấp để mở rộng chức năng của một hệ điều hành, chẳng hạn như mở rộng kênh hoặc trình điều khiển thiết bị Một

hệ thống như vậy mà có các bộ phận của VMM hoạt động trong một chế độ đặc quyền và các bộ phận khác trong chế độ không dặc quyền, như mô tả trong hình 2.3(d), được gọi là chế độ kép tổ chức hệ thống VM

2.2 Ảo hóa tài nguyên của Vi xử lý

Các khía cạnh quan trọng của việc ảo hóa một bộ xử lý nằm trong việc thực hiện các lệnh của máy khách, bao gồm cả mức độ hệ thống và cấp độ các lệnh người dùng Hai cách này có thể được thực hiện, đầu tiên là thông qua mô phỏng

Mô phỏng có thể được thực hiện thông qua một trong hai cách diễn giải hoặc dịch nhị phân Mô phỏng liên quan đến việc kiểm tra lần lượt mỗi lệnh của máy khách, hoặc nhiều lần khi diễn giải hoặc một lần khi thực hiện dịch nhị phân, và mô phỏng các nguồn tài nguyên được ảo hóa các hoạt động chính xác mà có thể đã được thực hiện trên tài nguyên thực Mô phỏng là cơ chế xử lý ảo hóa chỉ có sẵn khi ISA của máy khách là khác nhau từ các ISA của máy chủ Như chúng ta thấy hiện nay, một quá trình mô phỏng giống như có thể cần thiết tại thời điểm ngay cả khi hai ISA là giống hệt nhau Tình huống như vậy xảy ra khi các lệnh tương tác với các tài nguyên phần cứng cần phải hoạt động khác nhau trên một bộ xử lý ảo hóa hơn trên một bộ xử lý thực sự

Phương pháp xử lý ảo hóa thứ hai là thực hiện trực tiếp vào nguồn gốc của kiến trúc máy chủ Phương pháp này chỉ có thể có nếu ISA của chủ nhà là giống với ISA của khách, nó là luôn luôn có thể xây dựng một máy ảo bằng cách sử dụng mô

Trang 29

28

phỏng Tuy nhiên, ngay cả với kỹ thuật tinh vi như dịch nhị phân, hiệu suất của một chương trình trên máy ảo sẽ hiếm khi được tốt như hiệu quả của nó trên phần cứng ban đầu (gốc) Do đó, mục tiêu thiết kế cơ bản cho hệ thống máy ảo với máy chủ và máy ISA giống hệt nhau là một phần đáng kể của các lệnh thực hiện trực tiếp trên phần cứng gốc Nếu đây là có thể, một chương trình sẽ chạy thường xuyên trên một máy ảo vào khoảng cùng một tốc độ như trên phần cứng gốc, trừ khi bộ nhớ hoặc I/O hạn chế tài nguyên Chi phí của bất kỳ tập lệnh mô phỏng còn lại phụ thuộc vào nhiều yếu tố, bao gồm cả thực tế số các lệnh phải được mô phỏng, sự phức tạp của việc giải mã các lệnh, và các cấu trúc dữ liệu cùng thuật toán được sử dụng để mô phỏng

2.2.1 Điều kiện để ảo hóa ISA

Máy tính ảo được mô phỏng như 4 thành phần (tuple), S - <E, M, P, R>, trong đó E dùng để tổ chức thực thi, M đề cập đến các phương thức hoạt động, P là chương trình truy cập và R là việc di chuyển giới hạn đăng ký bộ nhớ Bộ nhớ của máy được giả định là nằm liên tục trong bộ nhớ vật lý từ các vị trí nhất định trong giới hạn di chuyển đăng ký R Cái di chuyển giới hạn đăng ký, như tên gọi của nó,

là một cặp cho biết vị trí vật lý và kích thước của không gian bộ nhớ ảo Việc mở rộng các hệ thống bộ nhớ ảo phân trang hoặc phân đoạn là đơn giản Một cái bẫy bộ nhớ xảy ra nếu các địa chỉ truy cập bởi một chương trình nằm ngoài giới hạn chỉ bởi

R Cái bẫy lưu trạng thái hiện tại của máy, được đại diện bởi M, P, R và ở vị trí 0 và các bản sao nội dung của vị trí 0 của một tiến trình khác vào M, P, R Điều này cơ bản là hiệu quả của việc thực hiện chuyển ngữ cảnh Một lệnh đặc quyền được định nghĩa là một bẫy nếu máy đang ở chế độ người dùng và không làm cái bẫy nếu máy đang ở chế độ hệ thống

Các chức năng của VMM có thể được chia thành ba phần: điều phối, cấp phát và một tập hợp các thủ tục thông dịch Những thành phần của VMM được mô

tả trong hình 2.4 Các điều phối là các module điều khiển cấp cao nhất của VMM,

mà quyết định các mô-đun tiếp theo được gọi; nó được gọi bởi các xử lý ngắt khi bẫy phần cứng Các quyết định cách cấp phát tài nguyên hệ thống đang được giao,

Trang 30

29

ví dụ, làm thế nào để phân bổ tài nguyên bộ nhớ một cách không mâu thuẫn nhau Việc cấp phát được viện dẫn bởi điều phối bất cứ khi nào có nhu cầu thay đổi tài nguyên của máy kết hợp với một số máy ảo

Chúng ta sẽ thấy, trong một cấu trúc VMM tốt, bất kỳ cấu trúc nào mà cố gắng để thay đổi phân định tài nguyên hoặc có hành vi bị ảnh hưởng bởi sự phân bổ tài nguyên sẽ đặt bẫy này cho VMM điều phối Các lệnh đánh bẫy mà cố gắng để thay đổi phân định tài nguyên sau đó được chỉ dẫn bởi “người” điều phối để cấp phát Các điều phối chỉ dẫn tất cả các bẫy còn lại các thủ tục thông dịch viên Các thủ tục thông dịch viên, một trong những đặc quyền theo chỉ dẫn, mô phỏng với các hiệu ứng của các chỉ dẫn khi hoạt động trên nguồn tài nguyên ảo Sau khi kết thúc một phiên dịch thường lệ, điều khiển được chuyển lại cho máy ảo khác từ chỉ thị trực tiếp ngay sau trường hợp cài bẫy

Một giao diện máy ảo tiềm năng phải đáp ứng ba đặc tính trước khi đủ điều kiện là một giao diện máy ảo thật: hiệu quả, kiểm soát tài nguyên và sự tương thích Hiệu quả có nghĩa rằng tất cả các cấu trúc không ảnh hưởng phải được thực hiện

Trang 31

30

hữu trên phần cứng, không có sự can thiệp hoặc mô phỏng của VMM Kiểm soát tài nguyên có nghĩa là nó không cho phần mềm của máy khách trực tiếp thay đổi cấu hình của bất kỳ tài nguyên hệ thống hiện có, ví dụ, bộ nhớ thực Việc cấp phát phải được gọi nếu phần mềm của máy khách có yêu cầu như vậy Tương thích hàm ý rằng bất kỳ chương trình thực hiện trên một máy ảo phải cư xử theo một cách giống hệt như cách nó sẽ cư xử khi chạy trực tiếp trên phần cứng có nguồn gốc, chỉ với một vài trường hợp ngoại lệ Các trường hợp ngoại lệ cho phép là (1) hiệu suất có thể chậm hơn do sự mô phỏng của các cấu trúc nhất định, (2) có thể có một giới hạn

về mức độ tài nguyên sẵn có, ví dụ, không gian đĩa, vì sự chia sẻ giữa ảo máy móc,

và (3) có thể có sự khác biệt trong thực hiện do các mối quan hệ thời gian thay đổi,

ví dụ, giữa các I / O và bộ vi xử lý

Ở đây, ta cần lưu ý rằng công thức này của một VMM có phần mâu thuẫn với định nghĩa chung và các nghĩa được sử dụng ở những tài liệu khác Đó là rõ ràng rằng việc kiểm soát tài nguyên và thuộc tính tương đương nên giữ cho một VMM Hơn nữa, nó phải luôn luôn có thể xây dựng một VMM với những thuộc tính riêng, tuy nhiên không hiệu quả bằng cách sử dụng kỹ thuật mô phỏng bất cứ khi nào cần thiết Trong thực tế, nó là hai thuộc tính mà thường giả định khi định nghĩa một VMM Một công thức thay thế sẽ xác định một VMM có các tính chất của việc kiểm soát tài nguyên và tính tương thích và sau đó là xác định một VMM hiệu quả

VMM diễn giải một cấu trúc nhạy cảm theo tình trạng hiện hành của tài nguyên máy ảo hệ thống và các trạng thái của nó Lấy ví dụ, cấu trúc nhạy cảm LPSW (Load the processor status word), lệnh này nạp vi xử lý từ trạng thái (PSW) với một doubleword từ một vị trí trong bộ nhớ nếu bộ xử lý là trong chế độ hệ thống

và SPT (Set CPU Timer), lệnh này thay thế các nội dung bộ đếm thời gian CPU với một vị trí trong bộ nhớ nếu CPU trong chế độ hệ thống và nó không phải là bẫy Giả

sử rằng một trường hợp đặc biệt của một cấu trúc LPSW có hiệu quả thuần từ một trạng thái đặc quyền sang trạng thái khác với cùng một tập hợp các đặc quyền Các LPSW thông dịch thường xuyên trong VMM xác định rằng việc chuyển đổi đặc biệt

Trang 32

Hình 2.5 Xử lý một lệnh đặc quyền trong một hệ điều hành máy khách Các cấu trúc đặc quyền gây ra một cái bẫy vì thế các hệ điều hành khách được vận hành trong chế độ người dùng Những cái bẫy tiếp cho người nhận trong VMM, từ nơi nó

Mặt khác, nếu chỉ lệnh LPSW đã được thực hiện bởi một người dùng ứng dụng chạy trên máy ảo, xử lý bẫy sẽ tạo ra một cái bẫy ảo sau đó được chuyển tới các máy ảo Các hệ điều hành máy khách xử lý cái bẫy này chính xác giống như một máy gốc để thực hiện một lệnh đặc quyền trong chế độ người dùng

Trang 33

32

Khi giải thích các cấu trúc SPT, VMM kiểm tra các nội dung của các vị trí được nạp vào bộ đếm thời gian CPU Nó sẽ cho phép giá trị này phải được nạp, nếu giá trị (say, t) là ít hơn so với thời gian còn lại kể từ thời điểm được giao cho chính máy ảo (t <T) Nếu không nó sẽ tải các bộ đếm thời gian với thời gian còn lại cho các máy ảo (T) Trong khi đó, nó giữ thời gian khác nhau (t - T) trong một bảng nội

bộ để thời gian này có thể được khôi phục khi máy ảo khách một lần nữa kích hoạt Theo cách này, các VMM đảm bảo rằng nó luôn luôn vẫn là trong kiểm soát, thậm chí trong sự hiện diện của những nỗ lực của một số máy ảo để độc chiếm tài nguyên

hệ thống Nếu hệ điều hành máy khách cố gắng để đọc các giá trị bộ đếm thời gian, các VMM sẽ tái tạo lại các giá trị bộ đếm thời gian ảo chính xác và gửi lại cho máy khách

2.2.2 Sự tái lập quá trình ảo hóa

Đôi khi đây chỉ có thể được mong muốn để chạy một hệ thống máy ảo như là một trong các máy ảo Điều này ngụ ý rằng các VMM chính nó sẽ được chạy trong chế độ người dùng dưới sự kiểm soát của một bản sao chính nó đang chạy trong chế

độ đặc quyền Các khái niệm về hệ thống máy ảo chạy trên một bản sao của chính

nó được gọi là ảo hóa đệ quy (Hình 2.6)

Hình 2.6- Sự tái lập quá trình ảo hóa [11]

Trang 34

33

Có hai tác động thường hạn chế khả năng tạo ra một hệ thống ảo hóa đệ quy hiệu quả Đầu tiên, nếu VMM chính nó đã bị phụ thuộc thời gian, sau đó hiệu suất của nó có thể bị ảnh hưởng xấu khi nó chạy trong chế độ người dùng trong một máy

ảo Vì vậy, một yêu cầu mạnh mẽ đối với một hệ thống ảo hóa đệ quy là một VMM không cần bất kỳ sự phụ thuộc thời gian đã được xây dựng cho hệ thống

Tác động thứ hai xuất phát từ thực tế là mỗi lớp VMM sử dụng hết tài nguyên của mình, đặc biệt là tài nguyên bộ nhớ hệ thống cần thiết để giữ cho trạng thái của các máy ảo khác nhau chạy trên hệ thống Nếu ảo hóa đệ quy được thực hiện nhiều lần, sau đó các tài nguyên tiếp tục bị thu hẹp đến một điểm còn lại ít để cấp phát cho các máy ảo Kết quả là số lượng các chương trình chạy với hiệu ứng giống hệt nhau trên máy thật và ảo giảm xuống khi số lượng các mức độ

ảo hóa tăng

Không những là một vấn đề, trong thực tế, hiếm khi nào số lượng yêu cầu của cấp độ ảo hóa vượt qua hai Ở cấp độ này của đệ quy, vẫn còn chứa các chi phí; hơn nữa, người sử dụng thường là sẵn sàng chấp nhận sự sụt giảm hiệu suất từ ảo hóa đệ quy

2.2.3 Vá lỗi của các lệnh quan trọng

Như đã nói trước, các vấn đề về phát hiện các câu lệnh quan trọng có rất nhiều điểm chung với các điểm chung của biên dịch nhị phân động Ý tưởng cơ bản trong cả hai trường hợp là đến vị trí xác định các phần của mã thuộc về nó để được thực thi và thực hiện các biến đổi trên chúng Một khác biệt chính là ở dịch nhị phân, cả hai mã mục tiêu và thời gian chạy thực thi trong chế độ người dùng và do

đó việc chuyển đổi giữa chúng có thể được thực hiện thông qua một bước nhảy Trong bối cảnh máy ảo có một sự thay đổi thực tế của chế độ đặc quyền, nghĩa là nhảy vào thời gian chạy được thay thế bằng các cuộc gọi hệ thống (bẫy) đến VMM

Một cách để khám phá câu lệnh quan trọng là cho VMM mất quyền kiểm soát ở phần đầu của mỗi khối cơ bản máy khách và lệnh quét theo thứ tự cho đến khi kết thúc của khối cơ bản là đã tìm kiếm được Nếu một lệnh quan trọng được tìm thấy trong quá trình quét này, nó được thay thế bằng một cái bẫy (hệ thống gọi)

Trang 35

34

đến các VMM, và các lệnh quan trọng tại các vị trí được lưu trong một bảng phụ VMM, cùng với địa chỉ ban đầu của nó Một cái bẫy lại cho VMM được đặt ở cuối của khối cơ bản để cho phép các VMM đến giành lại quyền kiểm soát khi khối này hoàn thành việc thực hiện để nó có thể quét và vá các khối cơ bản tiếp theo sẽ được thực thi Nếu các khối tiếp theo đã được vá, VMM chỉ đơn giản là nhảy vào khối tiếp theo Phương pháp này đảm bảo rằng tất cả các khối cơ bản được đắp vá đầu tiên

Để giảm chi phí, các bẫy ở cuối của một khối cơ bản quét có thể được thay thế bởi các chi nhánh ban đầu hoặc lệnh nhảy sau khi tất cả các khối cơ bản đã được vá; điều này là tương tự như chuỗi các khối cơ bản trong một bộ nhớ cache code (Mục 2.7.1) Ví dụ, nếu các khối cơ bản kết thúc với một chi nhánh có điều kiện đã được thay thế bằng một cái bẫy, các khối cơ bản nằm ở cả hai thực hiện và bỏ qua địa chỉ đầu tiên có thể được quét qua đến khi gặp phải cái bẫy Sau khi vá bất kỳ lệnh quan trọng chứa trong các khối chứa, những cái bẫy được thay thế bằng các chi nhánh có điều kiện ban đầu Kỹ thuật này tương đối đơn giản với các chi nhánh trực tiếp, tức là, các chi nhánh trực tiếp có một mục tiêu cụ thể như một lên hệ mật thiết

bù đắp cho các địa chỉ của lệnh chi nhánh chính nó Đối với việc nhảy và chi nhánh nơi địa chỉ đích được đặt trong một thanh ghi gián tiếp, những cái bẫy thông thường không thể thay thế, do những khó khăn trong việc dự đoán tất cả các địa chỉ đích có thể

Để tiếp tục giảm chi phí, thay vì quét khối cơ bản duy nhất tại một thời gian, các VMM có thể quét qua tất cả các chi nhánh đó, cho phép tính toán mục tiêu Do

đó đối với một chi nhánh có điều kiện, cũng như những phần nhánh được chụp theo sau trong quá trình quét ban đầu và quá trình này được lặp đi lặp lại cho đến khi một lệnh điều khiển chuyển gặp phải mà nó không thể xác định được tất cả các mục tiêu Để tránh phân trang bộ nhớ gây ra bằng cách quét các đường dẫn có thể không

sử dụng, quá trình quét sẽ được giới hạn ở những trang mã đã có trong bộ nhớ vật

Trang 36

bộ nhớ đệm mã trong quá trình kết nối với máy ảo

Lý tưởng nhất, mã bộ nhớ đệm được thực hiện trên một khối lệnh xung quanh các lệnh nhạy cảm, vì các khối lớn hơn cho mình “vay” là tốt hơn để tối ưu hóa Ngược lại với những gì đã thể hiện trong phần 2.2.2, một cái bẫy gọi hệ thống

có thể được chèn vào một lệnh sớm hơn so với các lệnh quan trọng Như mô tả trong hình 2.7, nguyên nhân bẫy để kiểm soát được chuyển giao cho các VMM, sau

đó đặt các mã mô phỏng lưu trữ thông qua một bảng tra cứu bằng cách sử dụng địa chỉ của lệnh bẫy đang lưu trữ này là một mô phỏng của toàn bộ mã một khối ban đầu, bao gồm các lệnh quan trọng và do đó là cụ thể cho các vị trí của các lệnh bẫy

Trang 37

mà loại bỏ một phần đáng kể của các chi phí

Ngược lại để xử lý các máy ảo, quản lý bộ nhớ cache của mã này là hơi đơn giản, bởi vì mã trong bộ nhớ cache được thực hiện sau khi bẫy, khi máy đã ở chế độ

hệ thống Mã người sử dụng có thể không bao giờ bị hỏng hoặc đọc nội dung của

mã bộ nhớ cache, do đó luôn được bảo vệ từ các ứng dụng người dùng Mặt khác, quy tắc tự sửa đổi vẫn còn là một vấn đề và các cơ chế cần thiết để ngăn chặn các thay đổi của mã ban đầu thay đổi đó có thể đòi hỏi sự vô hiệu các bộ phận của mã

bộ nhớ cache

2.3 Ảo hóa tài nguyên của bộ nhớ

2.3.1 Hỗ trợ bộ nhớ ảo trong một môi trường máy ảo hệ thống

Trong môi trường máy ảo hệ thống, mỗi máy ảo khách đã thiết lập riêng của mình các bảng bộ nhớ ảo Địa chỉ dịch trong mỗi máy ảo khách chuyển địa chỉ trong không gian địa chỉ ảo của nó đến các địa điểm trong bộ nhớ thực, bộ nhớ thực này sẽ tương ứng với bộ nhớ vật lý trên một nền tảng gốc Thay vào đó, trong một môi trường máy ảo hệ thống, địa chỉ bộ nhớ thực của máy khách phải trải qua thêm một bản đồ để xác định địa chỉ trong bộ nhớ vật lý của phần cứng máy chủ Lưu ý rằng ở đây chúng ta đang vẽ một sự phân biệt rõ ràng giữa các bộ nhớ thực và bộ nhớ vật lý, từ ngữ thường được sử dụng thay thế cho nhau trong những bối cảnh khác Bộ nhớ vật lý là bộ nhớ phần cứng Bộ nhớ thực là ảo hoá của bộ nhớ vật lý một máy ảo khách; một máy ảo được hỗ trợ bởi các VMM khi nó ánh xạ (map) đến

bộ nhớ thực của một bộ nhớ vật lý máy khách Đó là lập bản đồ “thực đến vật lý” thực hiện việc ảo hóa bộ nhớ trong một hệ thống VM

Trang 38

37

Việc bổ sung các mức độ khác trong hệ thống phân cấp bộ nhớ đòi hỏi thêm các cơ chế quản lý bộ nhớ Lưu ý rằng kích thước tổng số kết hợp của bộ nhớ thực của tất cả các máy khách có thể (và thường) lớn hơn so với bộ nhớ vật lý thực tế trên hệ thống Do đó VMM duy trì một không gian trao đổi, phân biệt với các không gian hoán đổi của từng máy khách VMM quản lý bộ nhớ vật lý bằng cách trao đổi các trang thực của máy khách vào và ra khỏi không gian trao đổi riêng của mình

Hình 2.8 cho thấy một tập hợp các trang bảng bản đồ thuộc hai máy ảo khách khác nhau trong một hệ thống máy ảo Mỗi phần tử trong bảng trang bản đồ là một

vị trí trong bộ nhớ ảo của một ứng dụng cho một vị trí trong bộ nhớ thực của máy

ảo khách Để chuyển đổi một trang địa chỉ thực sự đến một địa chỉ vật lý, VMM duy trì một bảng bản đồ thực lập bản đồ các trang thực sự trang vật lý Trong hình, các khung trang vật lý đánh số 500, 1000, và 3000 được giao cho hai trang thực sự của VM1 và một trang thực sự của VM2 Các trang còn lại, có thể được phân bổ hoặc để máy ảo khác hoặc VMM chính nó

Trên các nền tảng hiện đại, trang dịch được hỗ trợ bởi một sự kết hợp của

một bảng trang và một bản dịch sang một bên trong đệm TLB (Translation

lookaside buffer) Tùy thuộc vào ISA, hoặc các trang bảng hay TLB là kiến trúc

Nếu trang bảng là kiến trúc, sau đó cấu trúc của nó được xác định bởi ISA và các hệ điều hành, phần cứng hợp tác trong việc duy trì và sử dụng nó Trong trường hợp này, các TLB được duy trì và chỉ được sử dụng bởi các phần cứng; nó không phải là hiển thị cho hệ điều hành Khi lỡ có một TLB, phần cứng "đến" bảng trang kiến trúc để tìm mục thích hợp đặt trong TLB; nếu đầu vào không ánh xạ vào bộ nhớ vật

lý, có một lỗi trang và các hệ điều hành

Mặt khác, nếu TLB là kiến trúc, sau đó cấu trúc của nó và câu lệnh đặc biệt

để vận dụng nó là một phần của ISA; các bảng trang là một phần của việc thực hiện

hệ điều hành Phần cứng là không biết gì về cấu trúc trang bảng Với phương pháp này, khi không có TLB xảy ra, có ngay lập tức là một cái bẫy để các hệ điều hành;

Trang 39

bộ nhớ thực của VM1.[13]

2.3.2 Ảo hoá kiến trúc Page Tables

Các hệ điều hành trong mỗi máy ảo khách duy trì bảng trang riêng của mình Các bảng này phản ánh việc lập bản đồ bộ nhớ ảo – thực mà các hệ điều hành

Trang 40

39

khách đang quản lý Trái ngược với bản đồ ảo - thực này, các bản đồ ảo - vật lý được lưu giữ bởi VMM trong một bảng trang bóng (shadow) cho mỗi máy ảo khách Hình 2.9 minh họa các bảng trang bóng cho các ví dụ về thực tế sử dụng phần cứng để dịch địa chỉ ảo và để giữ TLB up-to-date Các mục trong các bảng trang bóng cơ bản loại bỏ một mức gián tiếp trong các bản đồ ảo - thực - vật lý

Để thực hiện phương pháp làm việc này, các trang bảng con trỏ đăng ký ảo hóa VMM quản lý bảng trang con trỏ thực và có quyền truy cập vào phiên bản ảo của các đăng ký liên kết với mỗi máy ảo khách Đồng thời các VMM kích hoạt một máy khách, nó cập nhật bảng trang con trỏ để nó chỉ ra các phiên bản bóng (shadow) chính xác của bảng trang hiện hành máy khách Nếu một nỗ lực của máy khách truy cập vào các bảng trang con trỏ, hoặc là để đọc hoặc viết nó, đọc hoặc viết lệnh bẫy cho VMM Bẫy xảy ra hoặc tự động vì những lệnh này là đặc quyền,

Ngày đăng: 26/07/2017, 21:02

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Smirth, University of Wisconsin-Madison và Nair, IBM T.J. Watson Research Center (2005), Virtual Machines Versatile Platforms for Systems and Processes, Elsevier, 638 pages Sách, tạp chí
Tiêu đề: Virtual Machines Versatile Platforms for Systems and Processes," Elsevier
Tác giả: Smirth, University of Wisconsin-Madison và Nair, IBM T.J. Watson Research Center
Năm: 2005
[3], [4], [5] Smith, James; Nair, Ravi (2005). "The Architecture of Virtual Machines". Computer (IEEE Computer Society), 38 (5): 32–38 [6] Smirth, University of Wisconsin-Madison và Nair, IBM T.J. Watson Sách, tạp chí
Tiêu đề: The Architecture of Virtual Machines
Tác giả: [4], [5] Smith, James; Nair, Ravi
Năm: 2005
[7] Smirth, University of Wisconsin-Madison và Nair, IBM T.J. Watson Research Center (2005), System Virtual Machines, Virtual Machines Versatile Platforms for Systems and Processes, Elsevier, ISBN-13: 978-1558609105. pp 378 Sách, tạp chí
Tiêu đề: Virtual Machines Versatile Platforms for Systems and Processes
Tác giả: Smirth, University of Wisconsin-Madison và Nair, IBM T.J. Watson Research Center
Năm: 2005
[8] Smirth, University of Wisconsin-Madison và Nair, IBM T.J. Watson Research Center (2005), System Virtual Machines, Virtual Machines Versatile Platforms for Systems and Processes, Elsevier, ISBN-13: 978-1558609105. pp 380 Sách, tạp chí
Tiêu đề: Virtual Machines Versatile Platforms for Systems and Processes
Tác giả: Smirth, University of Wisconsin-Madison và Nair, IBM T.J. Watson Research Center
Năm: 2005
[9] Smirth, University of Wisconsin-Madison và Nair, IBM T.J. Watson Research Center (2005), System Virtual Machines, Virtual Machines Versatile Platforms for Systems and Processes, Elsevier, ISBN-13: 978-1558609105. pp 386 Sách, tạp chí
Tiêu đề: Virtual Machines Versatile Platforms for Systems and Processes
Tác giả: Smirth, University of Wisconsin-Madison và Nair, IBM T.J. Watson Research Center
Năm: 2005
[10] Smirth, University of Wisconsin-Madison và Nair, IBM T.J. Watson Research Center (2005), System Virtual Machines, Virtual Machines Versatile Platforms for Systems and Processes, Elsevier, ISBN-13: 978-1558609105. pp 389 Sách, tạp chí
Tiêu đề: Virtual Machines Versatile Platforms for Systems and Processes
Tác giả: Smirth, University of Wisconsin-Madison và Nair, IBM T.J. Watson Research Center
Năm: 2005

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Các giao diện khác nhau được cung cấp bởi một hệ thống máy tính  [2] - Nghiên cứu kiến trúc máy ảo hệ thống và triển khai hệ thống đa nền tảng
Hình 1.1. Các giao diện khác nhau được cung cấp bởi một hệ thống máy tính [2] (Trang 13)
Hình 1.2. Trừu tượng và ảo hóa được áp dụng để lưu trữ đĩa  [3] .  (a)  Trừu  tượng  hóa:  cung  cấp  một  giao  diện  đơn  giản  hóa  các  nguồn  lực  tiềm ẩn - Nghiên cứu kiến trúc máy ảo hệ thống và triển khai hệ thống đa nền tảng
Hình 1.2. Trừu tượng và ảo hóa được áp dụng để lưu trữ đĩa [3] . (a) Trừu tượng hóa: cung cấp một giao diện đơn giản hóa các nguồn lực tiềm ẩn (Trang 14)
Hình  1.3  cho  thấy  một  số  giao  diện  quan  trọng  và  các  lớp  hoat  động  trong  một hệ thống máy tính điển hình - Nghiên cứu kiến trúc máy ảo hệ thống và triển khai hệ thống đa nền tảng
nh 1.3 cho thấy một số giao diện quan trọng và các lớp hoat động trong một hệ thống máy tính điển hình (Trang 16)
Hình 1.4 mô tả máy ảo tiến trình và hệ thống, với giao diện tương thích minh  họa bằng đồ thị chia lưới để làm ranh giới - Nghiên cứu kiến trúc máy ảo hệ thống và triển khai hệ thống đa nền tảng
Hình 1.4 mô tả máy ảo tiến trình và hệ thống, với giao diện tương thích minh họa bằng đồ thị chia lưới để làm ranh giới (Trang 19)
Hình  2.1:  Các  phương  pháp  duy  trì  trạng  thái  ảo  minh  họa  cho  một  File  đăng ký - Nghiên cứu kiến trúc máy ảo hệ thống và triển khai hệ thống đa nền tảng
nh 2.1: Các phương pháp duy trì trạng thái ảo minh họa cho một File đăng ký (Trang 22)
Hình 2.2- Hoạt động chụp bởi VMM trong một Virtual Machine nghỉ và kích  hoạt máy ảo tiếp theo  [7] - Nghiên cứu kiến trúc máy ảo hệ thống và triển khai hệ thống đa nền tảng
Hình 2.2 Hoạt động chụp bởi VMM trong một Virtual Machine nghỉ và kích hoạt máy ảo tiếp theo [7] (Trang 25)
Hình 2.4 – các thành phần của VMM  [9] - Nghiên cứu kiến trúc máy ảo hệ thống và triển khai hệ thống đa nền tảng
Hình 2.4 – các thành phần của VMM [9] (Trang 30)
Hình 2.5.  Xử lý một lệnh đặc quyền trong một hệ điều hành máy khách. Các  cấu trúc đặc quyền gây ra một cái bẫy vì thế các hệ điều hành khách được vận hành  trong chế độ người dùng - Nghiên cứu kiến trúc máy ảo hệ thống và triển khai hệ thống đa nền tảng
Hình 2.5. Xử lý một lệnh đặc quyền trong một hệ điều hành máy khách. Các cấu trúc đặc quyền gây ra một cái bẫy vì thế các hệ điều hành khách được vận hành trong chế độ người dùng (Trang 32)
Hình 2.6- Sự  tái lập quá trình ảo hóa  [11] - Nghiên cứu kiến trúc máy ảo hệ thống và triển khai hệ thống đa nền tảng
Hình 2.6 Sự tái lập quá trình ảo hóa [11] (Trang 33)
Hình 2.7 – Mã caching (Bộ đệm) để tăng cường hiệu suất của các lệnh mô phỏng   quan trọng  [12] - Nghiên cứu kiến trúc máy ảo hệ thống và triển khai hệ thống đa nền tảng
Hình 2.7 – Mã caching (Bộ đệm) để tăng cường hiệu suất của các lệnh mô phỏng quan trọng [12] (Trang 36)
Hình 2.9 - Bảng trang bóng (shadow) minh hoạ việc lập bản đồ bộ nhớ  [14] - Nghiên cứu kiến trúc máy ảo hệ thống và triển khai hệ thống đa nền tảng
Hình 2.9 Bảng trang bóng (shadow) minh hoạ việc lập bản đồ bộ nhớ [14] (Trang 40)
Hình 2.10- Ảo hoá các TLB trong hệ thống  [15] - Nghiên cứu kiến trúc máy ảo hệ thống và triển khai hệ thống đa nền tảng
Hình 2.10 Ảo hoá các TLB trong hệ thống [15] (Trang 44)
Hình 3.1- Quan điểm người dùng về VMware System  [18] - Nghiên cứu kiến trúc máy ảo hệ thống và triển khai hệ thống đa nền tảng
Hình 3.1 Quan điểm người dùng về VMware System [18] (Trang 50)
Hình 4.1. Mô hình phân bố hệ thống ứng dụng tại Cục thuế tỉnh Hà Tĩnh - Nghiên cứu kiến trúc máy ảo hệ thống và triển khai hệ thống đa nền tảng
Hình 4.1. Mô hình phân bố hệ thống ứng dụng tại Cục thuế tỉnh Hà Tĩnh (Trang 64)
Hình 4.2. Mô hình phân bố kiến trúc hệ thống máy ảo tại Cục thuế tỉnh Hà  Tĩnh - Nghiên cứu kiến trúc máy ảo hệ thống và triển khai hệ thống đa nền tảng
Hình 4.2. Mô hình phân bố kiến trúc hệ thống máy ảo tại Cục thuế tỉnh Hà Tĩnh (Trang 66)

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