Cấp phát khung trang Cấp phát khung trang Bởi: Giảng viên Trần Hạnh Nhi Vấn đề đặt làm để cấp phát vùng nhớ tự có kích thước cố định cho tiến trình khác nhau? Trong trường hợp đơn giản nhớ ảo hệ đơn nhiệm, cấp phát cho tiến trình người dùng tất khung trang trống Vấn đề nảy sinh kết hợp kỹ thuật phân trang theo yêu cầu với đa chương : cần phải trì nhiều tiến trình nhớ lúc, tiến trình cấp khung trang Số khung trang tối thiểu: Với tiến trình, cần phải cấp phát số khung trang tối thiểu để tiến trình hoạt động Số khung trang tối thiểu quy định kiến trúc của thị.Khi lỗi trang xảy trước thị hành hoàn tất, thị cần tái khởi động, lúc cần có đủ khung trang để nạp tất trang mà thị truy xuất Số khung trang tối thiểu qui định kiến trúc máy tính, số khung trang tối đa xác định dung lượng nhớ vật lý sử dụng Các thuật toán cấp phát khung trang Có hai hướng tiếp cận: Cấp phát cố định: Cấp phát công bằng: có m khung trang n tiến trình, tiến trình cấp m /n khung trang Cấp phát theo tỷ lệ: tùy vào kích thước tiến trình để cấp phát số khung trang : si = kích thước nhớ ảo cho tiến trình pi 1/5 Cấp phát khung trang S = Σ si m = số lượng tổng cộng khung trang sử dụng Cấp phát khung trang cho tiến trình pi: = (si / S) m Cấp phát theo độ ưu tiên : sử dụng ý tưởng cấp phát theo tỷ lệ, nhưng số lượng khung trang cấp cho tiến trình phụ thuộc vào độ ưu tiên tiến trình, phụ thuộc kích thước tiến trình: Nếu tiến trình pi phát sinh lỗi trang, chọn khung trang để thay thế, chọn khung trang tiến trình khác với độ ưu tiên thấp để thay Thay trang toàn cục hay cục Có thể phân thuật toán thay trang thành hai lớp chính: Thay toàn cục: lỗi trang xảy với tiến trình , chọn trang « nạn nhân » từ tập tất khung trang hệ thống, khung trang cấp phát cho tiến trình khác Thay cục bộ: yêu cầu chọn trang thay tập khung trang cấp cho tiến trình phát sinh lỗi trang Một khuyết điểm thuật toán thay toàn cục tiến trình kiểm soát tỷ lệ phát sinh lỗi trang Vì thế, thuật toán thay toàn cục nhìn chung cho phép hệ thống có nhiều khả xử lý hơn, dẫn hệ thống đến tình trạng trì trệ toàn (thrashing) Trì trệ toàn hệ thống (Thrashing) Nếu tiến trình đủ khung trang để chứa trang cần thiết cho xử lý, thường xuyên phát sinh lỗi trang , phải dùng đến nhiều thời gian sử dụng CPU để thực thay trang Một hoạt động phân trang gọi trì trệ ( thrashing) Một tiến trình lâm vào trạng thái trì trệ sử dụng nhiều thời gian để thay trang để xử lý ! Hiện tượng trì trệ ảnh hưởng nghiêm trọng đến hoạt động hệ thống, xét tình sau : Hệ điều hành giám sát việc sử dụng CPU Nếu hiệu suất sử dụng CPU thấp, hệ điều hành nâng mức độ đa chương cách đưa thêm tiến trình vào hệ thống 2/5 Cấp phát khung trang Hệ thống sử dụng thuật toán thay toàn cục để chọn trang nạn nhân thuộc tiến trình để có chỗ nạp tiến trình mới, thay trang tiến trình xử lý hành Khi có nhiều tiến trình hệ thống hơn, tiến trình cấp khung trang hơn, phát sinh nhiều lỗi trang Khi tiến trình phát sinh nhiều lỗi trang , chúng phải trải qua nhiều thời gian chờ thao tác thay trang hoàn tất, lúc hiệu suất sử dụng CPU lại giảm Hệ điều hành lại quay trở lại bước Theo kịch đây, hệ thống lâm vào tình trạng luẩn quẩn việc giải phóng trang để cấp phát thêm khung trang cho tiến trình, tiến trình khác lại thiếu khung trang tiến trình tiếp tục xử lý Đây tình trạng trì trệ toàn hệ thống Khi tình trạng trì trệ xảy ra, hệ thống gần khả xử lý, tốc độ phát sinh lỗi trang tăng cao khủng khiếp, không công việc kết thúc tất tiến trình bận rộn với việc phân trang ! Để ngăn cản tình trạng trì trệ xảy ra, cần phải cấp cho tiến trình đủ khung trang cần thiết để hoạt động Vấn đề cần giải biết tiến trình cần trang? Mô hình cục ( Locality) : theo lý thuyết cục bộ, tiến trình xử lý, có khuynh hướng di chuyển từ nhóm trang cục đến nhóm trang cục khác Một nhóm trang cục tập trang tiến trình dùng đến khoảng thời gian Một chương trình thường bao gồm nhiều nhóm trang cục khác chúng giao Mô hình « tập làm việc » (working set) Tiếp cận : Mô hình working set đặt sở lý thuyết cục Mô hình sử dụng tham số Δ , để định nghĩa cửa sổ cho working set Giả sử khảo sát Δ đơn vị thời gian (lần truy xuất trang) cuối cùng, tập trang tiến trình truy xuất đến Δ lần truy cập cuối gọi working set tiến trình thời điểm Nếu trang tiến trình truy xuất đến, nằm working set, không sử dụng , bị loại khỏi working set tiến trình sau Δ đơn vị thời gian kể từ lần truy xuất cuối đến Như working set xấp xỉ khái niệm nhóm trang cục 3/5 Cấp phát khung trang Hình 2.30 Mô hình working set Một thuộc tính quan trọng working set kích thước Nếu tính toán kích thước working set, WSSi, cho tiến trình hệ thống, xem : D = Σ WSSi với D tổng số khung trang yêu cầu cho toàn hệ thống Mỗi tiến trình sử dụng trang working set nó, nghĩa tiến trình i yêu cầu WSSi khung trang Nếu tổng số trang yêu cầu vượt tổng số trang sử dụng hệ thống (D > m), xảy tình trạng trì trệ toàn Sử dụng: Hệ điều hành giám sát working set tiến trình cấp phát cho tiến trình tối thiểu khung trang để chứa đủ working set Như tiến trình nạp vào hệ thống có đủ khung trang tự cho working set Nếu tổng số khung trang yêu cầu tiến trình hệ thống vượt khung trang sử dụng, hệ điều hành chọn tiến trình để tạm dừng, giải phóng bớt khung trang cho tiến trình khác hoàn tất Thảo luận: Chiến lược working set loại trừ tình trạng trì trệ đảm bảo mức độ đa chương hệ thống cao có thể, cho phép sử dụng tối ưu CPU Điểm khó khăn mô hình theo vết working set tiến trình thời điểm Có thể xấp xỉ mô hình working set với ngắt đồng hồ sau chu kỳ định bit reference: phát sinh ngắt đồng hồ sau T lần truy xuất nhớ xảy ngắt đồng hồ, kiểm tra trang có bit reference 1, trang xem thuộc working set Một hệ thống sử dụng kỹ thuật phân trang theo yêu cầu túy (một trang không nạp trước có yêu cầu truy xuất) để lộ đặc điểm bất lợi : số lượng lớn lỗi trang xảy khởi động tiến trình Tình trạng hậu khuynh 4/5 Cấp phát khung trang hướng đạt tới việc đưa nhóm trang cục vào nhớ Tình trạng xảy tiến trình bị chuyển tạm thời nhớ phụ, tái kích hoạt, tất trang tiến trình chuyển lên đĩa phải mang trở lại vào nhớ, loạt lỗi trang lại xảy Để ngăn cản tình hình lỗi trang xảy nhiều thời điểm khởi động tiến trình, sử dụng kỹ thuật tiền phân trang (prepaging) : nạp vào nhớ lần tất trang working set tiến trình Tần suất xảy lỗi trang Tiếp cận: Tần suất lỗi trang cao khiến tình trạng trì trệ hệ thống xảy Khi tần suất lỗi trang cao, tiến trình cần thêm số khung trang Khi tần suất lỗi trang thấp, tiến trình sỡ hữu nhiều khung trang mức cần thiết Có thể thiết lập giá trị chặn chặn cho tần suất xảy lỗi trang, trực tiếp ước lượng kiểm soát tần suất lỗi trang để ngăn chặn tình trang trì trệ xảy : Nếu tần suất lỗi trang vượt chặn trên, cấp cho tiến trình thêm khung trang Nếu tần suất lỗi trang thấp chặn dưới, thu hồi bớt khung trang từ tiến trình 5/5 .. .Cấp phát khung trang S = Σ si m = số lượng tổng cộng khung trang sử dụng Cấp phát khung trang cho tiến trình pi: = (si / S) m Cấp phát theo độ ưu tiên : sử dụng ý tưởng cấp phát theo... lượng khung trang cấp cho tiến trình phụ thuộc vào độ ưu tiên tiến trình, phụ thuộc kích thước tiến trình: Nếu tiến trình pi phát sinh lỗi trang, chọn khung trang để thay thế, chọn khung trang. .. trang cấp phát cho tiến trình khác Thay cục bộ: yêu cầu chọn trang thay tập khung trang cấp cho tiến trình phát sinh lỗi trang Một khuyết điểm thuật toán thay toàn cục tiến trình kiểm soát tỷ lệ phát