Danh mục

BÀI TẬP LỚN HỆ ĐIỀU HÀNH

Số trang: 6      Loại file: doc      Dung lượng: 97.50 KB      Lượt xem: 13      Lượt tải: 0    
Hoai.2512

Hỗ trợ phí lưu trữ khi tải xuống: 1,000 VND Tải xuống file đầy đủ (6 trang) 0

Báo xấu

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài 1.1: Viết chương trình mô phỏng giải thuật nhà băng của Dijsktra để tránh deadlock. Số lượng các nguồn tài nguyên, các yêu cầu của hệ thống được tạo ngẫu nhiên. Hãy hiện thực cách xét trạng thái hiện thời của hệ thống là an toàn hay không an toàn. Nếu trạng thái là an toàn, chương trình phải chỉ ra cách để thu hồi tài nguyên hệ thống. Với mỗi yêu cầu cung cấp tài nguyên, hãy hiển thị ra màn hình cách cấp phát, thu hồi tương ứng....
Nội dung trích xuất từ tài liệu:
BÀI TẬP LỚN HỆ ĐIỀU HÀNH Bài tập lớn hệ điều hành Lớp MT2000 BÀI TẬP LỚN HỆ ĐIỀU HÀNH Quy định : • Ngôn ngữ lập trình sử dụng trong các bài tập là C, C++ hoặc Java. • Các bài tập viết trên UNIX phải viết trên nền Linux. • Sinh viên chia nhóm từ 3-4 người. Mỗi nhóm chọn 2 bài tập thuộc 2 ch ủ đề l ập trình và 1 bài tập phần tìm hiểu hệ thống. • Các nhóm sinh viên có thể đăng ký để trình bày trước lớp v ề đề tài c ủa nhóm mình. Các nhóm đăng ký phải chuẩn bị slide hoặc bài viết để trình bày trước lớp trong các bu ổi h ọc cu ối cùng của môn học. • Sinh viên có tham gia thuyết trình sẽ được cộng thêm điểm vào bài tập lớn • Lớp trưởng đánh máy và in ra danh sách các nhóm (họ tên, mã s ố sinh viên), tên bài t ập và thông tin đăng ký thuyết trình của các sinh viên và gởi cho GVHD qua email. BÀI TẬP LẬP TRÌNH Chủ đề 1: Mô phỏng 1. Tài liệu tham khảo - Bài giảng Hệ điều hành, Vũ Lê Hùng - An Introduction To Operating System, H.M. Deitel 2. Ngôn ngữ lập trình sử dụng: C, C++, Java trên UNIX hoặc Windows Bài 1.1: Viết chương trình mô phỏng giải thuật nhà băng của Dijsktra để tránh deadlock. S ố lượng các nguồn tài nguyên, các yêu cầu của hệ thống được t ạo ngẫu nhiên. Hãy hi ện th ực cách xét trạng thái hiện thời của hệ thống là an toàn hay không an toàn. N ếu tr ạng thái là an toàn, chương trình phải chỉ ra cách để thu hồi tài nguyên h ệ th ống. V ới m ỗi yêu c ầu cung c ấp tài nguyên, hãy hiển thị ra màn hình cách cấp phát, thu hồi tương ứng. Bài 1.2: Viết chương trình mô phỏng các giải thuật định thời đã h ọc: FIFO, SJF, SRT, RR, HRRN, MLFQ. Đầu vào của giải thuật: số quá trình, độ dài các CPU burst, I/O burst… đ ược t ạo ngẫu nhiên. Tính toán các thông số và đánh giá độ hiệu quả của từng giải thuật. Bài 1.3: Viết chương trình mô phỏng các giải thuật thay thế trang đã h ọc: OPT, FIFO, LRU, LFU, NUR, Second Chance. Đầu vào của giải thuật: số khung trang, chu ỗi tham kh ảo trang, yêu cầu thay thế trang…được tạo ngẫu nhiên. Đánh giá độ hiệu quả (so sánh số page fault) của t ừng giải thuật. Chủ đề 2: Đồng bộ giữa các quá trình 1. Tài liệu tham khảo - UNIX network programming. - Tài liệu hướng dẫn thực hành Hệ điều hành, Hồ Quốc Thuần. 2. Tìm hiểu cách tạo quá trình trong UNIX: hàm fork( ). 3. Tìm hiểu các cách đồng bộ giữa các quá trình trong UNIX: semaphore, lock file. 4. Ngôn ngữ lập trình sử dụng: C trên UNIX Bài 2.1 : (Semaphore) Viết chương trình tạo ra một quá trình con. Quá trình cha sẽ nh ận chu ỗi s ố nguyên t ừ bàn phím do người dùng nhập và ghi vào file tên input. Quá trình con s ẽ đ ọc d ữ liệu t ừ file này, s ắp xếp chúng theo thứ tự tăng dần và ghi vào một file khác tên là sorted. Bài 2.2 : (Semaphore) Viết chương trình producer-consumer với bounded buffer. Bài 2.3 : (Semaphore) Trang 1/6 Bài tập lớn hệ điều hành Lớp MT2000 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 ải t ạ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 2.4 : (Lock file) Viết chương trình giải quyết bài toán reader/writer d ạng t ổng quát. Ch ương trình ph ải t ạo ra 5 quá trình đồng thời với hoạt động đọc/ghi file bất kỳ để thử nghiệm giải thuật. Chủ đề 3: Quản lý bộ nhớ 1. Tài liệu tham khảo - The Design of the UNIX Operating System- Andrew S. Tanenbaum, Chương 7 - Interprocess Communications in UNIX-The Nooks and Crannies. - Tài liệu hướng dẫn thực hành Hệ điều hành, Hồ Quốc Thuần. 2. Tìm hiểu các hàm truy cập bộ nhớ : - Tìm hiểu cách tạo quá trình trong UNIX dùng hàm fork( ). - Tìm hiểu cách cấp phát bộ nhớ cho quá trình trong hệ điều hành UNIX. - Tìm hiểu các hàm cho phép lấy các thông tin về vùng nhớ cấp cho quá trình cũng như cho phép thay đổi các vùng nhớ đó. 3. Ngôn ngữ lập trình sử dụng: C trên UNIX Bài 3.1 : Viết chương trình có khai báo 4 biến như sau: - global là biến nguyên toàn cục không khởi động trị. - local là biến nguyên khai báo cục bộ trong hàm doNoth( ) (hàm này không làm gì cả) - intarray là một con trỏ đến biến kiểu nguyên. Trong hàm main(), hãy gán global=1, sau đó in địa chỉ các segment của quá trình ra màn hình. Cho biết địa chỉ các biến global, local và intarray (1). Tiếp theo, hãy dùng hàm fork() tạo ra một quá trình con. Cho biết giá trị các địa chỉ trên ở trong quá trình con (2). Hãy gán global=2 trong quá trình con và cho biết giá trị mới của biến global trong quá trình con và quá trình cha. Trong quá trình cha, sau khi dùng fork(), hãy gọi hàm doNoth(), sau đó dùng malloc() để xin một vùng nhớ cho một mảng 10 số nguyên và gán địa chỉ đầu mảng vào biến intarray. Trả lời các câu hỏi sau: - Biến global là biến chung hay biến riêng của từng quá trình? - Biến intarray của quá trình cha nằm trên stack hay trên heap? - Biến local của quá trình cha nằm trên stack hay trên heap? Các địa chỉ ở (1) và (2) có khác nhau không? Giải thích? - Bài 3.2 : Viết các hàm mymalloc() và myfree() dựa trên các hàm cung cấp sẵn là brk() và sbrk(). Chủ đề 4: Thread 1. Tài liệu tham khảo - UNIX Internal, phần Thread and Lightweight Processes - Multithread Programming Guide. - Interprocess Communications in UNIX. - MSDN CDROM - Java How to Program, phần Threads 2. Tìm hiểu thread : - Tìm hiểu khái niệm thread. - Phân biệt giứa mô hình xử lý dùng multithread và dùng nhiều process. - Tìm hiểu cách đồng bộ giữa các thread trong Java và trong Linux. 3. Ngôn ngữ ...

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