1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đồ Án nhóm môn học nền tảng hệ thống máy tính tên Đề tài nguyên lí hoạt Động của bộ nhớ Ảo (virtual memory)

19 11 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Nguyên lí hoạt động của bộ nhớ ảo (Virtual Memory)
Tác giả Lê Cảnh Hùng, Bùi Nhật Tịnh, Nguyễn Như Trường Thịnh
Người hướng dẫn NGUYỄN KIM TUẤN
Trường học ĐẠI HỌC DUY TÂN
Chuyên ngành NỀN TẢNG HỆ THỐNG MÁY TÍNH
Thể loại Đồ Án Nhóm
Năm xuất bản 2024
Thành phố Đà Nẵng
Định dạng
Số trang 19
Dung lượng 253,67 KB

Nội dung

Bộ nhớ ảo là một kỹ thuật quản lý bộ nhớ trong các hệ thống máy tính, cho phép một chương trình máy tính có thể sử dụng nhiều bộ nhớ hơn bộ nhớ vật lý thực tế có trên máy.. Nó tạo ra một

Trang 1

TRƯỜNG KHOA HỌC MÁY TÍNH KHOA KỸ THUẬT MẠNG MÁY TÍNH & TRUYỀN THÔNG

��� �� �

ĐỒ ÁN NHÓM MÔN HỌC: NỀN TẢNG HỆ THỐNG MÁY TÍNH

Tên đề tài:

“Nguyên lí hoạt động của bộ nhớ ảo (Virtual Memory)”

3 Nguyễn Như Trường Thịnh 28211103779

Đà Nẵng, 11/2024

MỤC LỤC

PHẦN 1 MỞ ĐẦU 3

Trang 2

1 Lí do chọn đề tài 3

2 Mục tiêu đề tài 3

3 Mục tiêu thực hiện đề tài 3

4 Nội dung tìm đọc và nghiên cứu 4

PHẦN 2 NỘI DUNG 5

1 Giới thiệu về bộ nhớ ảo 5

1.1 Định nghĩa bộ nhớ ảo và vai trò trong hệ thống máy tính 5

1.2 Lịch sử phát triển của bộ nhớ ảo 5

2 Nguyên lý hoạt động của bộ nhớ ảo 6

2.1 Khái niệm phân trang (Paging) và phân đoạn (Segmentation) 6

2.2 Chuyển đổi địa chỉ và bảng trang (Page Table) 7

2.3 Quản lý lỗi trang (Page Fault) 8

3 Thuật toán thay thế trang(Hùng) 8

3.1 Giới thiệu về các thuật toán thay thế trang 8

3.2 Chi tiết các thuật toán phổ biến (FIFO, LRU, LFU) 8

3.3 So sánh và phân tích hiệu quả của từng thuật toán 10

4 Ưu và nhược điểm của bộ nhớ ảo(Tịnh) 11

4.1 Ưu điểm 11

4.2 Nhược điểm 12

5 Ứng dụng và các thách thức thực tế(Tịnh) 13

5.1 Ứng dụng trong hệ điều hành Windows, Linux, macOS 13

5.2 Các vấn đề phổ biến khi quản lý bộ nhớ ảo và giải pháp khắc phục 14

PHẦN 3 KẾT LUẬN 17

1 Tổng kết vai trò của bộ nhớ ảo trong hệ thống hiện đại 17

2 Định hướng phát triển của bộ nhớ ảo trong tương lai 17

PHẦN 4 TÀI LIỆU THAM KHẢO 19

Trang 3

PHẦN 1 MỞ ĐẦU

1 Lí do chọn đề tài

Trong thời đại công nghệ số, hệ thống máy tính đã trở thành công cụ thiết yếu, hỗ trợ đắc lực cho mọi lĩnh vực từ nghiên cứu khoa học, quản lý doanh nghiệp đến giải trí

Để đáp ứng nhu cầu ngày càng cao về hiệu suất và khả năng xử lý đa nhiệm, các hệ điều hành và phần cứng máy tính phải liên tục phát triển và cải tiến Một trong những công

nghệ quan trọng nhất trong việc tối ưu hóa hiệu suất và quản lý bộ nhớ chính là bộ nhớ

ảo (Virtual Memory).

Bộ nhớ ảo cho phép máy tính mở rộng không gian bộ nhớ, cho phép các chương trình sử dụng nhiều bộ nhớ hơn so với dung lượng vật lý hiện có Nhờ cơ chế này, máy tính có thể thực thi các chương trình lớn, hỗ trợ đa nhiệm hiệu quả hơn và đảm bảo quá trình xử lý diễn ra mượt mà, ngay cả khi dung lượng RAM hạn chế Bộ nhớ ảo đã trở thành một phần không thể thiếu trong hệ điều hành hiện đại, góp phần tối ưu hóa và nâng cao hiệu quả sử dụng tài nguyên

2 Mục tiêu đề tài

Tìm hiểu nguyên lý hoạt động của bộ nhớ ảo và vai trò của nó trong hệ thống máy tính

Phân tích các thành phần và cơ chế vận hành của bộ nhớ ảo, bao gồm phân trang, phân đoạn và chuyển đổi địa chỉ

Đánh giá ưu và nhược điểm của bộ nhớ ảo, ứng dụng thực tế và các thách thức liên quan đến việc sử dụng bộ nhớ ảo

3 Mục tiêu thực hiện đề tài

Hiểu cách bộ nhớ ảo tối ưu hóa tài nguyên hệ thống và nâng cao hiệu suất khi bộ nhớ vật lý hạn chế

Tìm hiểu cách các hệ điều hành hiện đại quản lý bộ nhớ ảo và xử lý lỗi trang (page fault)

Nắm rõ các thuật toán thay thế trang và ý nghĩa của chúng trong việc tối ưu hóa hoạt động của bộ nhớ

Trang 4

4 Nội dung tìm đọc và nghiên cứu

Sách và tài liệu về hệ điều hành và kiến trúc máy tính

Các tài liệu về bộ nhớ trong hệ điều hành, đặc biệt là các chương về quản lý bộ nhớ

Nghiên cứu về thuật toán thay thế trang (FIFO, LRU, LFU) và các tài liệu về cấu trúc bộ nhớ ảo trong hệ điều hành Windows và Linux

Trang 5

PHẦN 2 NỘI DUNG

1 Giới thiệu về bộ nhớ ảo

1.1 Định nghĩa bộ nhớ ảo và vai trò trong hệ thống máy tính

a Định nghĩa bộ nhớ ảo (Virtual Memory)

Bộ nhớ ảo là một kỹ thuật quản lý bộ nhớ trong các hệ thống máy tính, cho phép một chương trình máy tính có thể sử dụng nhiều bộ nhớ hơn bộ nhớ vật lý thực tế có trên máy Nó tạo ra một không gian địa chỉ

bộ nhớ ảo lớn hơn không gian bộ nhớ vật lý, giúp các ứng dụng có thể truy cập vào lượng bộ nhớ lớn hơn bộ nhớ RAM hiện có

b Vai trò của bộ nhớ ảo trong hệ thống máy tính

Tăng không gian bộ nhớ cho các ứng dụng: Bộ nhớ ảo cho

phép một chương trình sử dụng nhiều bộ nhớ hơn bộ nhớ RAM vật lý, giúp các ứng dụng lớn hoặc chạy đa nhiệm không bị giới hạn bởi dung lượng bộ nhớ RAM

Đa nhiệm và đa luồng: Bộ nhớ ảo cho phép các ứng dụng chạy

đồng thời bằng cách chia sẻ không gian bộ nhớ mà không ảnh hưởng đến bộ nhớ của nhau Nhờ đó, các hệ điều hành hiện đại có thể thực hiện

đa nhiệm hiệu quả

An toàn và cô lập: Các quá trình trong hệ thống có thể hoạt

động trong không gian địa chỉ riêng biệt, bảo vệ dữ liệu của từng tiến trình khỏi sự truy cập trái phép từ các tiến trình khác Điều này tăng cường tính bảo mật của hệ thống

Quản lý bộ nhớ hiệu quả: Kỹ thuật phân trang (paging) và phân

đoạn (segmentation) cho phép quản lý bộ nhớ một cách linh hoạt Hệ thống sẽ chỉ nạp vào RAM các trang hoặc đoạn cần thiết, giúp tiết kiệm

bộ nhớ

Tăng hiệu suất với bộ nhớ đệm (caching): Bộ nhớ ảo giúp tối

ưu hóa việc sử dụng bộ nhớ đệm, cho phép truy cập vào các vùng bộ nhớ gần nhau một cách nhanh chóng hơn

1.2 Lịch sử phát triển của bộ nhớ ảo

1 Những năm 1950 - Khởi đầu ý tưởng về bộ nhớ ảo

Trang 6

- Khái niệm bộ nhớ ảo được đề xuất bởi các nhà khoa học tại Đại học Manchester, Anh Máy tính Atlas được phát triển tại đây vào năm 1959–1962 và được xem là hệ thống máy tính đầu tiên sử dụng bộ nhớ ảo

2 Những năm 1960 - Áp dụng vào các hệ thống máy tính lớn

- Hệ thống máy tính Atlas sử dụng bộ nhớ ảo với kỹ thuật phân trang (paging) nhằm quản lý bộ nhớ một cách hiệu quả hơn Kỹ thuật phân trang giúp các chương trình có thể chạy trên một không gian địa chỉ bộ nhớ lớn hơn nhiều lần so với bộ nhớ vật lý

3 Những năm 1970 - Hoàn thiện kỹ thuật bộ nhớ ảo

- Các công ty công nghệ như IBM và DEC tiếp tục nghiên cứu và triển khai bộ nhớ ảo trong nhiều hệ thống máy tính lớn (mainframe) và minicomputer

4 Những năm 1980 - Bộ nhớ ảo trong máy tính cá nhân

- Khi các hệ điều hành hiện đại như UNIX và các hệ thống dựa trên DOS phát triển, bộ nhớ ảo trở nên phổ biến trên máy tính cá nhân

5 Những năm 1990 - Phát triển và mở rộng với hệ điều hành hiện đại

- Các hệ điều hành Windows NT, Linux, và các phiên bản UNIX tiếp tục phát triển bộ nhớ ảo

6 Những năm 2000 - Bộ nhớ ảo trên các thiết bị di động

- Bộ nhớ ảo được tích hợp vào các hệ điều hành di động như Android và iOS, giúp các thiết bị di động có thể xử lý các ứng dụng lớn và thực hiện đa nhiệm tốt hơn

7 Thời kỳ hiện đại - Bộ nhớ ảo tối ưu hóa hiệu suất và tiết kiệm năng lượng

- Với sự phát triển của công nghệ SSD và bộ nhớ DRAM có dung lượng cao, bộ nhớ ảo tiếp tục được cải tiến để hỗ trợ tốc độ truy cập nhanh

và tiêu tốn ít năng lượng hơn

2 Nguyên lý hoạt động của bộ nhớ ảo

2.1 Khái niệm phân trang (Paging) và phân đoạn (Segmentation)

a Phân trang (Paging)

Phân trang là một phương pháp quản lý bộ nhớ, trong đó không gian địa chỉ của chương trình được chia thành các khối nhỏ có kích thước cố định gọi là trang (pages) Bộ nhớ vật lý (RAM) cũng được chia thành các khung trang (page frames) có kích thước bằng với trang ảo Khi chương trình cần truy cập một trang, hệ điều hành sẽ kiểm tra xem

Trang 7

trang đó có trong bộ nhớ vật lý không Nếu không, hệ điều hành sẽ nạp trang từ bộ nhớ phụ (như ổ cứng) vào một khung trang trong bộ nhớ vật lý

Phân trang giúp loại bỏ sự phân mảnh ngoài (external fragmentation) và tận dụng bộ nhớ một cách hiệu quả hơn Tuy nhiên, việc chuyển đổi địa chỉ từ địa chỉ ảo sang địa chỉ vật lý yêu cầu bảng tra cứu gọi là bảng trang (Page Table), trong đó chứa thông tin ánh xạ giữa các trang ảo và khung trang vật lý

b Phân đoạn (Segmentation)

Phân đoạn là một phương pháp quản lý bộ nhớ, trong đó không gian địa chỉ của chương trình được chia thành các đoạn (segments) có kích thước không cố định Mỗi đoạn đại diện cho một đơn vị logic của chương trình, như mã lệnh, dữ liệu, ngăn xếp, hoặc biến toàn cục Mỗi đoạn sẽ có một chỉ số và độ dài riêng, cho phép truy cập chính xác vào các phần của chương trình

Phân đoạn giúp quản lý bộ nhớ theo các đơn vị logic, thuận tiện cho việc bảo mật và kiểm soát quyền truy cập Ví dụ, các đoạn mã lệnh

có thể được đặt chế độ chỉ đọc, trong khi các đoạn dữ liệu có thể được thiết lập để ghi Nhược điểm của phân đoạn là có thể gây ra phân mảnh ngoài khi kích thước của các đoạn không đều

2.2 Chuyển đổi địa chỉ và bảng trang (Page Table)

Trong hệ thống bộ nhớ ảo, các chương trình sử dụng địa chỉ ảo (virtual address) thay vì địa chỉ vật lý Khi một chương trình muốn truy cập một phần dữ liệu nào đó, nó sẽ sử dụng địa chỉ ảo Hệ điều hành sẽ chuyển đổi địa chỉ ảo này sang địa chỉ vật lý (physical address) trong bộ nhớ vật lý

Bảng trang (Page Table) là cấu trúc dữ liệu giúp thực hiện việc ánh

xạ từ địa chỉ ảo sang địa chỉ vật lý Mỗi chương trình sẽ có một bảng trang riêng, trong đó mỗi mục của bảng trang ánh xạ một trang ảo với một khung trang vật lý trong bộ nhớ Khi CPU cần truy cập một địa chỉ ảo, nó sẽ tra cứu trong bảng trang để tìm khung trang vật lý tương ứng Nếu trang đã có trong bộ nhớ vật lý, CPU sẽ truy cập trực tiếp vào khung trang vật lý đó

Để tăng hiệu suất, các hệ thống hiện đại sử dụng bộ nhớ đệm bảng trang (Translation Lookaside Buffer - TLB), giúp lưu trữ các ánh xạ thường

Trang 8

xuyên sử dụng để giảm thời gian tra cứu bảng trang Nếu ánh xạ không có trong TLB, CPU sẽ phải tra cứu bảng trang trong bộ nhớ chính, điều này có thể làm chậm quá trình xử lý

2.3 Quản lý lỗi trang (Page Fault)

Lỗi trang (Page Fault) là tình huống xảy ra khi một chương trình

yêu cầu truy cập một trang ảo không có sẵn trong bộ nhớ vật lý (RAM) Khi xảy ra lỗi trang, CPU sẽ báo cho hệ điều hành để xử lý Quy trình xử lý lỗi trang bao gồm các bước sau:

1 Xác định vị trí trang trên ổ cứng: Hệ điều hành kiểm tra vị trí của trang yêu cầu trong bộ nhớ phụ (thường là ổ cứng)

2 Nạp trang vào RAM: Hệ điều hành sẽ nạp trang yêu cầu từ ổ cứng vào một khung trang trống trong RAM Nếu bộ nhớ vật lý đầy, hệ điều hành sẽ sử dụng một thuật toán thay thế trang để xác định trang nào cần được đẩy ra khỏi RAM để nhường chỗ cho trang mới

3 Cập nhật bảng trang: Sau khi nạp trang vào RAM, hệ điều hành sẽ cập nhật bảng trang để ánh xạ địa chỉ ảo của trang với khung trang vật lý mới

4 Tiếp tục thực thi chương trình: Sau khi lỗi trang được xử lý, chương trình tiếp tục thực thi từ vị trí mà nó đã dừng lại

Lỗi trang giúp hệ điều hành tối ưu hóa bộ nhớ và giảm tải cho RAM, nhưng nếu xảy ra quá nhiều lỗi trang, hiệu suất hệ thống sẽ giảm đáng kể Tình trạng này gọi là thrashing, khi hệ thống liên tục nạp và đẩy các trang vào/ra khỏi bộ nhớ, dẫn đến CPU dành nhiều thời gian xử lý lỗi trang hơn

là thực thi chương trình

3 Thuật toán thay thế trang(Hùng)

3.1 Giới thiệu về các thuật toán thay thế trang

Khi bộ nhớ ảo hoạt động, một phần dữ liệu từ ổ cứng sẽ được nạp vào bộ nhớ vật lý (RAM) theo từng trang Tuy nhiên, khi bộ nhớ vật lý đầy

mà có yêu cầu nạp thêm một trang mới, hệ điều hành sẽ phải chọn một

Trang 9

trang cũ để loại bỏ, nhường chỗ cho trang mới Thuật toán thay thế trang là các phương pháp để quyết định trang nào nên được thay thế nhằm tối ưu hóa hiệu suất hệ thống

3.2 Chi tiết các thuật toán phổ biến (FIFO, LRU, LFU)

Các thuật toán thay thế trang được phát triển nhằm mục tiêu giảm số lần xảy ra lỗi trang (page fault) và tối ưu hóa quá trình truy xuất bộ nhớ Khi lựa chọn trang để thay thế, thuật toán cần cân nhắc về tần suất và thời điểm trang được sử dụng Các thuật toán thay thế trang phổ biến bao gồm:

FIFO (First-In, First-Out): Trang nào vào bộ nhớ trước sẽ được thay thế

trước

LRU (Least Recently Used): Trang nào ít được sử dụng gần đây nhất sẽ bị

thay thế

LFU (Least Frequently Used): Trang nào ít được truy cập nhất trong suốt

thời gian vừa qua sẽ bị thay thế

Mỗi thuật toán có những ưu, nhược điểm riêng và phù hợp với từng loại ứng dụng khác nhau Chúng ta sẽ đi sâu vào chi tiết từng thuật toán trong các phần sau

a FIFO

Thuật toán FIFO thay thế trang đầu tiên vào trong bộ nhớ Các trang sẽ được xếp vào hàng đợi theo thứ tự nạp vào, và khi cần thay thế,

hệ điều hành sẽ loại bỏ trang đứng đầu hàng đợi

Ưu điểm: Đơn giản, dễ cài đặt và không yêu cầu theo dõi nhiều

thông tin

Nhược điểm: FIFO có thể dẫn đến vấn đề khi tăng kích thước bộ

nhớ lại dẫn đến tăng số lỗi trang trong một số trường hợp

Ví dụ: Nếu hàng đợi là [A, B, C] và trang D cần vào, trang A (đầu hàng đợi) sẽ bị thay thế

b LRU

LRU thay thế trang nào ít được sử dụng gần đây nhất, dựa trên giả định rằng các trang sử dụng gần đây sẽ có khả năng được sử dụng lại Thuật toán này cần phải theo dõi thời gian sử dụng của từng trang để xác định trang nào đã không được sử dụng lâu nhất

Ưu điểm: Hiệu quả hơn FIFO trong hầu hết các trường hợp vì

dựa trên các mẫu truy cập bộ nhớ thực tế

Trang 10

Nhược điểm: Đòi hỏi tài nguyên để theo dõi và lưu lại thời gian

truy cập của mỗi trang, có thể làm chậm hệ thống nếu không được tối ưu hóa

Ví dụ: Nếu hàng đợi là [A, B, C] và A không được truy cập từ lâu, khi trang D cần vào, trang A sẽ bị thay thế

c LFU

Thuật toán LFU thay thế trang ít được truy cập nhất dựa trên tần suất sử dụng Mỗi trang sẽ có một bộ đếm, bộ đếm này tăng lên mỗi khi trang đó được truy cập Khi cần thay thế, hệ điều hành sẽ chọn trang có

bộ đếm thấp nhất

Ưu điểm: Hiệu quả đối với các ứng dụng có mẫu truy cập ổn

định

Nhược điểm: Có thể không hiệu quả với các trang chỉ được sử

dụng tạm thời nhưng có bộ đếm cao LFU cũng yêu cầu tài nguyên để theo dõi tần suất truy cập của mỗi trang

Ví dụ: Nếu trang A có tần suất truy cập là 1, B là 2, C là 3, và trang D cần vào, trang A sẽ bị thay thế do có tần suất truy cập thấp nhất

3.3 So sánh và phân tích hiệu quả của từng thuật toán

Bảng so sánh ưu nhược:

Thuật toán Ưu điểm Nhược điểm Ứng dụng phù

hợp FIFO Đơn giản, dễ cài

đặt Tăng kích thướcbộ nhớ sẽ dẫn

đến tăng số lỗi trang

Các hệ thống yêu cầu xử lý đơn giản, không cần tối ưu hiệu suất cao

LRU Hiệu quả với đa

số ứng dụng thực tế

Đòi hỏi tài nguyên theo dõi thời gian sử dụng

Hệ thống yêu cầu tối ưu lỗi trang và

có khả năng theo dõi tần suất sử dụng trang

LFU Tốt cho các ứng

dụng có mẫu truy cập ổn định

Có thể kém hiệu quả với các trang dùng tạm thời, yêu cầu

Các ứng dụng có tần suất truy cập cố định hoặc yêu cầu

ít thay đổi trang

Trang 11

theo dõi tần suất truy cập

Phân tích hiệu quả:

 FIFO tuy đơn giản nhưng trong nhiều trường hợp không hiệu quả, vì

có thể thay thế một trang vẫn đang được sử dụng thường xuyên Đây

là một thuật toán cơ bản, thường không được sử dụng trong các hệ thống yêu cầu hiệu suất cao

 LRU là một thuật toán phức tạp hơn nhưng được đánh giá hiệu quả hơn FIFO, vì dựa vào các mẫu truy cập gần đây của trang Tuy nhiên, việc theo dõi thời gian sử dụng gần nhất có thể là một gánh nặng cho tài nguyên

 LFU có ưu điểm trong các trường hợp mà một số trang được truy cập thường xuyên hơn những trang khác Tuy nhiên, LFU có thể không hiệu quả nếu các mẫu truy cập thay đổi theo thời gian hoặc có nhiều trang chỉ được sử dụng một lần trong thời gian dài

Kết luận: Không có thuật toán nào là hoàn hảo cho mọi trường hợp Việc

lựa chọn thuật toán thay thế trang phụ thuộc vào yêu cầu cụ thể của hệ thống và mẫu truy cập bộ nhớ của ứng dụng Trong một số hệ thống, các thuật toán có thể được kết hợp hoặc tinh chỉnh để đạt hiệu suất tốt nhất

4 Ưu và nhược điểm của bộ nhớ ảo(Tịnh)

4.1 Ưu điểm

a Mở rộng bộ nhớ hiệu quả

Bộ nhớ ảo cho phép các chương trình sử dụng nhiều bộ nhớ hơn so với dung lượng RAM thực tế Nhờ khả năng lưu trữ dữ liệu tạm thời trên ổ cứng, hệ thống có thể chạy các ứng dụng đòi hỏi bộ nhớ lớn mà không cần nâng cấp phần cứng Điều này đặc biệt quan trọng trong các hệ thống xử lý

đồ họa, phân tích dữ liệu lớn hoặc chạy nhiều ứng dụng cùng lúc

b Quản lý đa nhiệm tốt hơn

Bộ nhớ ảo giúp hệ điều hành hỗ trợ tốt hơn trong việc quản lý đa nhiệm, tức là chạy nhiều chương trình cùng lúc Mỗi chương trình sẽ có

Ngày đăng: 03/11/2024, 22:47

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w