Bộ nhớ ảo trong hệ điều hành: Là gì, Phân trang theo yêu cầu, Ưu điểm

Mục lục:

Anonim

Bộ nhớ ảo là gì?

Bộ nhớ ảo là một cơ chế lưu trữ khiến người dùng ảo tưởng về việc có một bộ nhớ chính rất lớn. Nó được thực hiện bằng cách coi một phần của 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 với kích thước lớn hơn bộ nhớ chính có sẵn.

Do đó, thay vì tải một tiến trình dài trong bộ nhớ chính, HĐH sẽ tải các phần khác nhau của nhiều tiến trình trong bộ nhớ chính. Bộ nhớ ảo chủ yếu được thực hiện với phân trang nhu cầu và phân đoạn nhu cầu.

Trong hướng dẫn về Hệ điều hành này, bạn sẽ học:

  • Bộ nhớ ảo là gì?
  • Bộ nhớ ảo hoạt động như thế nào?
  • Phân trang nhu cầu là gì?
  • Các loại phương pháp thay thế Trang
  • Thay thế trang FIFO
  • Thuật toán tối ưu
  • Thay thế trang LRU
  • Ưu điểm của bộ nhớ ảo
  • Nhược điểm của bộ nhớ ảo

Tại sao cần bộ nhớ ảo?

Dưới đây là những lý do để sử dụng bộ nhớ ảo:

  • Bất cứ khi nào máy tính của bạn không có dung lượng trong bộ nhớ vật lý, nó sẽ ghi những gì nó 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 chạy Windows cần thêm bộ nhớ / RAM, sau đó được cài đặt trong hệ thống, nó sẽ 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 khả dụng cho nhiều trang đó.

Vì vậy, trong trường hợp đó, thay vì ngăn các trang xâm nhập 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 đến bộ nhớ phụ để tạo không gian cho các trang mới trong bộ nhớ chính.

Hãy cùng tìm hiểu về quản lý bộ nhớ ảo với sự trợ giúp của một ví dụ.

Ví dụ:

Giả sử rằng một hệ điều hành yêu cầu 300 MB bộ nhớ để lưu trữ tất cả các chương trình đang chạy. Tuy nhiên, hiện chỉ có 50 MB bộ nhớ vật lý khả dụng được lưu trữ trên RAM.

  • Sau đó, hệ điều hành sẽ thiết lập 250 MB bộ nhớ ảo và sử dụng một chương trình gọi là 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 yêu cầu.
  • Hệ điều hành bây giờ sẽ tiến hành xử lý bộ nhớ vì nó coi 300 MB bộ nhớ thực được lưu trữ trong RAM, ngay cả khi chỉ có 50 MB dung lượng trống.
  • Nhiệm vụ 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 nhu cầu là gì?

Cơ chế phân trang theo yêu cầu rất giống với hệ thống phân trang có hoán đổi trong đó các quy 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 xảy ra chuyển đổi ngữ cảnh, 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ó sẵn trong bộ nhớ chính vì nó đã bị hoán đổ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à chuyển quyền điều khiển gửi ngược lại từ chương trình đến hệ điều hành, đòi hỏi phải lưu trang trở lại 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 (First-in-first-out) là một 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ế đã nằm trong địa chỉ ảo của bộ nhớ trong thời gian dài nhất.

Đặc trưng:

  • Bất cứ khi nào một trang mới được tải, trang gần đây trong bộ nhớ sẽ bị xóa. Vì vậy, có thể dễ dàng quyết định trang nào cần được xóa vì số nhận dạng của trang đó luôn ở ngăn xếp FIFO.
  • Trang cũ nhất trong bộ nhớ chính là trang nên được chọn để thay thế trước tiên.

Thuật toán tối ưu

Phương pháp thay thế trang tối ưu chọn trang đó để thay thế mà thời gian đến tham chiếu tiếp theo là lâu nhất.

Đặc trư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 giống như để sử dụng trong một khoảng thời gian dài hơn. Nó chỉ sử dụng thời gian khi một trang cần được sử dụng.

Thay thế trang LRU

Dạng đầy đủ của LRU là trang Ít được Sử dụng Gần đây nhất. Phương pháp này giúp OS tìm thấy việ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 trang chẵn.

Làm thế nào nó hoạt động?

  • Trang không được sử dụng lâu nhất trong bộ nhớ chính là trang sẽ được chọn để thay thế.
  • Dễ dàng thực hiện, giữ một danh sách, thay thế các trang bằng cách nhìn lại thời gian.

Đặc trư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à sổ đăng ký lão hóa, chỉ định tuổi của chúng và số lượng các trang liên quan của chúng cũng nên được tham chiếu.
  • Trang không được sử dụng trong thời gian dài nhất trong bộ nhớ chính là trang nê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 thể hiện bằng số lần thất bạ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à ư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ỉ một đoạn chương trình cụ thể được yêu cầu để thực thi chương trình.
  • Nó rất hữu ích trong việc triển khai môi trường đa chương trình.
  • Nó cho phép bạn chạy nhiều ứng dụng hơn cùng một lúc.
  • Nó giúp bạn ghép nhiều chương trình lớn thành 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ớ.
  • Quy trình thậm chí có thể trở nên lớn hơn tất cả bộ nhớ vật lý.
  • Dữ liệu / mã phải được đọc từ đĩa bất cứ khi nào được yêu cầu.
  • Mã có thể được đặt ở bất kỳ đâu trong bộ nhớ vật lý mà không yêu cầu di dời.
  • Nhiều tiến trình nên được duy trì 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 nó được yêu cầu sau đó, nó sẽ bị xóa.
  • Nó cho phép nhiều ứng dụng được chạy cùng một lúc.
  • Không có giới hạn cụ thể về mức độ đa chương trình.
  • Các chương trình lớn nên được viết, 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:

  • Các ứ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 dung lượng ổ cứng hơn để bạn sử dụng.
  • 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óm lược:

  • Bộ nhớ ảo là một cơ chế lưu trữ khiến người dùng ảo tưởng về việc có một 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ó dung lượ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ó hoán đổi trong đó các quy 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.
  • 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 (First-in-first-out), bộ nhớ chọn trang để thay thế đã nằm trong đị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 chọn trang đó để thay thế mà thời gian đến tham chiếu tiếp theo là lâu nhất.
  • Phương pháp LRU giúp OS tìm thấy việ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ỉ một đoạn chương trình cụ thể được yêu cầu để thực thi chương trình.
  • Các ứng dụng có thể chạy chậm hơn nếu hệ thống đang sử dụng bộ nhớ ảo.