Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
25
Dung lượng
2,82 MB
Nội dung
Name: Trần Quốc Bảo ID: 20521110 Class: IT007.M13 OPERATING SYSTEM LAB X’S REPORT SUMMARY Task Câu Câu Status Hoàn thành Hoàn thành Self-scrores: *Note: Export file to PDF and name the file by following format: LAB X – .pdf Page 24 BÀI THỰC HÀNH Câu 1: Vẽ lưu đồ, giải thích thực lại giải thuật FIFO, OPT, LRU theo yêu cầu phần 6.4 - Lưu đồ thuật toán FIFO Hình Lưu đồ thuật tốn giải thuật FIFO - Ý tưởng: Thuật toán em chia thành nhánh chính, nhánh trước bảng trang cịn trống để thêm lỗi, nhánh bảng trang đầy phải chọn phần tử để thay Trước thêm chọn phần tử để “hy sinh” ta phải kiểm tra xem bảng tồn lỗi hay chưa? Hình Giải thích lưu đồ giải thuật FIFO - Lưu đồ giải thuật LRU Hình Lưu đồ giải thuật LRU - - Ý tưởng: Ở giải thuật em chia thành nhánh chính, nhánh thứ trường hợp bảng trang chưa đầy, trường hợp bảng trang đầy Ngồi ra, em có tạo thêm kiểu liệu để lưu lại vị trí để thuận tiện cho việc tìm lỗi lâu sử dụng Trường hợp 1: Sẽ kiểm tra tồn phần tử có bảng, khơng có thêm vào, cịn có cập nhật vị trí Trường hợp 2: Cũng kiểm tra tồn phần tử bảng, khơng có chọn phần tử có vị trí nhỏ nhất, vị trí nhỏ tức thời gian bị sử dụng lại lâu nhất, ta dùng phần tử để hy sinh thay Hình Giải thích phần lưu đồ thuật toán LRU - Lưu đồ thuật tốn OPT: Hình Lưu đồ thuật toán OPT - - Ý nghĩa: Ở thuật toán này, em chia thành phần chính, có thêm trường hợp tương lai lỗi khơng trùng lại Và lần kiểm tra lỗi cập nhật lại vị trí lỗi tương lai Phần 1: Sẽ kiểm tra bảng trang, chưa đầy thêm lỗi vào cập nhật giá trị ViTri cho Phần 2: Nếu bảng trang đầy, ưu tiên thay cho phần tử có ViTri = -1, phần tử không bị trùng lặp tương lai Phần 3: Kiểm tra cập nhật lại vị trí cho phần tử tương lai sau lần kiểm tra lỗi Và sau kiểm tra phần tử có ViTri=-1 để thay trước, sau ưu tiên phần tử lâu sử dụng tương lai sau Hình Giải thích lưu đồ thuật toán OPT - Hiện thực: + Khi thực có khác chút phần kết luận tạo thêm biến để lưu trữ giá trị Ví dụ thêm string err để lưu lại lỗi lưu đồ xuất số lượng lỗi Ngồi có thêm hàm xuất, thêm giá trị cho mảng… Hình Khởi tạo kiểu liệu khung trang, hàm xuất liệu Hình 10 Hàm thêm liệu vơ mảng, xuất mảng chiều Hình 11 Hàm thêm liệu vào queue Hình 12 Hàm kiểm tra tồn giải thuật FIFO Hình 13 Sau kiểm tra phần tử khung trang, thêm liệu khung trang chưa đầy kiểm tra tồn để pop phần tử queue Hình 14 Giải thuật LRU, hàm addElement khác hàm add FIFO chỗ FIFO dùng queue, LRU cần dùng mảng để lưu giá trị vị trí 10 Hình 15 Kiểm tra kích thước khung trang, chưa đầy khơng có phần tử trùng thêm vào, cịn có cần cập nhật lại vị trí Nếu khung trang đầy kiểm tra trùng cập nhật vị trí Hình 16 Xuất kết giải thuật LRU, bắt đầu giải thuật OPT findMaxPos để tìm kiếm phần tử có vị trí lớn để chọn thay 11 Hình 17 isArrExists để kiểm tra tồn giá trị mảng, hàm isEExistsPos kiểm tra xem khung trang có tồn phần tử có vị trí pos hay khơng Hình 18 Xử lý liệu nhập vào giải thuật OPT Kiểm tra kích thước bảng trang, chưa đầy kiểm tra tồn phần tử để định thêm phần tử, với trường hợp đầy bảng, chọn phần tử thay có độ ưu tiên theo vị trí 12 Hình 19 Kiểm tra bảng trang (đầy), có phần tử sử dụng tương lai chọn để thay đánh lỗi Hình 20 Xuất mảng chiều gồm bảng trang xuất số lỗi có bảng Một phương thức sử dụng hàm main 13 Hình 21 Hàm main, nhập liệu chọn bảng trang mặc định bảng trang tự nhập Hình 22 Kiểm tra chọn lựa trả thuật toán yêu cầu 14 - Các test case: Trường hợp test case default: Hình 23 Giải thuật FIFO với test case default 2 Chạy tay: * - 5 2 1 2 0 5 1 * * * Vậy số lỗi 5, giống giải thuật 15 5 7 * Hình 24 Giải thuật OPT với test case default 2 * - Chạy tay: 2 0 2 1 2 0 5 1 * * * Số lỗi 5, trình chạy giống code 16 5 7 * Hình 25 Giải thuật LRU với test case default 2 Chạy tay: 2 0 - 1 2 0 5 1 * * * Số lỗi 5, trình chạy giống code - Manual input sequence: * 2 17 5 7 * Hình 26 Test case manual – FIFO - Chạy tay: 2 3 * * * - 2 3 5 * 2 Số lỗi 4, code có đáp án giống với test case Hình 27 Mutual test – FIFO 18 5 2 - Chạy tay: 2 - 3 2 4 6 * * * * * * Có tổng cộng lỗi , bảng trang giống kết code 8 * * 5 * 6 * Hình 28 Mutual test case – FIFO 3 * - Chạy tay: 3 2 4 3 3 2 2 4 4 1 1 * * * Số lỗi 6, trình chạy giống code 19 1 Hình 29 Mutual test – OPT - Chạy tay: 1 3 5 2 3 4 * * * * * * - Số lỗi bảng trang 7: Kết nhận giống với code Hình 30 Mutual test case 2- OPT 20 7 * 3 Chạy tay: 5 * - * * * 5 2 1 2 5 Số lỗi trang : 4, kết chạy tay trùng với code Hình 31 Mutual test – OPT - Chạy tay: 5 * - * * 6 * 7 * 5 Số lỗi : , kết chạy tay giống với đáp án code 21 7 Hình 32 Mutual test – LRU - Chạy tay: 6 * - * * 6 7 * * 8 Số lỗi 8, kết chạy tay trùng với đáp án code Hình 33 Mutual test case – LRU 22 * 9 * * - Chạy tay: 3 6 6 4 1 5 * * * * * * Số lỗi xảy ra: 9, Kết trùng với code nhận - 4 3 * 6 * 7 * Hình 34 Mutual test – LRU 3 * - Chạy thử: * 5 6 * * * Số lỗi , kết chạy giống với kết code 23 9 * * Câu 2: Thực câu hỏi phần 6.5 Nghịch lý Belady gì? Sử dụng chương trình viết để chứng minh nghịch lý - Trả lời: Nghịch lý Belady phát biểu sau: Số lỗi trang (page fault) tăng lên trình cấp nhiều frame Chứng minh: Ta xét với chuỗi 5 o Trường hơp 1: Với khung trang Hình 35 Thử nghịch lý Belady với khung trang Ta thấy, với trường hợp khung trang có lỗi xảy o Trường hợp 2: Với khung trang Hình 36 Thử nghịch lý Belady với khung trang 24 Ta thấy, với trường hợp khung trang có 10 lỗi xảy Nghịch lý Belady Nhận xét mức độ hiệu tính khả thi giải thuật FIFO, OPT, LRU a Giải thuật bất khả thi nhất? Vì sao? b Giải thuật phức tạp nhất? Vì sao? a Giải thuật bất khả thi OPT, ta khơng thể đốn trước có lỗi xảy để đốn vị trí lặp lại lâu tương lai b Giải thuật phức tạp OPT, phải kiểm tra cập nhật lại vị trí lỗi tương lai sau lần kiểm tra lỗi, LRU cần cập nhật lại vị trí trùng lặp thay có vị trí nhỏ FIFO cần kiểm tra trùng lặp pop khỏi queue 25