Những Bài Tập Thực Hành Môn Hệ Điều Hành -Thầy Vũ Lê Hùng - Chủ đề 5: Giao tiếp giữa các quá trình

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Những Bài Tập Thực Hành Môn Hệ Điều Hành -Thầy Vũ Lê Hùng - Chủ đề 5: Giao tiếp giữa các quá trình

Bài gửi  NguyenMinhHoang10H1012029 on 5/11/2011, 04:01

1. Tài liệu tham khảo
- UNIX network programming, phần Interprocess Communications
- Interprocess Communication in UNIX
- 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 cơ chế giao tiếp giữa các quá trình trong UNIX
- Tìm hiểu các cơ chế giao tiếp giữa các quá trình trong UNIX dùng pipe, message queue, shared memory.
- Ưu nhược điểm của từng phương pháp.
3. Ngôn ngữ lập trình sử dụng: C trên UNIX

Bài 5.1 :
Tạo ra 2 quá trình. Quá 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 đó quá trình thứ nhất truyền các chuỗi dữ liệu này cho quá trình thứ hai. Quá trình thứ hai thực hiện tính toán và trả chuỗi kết quả về lại cho quá 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.
Bài 5.2 :
Viết chương trình tương tự bài 5.1 nhưng dùng pipe để giao tiếp.
Bài 5.3 :
Viết chương trình tương tự bài 5.1 nhưng dùng shared memory để giao tiếp.
Bài 5.4 :
Viết chương trình gồm có 2 quá trình. Quá trình thứ nhất cho người dùng nhập vào từ bàn phím một chuỗi biễu diễn một phép tính gồm các phần tử +, -, (, ). Độ ưu tiên của các phép tính trong ngoặc (cặp dấu ( & )) là cao nhất, phép + và – cùng độ ưu tiên. Ví dụ:
1+2+(2-3-4) –((3+4)-5)
(1+(-2)–((3+4)-5))
Sau đó truyền chuỗi dữ liệu này cho quá trình thứ hai. Quá trình thứ hai thực hiện tính toán trên và trả kết quả về cho quá trình thứ nhất để hiển thị cho người sử dụng biết.
Thực hiện bài toán dùng message queue để giao tiếp giứa 2 quá trình.
Bài 5.5 :
Viết chương trình tương tự bài 5.4 nhưng dùng pipe để giao tiếp.
Bài 5.6 :
Viết chương trình tương tự bài 5.4 nhưng dùng shared memory để giao tiếp.
Bài 5.7 :
Tạo ra 2 quá trình P0 và P1. Quá trình P0 đọc từ file nhiều dãy số nguyên liên tiếp (mỗi dãy có thể có số phần tử khác nhau). Sau đó quá trình này gởi lần lượt các dãy này cho quá trình P1. P1 thực hiện sắp xếp mỗi dãy theo thứ tự tăng dần, đồng thời tính tổng của dãy đó và gởi dãy kết quả cùng với tổng tính được tương ứng cho mỗi dãy về lại quá trình P0. Khi này, P0 thực hiện ghi các dãy kết quả vào lại file sao cho: dãy có tổng nhỏ nhất sẽ được ghi đầu tiên, dãy có tổng lớn hơn sẽ được ghi sau. Thực hiện bài toán dùng message queue để giao tiếp giứa 2 quá trình.
Bài 5.8 :
Viết chương trình tương tự bài 5.7 nhưng dùng pipe để giao tiếp.
Bài 5.9 :
Viết chương trình tương tự bài 5.7 nhưng dùng shared memory để giao tiếp.
Bài 5.10 :
Tạo ra 2 quá trình P0 và P1. Quá trình P0 đọc từ file một ma trận vuông cấp N*N, sau đó gởi ma trận này cho P1. Quá trình P1 sẽ thực hiện nghịch đảo ma trận này và ghi kết quả xuống một file khác. Nếu ma trận không thể nghịch đảo được, P1 ghi vào file kết quả dòng thông báo tương ứng.
Thực hiện bài toán dùng message queue để giao tiếp giứa 2 quá trình.
Bài 5.11 :
Viết chương trình tương tự bài 5.10 nhưng dùng pipe để giao tiếp.
Bài 5.12 :
Viết chương trình tương tự bài 5.10 nhưng dùng shared memory để giao tiếp.

NguyenMinhHoang10H1012029

Tổng số bài gửi : 9
Join date : 02/09/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết