KIỂM TRA A Trắc nghiệm Giả sử máy tính có n tiến trình chạy đồng thời Khi chạy, tiến trình yêu cầu truy xuất tài nguyên R Biết máy tính có k thực thể tài nguyên R (k < n) Một Semaphore S dùng chung process để giải vấn đề truy xuất này, code mẫu bên Value Semaphore S khởi tạo k Process Pi while (true) { wait(S); …vùng code truy xuất vào thực thể R… signal(S); } Giả sử k tiến trình truy xuất vào k thực thể R, tiến trình thứ k+1 tới tiến trình thứ n chờ hàng đợi Semaphore S (các tiến trình đánh số từ tới n) Tìm phát biểu đúng: a Tại thời điểm giá trị value S k – n b Tại thời điểm giá trị value S k – n + c Tại thời điểm giá trị value S n – k d Tại thời điểm giá trị value S n – k + Chọn phát biểu với Monitor a Các process có thể đợi “entry queue” Monitor hoặc đợi “condition queue” biến điều kiện (condition) b Cũng giống Semaphore, chỉ có thể thao tác lên biến điều kiện Monitor hai hàm wait signal c Khác hoàn toàn với Semaphore, Monitor cấu trúc liệu sử dụng để giải toán đồng tiến trình d Câu a b Cho process P1 (kích thước 200 KByte) cấp phát nhớ theo phân hoạch có thứ tự sau: (300 KB), (100 KB), (250 KB), (200 KB) Biết trỏ nằm vùng nhớ thứ 2, vùng nhớ thứ cấp phát vùng nhớ 1, trống 3.1 Hỏi process P1 cấp pháp vùng nhớ nào, dùng giải thuật next-fit: a b c d 3.2 Hỏi process P1 cấp pháp vùng nhớ nào, dùng giải thuật best-fit: a b c d Đề khác: Cho process P1 (kích thước 200 KByte) cấp phát nhớ theo phân hoạch có thứ tự sau: (200 KB), (100 KB), (550 KB), (300 KB) Biết trỏ nằm vùng nhớ thứ 2, vùng nhớ thứ cấp phát vùng nhớ 1, trống SinhVienZone.com https://fb.com/sinhvienzonevn 1.1 Hỏi process P1 cấp pháp vùng nhớ nào, dùng giải thuật next-fit: a b c d 1.2 Hỏi process P1 cấp pháp vùng nhớ nào, dùng giải thuật best-fit: a b c d 4 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 300 nanoseconds Nếu sử dụng TLBs với hit-ratio (tỉ lệ tìm thấy) 75%, thời gian để tìm TLBs xem 0, tính thời gian truy xuất nhớ hệ thống (effective memory reference time) a 300ns c 600ns b 375ns d 225ns Xét process P1, P2, P3 thực thi đồng thời, với P1 {A1, A2}; P2 {B1, B2}; P3 {C1, C2} (Tức P1 phải hoàn thành lệnh A1, A2; P2 phải hoàn thành lệnh B1, B2; P3 phải hoàn thành lệnh C1 C2 lệnh đơn nguyên) Với điều kiện sau: B1 phải thực thi sau A1 (điều kiện 1); C1 C2 thực thi sau B2 (điều kiện 2) Dùng Semaphore S1 cho điều kiện Semaphore S2 cho điều kiện khởi tạo value cho Semaphore Đặt lệnh wait() signal() Semaphore vào dấu “……” bên cho hợp lý để đồng theo yêu cầu đề (chỗ khơng cần điền bỏ trống) P1 P2 P3 …… A1 signal(S1) A2 …… } { wait(S1) B1 …… B2 signal(S2) } { wait(S2) C1 …… C2 …… } { Đề khác: B1 phải thực thi sau A1 (điều kiện 1); C2 thực thi sau B2 (điều kiện 2) P1 { …… A1 signal(S1) A2 …… } P2 { wait(S1) B1 …… B2 signal(S2) } P3 { …… C1 wait(S2) C2 …… } SinhVienZone.com https://fb.com/sinhvienzonevn B1 phải thực thi sau A1 (điều kiện 1); C2 thực thi sau B1 (điều kiện 2) P1 { …… A1 signal(S1) A2 …… } P2 { wait(S1) B1 signal(S2) B2 …… } P3 { …… C1 wait(S2) C2 …… } B Tự luận Cho process P0 P1 chạy đồng thời với code sau: Với turn biến chia sẻ process turn = i Pi phép vào critical section (i = hoặc 1) Giả sử vùng remainder section process P0 lớn vùng remainder section P1 nhỏ, giải thích ngắn gọn có vấn đề xảy khơng? Trả lời: Khi vùng remainder section P0 lớn vùng remainder section P1 nhỏ, có vấn đề xảy sau: Giả sử bắt đầu turn = 0, process P0 vào vùng critical section, process P1 lặp vòng “while (turn != 1);” Khi P0 khỏi vùng critical section, turn chuyển thành 1, P0 vào vùng remainder section Lúc P1 vào critical section ▬ Khi P1 thực thi xong critical section, turn chuyển thành 0, P1 vào remainder section Lúc giả sử P0 remainder section (vì đề cho vùng remainder section P0 lớn) ▬ Vì remaider section P1 nhỏ, nên P1 nhanh chóng thực xong phần vào quay lại từ đầu nhờ vào while Lúc này, P1 lại bị lặp vòng lệnh “while (turn != 1);” turn Trong đó với P0, lúc remainder section lớn, nên P0 hồn tồn remainder section Vấn đề xảy lúc là: critical section không có process thực đó, P1 vào được, P1 bị lặp vòng, khơng vào critical section Trong đó, P0 remainder section mình, chỉ P0 thực thi xong remainder section, quay lại vào critical section, sau đó đưa turn thành 1, lúc P1 vào critical section Vì vậy, code vi phạm điều kiện (Progress) toán đồng vùng tranh chấp, tức: P0 remainder section, không critical section, cản trở việc vào critical section P1 ▬ ▬ Xét không gian địa chỉ luận lý có 256 trang, trang có kích thước Kbyte Ánh xạ vào nhớ vật lý có 64 khung trang Hỏi cần bits để biểu diễn địa chỉ luận lý bits để biểu diễn địa chỉ vật lý Trả lời: SinhVienZone.com https://fb.com/sinhvienzonevn Địa chỉ luận lý cần 20 bits để biểu diễn Địa chỉ vật lý cần 18 bits để biểu diễn Đề khác: Xét không gian địa chỉ luận lý có 512 trang, trang có kích thước Kbyte Ánh xạ vào nhớ vật lý có 128 khung trang Hỏi cần bits để biểu diễn địa chỉ luận lý bits để biểu diễn địa chỉ vật lý Trả lời: Địa chỉ luận lý cần 21 bits để biểu diễn Địa chỉ vật lý cần 19 bits để biểu diễn Xét không gian địa chỉ luận lý có 512 trang, trang có kích thước Kbyte Ánh xạ vào nhớ vật lý có 64 khung trang Hỏi cần bits để biểu diễn địa chỉ luận lý bits để biểu diễn địa chỉ vật lý Trả lời: Địa chỉ luận lý cần 21 bits để biểu diễn Địa chỉ vật lý cần 18 bits để biểu diễn Xét không gian địa chỉ luận lý có 64 trang, trang có kích thước Kbyte Ánh xạ vào nhớ vật lý có 128 khung trang Hỏi cần bits để biểu diễn địa chỉ luận lý bits để biểu diễn địa chỉ vật lý Trả lời: Địa chỉ luận lý cần 19 bits để biểu diễn Địa chỉ vật lý cần 20 bits để biểu diễn Cho địa chỉ luận lý 3085 chuyển thành địa chỉ vật lý bao nhiêu? Biết kích thước frame 1K bytes, bảng ánh xạ địa chỉ hình Đáp án: luận lý 3085 thành vật lý 7181 Đề khác: Đáp án: vật lý 5085 có địa chỉ luận lý tương ứng 2013 Đáp án: luận lý 4085 thành vật lý 8181 Đáp án: vật lý 7577 có địa chỉ luận lý tương ứng 3481 Lưu ý: Đáp án bên phần đề bạn làm Đề bạn làm thực tế dài có nhiều câu thay số khác Đáp án chọn vài câu để giải Xét chuỗi truy xuất nhớ sau tiến trình, biết tiến trình có trang (page) đánh số từ tới 7: 1, 2, 3, 4, 2, 1, 5, 6, 2, 1, 2, 3, 7, 6, 3, 2, 1, 2, 3, Giả sử tiến trình cấp khung trang (frame) nhớ vật lý, ban đầu frame trống Vẽ bảng minh họa thuật tốn tính số lỗi trang (page fault) khi: Tiến trình truy xuất chuỗi trang nhớ hệ điều hành thay trang theo giải thuật LRU SinhVienZone.com https://fb.com/sinhvienzonevn Trả lời: 1 * * 3 * 4 * 2 1 5 * 6 * 2 1 2 3 * 7 * 6 * 7 * 3 6 Tổng số page fault 10 Đề khác: Xét chuỗi truy xuất nhớ sau tiến trình, biết tiến trình có trang (page) đánh số từ tới 7: 1, 3, 5, 4, 2, 1, 5, 6, 2, 1, 2, 3, 7, 6, 3, 2, 1, 2, 3, Giả sử tiến trình cấp khung trang (frame) nhớ vật lý, ban đầu frame trống Vẽ bảng minh họa thuật tốn tính số lỗi trang (page fault) khi: Tiến trình truy xuất chuỗi trang nhớ hệ điều hành thay trang theo giải thuật Optimal (OPT) Đáp án: 1 3 5 * * * * * 1 5 6 * 1 2 3 7 * 7 2 1 * 3 6 Tổng số page fault Đề khác: Cho biết trạng hệ thống sau (với process từ P0 tới P4 tài nguyên A, B, C, D): Allocation Max Available ABC D A BCD ABC D P0 0 0 P1 0 P2 5 P3 6 P4 0 6 Hệ điều hành giải deadlock cách tránh deadlock (Deadlock Avoidance) dùng giải thuật Banker để kiểm tra độ an toàn hệ thống Trả lời câu hỏi sau: Nếu process P1 yêu cầu thêm tài nguyên (0, 3, 2, 0), yêu cầu đáp ứng không, sao? Trả lời: SinhVienZone.com https://fb.com/sinhvienzonevn Need P1 = (0, 7, 5, 0) P1 yêu cầu tài nguyên (0, 3, 2, 0) (0, 3, 2, 0) < (0, 7, 5, 0): hợp lệ Nếu yêu cầu (0, 3, 2, 0) P1 cấp, trạng thái hệ thống chuyển thành: P0 P1 P2 P3 P4 Allocation ABC D 0 3 0 Max A BCD 0 5 6 6 Available ABC D 0 Need ABC D 0 0 0 0 0 Dùng giải thuật Banker kiểm tra xem hệ thống có an tồn khơng: Work = Available = (1, 2, 0, 0) Với Work = (1, 2, 0, 0) Có thể cấp tài nguyên cần cho P0 Sau P0 thực thi xong, Allocation (0, 0, 1, 2) P0 trả cho hệ điều hành Work = (1, 2, 1, 2) Với Work = (1, 2, 1, 2) Có thể cấp tài nguyên cần cho P2 Sau P2 thực thi xong, Allocation (1, 3, 5, 4) P2 trả cho hệ điều hành Work = (2, 5, 6, 6) Với Work = (2, 5, 6, 6) Có thể cấp tài nguyên cần cho P1 hoặc P3 Giả sử cấp cho P3 Sau P3 thực thi xong, Allocation (0, 6, 3, 2) P3 trả cho hệ điều hành Work = (2, 11, 9, 8) Với Work = (2, 11, 9, 8) Có thể cấp tài nguyên cần cho P1 hoặc P4 Giả sử cấp cho P1 Sau P1 thực thi xong, Allocation (1, 3, 2, 0) P1 trả cho hệ điều hành Work = (3, 14, 11, 8) Với Work = (3, 14, 11, 8), cuối cùng, P4 cấp phát tài nguyên cần Sau P4 thực thi xong, Allocation (0, 0, 1, 4) P4 trả cho hệ điều hành Work = (3, 14, 12, 12) Chuỗi an toàn là: P0, P2, P3, P1, P4 Vậy hệ thống an toàn cấp phát cho P1 (0, 3, 2, 0) Yêu cầu đáp ứng Đề khác: Cho biết trạng hệ thống sau (với process từ P0 tới P4 tài nguyên A, B, C, D): Allocation Max Available ABC D A BCD ABC D P0 0 0 P1 0 P2 5 P3 6 P4 0 6 Hệ điều hành giải deadlock cách tránh deadlock (Deadlock Avoidance) dùng giải thuật Banker để kiểm tra độ an toàn hệ thống Trả lời câu hỏi sau: Hệ thống có an tồn khơng? Có chuỗi an toàn tổng cộng? Trả lời: SinhVienZone.com https://fb.com/sinhvienzonevn Allocation ABC D P0 0 P1 0 P2 P3 P4 0 Max Available A BCD ABC D 0 6 6 Need ABC D 0 0 0 0 0 6 Tìm chuỗi an tồn: Đặt Work = Available = (1, 4, 2, 0) Với Work = (1, 4, 2, 0) Có thể cấp tài nguyên cần cho P0 hoặc P3 Giả sử cấp cho P0 Sau P0 thực thi xong, Allocation (0, 0, 1, 2) P0 trả cho hệ điều hành Work = (1, 4, 3, 2) Với Work = (1, 4, 3, 2) Có thể cấp tài nguyên cần cho P2 hoặc P3 Giả sử cấp cho P2 Sau P2 thực thi xong, Allocation (1, 3, 5, 4) P2 trả cho hệ điều hành Work = (2, 7, 8, 6) Với Work = (2, 7, 8, 6) Có thể cấp tài nguyên cần cho P1 hoặc P3, hoặc P4 Giả sử cấp cho P1 Sau P1 thực thi xong, Allocation (1, 0, 0, 0) P1 trả cho hệ điều hành Work = (3, 7, 8, 6) Với Work = (3, 7, 8, 6) Có thể cấp tài nguyên cần cho P3 hoặc P4 Giả sử cấp cho P3 Sau P3 thực thi xong, Allocation (0, 6, 3, 2) P3 trả cho hệ điều hành Work = (3, 13, 11, 8) Với Work = (3, 13, 11, 8), cuối cùng, P4 cấp phát tài nguyên cần Sau P4 thực thi xong, Allocation (0, 0, 3, 4) P4 trả cho hệ điều hành Work = (3, 13, 14, 12) Chuỗi an toàn là: P0, P2, P1, P3, P4 Có chuỗi an tồn tồn hệ thống an toàn Tổng cộng 36 chuỗi an toàn trường hợp SinhVienZone.com https://fb.com/sinhvienzonevn ... cho hệ điều hành Work = (2, 11 , 9, 8) Với Work = (2, 11 , 9, 8) Có thể cấp tài nguyên cần cho P1 hoặc P4 Giả sử cấp cho P1 Sau P1 thực thi xong, Allocation (1, 3, 2, 0) P1 trả cho hệ điều hành. .. signal(S1) A2 …… } P2 { wait(S1) B1 …… B2 signal(S2) } P3 { …… C1 wait(S2) C2 …… } SinhVienZone. com https://fb .com/ sinhvienzonevn B1 phải thực thi sau A1 (điều kiện 1) ; C2 thực thi sau B1 (điều. .. điều hành Work = (3, 13 , 11 , 8) Với Work = (3, 13 , 11 , 8), cuối cùng, P4 cấp phát tài nguyên cần Sau P4 thực thi xong, Allocation (0, 0, 3, 4) P4 trả cho hệ điều hành Work = (3, 13 , 14 , 12 )