Hệ Điều Hành C7: BộNhớẢo KHÁI NIỆM 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 ÁNH XẠ ĐỊA CHỈ • 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) 1 CÁCH THỰC HIỆN ÁNH XẠ KHỐI KỸ THUẬT PHÂN TRANG (PAGING) • 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 ÁNH XẠ ĐỊA CHỈ TRỰC TIẾPTRONG HỆ THỐNG PHÂN TRANG 2 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 VẤN ĐỀ KÍCH THƯỚC TRANG • 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 KỸ THUẬT PHÂN ĐOẠN (SEGMENTATION) • 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. • Đòa chỉ ảo: Chỉ số đoạn (Segment number) Độ dời của ô nhớ trong đoạn (Displacement) • Ưu điểm: 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 load lại Cho phép chia sẻ, bảo vệ giữa các process. • Mỗi quá trình có một bảng ánh xạ đoạn (segment table) • Mỗi mục (entry) của bảng ánh xạ đoạn chứa Present bit Secondary storage address Chỉ số segment, chiều dài segment Modified bit Các bít điều khiển khác ÁNH XẠ ĐỊA CHỈ TRONG HỆ THỐNG PHÂN ĐOẠN 3 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ụ 4 LOÃI TRANG( ) 5 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. 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 Bit valid – invalid Dirty bit 6 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 THAY THẾ 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. 3. Đọc trang được yêu cầu vào frame rỗi. Cập nhật bảng phân trang và bảng quản lý frame rỗi. 4. Khởi động lại tiến trình. GIẢI THUẬT FIFO • Chuỗi tham chiếu: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 • 3 frames (với mỗi tiến trình: 3 trang có thể nạp vào bộnhớ tại một thời điểm) 7 • 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 GIẢI THUẬT LRU (Least Recently Used) • Chọn trang thay thế là trang đã không được tham khảo trong thời gian lâu nhất DỊP MAY THỨ HAI (Second Chance) • 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. 8 9