Dưới đây là Bài giảng Hệ điều hành - Bài 7: Quản lý bộ nhớ ảo. Bài giảng cung cấp cho các bạn những kiến thức về việc phân trang theo yêu cầu, thay thế trang, cấp phát khung trang, trì trệ toàn hệ thống.
Ths Lương Trần Hy Hiến www.hutechos.tk Mở đầu Phân trang theo yêu cầu Thay trang Cấp phát khung trang Trì trệ tồn hệ thống Bộ nhớ ảo kỹ thuật cho phép không gian địa logic lớn ánh xạ vào nhớ vật lý nhỏ Bộ nhớ ảo triển khai cách phân trang phân đoạn, phân trang thông dụng Bộ nhớ ảo cho phép chạy tiến trình cực lớn cho phép gia tăng mức độ đa chương được, tăng hiệu suất sử dụng CPU Ngồi ra, giải phóng người lập trình ứng dụng khỏi việc lo lắng khả sẵn có nhớ • Hai đặc trưng quan trọng kiến trúc phân đoạn phân trang: • Mọi truy xuất vùng nhớ tiến trình chuyển đổi địa lúc thi hành (run-time) swap-in, swap-out • Một tiến trình phân thành số phần (trang đoạn) không thiết phải nằm liên tục Nếu hai tính chất bảo đảm khơng thiết tất trang phân đoạn phải nằm nhớ lúc thi hành • Ưu điểm: • Có nhiều tiến trình nhớ giải thuật lập lịch tối ưu nâng cao mức độ đa chương Một tiến trình lớn kích thước nhớ Các thao tác truy cập vùng nhớ có khuynh hướng cụm lại (cluster) Sau khoảng thời gian đủ dài, cụm thay đổi, khoảng thời gian ngắn, xử lý chủ yếu làm việc số cụm định Các câu lệnh chủ yếu (thi hành từ xuống dưới) Câu lệnh không câu lệnh rẽ nhánh (câu lệnh điều kiện) thường chiếm tỉ lệ Trong khoảng thời gian ngắn, thị thông thường nằm số hàm, thủ tục định Hầu hết câu lệnh lặp chứa số thị lặp lại nhiều lần Do suốt thời gian lặp, việc tính tốn diễn vùng nhỏ liên tục Khi truy cập vào cấu trúc liệu trước đó, thơng thường câu lệnh đặt liền truy cập đến thành phần khác cấu trúc liệu • • Cần có hỗ trợ phần cứng kiến trúc phân trang phân đoạn • Đã khảo sát Cần có thuật tốn hiệu để quản lý việc chuyển đổi trang, phân đoạn từ nhớ vào nhớ phụ ngược lại • Nguyên lý cục • Đĩa cứng hoạt động theo khối • Dự đốn trang phân đoạn dựa vào lịch sử truy xuất vùng nhớ trước • Các sách cần xét: • Chính sách nạp (fetch policy): trang nạp vào nhớ? • Chính sách đặt (placement policy): trang phân đoạn đặt đâu nhớ chính? • Chính sách thay (replacement policy): chọn trang đưa khỏi nhớ phụ cần nạp trang vào nhớ chính? • • Kỹ thuật phân trang theo yêu cầu (demand paging) Kỹ thuật phân đoạn theo yêu cầu (demand segmentation) • Khó kích thước khơng đồng 10 • Ý tưởng: • Ghi nhận thời điểm cuối trang truy cập • Thay trang chưa truy cập lâu • Dùng khứ gần để dự đốn tương lai • FIFO: thời điểm nạp vào • Tối ưu: thời điểm truy cập 25 • Các cách cài đặt: • Sử dụng đếm • Mỗi phần tử bảng trang có thành phần ghi nhận thời điểm truy xuất • CPU có đếm, tăng có truy xuất đến nhớ • Cập nhật thời điểm theo đếm • Trang có thời điểm truy xuất nhỏ bị thay • Sử dụng stack • Lưu số hiệu trang • Khi trang truy xuất chuyển số hiệu trang lên đầu stack • Thay trang có số hiệu đáy stack 26 • LRU đòi hỏi phần cứng hỗ trợ nhiều – Biến đếm – Stack • Tìm thuật tốn xấp xỉ LRU 28 • Có thuật tốn • Sử dụng nhiều bit tham khảo (reference bit) • Cơ hội thứ hai • Cơ hội thứ hai cải tiến • Ý tưởng chính: bit tham khảo thêm vào phần tử bảng trang • Ban đầu = • Có truy xuất • Sau chu kỳ qui định trước, kiểm tra bit gán trở lại • Biết trang truy xuất gần thứ tự truy xuất 29 Ý tưởng: • bit tham khảo biết thông tin chu kỳ • Nhiều bit tham khảo biết thơng tin nhiều chu kỳ • Sử dụng thêm bit tham khảo cho phần tử bảng trang • Sau chu kỳ, ngắt phát sinh, HĐH đặt bit tham khảo trang (0 1) vào bit cao bit, loại bỏ bit cuối (thấp nhất) • bit lưu trữ tình hình truy xuất đến trang chu kỳ gần • 10001000 tốt 01111111 • Nếu xem số ngun khơng dấu trang thay trang có số tương ứng nhỏ • 30 • • • Ý tưởng: • Sử dụng một bit tham khảo • Ý tưởng FIFO có cải tiến • Nếu bit tham khảo = thay trang • Ngược lại, cho trang hội thứ hai đặt bit tham khảo 0, chọn trang FIFO Trang cho hội thứ hai đặt vào cuối hàng đợi Một trang cho hội thứ hai không bị thay trước trang cịn lại bị thay Có thể cài đặt xâu vịng (danh sách liên kết vịng) 31 • Ý tưởng: • Xét cặp bit: reference bit dirty bit • (0,0): khơng truy xuất, khơng sửa đổi trang tốt • • • • để thay (0,1): khơng truy xuất, có sửa đổi cần lưu lại trang thay (1,0): có truy xuất, chưa sửa đổi có khả sử dụng tiếp (1,1): có truy xuất, có sửa đổi có khả sử dụng tiếp thay cần lưu lại Lớp có độ ưu tiên thấp lớp cuối có độ ưu tiên cao 32 • Trả lời câu hỏi: • Mỗi tiến trình cấp phát khung trang? • Các hướng tiếp cận: • Cấp phát cố định: • Cấp phát cơng • Cấp phát theo tỉ lệ • Cấp phát theo độ ưu tiên 33 • • Mỗi tiến trình cấp phát số lượng khung trang cố định từ đầu kết thúc thi hành Có hướng • Cấp phát cơng • M khung trang, n tiến trình tiến trình m/n • Cấp phát theo tỉ lệ • Si: kích thước nhớ ảo tiến trình I • S = sum(Si) • M khung trang • Tiến trình I có: (Si/S)*M khung trang 34 Số khung trang dành cho tiến trình phụ thuộc vào độ ưu tiên tiến trình thời điểm xác định • Nếu tiến trình pi phát sinh lỗi trang, chọn khung trang để thay khung trang tiến trình có độ ưu tiên thấp • 35 • Thay tồn cục Trang “nạn nhân” khung trang hệ thống, không thiết phải khung trang tiến trình • Thay cục Trang nạn nhân số khung trang tiến trình • Có vẻ thay tồn cục linh hoạt gây hiệu ứng trì trệ hệ thống (thrashing) 36 Sự trì trệ (thrashing) tượng tiến trình thường xuyên phát sinh lỗi trang phải dùng nhiều thời gian sử dụng CPU để thực việc thay trang thời gian dành cho xử lý cơng việc cịn hệ thống gần khả xử lý công việc Tốc độ phát sinh lỗi trang tăng cao, không công việc kết thúc tất tiến trình bận rộn với việc thay trang tình trạng trì trệ tồn hệ thống Ngun nhân tiến trình khơng có đủ khung trang để chứa trang cần thiết cho xử lý cơng việc 37 Để tránh tình trạng trì trệ tồn hệ thống mà trì mức độ đa chương cao, cần phải có giải pháp xác định điều chỉnh mức độ cấp phát khung trang cho tiến trình cho khơng thừa khơng thiếu Hai số giải pháp mơ hình tập làm việc kiểm sốt tần suất lỗi trang 38 39 ... Trì trệ toàn hệ thống Bộ nhớ ảo kỹ thuật cho phép không gian địa logic lớn ánh xạ vào nhớ vật lý nhỏ Bộ nhớ ảo triển khai cách phân trang phân đoạn, phân trang thông dụng Bộ nhớ ảo cho phép... sẵn có nhớ • Hai đặc trưng quan trọng kiến trúc phân đoạn phân trang: • Mọi truy xuất vùng nhớ tiến trình chuyển đổi địa lúc thi hành (run-time) swap-in, swap-out • Một tiến trình phân thành... đến thành phần khác cấu trúc liệu • • Cần có hỗ trợ phần cứng kiến trúc phân trang phân đoạn • Đã khảo sát Cần có thuật toán hiệu để quản lý việc chuyển đổi trang, phân đoạn từ nhớ vào nhớ phụ