Bài tập Nguyên lý Hệ điều hành

23 6 0
Bài tập Nguyên lý Hệ điều hà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

Bài tập Banker, Giải thuật Người quản lý Ngân hàng chống bế tắc, Giải thuật chọn vùng nhờ trong MVT, Ánh xạ địa chỉ trong các Chiến lược phân đoạn phân trang và các giải thuật thay trang trong Bộ nhớ ảo, Giải thuật xây dựng bảng Grantt (FCFS, SJF, RR) trong lập lịch CPU

MOT SO BAI TAP CAN CHU Y !!! Round-Robin, SJFS, Bộ nhớ ảo, Bảng FAT, Thuật giải Nhà băng, Sản xuấtTiêu thụ (semFull-semEmpty), Dining-Philosopers (deadlock, không deadlock) Thuật giải Nhà băng Round-Robin, SJFS, tập phân đoạn, tính địa vật lý cho địa logic tập phân đoạn, tính địa vật lý cho địa logic có trường hợp khơng hợp lệ Bảng FAT, 11 RAG 13 Bộ nhớ ảo 15 Sản xuất-Tiêu thụ (semFull-semEmpty), 19 Dining-Philosopers (deadlock, không deadlock) 22 BÀI TẬP HỆ ĐIỀU HÀNH Thuật giải Nhà băng Câu 1: Một hệ thống có ổ băng từ tiến trình P1, P2, P3 với trạng thái cấp phát tài nguyên thời điểm Ti thể véc-tơ Allocation = (1, 0, 1) Max = (1, 2, 2): Dùng thuật giải nhà băng để: a Chứng minh trạng thái an tồn (1 điểm) b Xác định có nên đáp ứng hay không yêu cầu xin thêm ổ của P3 ? (1 điểm) Giải: a Xét thời điểm Ti mà tiến trình cấp phát đề ta có: Với: Need[i] = Max[i] – Allocation[i] Available = – (1 + + 1) = Tìm chuỗi an tồn: Vậy thời điểm T0 tồn chuỗi an toàn {P1, P2, P3} Suy ra, hệ thống thời điểm Ti trạng thái an toàn b Ta thấy, yêu cầu thêm ổ P3 thoả điều kiện: o Request3 địa vật lý segment từ 300 -> 1000 Với segment 1: + Địa vật lý sở (basic) 1200, nên ta vẽ 1200, từ 1000->1200 trống, khơng có segment + Limit 500 ==> địa vật lý segment 1là từ 1200 -> 1700 segment bạn tính tương tự Cách tính địa logic Tính địa vật lý + Với liệu đề cho (1,200), ta xác định: tính địa vật lý segment 1, địa logic 200 (lưu ý: giá trị X tính nằm segment hay ko (1200 khơng hợp lệ 800 > 700 (limit segment 0) + (2,650) > không hợp lệ 650 > 600 (limit segment 2) + (1,501) > khơng hợp lệ 501 > 500 (limit segment 1) Tóm lại nhìn thấy địa logic mà đề cho > limit segment kết luận khơng hợp lệ tập phân đoạn, tính địa vật lý cho địa logic có trường hợp khơng hợp lệ Giả sử có Bảng đoạn sau: Hãy tính địa vật lý cho địa lô-gic sau: a 0430 b 1010 c 2500 d 3400 e 4112 giải Tính địa vật lý + Với liệu đề cho (0,430) = 219 +430 = 649 ( hợp lệ) Vì nằm đoạn Segment + (1,010) = 2300+ 10 = 2310 (hợp lệ) + (2,500) = 90 + 500 = 1400 (không hợp lệ) + (3,400) = 1327+ 400 = 1727 (hợp lệ) + (4,112) = 1952 + 112 = 2064 (không hợp lệ) =>Với địa logic (0,430); (1,010); (1,500); (3,400); (4,112) ta có địa vật lý tương ứng 649; 2310; không hợp lệ;1727; không hợp lệ 10 Bảng FAT, Trên hệ tập tin FAT32, tập tin Lớp HC08TH2.jpg có nội dung trải liên cung 5, 6, 9, 10; Icon1.ico cần liên cung Hãy thể hình vẽ cấu trúc bảng FAT Directory Entry Giải: File Lớp HC08TH2.jpg jpg Cần đến Directory Entry cho Lớp HC08TH2.jpg j p Lớp L Bytes opHC0~1 g C K C A H C T K N Creation Last Last A S Upp Low T time acc write A H Size Ghi chú: Lớp gồm ký tự Lowps H C T có ký tự + ký tự khoảng trắng ( _ ) phía trước 11 Bytes 1 2 4 Icon1.ico Ext N T Creation date/time Last acces Last write date/time File Size Câu (1 điểm) Trên hệ tập tin FAT32, tập tin DeThi1.pdf có nội dung liên cung 5, DapAn1.pdf cần liên cung 8, 6, Hãy thể hình vẽ cấu trúc bảng FAT Directory Entry Giải: 12 RAG Một hệ thống có máy in laser ổ băng từ Hai tiến trình P1 P2 vận hành với trạng thái cấp phát tài nguyên sau: Hãy: a Thể RAG b Xác định giải thích trạng thái Giải: a Đồ thị cấp phát tài nguyên RAG: b Trạng thái trạng thái Deadlock tài ngun có phiên tồn chu trình hay vịng trịn khép kín yêu cầu tài nguyên 13 14 Bộ nhớ ảo 15 Với đề cách giải xin làm giải thích theo cách hiểu Bạn có cách giải thích rõ hơn, xác bổ sung + Hình 1: Logical Memory + Hình 2: Page table + Hình 3: Physical memory 16 + Hình 4: Backstore 17 Một hệ thống có Bộ nhớ chia thành khung trang với Khung dành cho Hệ điều hành khung lại dành cho tiến trình vận hành P0 (gồm trang C, D, E, F) P1 (gồm trang O, P, Q, R) Bằng hình vẽ, với kỹ thuật tổ chức nhớ ảo dạng phân trang, tìm cách: a Phân bổ ngẫu nhiên trang P0 P1 vào Bộ nhớ kể b Tổ chức lại bảng trang cho trang chưa nạp (do hết chỗ) nạp 18 Sản xuất-Tiêu thụ (semFull-semEmpty), Phát biểu toán Sản xuất-Tiêu thụ với thuật giải đồng hoá đèn hiệu semFull semEmpty Giải: Bài toán người sản xuất-người tiêu thụ (Producer-Consumer) thường dùng để hiển thị sức mạnh hàm sở đồng hoá Hai q trình chia sẻ vùng đệm có kích thước giới hạn n Biến semaphore mutex cung cấp loại trừ hỗ tương để truy xuất vùng đệm khởi tạo với giá trị Các biến semaphore empty full đếm số khe trống đầy tương ứng Biến semaphore empty khởi tạo tới giá trị n; biến semaphore full khởi tạo tới giá trị – Dữ liệu chia sẻ: SEMAPHORE full, empty, mutex; – Khởi tạo: full = 0; 19 empty = BUFFER_SIZE; mutex = 1; Buffer xoay vòng out i n PRODUCER CONSUMER while (1) { while (1) { … wait(full) wait(mutex); … nextC = get_buffer_item(out); … signal(mutex); signal(empty); … consume_item (nextC); … nextP = new_item(); … wait(empty); wait(mutex); … insert_to_buffer(nextP); … signal(mutex); signal(full); } Câu (1 điểm) } Phát biểu toán Sản xuất-Tiêu thụ với thuật giải đồng hoá đèn hiệu semFull, semEmpty Mutex Trả lời: - Tiến trình sản xuất (Producer) tạo dịng thơng tin để tiến trình tiêu thụ (Consumer) sử dụng - Ví dụ: Compiler Assembler vừa nhà sản xuất vừa nhà tiêu thụ Compiler tạo mã dùng cho Assembler, Assembler sản sinh mã máy làm đầu vào cho Loader Linkage Editor - Phát biểu toán: Bộ nhớ đệm Buffer bao gồm số hữu hạn khoang chứa (Items) Producer đưa sản phẩm S1, S2,…vào khoang Buffer Consumer lấy sản phẩm theo thứ tự Công việc tiến trình phải đồng với nhau: không đưa sản phẩm hết chỗ trống, không lấy sản phẩm chưa có 20 - Thuật giải đồng hoá đèn hiệu: semFull (quản lý số sản phẩm có đệm, giá trị ban đầu 0), semEmpty (quản lý số khoang trống, giá trị ban đầu số khoang đệm) Mutex (đảm bảo tính loại trừ tương hỗ, nghĩa thời điểm có tiến trình sản xuất hay tiêu thụ truy cập/cập nhật tài nguyên dùng chung, giá trị ban đầu 1) o Thuật giải cho Producer: wait(semEmpty); wait(Mutex); // Đưa sản phẩm vào Buffer signal(semFull); signal(Mutex); o Thuật giải cho Consumer: wait(semFull); wait(Mutex); // Lấy sản phẩm từ Buffer signal(semEmpty); signal(Mutex); 4.1 Phát biểu toán Sản xuất-Tiêu thụ trình bày Thuật giải với Bộ đệm thực thi mảng xoay vòng Giải: Phát biểu tốn:  Giả sử có Bộ nhớ đệm (Buffer) bao gồm nhiều khoang (Items) tiến trình Producer đưa sản phẩm S1, S2, vào  Tiến trình Consumer lấy sản phẩm theo thứ tự  Công việc Producer phải đồng với Consumer: Không đưa sản phẩm vào Buffer đầy, Khơng lấy chưa có Trình bày giải thuật: 21 Buffer xoay vòng out PRODUCER item nextProduced; while (1) { while(((in+1)%BUFFER_SIZE)==out); //quẩ n tạ i đ ây buffer đ ầ y buffer[in] = nextProduced; in = (in+1)%BUFFER_SIZE; } i n CONSUMER item nextConsumed; while (1) { while(in==out); //quẩ n buffer rỗ ng nextConsumed = buffer[out]; out = (out+1)%BUFFER_SIZE; } Dining-Philosopers (deadlock, không deadlock) 7.1 Phân tích thuật giải sai tốn Dining-Philosophers (dẫn đến Deadlock) Giải: Dữ liệu chia sẻ: semaphore chopstick[5]; Khởi đầu biến là: while (1) { wait(chopstick[i]) wait(chopstick[(i+1) % ] ) … eat … signal(chopstick[i]); signal(chopstick[(i+1) % 5] ); … think … } Giải pháp gây deadlock Khi tất triết gia đói bụng lúc đồng thời cầm đũa bên tay trái  deadlock 22 Có thể xảy trường hợp ách vơ hạn định (starvation) 7.2 Phân tích thuật giải toán Dining-Philosophers (dùng đèn hiệu) Giải: Dữ liệu chia sẻ: semaphore chopstick[5]; Khởi đầu biến là: HANDLE cs[2] while (1) { cs[0] = chopstick[i]; cs[0] = chopstick[(i+1) % ] WaitForMultipleObjects(2, cs, TRUE, INFINITE); … eat … ReleaseMutex(chopstick[i]; ReleaseMutex(chopstick[(i+1) % ]) … think … } 23

Ngày đăng: 07/06/2023, 17:00

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

  • Đang cập nhật ...

Tài liệu liên quan