Chào các bạn lớp OSYS1.D16.1, hôm nay mình post phần bài tập lớn cho các bạn xem xét và đăng ký nhóm + bài tập cho mình.
Mình bắt đầu nhận Email đăng ký của các bạn vào 20h ngày 18-10-2012.
Các bạn soạn mail với nội dung: "BTL MSSV Tên_thành_viên Tên_bài" và gửi về địa chỉ: 11520292@gm.uit.edu.vn cho mình.
Mình sẽ cập nhật theo thứ tự các bài mà các nhóm đăng ký thành công tại topic này và reply cho những nhóm đăng ký sai hoặc trùng.
Lưu ý: những mail sai nội dung, trùng bài tập sẽ phải đăng ký lại.
Goodluck.
Các bạn có thể tham khảo tài liệu của bạn Trần Đại Dương lớp OSYS1.D16.2 sưu tầm tại http://forum.uit.edu.vn/threads/1091...n-He-Dieu-Hanh
Thanks
11520292 Phạm Đức Phùng, Bài a.7
11520067 Võ Đại Đồng, 11520195 Nguyễn Danh Hoài Lam, Bài a.2
08520018 Nguyễn Duy Anh, Bài a.13
10520349 Nguyễn Duy Vũ, Bài a.13
11520179 Phan Văn Đăng Khoa, 11520469 Trần Trung Tuyến, Bài a.3
11520607 Huỳnh Văn Nhựt, 11520558 Lữ Thy Vỹ Hòa, Bài b.5
11520601 Đoàn Thành Nam, 11520594 Nguyễn Kim Long, Bài b.5
11520641 Phạm Huỳnh Phương Thảo, 11520660 Trần Hồng Trang, Bài a.12
11520508 Lê Văn Anh, 11520628 Trần Đình Tài, Bài a.14
11520507 Nguyễn Thị Quỳnh Anh, 11520512 Lê Thị Ngọc Ánh, Bài a.14
11520658 Phạm Thu Trang, 11520530 Đặng Quốc Đạt, Bài a.12
11520598 Đặng Quang Lực, 11520022 Đỗ Thị Ngọc Bích, Bài a.2
11520459 Đào Thanh Tuấn, 11520486-Nguyễn Văn Vũ, Bài a.7
09520565 Lê Nhật Minh, Bài a.5
11520341 Phạm Thế Tài, 11520252 Cao Đoan Hồng Ngọc, Bài a.4
11520502 Trần Trường An, 11520249 Nguyễn Minh Nghĩa, Bài a.3
11520684 Trần Sơn Tùng, Bài a.5
11520395 Trương Hòa Thuận, 11520186 La Duy Kiên, Bài a.6
11520352 Vi Minh Tấn, 11520200 Nguyễn Ngọc Lâm Bài b.1
11520143 Huỳnh Quang Huy, Bài a.6
11520504 Đặng Phước An, Bài a.1
08520048 Lê Thế Công, Bài a.1
Cập Nhật - Nhóm bổ sung được đăng ký 3 người 1 nhóm:
08520296 Huỳnh Hữu Phương, 08520018 Nguyễn Duy Anh, Bài a.13 (Bổ sung)
10520349 Nguyễn Duy Vũ, 10520127 Nguyễn Đỗ Cao Trí, 11520260 Nguyễn Thanh Nhã, Bài a.13 (Bổ sung)
11520319 Huỳnh Mậu Quý, bài a.14 (đăng ký mới)
Mình bắt đầu nhận Email đăng ký của các bạn vào 20h ngày 18-10-2012.
Các bạn soạn mail với nội dung: "BTL MSSV Tên_thành_viên Tên_bài" và gửi về địa chỉ: 11520292@gm.uit.edu.vn cho mình.
Mình sẽ cập nhật theo thứ tự các bài mà các nhóm đăng ký thành công tại topic này và reply cho những nhóm đăng ký sai hoặc trùng.
Lưu ý: những mail sai nội dung, trùng bài tập sẽ phải đăng ký lại.
Goodluck.
PHP Code:
a./ Phần Process/Thread:
Bài a.1: Viết chương trình 5 triết gia ăn tối. Chương trình cho thấy được 5 tiến trình mô phỏng như là 5 triết gia, sử dụng semaphore để đồng bộ.
Bài a.2: Viết chương trình multithread trong bài toán nhân ma trận. Đọc vào 2 ma trận A & B, sau đó dùng nhiều thread này để thực hiện việc nhân ma trận. Ghi ma trận kết quả ra file.
Bài a.3: Viết chương trình multithread cho 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.
- Mỗi thread lấy một phần của dãy A và sắp xếp theo thứ tự tăng dần.
- Sau đó, 1 thread trộn các dãy do các thread vừa rồi đã sắp xếp thành dãy kết quả.
Bài a.4: Sử dụng thread và các phương thức đồng bộ để giải quyết bài toán reader/writer dạng tổng quát.
Bài a.5: Viết chương trình gồm 2 tiến trình. Tiến trình A đọc 1 dãy số nguyên từ một file, sau đó gửi dãy số nguyên này cho tiến trình B thông qua cơ chế pipe. Tiến trình B sau khi nhận xong dữ liệu từ tiến trình A sẽ sắp xếp theo thứ tự tăng dần rồi ghi vào 1 file khác.
Bài a.6: Viết chương trình giao tiếp giữa 2 tiến trình bằng các dùng shared memory. Tiến trình A gửi 1 thông điệp (message) sang tiến trình B và đợi tiến trình B phản hồi. Tiến trình B đợi thông điệp từ tiến trình A sau đó phản hồi 1 thông điệp khác cho tiến trình A. Chương trình này tương tự như TalkApplication trong bài thực hành 3. ( Sử dụng shared memory bằng cách dùng memory-mapped files, tham khảo thư viện MSDN).
Bài a.7: Viết chương trình giao tiếp giữa 2 tiến trình sử dụng pipe như sau: Tiến trình A đọc từ file gồm nhiều chuỗi liên tiếp, mỗi chuỗi gồm các phép toán +, -, *, / và 2 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
Bài a.8: Viết chương trình tương tự bài toán a.7 nhưng sử dụng shared memory.
Bài a.9: Tạo ra 2 tiến trình P0 và P1 giao tiếp qua pipe. Tiến 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. tiến 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.
Bài a.10: Giải quyết bài toán a.9 trong trường hợp dùng shared memory.
Bài a.11: Hiện thực giải thuật đồng bộ Peterson. Minh họa giải thuật với multithread.
Bài a.12: Hiện thực mô phỏng giải thuật định thời FCFS
Bài a.13: Hiện thực mô phỏng giải thuật định thời Round-Robin(RR).
Bài a.14: Hiện thực mô phỏng giải thuật định thời SJF.
b./Phần quản lý bộ nhớ:
Bài b.1: Viết chương trình mô phỏng giải thuật thay thế trang FIFO. Đầu vào của giải thuật: số khung trang, chuỗi tham khảo trang. Đầu ra thể hiện được page hit, page fault như trong bài thực hành 4.
Bài b.2: Viết chương trình mô phỏng giải thuật thay thế trang OPT. Đầu vào của giải thuật: số khung trang, chuỗi tham khảo trang. Đầu ra thể hiện được page hit, page fault như trong bài thực hành 4.
Bài b.3: Viết chương trình mô phỏng giải thuật thay thế trang LRU. Đầu vào của giải thuật: số khung trang, chuỗi tham khảo trang. Đầu ra thể hiện được page hit, page fault như trong bài thực hành 4.
Bài b.4: Hãy hiện thực cơ chế quản lý heap trên một vùng nhớ tĩnh được cấp phát trước. chương trình cung cấp 2 hàm malloc và free tương tự như hàm hệ thống của C: malloc(), free().
Bài b.5: Viết chương trình xử lý bàn phím nhập bằng cách sử dụng các hàm HeapCreate(), HeapAlloc(), HeapFree() như sau:
Thread 1 đọc 1 dãy các ký tự từ bàn phím cho đến khi gặp ký tự kết thúc. Mỗi lần đọc 1 ký tự nó sẽ tạo ra (alloc) 1 struct _charstruct rồi ghi ký tự này vào.Kết quảlà một dãy con trỏ struct _charstruct. Sau đó nó gọi 1 thread thứ2. Thread thứ2 sẽ đảo ngược chuỗi ký tự này và ghi vào 1 dãy con trỏ struct _charstruct khác. Thread thứ2 này sẽ gọi thread thứ3 thức dậy (resume). Thread thứ3 sẽ ghi chuỗi ký tự này ra màn hình.
typedef struct _charstruct {
char c;
struct _charstruct * next;
} * charstructp
Bài b.6: Giải quyết bài toán b.5 trong trường hợp dùng VirtualAlloc.
Thanks
11520292 Phạm Đức Phùng, Bài a.7
11520067 Võ Đại Đồng, 11520195 Nguyễn Danh Hoài Lam, Bài a.2
08520018 Nguyễn Duy Anh, Bài a.13
10520349 Nguyễn Duy Vũ, Bài a.13
11520179 Phan Văn Đăng Khoa, 11520469 Trần Trung Tuyến, Bài a.3
11520607 Huỳnh Văn Nhựt, 11520558 Lữ Thy Vỹ Hòa, Bài b.5
11520601 Đoàn Thành Nam, 11520594 Nguyễn Kim Long, Bài b.5
11520641 Phạm Huỳnh Phương Thảo, 11520660 Trần Hồng Trang, Bài a.12
11520508 Lê Văn Anh, 11520628 Trần Đình Tài, Bài a.14
11520507 Nguyễn Thị Quỳnh Anh, 11520512 Lê Thị Ngọc Ánh, Bài a.14
11520658 Phạm Thu Trang, 11520530 Đặng Quốc Đạt, Bài a.12
11520598 Đặng Quang Lực, 11520022 Đỗ Thị Ngọc Bích, Bài a.2
11520459 Đào Thanh Tuấn, 11520486-Nguyễn Văn Vũ, Bài a.7
09520565 Lê Nhật Minh, Bài a.5
11520341 Phạm Thế Tài, 11520252 Cao Đoan Hồng Ngọc, Bài a.4
11520502 Trần Trường An, 11520249 Nguyễn Minh Nghĩa, Bài a.3
11520684 Trần Sơn Tùng, Bài a.5
11520395 Trương Hòa Thuận, 11520186 La Duy Kiên, Bài a.6
11520352 Vi Minh Tấn, 11520200 Nguyễn Ngọc Lâm Bài b.1
11520143 Huỳnh Quang Huy, Bài a.6
11520504 Đặng Phước An, Bài a.1
08520048 Lê Thế Công, Bài a.1
Cập Nhật - Nhóm bổ sung được đăng ký 3 người 1 nhóm:
08520296 Huỳnh Hữu Phương, 08520018 Nguyễn Duy Anh, Bài a.13 (Bổ sung)
10520349 Nguyễn Duy Vũ, 10520127 Nguyễn Đỗ Cao Trí, 11520260 Nguyễn Thanh Nhã, Bài a.13 (Bổ sung)
11520319 Huỳnh Mậu Quý, bài a.14 (đăng ký mới)
Comment