1. Trang chủ
  2. » Công Nghệ Thông Tin

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

3 2,2K 22

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 3
Dung lượng 45 KB

Nội dung

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ầ

Trang 1

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 sánh thời gian chạy của 2 cơ chế này.

1 Tài liệu tham khảo

- Bài giảng Hệ điều hành, Nguyễn Thị Thùy Linh

- Giáo trình Hệ điều hành, Nguyễn Phú Trường, ĐHCT

- 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 3.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

Trang 2

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 3.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 3.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ủ đề 4: Đồ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

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 4.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 4.2 : (Semaphore)

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

Trang 3

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.

Bài 5.4 :

Ứng dụng multithread trong bài toán sau : Đọc vào một dãy A từ file, dùng n thread để sắp xếp dãy theo thứ

tự tăng dần như sau:

 Mỗi thread lấy một phần dãy a và sắp theo thứ tự tăng dần

 Sau đó, 1 thread trộn các dãy do n thread vừa rồi đã sắp xếp thành dãy kết quả

Bài 5.5 :

Cho người dùng nhập vào 2 số nguyên dương a và b, sau đó dùng n thread để tìm kiếm các số nguyên tố

nằm trong khoảng 2 số đã nhập Mỗi lần tìm được một số thì sẽ tăng biến chung number (khởi động là 0)

lên 1

Bài 5.6 :

Cho người dùng nhập vào 2 số nguyên dương a và b, sau đó dùng n thread để tìm kiếm các số nguyên tố nằm trong khoảng 2 số đã nhập và ghi các số này ra file

Bài 5.7:

Đọc vào một ma trận (kích thước N*N) từ file, sau đó dùng n thread để tính tổng của từng hàng trên ma trận (1 thread nếu tính tổng một hàng xong có thể tính tổng của một hàng khác) Dùng một thread để thu thập các kết quả của các thread kia và ghi vào một file kết quả

Bài 5.8:

Sử dụng thread và các phương thức đồng bộ trên thread để viết chương trình producers-consumers với 1 bounded buffer trong trường hợp có nhiều producer và nhiều consumer

Bài 5.9:

Sử dụng thread và các phương thức đồng bộ trên thread để giải quyết bài toán N triết gia ăn tối

Bài 5.10 :

Sử dụng thread và các phương thức đồng bộ trên thread để viết giải quyết bài toán reader/writer dạng tổng quát

CHÚ Ý : Khi báo cáo sinh viên sẽ được hỏi các vấn đề lý thuyết liên quan đến bài tập và chạy chương trình DEMO của mình.

Ngày đăng: 04/07/2014, 03:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w