Bài tập môn hệ điều hành doc - Pdf 16

BÀI TẬP MÔN HỆ ĐIỀU HÀNH
Chủ đề 1:
Mô phỏng các giải thuật định thời cho process.
Input:
File đặc tả các công việc bao gồm các thông tin sau:
Thời gian tính toán của mỗi process
Thời điểm process được đưa vào hệ thống
Các thông tin khác cần cho giải thuật (nếu thấy cần thiết)
Output:
Thời gian đợi (waiting time) của mỗi process
Thời gian đợi trung bình
Thời gian quay vòng (turnaround time)
Thời gian quay vòng trung bình
Thông năng (throughput)
Yêu cầu:
Sinh viên hiện thực giải thuật First Come First Serve và 2 trong số các giải thuật sau:
Shortest Job First
Shortest Remaining Time First
Round Robin
Highest Response Ration Next
Multi-level Queue Scheduling
Multi-level Feedback Queue
Chủ đề 2:
Viết chương trình thực hiện chức năng copy các file văn bản.
Input: 1 file văn bản kích thước từ 100MB  10GB
Output: bản sao của file Input
Yêu cầu:
- Có 2 process và một buffer dùng chung (kích thước buffer < 5 KB):
o Process 1 thực hiện chức năng đọc dữ liệu từ file Input vào buffer
o Process 2 thực hiện chức năng ghi dữ liệu từ buffer ra file Output
- Giải quyết vần đề tranh chấp bằng 2 cơ chế: busy-waiting và sleep-and-wakeup. Nhận xét và so

Viết chương trình producer-consumer với bounded buffer.
Bài 4.3 : (Semaphore)
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 4.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ủ đề 5: 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ữ lập trình sử dụng có thể là C, C++, Java trên UNIX hoặc Windows.
Bài 5.1 :
Ứng dụng multithread trong bài toán nhân ma trận. Đọc vào 2 ma trận A & B từ file, sau đó dùng nhiều
thread để thực hiện việc nhân 2 ma trận này. Ghi ma trận kết quả ra một file khác.
Bài 5.2 :
Ứng dụng multithread trong bài toán xử lý ảnh. Đọc vào một ma trận A từ file, sau đó dùng nhiều thread để
thực hiện xử lý trên ma trận này như sau : một phần tử trên ma trận là trung bình cộng của các phần tử chung
quanh nó. Ghi ma trận kết quả ra một file khác.
Bài 5.3 :
Ứng dụng multithread trong bài toán sau : Đọc vào một ma trận A từ file và nhập vào một số k, sau đó dùng
n thread để thực hiện tìm kiếm trên các ma trận này xem có bao nhiêu phần tử giống k. Mỗi lần tìm thấy
phần tử giống k thì tăng biến chung number (khởi động là 0) lên 1.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status