Bộ nhớ ảo trong hệ điều hành: Là gì, phân trang theo yêu cầu, ưu điểm
Bộ nhớ ảo là gì?
Bộ nhớ ảo là một cơ chế lưu trữ mang đến cho người dùng ảo tưởng về việc có bộ nhớ chính rất lớn. Nó được thực hiện bằng cách coi một phần bộ nhớ phụ là bộ nhớ chính. Trong bộ nhớ ảo, người dùng có thể lưu trữ các tiến trình có kích thước lớn hơn bộ nhớ chính khả dụng.
Do đó, thay vì tải một tiến trình dài vào bộ nhớ chính, HĐH sẽ tải các phần khác nhau của nhiều tiến trình vào bộ nhớ chính. Bộ nhớ ảo chủ yếu được triển khai với phân trang theo nhu cầu và phân khúc theo nhu cầu.
Tại sao cần bộ nhớ ảo?
Dưới đây là những lý do nên sử dụng bộ nhớ ảo:
- Bất cứ khi nào máy tính của bạn không còn chỗ trống trong bộ nhớ vật lý, nó sẽ ghi những gì cần nhớ vào đĩa cứng trong một tệp hoán đổi dưới dạng bộ nhớ ảo.
- Nếu một máy tính đang chạy Windows cần thêm bộ nhớ/RAM, sau đó được cài đặt vào hệ thống, nó sử dụng một phần nhỏ ổ cứng cho mục đích này.
Bộ nhớ ảo hoạt động như thế nào?
Trong thế giới hiện đại, bộ nhớ ảo ngày nay đã trở nên khá phổ biến. Nó được sử dụng bất cứ khi nào một số trang yêu cầu được tải vào bộ nhớ chính để thực thi và bộ nhớ không có sẵn cho nhiều trang đó.
Vì vậy, trong trường hợp đó, thay vì ngăn các trang vào bộ nhớ chính, HĐH sẽ tìm kiếm dung lượng RAM được sử dụng tối thiểu trong thời gian gần đây hoặc không được tham chiếu vào bộ nhớ phụ để tạo khoảng trống cho các trang mới trong bộ nhớ chính.
Hãy hiểu quản lý bộ nhớ ảo với sự giúp đỡ của một ví dụ.
Ví dụ
Giả sử rằng một hệ điều hành cần 300 MB bộ nhớ để lưu trữ tất cả các chương trình đang chạy. Tuy nhiên, hiện tại chỉ có 50 MB bộ nhớ vật lý khả dụng được lưu trữ trên RAM.
- Sau đó, HĐH sẽ thiết lập 250 MB bộ nhớ ảo và sử dụng chương trình có tên Trình quản lý bộ nhớ ảo (VMM) để quản lý 250 MB đó.
- Vì vậy, trong trường hợp này, VMM sẽ tạo một tệp trên đĩa cứng có kích thước 250 MB để lưu trữ thêm bộ nhớ cần thiết.
- Hệ điều hành bây giờ sẽ tiến hành giải quyết bộ nhớ vì nó xem xét 300 MB bộ nhớ thực được lưu trữ trong RAM, ngay cả khi chỉ có 50 MB dung lượng trống.
- Công việc của VMM là quản lý bộ nhớ 300 MB ngay cả khi chỉ có 50 MB dung lượng bộ nhớ thực.
Phân trang theo yêu cầu là gì?
Cơ chế phân trang theo yêu cầu rất giống với cơ chế hệ thống phân trang với việc hoán đổi trong đó các tiến trình được lưu trữ trong bộ nhớ phụ và các trang chỉ được tải theo yêu cầu chứ không phải tải trước.
Vì vậy, khi chuyển đổi ngữ cảnh xảy ra, HĐH không bao giờ sao chép bất kỳ trang nào của chương trình cũ từ đĩa hoặc bất kỳ trang nào của chương trình mới vào bộ nhớ chính. Thay vào đó, nó sẽ bắt đầu thực thi chương trình mới sau khi tải trang đầu tiên và tìm nạp các trang của chương trình được tham chiếu.
Trong quá trình thực thi chương trình, nếu chương trình tham chiếu đến một trang có thể không có trong bộ nhớ chính vì nó đã bị tráo đổi thì bộ xử lý sẽ coi đó là một tham chiếu bộ nhớ không hợp lệ. Đó là do lỗi trang và quá trình chuyển gửi quyền điều khiển từ chương trình trở lại hệ điều hành, hệ điều hành này yêu cầu lưu lại trang vào bộ nhớ.
Các loại phương pháp thay thế trang
Dưới đây là một số phương pháp thay thế Trang quan trọng
- FIFO
- Thuật toán tối ưu
- Thay thế trang LRU
Thay thế trang FIFO
FIFO (Nhập trước xuất trước) là phương pháp thực hiện đơn giản. Trong phương pháp này, bộ nhớ chọn trang thay thế đã ở địa chỉ ảo của bộ nhớ lâu nhất.
Tính năng
- Bất cứ khi nào một trang mới được tải, trang gần đây xuất hiện trong bộ nhớ sẽ bị xóa. Vì vậy, thật dễ dàng để quyết định trang nào cần xóa vì số nhận dạng của nó luôn nằm ở ngăn xếp FIFO.
- Trang cũ nhất trong bộ nhớ chính là trang cần được chọn để thay thế trước.
Thuật toán tối ưu
Phương pháp thay thế trang tối ưu sẽ chọn trang đó để thay thế mà thời gian đến lần tham chiếu tiếp theo là dài nhất.
Tính năng
- Thuật toán tối ưu dẫn đến số lỗi trang ít nhất. Thuật toán này khó thực hiện.
- Phương pháp thuật toán thay thế trang tối ưu có tỷ lệ lỗi trang thấp nhất trong tất cả các thuật toán. Thuật toán này tồn tại và nên được gọi là MIN hoặc OPT.
- Thay thế trang không thích sử dụng trong thời gian dài. Nó chỉ sử dụng thời gian khi một trang cần được sử dụng.
Thay thế trang LRU
Hình thức đầy đủ của LRU là trang Ít được sử dụng gần đây nhất. Phương pháp này giúp HĐH tìm ra mức độ sử dụng trang trong một khoảng thời gian ngắn. Thuật toán này nên được thực hiện bằng cách liên kết bộ đếm với một trang chẵn.
Học như thế nào?
- Trang không được sử dụng lâu nhất trong bộ nhớ chính sẽ là trang được chọn để thay thế.
- Dễ thực hiện, giữ danh sách, thay thế các trang bằng cách nhìn lại thời gian.
Tính năng
- Phương pháp thay thế LRU có số lượng cao nhất. Bộ đếm này còn được gọi là các thanh ghi lão hóa, xác định tuổi của chúng và số lượng các trang liên quan của chúng cũng sẽ được tham chiếu.
- Trang không được sử dụng lâu nhất trong bộ nhớ chính là trang cần được chọn để thay thế.
- Nó cũng giữ một danh sách và thay thế các trang bằng cách nhìn lại thời gian.
Tỷ lệ lỗi
Tỷ lệ lỗi là tần suất mà một hệ thống hoặc thành phần được thiết kế bị lỗi. Nó được biểu thị bằng số lỗi trên một đơn vị thời gian. Nó được ký hiệu bằng chữ cái Hy Lạp? (lambda).
Ưu điểm của bộ nhớ ảo
Dưới đây là những ưu/lợi ích của việc sử dụng Bộ nhớ ảo:
- Bộ nhớ ảo giúp tăng tốc độ khi chỉ cần một phân đoạn cụ thể của chương trình để thực thi chương trình.
- Nó rất hữu ích trong việc thực hiện một môi trường đa chương trình.
- Nó cho phép bạn chạy nhiều ứng dụng cùng một lúc.
- Nó giúp bạn ghép nhiều chương trình lớn vào các chương trình nhỏ hơn.
- Dữ liệu hoặc mã chung có thể được chia sẻ giữa các bộ nhớ.
- Quá trình có thể trở nên lớn hơn tất cả bộ nhớ vật lý.
- Dữ liệu/mã nên được đọc từ đĩa bất cứ khi nào cần thiết.
- Mã có thể được đặt ở bất cứ đâu trong bộ nhớ vật lý mà không cần phải di chuyển.
- Cần duy trì nhiều tiến trình hơn trong bộ nhớ chính, điều này làm tăng hiệu quả sử dụng CPU.
- Mỗi trang được lưu trữ trên một đĩa cho đến khi được yêu cầu sau đó thì nó sẽ bị xóa.
- Nó cho phép nhiều ứng dụng được chạy cùng lúc.
- Không có giới hạn cụ thể về mức độ đa chương trình.
- Cần phải viết các chương trình lớn vì không gian địa chỉ ảo có sẵn nhiều hơn so với bộ nhớ vật lý.
Nhược điểm của bộ nhớ ảo
Dưới đây là những hạn chế/nhược điểm của việc sử dụng bộ nhớ ảo:
- Ứng dụng có thể chạy chậm hơn nếu hệ thống đang sử dụng bộ nhớ ảo.
- Có thể mất nhiều thời gian hơn để chuyển đổi giữa các ứng dụng.
- Cung cấp ít không gian ổ cứng hơn cho việc sử dụng của bạn.
- Nó làm giảm sự ổn định của hệ thống.
- Nó cho phép các ứng dụng lớn hơn chạy trong các hệ thống không cung cấp đủ RAM vật lý để chạy chúng.
- Nó không cung cấp hiệu suất tương tự như RAM.
- Nó ảnh hưởng tiêu cực đến hiệu suất tổng thể của một hệ thống.
- Chiếm không gian lưu trữ, có thể được sử dụng để lưu trữ dữ liệu lâu dài.
Tổng kết
- Bộ nhớ ảo là một cơ chế lưu trữ mang đến cho người dùng ảo tưởng về việc có bộ nhớ chính rất lớn.
- Bộ nhớ ảo là cần thiết bất cứ khi nào máy tính của bạn không còn chỗ trống trong bộ nhớ vật lý
- Cơ chế phân trang theo yêu cầu rất giống với hệ thống phân trang có sự hoán đổi trong đó các tiến trình được lưu trữ trong bộ nhớ phụ và các trang chỉ được tải theo yêu cầu chứ không phải trước.
- Các phương pháp thay thế trang quan trọng là 1) FIFO 2) Thuật toán tối ưu 3) Thay thế trang LRU.
- Trong phương pháp FIFO (Nhập trước xuất trước), bộ nhớ chọn trang để thay thế đã ở địa chỉ ảo của bộ nhớ trong thời gian dài nhất.
- Phương pháp thay thế trang tối ưu sẽ chọn trang đó để thay thế mà thời gian đến lần tham chiếu tiếp theo là dài nhất.
- Phương pháp LRU giúp HĐH tìm ra mức độ sử dụng trang trong một khoảng thời gian ngắn.
- Bộ nhớ ảo giúp tăng tốc độ khi chỉ cần một phân đoạn cụ thể của chương trình để thực thi chương trình.
- Ứng dụng có thể chạy chậm hơn nếu hệ thống đang sử dụng bộ nhớ ảo.