Danh mục

Bài tập môn OS concepts

Số trang: 6      Loại file: doc      Dung lượng: 47.50 KB      Lượt xem: 5      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Hệ thống bài tập lập trình dành cho sinh viên khối ngành Công nghệ thông tin tham khảo làm bài và củng cố kiến thức
Nội dung trích xuất từ tài liệu:
Bài tập môn OS concepts Bài tập môn OS conceptsĐiều phối tiến trình:Bài 1. VCT xác định kết quả điều phối tiến trình & thời gian chờ trung bình theothuật toán FCFS, với tập tiến trình cần xử lý được mô tả trong file văn bảnINPUT.TXT theo dạng: tiến trình thứ K có thời điểm vào và thời gian xử lý là 2số nguyên ở dòng K. Ví dụ, nội dung file văn bản là: 0 24 13 23 thì có 3 tiến trình cần xử lý, trong đó tiến trình P1 có thời điểm vào là 0 & thời gian xử lý là 24, tương tự tiến trình P2 có thời điểm vào là 1 và P3 là 2 – cả hai cùng có thời gian xử lý là 3.Bài 2. VCT xác định kết quả điều phối tiến trình & thời gian chờ trung bình theothuật toán Round Robin, Tập tiến trình cần xử lý được mô tả trong file văn bảnINPUT.TXT theo dạng như trên – riêng dòng cuối cùng của file lưu giá trịquantum.Bài 3. VCT xác định kết quả điều phối tiến trình & thời gian chờ trung bình theothuật toán điều phối SJF độc quyền và không độc quyền. Tập tiến trình cần xửlý được mô tả trong file văn bản INPUT.TXT theo dạng như câu 1.Bài 4. VCT xác định kết quả điều phối tiến trình & thời gian chờ trung bình theothuật toán điều phối với độ ưu tiên độc quyền. với tập tiến trình cần xử lý đượcmô tả trong file văn bản INPUT.TXT theo dạng tương tự câu 1 – nhưng mỗi dòngcó 3 con số và số thứ ba là độ ưu tiên của tiến trình tương ứng.Bài 5. Xét 3 tiến trình A, B, C liên tục xuất ra các ký tự ‘A’, ‘B’, ’C’ tại các dòng1, 2, 3 (khi xuất tới cuối dòng thì xóa cả dòng và xuất lại ở đầu dòng). Hãy xâydựng hệ thống giả lập điều phối 3 tiến trình theo thuật toán RR, biết thời điểmvào tương ứng của 3 tiến trình là 0, 10, 20 và trong khoảng thời gian quantum sốký tự xuất ra được của 3 tiến trình tương ứng là 1, 2, 3Liên lạc tiến trình:Bài 6. Tạo ra 2 tiến trình. Tiến trình thứ nhất đọc từ file nhiều chuỗi liên tiếp,mỗi chuỗi gồm các phép toán +, -, *, / và hai toán hạng. Ví dụ trong file sẽ lưu các chuỗi dạng như sau : 2+3 1 -2 4 *6 15 / 3 Sau đó tiến trình thứ nhất truyền các chuỗi dữ liệu này cho tiến trình thứ hai.Tiến trình thứ hai thực hiện tính toán và trả chuỗi kết quả về lại cho tiến trìnhđầu tiên để ghi lại vào file như sau: 2+3 =5 1 - 2 = -1 4 * 6 = 24 15 / 3 =5 Thực hiện bài toán dùng message queue để giao tiếp giứa 2 quá trình.Quản lý bộ nhớ:Bài 7. Xây dựng chương trình mô phỏng trực quan việc cấp phát liên tiếp vớiphân vùng cố định sử dụng nhiều hàng đợi. Số phân vùng, kích thước từng phânvùng tự thiết kế cho phù hợp; các tiến trình và kích thước tương ứng được phátsinh ngẫu nhiên (và thời điểm giải phóng cũng được random sao cho hợp lý)Bài 8. Tương tự bài trên với phân vùng cố định sử dụng một hàng đợiBài 9. Tương tự bài trên với phân vùng động & thuật toán First – fitBài 10. Tương tự bài trên với phân vùng động & thuật toán Best – fitĐồng bộ: (Semaphore)Bài 11. Viết chương trình giải quyết bài toán 5 triết gia ăn tối. Chương trình phảitạo ra 5 quá trình con mô phỏng hoạt động của 5 triết gia. Dùng semaphore đểđồng bộ hoạt động của 5 triết gia này.Bài 12. Bài toán Tạo phân tử H2O Đồng bộ hoạt động của một phòng thí nghiệm sử dụng nhiều tiến trình đồng hành sau để tạo các phân tử H2O: MakeH() // Mỗi tiến trình MakeH tạo 1 nguyên tử H { Make-Hydro(); } MakeO() // Mỗi tiến trình MakeO tạo 1 nguyên tử O { Make-Oxy(); } MakeWater() /* Tiến trình MakeWater hoạt động đồng hành với các tiến trình MakeH, MakeO, chờ có đủ 2 H và 1 O để tạo H2O */ { while (T) Make-Water(); //Tạo 1 phân tử H2O }Bài 13. Bài toán Cây cầu cũ Để tránh sụp đổ, người ta chỉ có cho phép tối đa 3 xe lưu thông đồng thời qua một cây cầu rất cũ. Hãy xây dựng thủ tục ArriveBridge(int direction) và ExitBridge() kiểm soát giao thông trên cầu sao cho : Tại mỗi thời điểm, chỉ cho phép tối đa 3 xe lưu thông trên cầu. Tại mỗi thời điểm, chỉ cho phép tối đa 3 xe lưuthông cùng hướng trên cầu. Mỗi chiếc xe khi đến đầu cầu sẽ gọi ArriveBridge(direction) để kiểm tra điều kiện lên cầu, và khi đã qua cầu được sẽ gọi ExitBridge() để báo hiệu kết thúc. Giả sử hoạt động của mỗi chiếc xe được mô tả bằng một tiến trình Car() sau đây: Car(int direction) /* direction xác định hướng di chuyển của mỗi chiếc xe.*/ { RuntoBridge(); // Đi về phía cầu ArriveBridge(direction); PassBridge(); // Qua cầu Exit Bridge(); RunfromBridge(); // Đã qua cầu }Bài 14. Bài toán Qua sông Để vượt qua sông, các nhân viên Microsof và các Linux hacker cùng sử dụng một bến sông và phải chia sẻ một số thuyền đặc biệt. Mỗi chiếc thuyền này chỉ cho phép chở 1 lần 4 người, và phải có đủ 4 người mới khởi hành được. Để bảo đảm an toàn cho cả 2 phía, cần tuân thủ các luật sau : a. Không chấp nhận 3 nhân viên Microsoft và 1 Linux hacker trên cùng một chiếc thuyền. b. Ngược lại, không chấp nhận 3 Linux hacker và 1 nhân viên Microsoft trên cùng một chiếc thuyền. c. Tất cả các trường hợp kết hợp khác đều hợp pháp. d. Thuyền chỉ khởihành khi đã có đủ 4 hành khách. Cần xây dựng 2 thủ tục HackerArrives() và EmployeeArrives() được gọi tương ứng bởi 1 hacker hoặc 1 nhân viên khi họ đến bờ sông để kiểm tra điều kiện có cho phép họ xuống thuyền không ? Các thủ tục này sẽ sắp xếp những người thích hợp có thể lên thuyền. Những người đã được lên thuyền khi thuyền chưa đầy sẽ phải chờ đến khi người thứ 4 xuống thuyền mới có thể khởi hành qua sông. (Không quan tâm đế ...

Tài liệu được xem nhiều: