Tìm hiểu các thuật toán quản lý bộ nhớ

16 910 1
Tìm hiểu các thuật toán quản lý bộ nhớ

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG NGHỆ THÔNG TIN CHUYÊN ĐỀ Tìm Hiểu Các Thuật Toán Quản Lý Bộ Nhớ Giảng viên hướng dẫn : Nguyễn Mạnh Sơn Sinh viên thực : Nguyễn Văn Giang Nguyễn Đình Hiển Bùi Tuấn Nghĩa Lớp : L14CN Nhóm : 12 Hà Nội, tháng 06 /2016 Danh sách thành viên nhóm: Nguyễn Văn Giang Nguyễn Đình Hiển Bùi Tuấn Nghĩa Tên đề tài: Tìm hiểu thuật toán quản lý nhớ Giới thiệu đề tài: Hiện với phổ biến máy tính thiết bị điện tử nhằm mục đích phục vụ nhu cầu sinh hoạt, giải trí, công việc… Con người không ngừng nghiên cứu, cải tiến thiết bị nhân tố quan trọng hệ thống nhớ Vậy để cấu thành, để quản lý quản lý cách có hiệu Với chuyên đề chúng em mong góp chút kiến thức để người hiểu sâu vấn đề Quản lý nhớ điều hành nhớ cấp bậc hệ thống Mục đích quan trọng việc quản lý nhớ cung cấp cách thức để cấp phát động ô nhớ cho chương trình đc yêu cầu giải phóng ô nhớ không cần dung Đây việc quan trọng với hệ thống máy tính có nhiều công việc thực thời điểm Nhiều phương pháp tìm nhằm tang hiệu việc quản lý nhớ Những hệ thống nhớ ảo giúp tách địa ô nhớ dùng khỏi địa thực, từ cho phép chia sẻ công việc tang lượng RAM cách hiệu nhờ đánh dấu địa chuyển đến vùng lưu trữ thứ Chất lượng việc quản lý nhớ ảo ảnh hưởng lớn đến hiệu làm việc hệ thống nói chung Các nội dung chính: CHƯƠNG : Tổng quan quản lý nhớ 1.1Khái niệm Bộ nhớ thiết bị lưu trữ thông qua CPU trao đổi thông tin với môi trường ngoài, nhu cầu tổ chức, quản lý nhớ nhiệm vụ trọng tâm hàng đầu hệ điều hành 1.1Nhu cầu nhớ tiến trình Bộ nhớ tổ chức mảng chiều từ nhớ (word), từ nhớ có địa Việc trao đổi thông tin với môi trường thực thông qua thao tác đọc ghi liệu vào địa cụ thể nhớ Hầu hết hệ điều hành đại cho phép chế độ đa nhiệm nhằm nâng cao hiệu suất sử dụng CPU Tuy nhiên kỹ thuật lại làm nảy sinh nhu cầu chia sẻ nhớ tiến trình khác Vấn đề nằm chỗ: nhớ hữu hạn yêu cầu nhớ vô hạn CHƯƠNG : Các thuật toán quản lý nhớ Vấn đề thay trang chọn lựa trang « nạn nhân » để chuyển nhớ phụ Có nhiều thuật toán thay trang khác nhau, tất chung mục tiêu : chọn trang « nạn nhân » trang mà sau thay gây lỗi trang Có thể đánh giá hiệu qủa thuật toán cách xử lý chuỗi địa cần truy xuất tính toán số lượng lỗi trang phát sinh Ví dụ: Giả sữ theo vết xử lý tiến trình nhận thấy tiến trình thực truy xuất địa theo thứ tự sau : 0100, 0432, 0101, 0162, 0102, 0103, 0104, 0101, 0611, 0102, 0103,0104, 0101, 0610, 0102, 0103, 0104, 0101, 0609, 0102, 0105 Nếu có kích thước trang 100 bytes, viết lại chuỗi truy xuất giản lược sau : 1, 4, 1, 6, 1, 6, 1, 6, Để xác định số lỗi trang xảy sử dụng thuật toán thay trang chuỗi truy xuất cụ thể, cần phải biết số lượng khung trang sử dụng hệ thống Để minh hoạ thuật toán thay trang trình bày, chuỗi truy xuất sử dụng : 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, Thuật toán FIFO Tiếp cận: Ghi nhận thời điểm trang mang vào nhớ Khi cần thay trang, trang nhớ lâu chọn Ví dụ : sử dụng khung trang , ban đầu trốn Ghi : * : có lỗi trang Thảo luận: Để áp dụng thuật toán FIFO, thực tế không thiết phải ghi nhận thời điểm trang nạp vào nhớ, mà cần tổ chức quản lý trang nhớ danh sách FIFO, trang đầu danh sách chọn để thay Thuật toán they trang FIFO dễ hiểu, dễ cài đặt Tuy nhiên thực lúc có kết qủa tốt : trang chọn để thay trang chức nhiều liệu cần thiết, thường xuyên sử dụng nên nạp sớm, bị chuyển nhớ phụ nhanh chóng gây lỗi trang Số lượng lỗi trang xảy tăng lên số lượng khung trang sử dụng tăng Hiện tượng gọi nghịch lý Belady Ví dụ: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, Sử dụng khung trang , có lỗi trang phát sinh Sử dụng khung trang , có 10 lỗi trang phát sinh Thuật toán tối ưu Tiếp cận: Thay trang lâu sử dụng tương lai Ví dụ : sử dụng khung trang, khởi đầu trống: 32 01 7 7 2 2 2 2 22 2 22 7 0 0 0 4 00 0 00 0 1 3 3 3 33 1 11 1 * * * * * * * * * Thảo luận: Thuật toán bảo đảm số lượng lỗi trang phát sinh thấp , không gánh chịu nghịch lý Belady, nhiên, thuật toán không khả thi thực tế, biết trước chuỗi truy xuất tiến trình! Thuật toán « Lâu chưa sử dụng » ( Least-recently-used LRU) Tiếp cận: Với trang, ghi nhận thời điểm cuối trang truy cập, trang chọn để thay trang lâu chưa truy xuất Ví dụ: sử dụng khung trang, khởi đầu trống: Thảo luận: Thuật toán FIFO sử dụng thời điểm nạp để chọn trang thay thế, thuật toán tối ưu lại dùng thời điểm trang sử dụng, thời điểm xác định trước nên thuật toán LRU phải dùng thời điểm cuối trang truy xuất – dùng khứ gần để dự đoán tương lai Thuật toán đòi hỏi phải chế phần cứng hỗ trợ để xác định thứ tự cho trang theo thời điểm truy xuất cuối Có thể cài đặt theo hai cách : Sử dụng đếm: thêm vào cấu trúc phần tử bảng trang trường ghi nhận thời điểm truy xuất nhất, thêm vào cấu trúc CPU đếm lần có truy xuất nhớ, giá trị counter tăng lên Mỗi lần thực truy xuất đến trang, giá trị counter ghi nhận vào trường thời điểm truy xuất phần tử tương ứng với trang bảng trang thay trang có giá trị trường thời điểm truy xuất nhỏ Sử dụng stack: tổ chức stack lưu trữ số hiệu trang thực truy xuất đến trang, số hiệu trang xóa khỏi vị trí hành stack đưa lên đầu stack trang đỉnh stack trang truy xuất gần nhất, trang đáy stack trang lâu chưa sử dụng Các thuật toán xấp xỉ LRU Có hệ thống cung cấp đủ hỗ trợ phần cứng để cài đặt thuật toán LRU thật Tuy nhiên, nhiều hệ thống trang bị thêm bit tham khảo ( reference): bit reference, khởi gán 0, gắn với phần tử bảng trang bit reference trang phần cứng đặt giá trị lần trang tương ứng truy cập, phần cứng gán trở sau chu kỳ qui định trước Sau chu kỳ qui định trước, kiểm tra giá trị bit reference, xác định trang truy xuất đến trang không, sau kiểm tra xong, bit reference phần cứng gán trở với bit reference, biết trang truy xuất, thứ tự truy xuất Thông tin không đầy đủ dẫn đến nhiều thuật toán xấp xỉ LRU khác Hình 4.28 Cấu trúc phần tử bảng trang Thuật toán với bit reference phụ trợ Tiếp cận: Có thể thu thập thêm nhiều thông tin thứ tự truy xuất cách lưu trữ bit references sau khoảng thời gian đặn: với trang, sử dụng thêm bit lịch sử (history)trong bảng trang sau khoảng thời gian định (thường là100 millisecondes), ngắt đồng hồ phát sinh, quyền điều khiển chuyển cho hệ điều hành Hệ điều hành đặt bit reference trang vào bit cao bit phụ trợ củatrang cách đẩy bit khác sang phải vị trí, bỏ bit thấp bit thêm vào lư u trữ tình hình truy xuất đến trang chu kỳ cuối gía trị bit 00000000, trang tương ứng không dùng đến suốt chu kỳ cuối cùng, ngược lại dùng đến lần chu kỳ, bit phụ trợ 11111111 Một trang mà bit phụ trợ có giá trị11000100 truy xuất gần thời điểm trang có bit phụ trợ 01110111 xét bit phụ trợ số nguyên không dấu, trang LRU trang có số phụ trợ nhỏ Ví dụ : Thảo luận: Số lượng bit lịch sử thay đổi tùy theo phần cứng, phải chọn cho việc cập nhật nhanh Thuật toán « hội thứ hai » Tiếp cận: Sử dụng bit reference Thuật toán sở FIFO, nhiên chọn trang theo tiêu chuẩn FIFO, kiểm tra bit reference trang : Nếu giá trị bit reference 0, thay trang chọn Ngược lại, cho trang hội thứ hai, chọn trang FIFO Khi trang cho hội thứ hai, giá trị bit reference đặt lại 0, thời điểm vào Ready List cập nhật lại thời điểm Một trang cho hội thứ hai không bị thay trước hệ thống thay hết trang khác Hơn nữa, trang thường xuyên sử dụng, bit reference trì giá trị 1, trang không bị thay Thảo luận: Có thể cài đặt thuật toán « hội thứ hai » với xâu vòng Hình 2.29 Thuật toán thay trang Thuật toán « hội thứ hai » nâng cao (Not Recently Used - NRU) Tiếp cận : xem bit reference dirty bit cặp có thứ tự Với hai bit này, có tổ hợp tạo thành lớp sau : (0,0) không truy xuất, không sửa đổi: trang tốt để thay (0,1) không truy xuất gần đây, bị sửa đổi: trường hợp không thật tốt, trang cần lưu trữ lại trước thay (1,0) truy xuất gần đây, không bị sửa đổi: trang nhanh chóng tiếp tục sử dụng (1,1) truy xuất gần đây, bị sửa đổi: trang nhanh chóng tiếp tục sử dụng, trước thay cần phải lưu trữ lại lớp có độ ưu tiên thấp nhất, lớp có độ ưu tiên cao trang thuộc bốn lớp trên, tuỳ vào bit reference dirty bit trang trang chọn để thay trang tìm thấy lớp có độ ưu tiên thấp khác rỗng Các thuật toán thống kê Tiếp cận: sử dụng biến đếm lưu trữ số lần truy xuất đến trang, phát triển hai thuật toán sau : Thuật toán LFU: thay trang có giá trị biến đếm nhỏ nhất, nghĩa trang sử dụng Thuật toán MFU: thay trang có giá trị biến đếm lớn nhất, nghĩa trang sử dụng nhiều (most frequently used) 5 Tài Liệu Tham Khảo: [1] chương 4, sách "Modern Operating Systems", Andrew S Tanenbaum: , 2nd ed, Prentice Hall [2] Chương 3, sách “Khoa học máy tính”, Ths Nguyễn Thị Ngọc Vinh [3] Giáo trình quản lý nhớ, PGS.TS Đỗ Phúc, Trường ĐH CNTT, ĐHQG TP.HCM, Nhà xuất ĐHQG TP.HCM, 2006 [4] www.google.com.vn [...]... của trang đó trang được chọn để thay thế là trang đầu tiên tìm thấy trong lớp có độ ưu tiên thấp nhất và khác rỗng Các thuật toán thống kê Tiếp cận: sử dụng một biến đếm lưu trữ số lần truy xuất đến một trang, và phát triển hai thuật toán sau : Thuật toán LFU: thay thế trang có giá trị biến đếm nhỏ nhất, nghĩa là trang ít được sử dụng nhất Thuật toán MFU: thay thế trang có giá trị biến đếm lớn nhất, nghĩa... reference của nó sẽ duy trì được giá trị 1, và trang hầu như không bao giờ bị thay thế Thảo luận: Có thể cài đặt thuật toán « cơ hội thứ hai » với một xâu vòng Hình 2.29 Thuật toán thay thế trang Thuật toán « cơ hội thứ hai » nâng cao (Not Recently Used - NRU) Tiếp cận : xem các bit reference và dirty bit như một cặp có thứ tự Với hai bit này, có thể có 4 tổ hợp tạo thành 4 lớp sau... như một số nguyên không dấu, thì trang LRU là trang có số phụ trợ nhỏ nhất Ví dụ : Thảo luận: Số lượng các bit lịch sử có thể thay đổi tùy theo phần cứng, và phải được chọn sao cho việc cập nhật là nhanh nhất có thể Thuật toán « cơ hội thứ hai » Tiếp cận: Sử dụng một bit reference duy nhất Thuật toán cơ sở vẫn là FIFO, tuy nhiên khi chọn được một trang theo tiêu chuẩn FIFO, kiểm tra bit reference của... used) 5 Tài Liệu Tham Khảo: [1] chương 4, sách "Modern Operating Systems", Andrew S Tanenbaum: , 2nd ed, Prentice Hall [2] Chương 3, sách “Khoa học máy tính”, Ths Nguyễn Thị Ngọc Vinh [3] Giáo trình quản lý bộ nhớ, PGS.TS Đỗ Phúc, Trường ĐH CNTT, ĐHQG TP.HCM, Nhà xuất bản ĐHQG TP.HCM, 2006 [4] www.google.com.vn ... millisecondes), một ngắt đồng hồ được phát sinh, và quyền điều khiển được chuyển cho hệ điều hành Hệ điều hành đặt bit reference của mỗi trang vào bit cao nhất trong 8 bit phụ trợ củatrang đó bằng cách đẩy các bit khác sang phải 1 vị trí, bỏ luôn bit thấp nhất như vậy 8 bit thêm vào này sẽ lư u trữ tình hình truy xuất đến trang trong 8 chu kỳ cuối cùng nếu gía trị của 8 bit là 00000000, thì trang tương

Ngày đăng: 11/07/2016, 22:43

Từ khóa liên quan

Mục lục

  • 1. Danh sách thành viên trong nhóm:

  • 2. Tên đề tài:

  • 3. Giới thiệu đề tài:

  • 4. Các nội dung chính:

  • CHƯƠNG 1 : Tổng quan về quản lý bộ nhớ

    • 1.1 Khái niệm

    • 1.1 Nhu cầu bộ nhớ của tiến trình

    • CHƯƠNG 2 : Các thuật toán quản lý bộ nhớ

    • Thuật toán FIFO

    • Thuật toán tối ưu

    • Thuật toán « Lâu nhất chưa sử dụng » ( Least-recently-used LRU)

    • Sử dụng bộ đếm:

    • Sử dụng stack:

    • Các thuật toán xấp xỉ LRU

      • Thuật toán với các bit reference phụ trợ

      • Thuật toán « cơ hội thứ hai »

      • Các thuật toán thống kê

Tài liệu cùng người dùng

Tài liệu liên quan