Hệ điều hành - Bộ nhớ ảo
Một máy tính có thể giải quyết nhiều bộ nhớ hơn dung lượng được cài đặt vật lý trên hệ thống. Bộ nhớ bổ sung này thực sự được gọi làvirtual memory và nó là một phần của đĩa cứng được thiết lập để mô phỏng RAM của máy tính.
Ưu điểm chính có thể nhìn thấy của lược đồ này là các chương trình có thể lớn hơn bộ nhớ vật lý. Bộ nhớ ảo phục vụ hai mục đích. Đầu tiên, nó cho phép chúng ta mở rộng việc sử dụng bộ nhớ vật lý bằng cách sử dụng đĩa. Thứ hai, nó cho phép chúng ta bảo vệ bộ nhớ, vì mỗi địa chỉ ảo được dịch sang một địa chỉ vật lý.
Sau đây là các tình huống, khi toàn bộ chương trình không được yêu cầu tải đầy đủ vào bộ nhớ chính.
Quy trình xử lý lỗi do người dùng viết chỉ được sử dụng khi xảy ra lỗi trong dữ liệu hoặc tính toán.
Một số tùy chọn và tính năng của chương trình có thể hiếm khi được sử dụng.
Nhiều bảng được gán một lượng không gian địa chỉ cố định mặc dù chỉ một lượng nhỏ của bảng được sử dụng thực sự.
Khả năng thực thi một chương trình chỉ có một phần trong bộ nhớ sẽ phản lại nhiều lợi ích.
Số lượng I / O ít hơn sẽ cần thiết để tải hoặc hoán đổi từng chương trình người dùng vào bộ nhớ.
Một chương trình sẽ không còn bị giới hạn bởi dung lượng bộ nhớ vật lý có sẵn.
Mỗi chương trình người dùng có thể chiếm ít bộ nhớ vật lý hơn, nhiều chương trình hơn có thể được chạy cùng lúc, với sự gia tăng tương ứng trong việc sử dụng CPU và thông lượng.
Bộ vi xử lý hiện đại dành cho mục đích sử dụng chung, đơn vị quản lý bộ nhớ, hoặc MMU, được tích hợp sẵn trong phần cứng. Công việc của MMU là dịch các địa chỉ ảo thành địa chỉ vật lý. Dưới đây là một ví dụ cơ bản:
Bộ nhớ ảo thường được thực hiện bởi phân trang nhu cầu. Nó cũng có thể được thực hiện trong một hệ thống phân đoạn. Phân đoạn nhu cầu cũng có thể được sử dụng để cung cấp bộ nhớ ảo.
Phân trang nhu cầu
Hệ thống phân trang theo yêu cầu khá giống với hệ thống phân trang có hoán đổi nơi các quy trình nằm 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. Khi xảy ra chuyển đổi ngữ cảnh, hệ điều hành không sao chép bất kỳ trang nào của chương trình cũ ra đĩ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ó chỉ 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 khi chúng được tham chiếu.
Trong khi thực thi một chương trình, nếu chương trình tham chiếu đến một trang không có sẵn trong bộ nhớ chính vì nó đã bị hoán đổi cách đây ít lâu, bộ xử lý sẽ coi tham chiếu bộ nhớ không hợp lệ này là page fault và chuyển quyền điều khiển từ chương trình sang hệ điều hành để yêu cầu trang trở lại bộ nhớ.
Ưu điểm
Sau đây là những ưu điểm của Phân trang theo yêu cầu -
- Bộ nhớ ảo lớn.
- Sử dụng bộ nhớ hiệu quả hơn.
- Không có giới hạn về mức độ đa chương trình.
Nhược điểm
Số lượng bảng và số lượng chi phí của bộ xử lý để xử lý các ngắt trang lớn hơn so với trường hợp của các kỹ thuật quản lý phân trang đơn giản.
Thuật toán thay thế trang
Thuật toán thay thế trang là các kỹ thuật sử dụng Hệ điều hành quyết định trang bộ nhớ nào sẽ hoán đổi, ghi vào đĩa khi một trang bộ nhớ cần được cấp phát. Phân trang xảy ra bất cứ khi nào xảy ra lỗi trang và một trang miễn phí không thể được sử dụng để hạch toán mục đích phân bổ vì lý do các trang không có sẵn hoặc số lượng trang miễn phí thấp hơn số trang được yêu cầu.
Khi trang được chọn để thay thế và được phân trang, được tham chiếu lại, nó phải đọc từ đĩa và điều này yêu cầu hoàn thành I / O. Quá trình này quyết định chất lượng của thuật toán thay thế trang: thời gian chờ trang càng ít thì thuật toán càng tốt.
Thuật toán thay thế trang xem xét thông tin hạn chế về việc truy cập các trang do phần cứng cung cấp và cố gắng chọn trang nào nên được thay thế để giảm thiểu tổng số trang bị bỏ lỡ, đồng thời cân bằng nó với chi phí lưu trữ chính và thời gian xử lý của thuật toán chinh no. Có nhiều thuật toán thay thế trang khác nhau. Chúng tôi đánh giá một thuật toán bằng cách chạy nó trên một chuỗi tham chiếu bộ nhớ cụ thể và tính toán số lỗi trang,
Chuỗi tham chiếu
Chuỗi tham chiếu bộ nhớ được gọi là chuỗi tham chiếu. Các chuỗi tham chiếu được tạo ra một cách giả tạo hoặc bằng cách truy tìm một hệ thống nhất định và ghi lại địa chỉ của mỗi tham chiếu bộ nhớ. Lựa chọn thứ hai tạo ra một số lượng lớn dữ liệu, chúng tôi lưu ý hai điều.
Đối với một kích thước trang nhất định, chúng ta chỉ cần xem xét số trang, không phải toàn bộ địa chỉ.
Nếu chúng ta có tham chiếu đến một trang p, sau đó bất kỳ tham chiếu ngay sau đến trang psẽ không bao giờ gây ra lỗi trang. Trang p sẽ ở trong bộ nhớ sau lần tham chiếu đầu tiên; các tài liệu tham khảo ngay sau đây sẽ không bị lỗi.
Ví dụ: hãy xem xét chuỗi địa chỉ sau - 123,215,600,1234,76,96
Nếu kích thước trang là 100, thì chuỗi tham chiếu là 1,2,6,12,0,0
Thuật toán First In First Out (FIFO)
Trang cũ 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 từ phần đuôi và thêm các trang mới ở phần đầu.
Thuật toán trang tối ưu
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. Đã tồn tại một thuật toán thay thế trang tối ưu và được gọi là OPT hoặc MIN.
Thay thế trang sẽ không được sử dụng trong thời gian dài nhất. Sử dụng thời gian khi một trang sẽ được sử dụng.
Thuật toán ít được sử dụng gần đây (LRU)
Trang không được sử dụng trong thời gian dài 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.
Thuật toán đệm trang
- Để quá trình bắt đầu nhanh chóng, hãy giữ một nhóm các khung hình miễn phí.
- Trên trang bị lỗi, hãy chọn một trang để thay thế.
- Viết trang mới trong khung của pool tự do, đánh dấu bảng trang và khởi động lại quá trình.
- Bây giờ ghi trang bẩn ra khỏi đĩa và đặt khung chứa trang đã thay thế vào vùng trống.
Thuật toán ít được sử dụng nhất (LFU)
Trang có số lượng nhỏ nhất là trang sẽ được chọn để thay thế.
Thuật toán này gặp phải tình huống trong đó một trang được sử dụng nhiều trong giai đoạn đầu của quy trình, nhưng sau đó không bao giờ được sử dụng lại.
Thuật toán được sử dụng thường xuyên nhất (MFU)
Thuật toán này dựa trên lập luận rằng trang có số lượng nhỏ nhất có thể mới được đưa vào và vẫn chưa được sử dụng.