BÀI TẬP CHƯƠNG (Quản lý nhớ) Sinh viên làm thêm tập sách tham khảo “Operating System Concepts – version 9”, chương (Main Memory) Chú ý: Hiểu phân mảnh nội phân mảnh ngoại Phân biệt địa luận lý/ảo (logical address) địa vật lý/thật (physical address) Giả sử nhớ phân thành phân vùng có kích thước 600 KByte, 500 KByte, 200 KByte, 300 KByte (theo thứ tự) ban đầu vùng nhớ trống Cho biết tiến trình có kích thước 212 KByte, 417 KByte, 112 KByte 426 KByte (theo thứ tự) cấp phát nhớ nào, sử dụng: a) Thuật toán First fit b) Thuật toán Best fit Thuật toán cho phép sử dụng nhớ hiệu qủa trường hợp trên? Trả lời: 600 KB a) 388 KB 388 KB 500 KB 500 KB 200 KB 300 KB Ban đầu 276 KB 276 KB 500 KB 500 KB 500 KB 200 KB 200 KB 200 KB 200 KB 300 KB 300 KB 300 KB 300 KB Theo First fit, để chọn khối phù hợp cho 212 KB, khối 600 KB chọn Sau cấp 212 KB, khối lại 388KB b) 600 KB 600 KB 500 KB 500 KB 200 KB 200 KB Theo First fit, để chọn khối phù hợp cho 417 KB khối lại, khối 500 KB chọn Sau cấp 417 KB, khối lại 83 KB 600 KB Theo First fit, để chọn khối phù hợp cho 112 KB khối lại, khối 388 KB chọn Sau cấp 112 KB, khối lại 276 KB Không khối phù hợp cho 426 KB 600 KB 200 KB 300 KB Ban đầu Theo Best fit, để chọn khối phù hợp cho 212 KB, khối 300 KB chọn Sau cấp 212 KB, khối lại 88 KB Theo Best fit, để chọn khối phù hợp cho 417 KB khối lại, khối 500 KB chọn (Còn lại 83 KB sau cấp phát) Theo Best fit, để chọn khối phù hợp cho 112 KB khối lại, khối 200 KB chọn (Còn lại 88 KB sau cấp phát) Theo Best fit, để chọn khối phù hợp cho 426 KB, lại khối 600KB, phù hợp, cấp phát (Còn lại 174 KB sau cấp phát) Nguyet TTN (2017) – Tổng hợp SinhVienZone.com https://fb.com/sinhvienzonevn Giả sử nhớ phân thành phân vùng có kích thước 600 KByte, 500 KByte, 200 KByte, 300 KByte, 700 KByte, 900 KByte (theo thứ tự) Xem hình bên dưới: Các vùng có màu xanh đậm vùng cấp phát, vùng trắng vùng trống Giả sử trỏ vùng 200KByte, theo next-fit a Nếu tiến trình vào có kích thước 250 Kbyte, vùng nhớ cấp phát b Nếu tiến trình vào có kích thước 550 Kbyte, vùng nhớ cấp phát c Nếu tiến trình vào có kích thước 800 Kbyte, vùng nhớ cấp phát (Ba câu a, b, c không liên quan nhau) Trả lời: 600 KB 500 KB 200 KB Con trỏ Cấp phát theo next-fit chọn khối phù hợp liền sau vị trí trỏ a Nếu tiến trình có kích thước 250 KB, khối 300KB chọn Sau cấp phát dư 50 KB b Nếu tiến trình có kích thước 550 KB, khối 700KB chọn Sau cấp phát dư 150 KB c Nếu tiến trình có kích thước 800 KB, khối 900KB chọn Sau cấp phát dư 100 KB 300 KB 700 KB 900 KB -Bài tập phân trang: Xét không gian địa có trang, trang có kích thước 1Kbyte Ánh xạ vào nhớ vật lý có 32 khung trang a) Địa luận lý (logical address) gồm bit? b) Địa vật lý (physical address) gồm bit? c) Bảng trang có mục? Mỗi mục bảng trang cần bit? Trả lời: a) 13 bits Địa luận lý gồm vùng p d: Vùng p cho biết biết liệu trang (page) nào, vùng d cho biết trang đó, liệu vị trí p d Nguyet TTN (2017) – Tổng hợp SinhVienZone.com https://fb.com/sinhvienzonevn Đề cho trang (23 = 8) Cần bits cho vùng p Mỗi trang có kích thước 1Kbyte = 1024 bytes (210 = 1024) Cần 10 bits cho vùng d Địa luận lý cần + 10 = 13 bits b) 15 bits Địa vật lý gồm vùng f d: Vùng f cho biết biết liệu khung trang (frame) nào, vùng d cho biết khung trang đó, liệu vị trí f d Đề cho 32 khung trang (25 = 32) Cần bits cho vùng f Mỗi trang có kích thước 1Kbyte Mỗi frame có kích thước 1Kbyte Cần 10 bits cho vùng d Địa luận lý cần + 10 = 15 bits c) Bảng trang có mục (Địa luận lý có trang bảng trang phải có mục) Mỗi mục bảng trang dùng để lưu số frame tương ứng trang Hiện dùng bits cho frame Mỗi mục bảng trang cần bits đủ (Tuy nhiên, bảng trang lưu nhớ máy tính, thường cấp phát theo byte, trường hợp thực tế cấp phát byte cho mục) Cho bảng phân trang (bảng ánh xạ) process hình, cho biết: a Địa vật lý 6578 chuyển thành địa luận lý bao nhiêu? Biết kích thước frame KB (Đáp án 434) b Địa luận lý 3654 chuyển thành địa vật lý bao nhiêu? Biết kích thước frame KB (Đáp án 9798) Trả lời: a Tìm địa luận lý tương ứng địa vật lý 6578 6578(10) = 1100110110010(2) Địa luận lý: p d Địa vật lý: f d Kích thước frame KB (mỗi page KB) vùng d địa luận lý vật lý 10 bits 1100110110010 d Địa vật lý 1100110110010 frame 110(2) = 6(10) Tra vào bảng phân trang, frame tương ứng với page Địa luận lý (vùng d vật lý luận lý nguyên) Nguyet TTN (2017) – Tổng hợp SinhVienZone.com https://fb.com/sinhvienzonevn 00110110010 d 00110110010(2) = 434(10) b Chuyển địa luận lý 3654 thành địa vật lý 3654(10) = 111001000110(2) Địa luận lý: p Địa vật lý: f d d Kích thước frame KB (Mỗi page KB) vùng d địa luận lý vật lý 11 bits 111001000110 d Địa luận lý 111001000110 page Tra vào bảng phân trang, tìm đến phần tử/mục thứ bảng phân trang, thấy 4, tức page nhớ luận lý lưu frame Địa vật lý (vùng d vật lý luận lý nguyên) 10011001000110 d 10011001000110 (2) = 9798(10) Cho hệ thống với 32 bits địa luận lý Kích thước trang KByte a Hỏi có trang tổng cộng nhớ ảo b Kích thước nhớ ảo (biết nhớ định địa theo byte, tức byte đánh địa chỉ) c Biết mục bảng phân trang dùng bytes Cho biết kích thước tồn bảng phân trang Trả lời: a 220 trang b Bộ nhớ luận lý dùng 32 bits, định địa theo byte kích thước nhớ ảo = 232 bytes = GByte (Hoặc nhớ ảo có 220 trang, trang Kbyte kích thước nhớ ảo × 210 × 220 bytes = GByte) Nguyet TTN (2017) – Tổng hợp SinhVienZone.com https://fb.com/sinhvienzonevn c 222 bytes Bài tập phân đoạn: Xét bảng phân đoạn sau đây: Limit Base 600 219 14 2300 100 90 580 1327 96 1952 Cho biết địa vật lý tương ứng với địa luận lý sau: a 0,430 b 1,10 c 2,500 d 3,400 e 4,112 Trả lời: Lưu ý cách viết dùng dấu “,” để tách phần số đoạn vị trí liệu cần tìm đoạn Ví dụ 0,430 tức liệu cần tìm nhớ ảo đoạn (segment) thứ vị trí thứ 430 đoạn a Địa vật lý 649 Giải thích: Dữ liệu cần tìm địa 0,430: tức đoạn vị trí thứ 430 đoạn Tra vào bảng phân đoạn, đoạn có Limit = 600 Base = 219: Kiểm tra thấy 430 < 600 địa hợp lý Địa vật lý tương ứng = 219 + 430 = 649 b Địa vật lý 2310 c Khơng có địa vật lý tương ứng Giải thích: Dữ liệu cần tìm địa 2,500: tức đoạn vị trí thứ 500 đoạn Tra vào bảng phân đoạn, đoạn có Limit = 100 Base = 90: Kiểm tra thấy 500 không nhỏ 100 địa không hợp lý Nguyet TTN (2017) – Tổng hợp SinhVienZone.com https://fb.com/sinhvienzonevn d 1727 e Khơng có địa vật lý tương ứng Với phân trang, TLB kỹ thuật cải tiến, giúp việc tìm kiếm số frame trang tương ứng bảng phân trang nhanh (Xem slide phần 7.2 để hiểu rõ cách hoạt động TLB) Bài tập TLB bên dưới: Xét hệ thống sử dụng kỹ thuật phân trang, với bảng trang lưu trữ nhớ Thời gian cho lần truy xuất nhớ bình thường 200 nanoseconds a) Nếu không dùng TLB, tổng cộng thời gian cho thao tác tìm liệu hệ thống này? b) Nếu sử dụng TLB với hit-ratio ( tỉ lệ tìm thấy) 75%, thời gian để tìm TLB xem 0, tính thời gian truy xuất nhớ hệ thống ( effective memory reference time) Trả lời: a) Không dùng TLB Để tìm liệu biết địa luận lý nó, cần thao tác truy xuất nhớ: - Thao tác 1: Truy xuất vào bảng phân trang để tìm địa frame vật lý - Thao tác 2: Khi có frame, biết địa vật lý, truy xuất vào nhớ vật lý lấy liệu Đề cho lần truy xuất nhớ tốn 200 ns thao tác truy xuất nhớ tốn 400 ns Thời gian cần = 400 ns b) Dùng TLB: Thời gian truy xuất TLB = ε = Thời gian tìm thấy liệu nhớ vật lý TLB hit (tức tìm thấy số frame TLB) = ε + thời gian truy xuất vào nhớ vật lý = + 200 = 200 ns Thời gian tìm thấy liệu nhớ vật lý TLB miss (tức khơng tìm thấy số frame TLB) = ε + thời gian truy xuất vào bảng phân trang + thời gian truy xuất nhớ vật lý = + 200 + 200 = 400 ns Tổng thời gian truy xuất nhớ hệ thống (effective memory reference time) = 200*0.75 + 400*0.25 = 250 ns Xét hệ thống sử dụng kỹ thuật phân trang, với bảng trang lưu trữ nhớ Nếu thời gian cho lần truy xuất nhớ bình thường 124 nanoseconds a) Nếu khơng dùng TLB, thời gian để tìm liệu hệ thống này? b) Nếu sử dụng TLBs với hit-ratio ( tỉ lệ tìm thấy) 95%, thời gian để tìm TLBs 34, tính thời gian cho thao tác truy xuất nhớ hệ thống ( effective memory reference time) Trả lời: Nguyet TTN (2017) – Tổng hợp SinhVienZone.com https://fb.com/sinhvienzonevn a) 248 ns b) (34 + 124)*0.95 + (34 + 124 + 124)*0.05 = 164.2 ns Xét hệ thống sử dụng kỹ thuật phân trang, với bảng trang lưu trữ nhớ Nếu sử dụng TLBs với hit-ratio (tỉ lệ tìm thấy) 87%, thời gian để tìm TLBs 24 nanosecond Thời gian truy xuất nhớ hệ thống ( effective memory reference time) 175 Tính thời gian cho lần truy xuất nhớ bình thường? Trả lời: Gọi thời gian lần truy xuất nhớ x: (24 + x)*0.87 + (24 + 2x)*0.13 = 175 x = 133.628 -Hết - Nguyet TTN (2017) – Tổng hợp SinhVienZone.com https://fb.com/sinhvienzonevn ... luận lý 3654 chuyển thành địa vật lý bao nhiêu? Biết kích thước frame KB (Đáp án 979 8) Trả lời: a Tìm địa luận lý tương ứng địa vật lý 6 578 6 578 (10) = 1100110110010(2) Địa luận lý: p d Địa vật lý: ... TTN (20 17) – Tổng hợp SinhVienZone. com https://fb .com/ sinhvienzonevn 00110110010 d 00110110010(2) = 434(10) b Chuyển địa luận lý 3654 thành địa vật lý 3654(10) = 111001000110(2) Địa luận lý: p... tra thấy 500 không nhỏ 100 địa không hợp lý Nguyet TTN (20 17) – Tổng hợp SinhVienZone. com https://fb .com/ sinhvienzonevn d 172 7 e Khơng có địa vật lý tương ứng Với phân trang, TLB kỹ