Hệ Điều HànhC7: Bộ Nhớ Ảo Là hình ảnh của bộ nhớ thực Tách rời địa chỉ quá trình truy cập và địa chỉ trên bộ nhớ thực Địa chỉ ảo V: tham khảo bởi process Địa chỉ thực R : có tron
Trang 1Hệ Điều Hành
C7: Bộ Nhớ Ảo
Là hình ảnh của bộ nhớ thực
Tách rời địa chỉ quá trình truy cập và địa chỉ trên bộ nhớ thực
Địa chỉ ảo V: tham khảo bởi process
Địa chỉ thực R : có trong bộ nhớ thực
Địa chỉ ảo được ánh xạ thành địa chỉ thực mỗi khi quá trình thực thi dynamic address translation
Sự cần thiết của bộ nhớ ảo
Dễ phát triển ứng dụng
Lưu trữ được nhiều quá trình trong bộ nhớ
Tái định vị (relocation) các quá trình
Cho các quá trình chia sẻ vùng nhớ dễ dàng
Cách thực hiện : ánh xạ khối (hình 1)
Dùng giả lập sự liên tục của bộ nhớù (hình 2)
Trang 2 CÁCH THỰC HIỆN ÁNH XẠ KHỐI
Các khối bộ nhớ có kích thước bằng nhau
Khối trên bộ nhớ ảo: trang (page)
Khối trên bộ nhớ thựïc: page frame
Mỗi địa chỉ ảo có hai thành phần:
Chỉ số trang (page number)
Độ dời của ô nhớ trong trang đó (offset)
Mỗi quá trình có một bảng ánh xạ trang (page table)
Mỗi mục (entry) của bảng ánh xạ trang chứa
Present bit
Secondary storage address
Page frame number
Modified bit
Các bít điều khiển khác
Dùng 1 register chứa địa chỉ thực của bảng ánh xạ trang của quá trình đang chạy
TRANG
Trang 3 LƯU TRỮ BẢNG ÁNH XẠ TRANG
Không gian địa chỉ ảo rất lớn
Dùng 32 64 bit địa chỉ
Với 32 bít địa chỉ, trang có size 4KB, bảng ánh xạ trang sẽ có 2^20 mục
Làm sao lưu trữ bảng ánh xạ trang của mọi quá trình ?
Giải pháp
Lưu trữ page table trong bộ nhớ ảo và phân trang nó
Một số hiện thực
o Bảng ánh xạ trang đa cấp
o Bảng ánh xạ trang ngược
Phụ thuộc phần cứng (size của frame)
Kích thước trang nên lớn hay nhỏ
Tỉ lệ page fault phụ thuộc vào page size và số frame cấp cho quá trình
Các khối bộ nhớ có kích thước khác nhau tùy thuộc yêu cầu của quá trình.
Chỉ số đoạn (Segment number)
Độ dời của ô nhớ trong đoạn (Displacement)
Dễ dàng mở rộng segment, thay đổi và tái biên dịch chương trình mà không cần link hay
Trang 4 PHÂN TRANG THEO YÊU CẦU
Kỹ thuật phân trang theo yêu cầu sử dụng kỹ thuật phân trang kết hợp với kỹ thuật swapping
Một quá trình được xem như tập các trang, thường trú trong bộ nhớ phụ
Khi cần xử lý, quá trình sẽ được nạp vào bộ nhớ chính và chỉ nạp những trang cần thiết trong thời điểm hiện tại Một trang được nạp vào bộ nhớ chính khi có yêu cầu
Với mô hình này, cần cung cấp một cơ chế phần cứng giúp phân biệt các trang đang ở trong bộ nhớ chính và các trang trên đĩa Có thể sử dụng lại bit valid – invalid nhưng với ngữ cảnh mới :
Valid : trang tương ứng là hợp lệ và ở trong bộ nhớ chính
Invalid : hoặc trang bất hợp lệ (không thuộc về không gian địa chỉ của quá trình), hoặc trang hợp lệ nhưng đang lưu trên bộ nhớ phụ
Trang 5 LOÃI TRANG( )
Trang 6 CÁC CHIẾN LƯỢC QUẢN LÝ
Thay thế trang
Phân trang theo yêu cầu
Các thuật toán thay thế trang
Khi xảy ra một lỗi trang
Nếu không có khung trang nào trống, HĐH thực hiện công việc thay thế trang chọn 1 trang trong bộ nhớ mà không sử dụng tại thời điểm hiện tại ra không gian Swapping trên đĩa để giải phóng 1 khung trang dành chổ nạp trang cần truy xuất vào bộ nhớ
Có thể giảm bớt số lần chuyển trang bằng cách sử dụng thêm một bit cập nhật (dirty bit) phản ánh tình trạng trang có bị cập nhật hay không
Bit cập nhật là 1 : thì trang cần được lưu tưữ trên đĩa
Bit cập nhật là 0 : thì trang không bị thay đổi, không cần lưu trữ trang trở lại đĩa
Số hiệu trang valid – invalidBit Dirty bit
Trang 7 PHÂN TRANG THEO YÊU CẦU
Kỹ thuật phân trang theo yêu cầu có thể ảnh hưởng mạnh đến tình trạng hoạt động của hệ thống
Để cài đặt kỹ thuật phân trang cần giải quyết hai vấn đề
Thuật toán cấp phát khung trang
Thuật toán thay thế trang
Thời gian thật sự cần để thực hiện một truy xuất bộ nhớ (TEA) là :
Gọi p là xác suất xảy ra một lỗi trang (0≤ p≤1)
o p = 1 : một truy xuất sẽ phát sinh lỗi một trang
o p = 0 : không có lỗi trang nào
TEA=(1-p)ma + p(tdp) [+swap out] + swap in + tái kích hoạt
ma : thời gian truy xuất bộ nhớ tdp : thời gian xử lý lỗi trang
Vấn đề chính khi thay thế trang là :
Chọn lựa 1 trang để chuyển ra bộ nhớ phụ
Chọn trang đưa ra bộ nhớ phụ là trang mà sau khi thay thế sẽ gây ra ít lỗi nhất
Chiến lược thay trang:
1 Tìm vị trí của trang được yêu cầu trên đĩa
2 Tìm một frame rỗi.
- Nếu có frame rỗi thì sử dụng nó
- Nếu không có, sử dụng một giải thuật thay trang để chọn một frame nạn nhân
Trang 8 Chọn trang thay thế là trang ở trong bộ nhớ thực trong khoảng thời gian lâu nhất
Nghịch lý Belady
Chọn trang thay thế là trang đã không được tham khảo trong thời gian lâu nhất
Là giải thuật xấp xỉ LRU
Còn gọi là giải thuật FIFO cải tiến
Mỗi trang có 1 bit tham chiếu R(reference), lúc đầu là 0
Trang được chọn xét thay thế theo kiểu FIFO
Trang có R=0 sẽ được thay thế ngay
Trang có R=1 được đưa vào cuối hàng và đặt lại R=0 Hệ thống chọn lựa các trang còn lại trong hàng đợi