Gặp giáo viên hướng dẫn, làm đúng yêu cầu của giáo viên hướng dẫn và báo cáo tiến độ đúng thời gian 6.. Gặp giáo viên hướng dẫn, làm đúng yêu cầu của giáo viên hướng dẫn và báo cáo tiến
Trang 1GIỚI THIỆU VẤN ĐỀ
Đồ án các môn học chính của Khoa Công nghệ thông tin nói chung và môn
học Nguyên lý hệ điều hành các Máy tính điện tử nói riêng nhằm tạo điều kiện cơ
bản giúp cho sinh viên:
1 Đi sâu và nắm vững một cách có hệ thống kiến thức đã thu nhận được trong
quá trình học lý thuyết, làm bài tập và thực hành
2 Từng bước làm quen với các công tác khoa học có định hướng của giáo viên
hướng dẫn và hình thành hành vi nghiên cứu độc lập có sự trợ giúp của tài liệu
tham khảo
3 Gắn quá trình học lý thuyết với công tác nghiên cứu thực tế
4 Trình bày rõ ràng và khoa học một vấn đề thuộc lĩnh vực nghiên cứu của
mình
Chính vì lẽ đó mà người làm đồ án môn học phải thực hiện, hoàn thành với kết
quả chấp nhận được một khối lượng công việc thuộc lĩnh vực chuyên sâu Kết quả
công việc phản ánh công sức, tài năng, trí tuệ của người làm đồ án và phải được
trình bày bằng văn bản trong đồ án môn học theo những chuẩn mực và yêu cầu của
giáo viên hướng dẫn
Thời gian cần thiết cho mỗi đồ án là khác nhau, nhưng thời hạn phải hoàn
thành là yêu cầu quan trọng đặc biệt
Đồ án môn học phản ánh công sức nghiên cứu nên cần phải được trình bày
trước bộ môn và được đánh giá bằng điểm số Việc trình bày đúng, rõ ràng, ngắn
gọn và khoa học chỉ có được ở những sinh viên có quá trình lao động nghiêm túc
cho đề tài và có chuẩn bị đầy đủ kiến thức trong lĩnh vực nghiên cứu đề tài
Trang 2Đề tài số 1 Mô phỏng thuật toán nhà băng của Dijsktra để tránh
Deadlock
Yêu cầu
1 Giới thiệu Deadlock
2 Trình bày thuật toán Banker
3 Xây dựng chương trình và kết quả demo
4 Viết báo cáo theo mẫu Bộ môn mạng và Truyền thông
5 Gặp giáo viên hướng dẫn, làm đúng yêu cầu của giáo viên hướng
dẫn và báo cáo tiến độ đúng thời gian
6 Ngôn ngữ dùng để viết chương trình C,C++, Visual C++
7 Làm 10 đến 15 slide để bảo vệ sau khi được giáo viên hướng dẫn
duyệt và đồng ý được bảo vệ
Tài liệu tham khảo
[1] Nguyễn Phú Cường, Giáo trình hệ điều hành, Đại học Cần Thơ
[2] Trần Hạnh Nhi, Giáo trình hệ điều hành nâng cao, Đại học Quốc Gia
Hồ Chí Minh
[3] Giáo trình hệ điều hành, chương 6: Deadlock
[4] An Introduction To Operating System, H.M Deitel
[5] Andrew S Tannenbaum, Modern Operating Systems, Prentice Hall
2nd
Trang 3Đề tài số 2 Xây dựng chương trình mô phỏng các giải thuật lập lịch
cho CPU
Yêu cầu
1 Trình bày các giải thuật FIFO, SJF, RR, Độ ưu tiên
2 Xây dựng chương trình với các giải thuật trên và kết quả demo
3 Viết báo cáo theo mẫu Bộ môn mạng và Truyền thông
4 Gặp giáo viên hướng dẫn, làm đúng yêu cầu của giáo viên hướng dẫn
và báo cáo tiến độ đúng thời gian
5 Ngôn ngữ dùng để viết chương trình C, C++, Visual C++
6 Làm 10 đến 15 slide để bảo vệ sau khi được giáo viên hướng dẫn
duyệt và đồng ý được bảo vệ
Tài liệu tham khảo
[1] Vũ Lê Hùng, Giáo trình nguyên lý hệ điều hành, Đại học Bách Khoa
Hồ Chí Minh
[2] Nguyễn Phú Cường, Giáo trình hệ điều hành, Đại học Cần Thơ
[3] Trần Hạnh Nhi, Giáo trình hệ điều hành nâng cao, Đại học Quốc Gia
Hồ Chí Minh
[4] Lê Trung Dũng, Giáo trình hệ điều hành, Nhà xuất bản giáo dục
[5] Trần Hồ Thuỷ Tiên, Bài giảng Nguyên lý hệ điều hành, Khoa CNTT
trường Đại học Bách khoa Đà nẵng
Trang 4Đề tài số 3 Bài toán năm triết gia ăn tối
Yêu cầu
1 Mô tả bài toán
2 Giới thiệu tài nguyên găng và đoạn găng
3 Giải pháp Semaphore
4 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 tiến 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
5 Viết báo cáo theo mẫu Bộ môn mạng và Truyền thông
6 Gặp giáo viên hướng dẫn, làm đúng yêu cầu của giáo viên hướng dẫn
và báo cáo tiến độ đúng thời gian
7 Ngôn ngữ dùng để viết chương trình C, C++, Visual C++, Java
8 Làm 10 đến 15 slide để bảo vệ sau khi được giáo viên hướng dẫn
duyệt và đồng ý được bảo vệ
Tài liệu tham khảo
[1]Đặng Vũ Tùng, Giáo trình nguyên lý hệ điều hành, NXB Hà Nôi,
2005
[2] Trần Hồ Thuỷ Tiên, Bài giảng Nguyên lý hệ điều hành, Khoa CNTT
trường Đại học Bách khoa Đà nẵng
[3] Internet
Trang 5Đề tài số 4 Xây dựng chương trình producer-consumer với bounded
buffer
Yêu cầu
1 Giới thiệu tiến trình trong Linux, cách tạo tiến trình trong Linux
2 Giới thiệu sơ lược về Semaphore, giao tiếp đồng bộ với Semaphore
3 Các hàm xử lý Semaphore
4 Tạo tiến trình Producer, Consumer
5 Sử dụng semaphore để truy xuất tài nguyên
6 Xây dựng chương trình và kết quả demo
7 Viết báo cáo theo mẫu Bộ môn mạng và Truyền thông
8 Gặp giáo viên hướng dẫn, làm đúng yêu cầu của giáo viên hướng dẫn
và báo cáo tiến độ đúng thời gian
9 Ngôn ngữ dùng để viết chương trình C trên Linux, Ubuntu
10 Làm 10 đến 15 slide để bảo vệ sau khi được giáo viên hướng dẫn
duyệt và đồng ý được bảo vệ
Tài liệu tham khảo
[1] Nguyễn Hải Châu, Nguyên lý hệ điều hành, Đại học Công Nghệ
[2] Nguyễn Phú Trường, Giáo trình hệ điều hành, Đại học Cần Thơ
Trang 6[3]Trần Hạnh Nhi, Giáo trình hệ điều hành nâng cao, Đại học Khoa học
tự nhiên Hồ Chí Minh
[4] Trần Hồ Thuỷ Tiên, Bài giảng Nguyên lý hệ điều hành, Khoa CNTT
trường Đại học Bách khoa Đà nẵng
[5] Internet
Đề tài số 5 Xây dựng chương trình đọc thông tin đĩa cứng với định
dạng NTFS và FAT32
Yêu cầu
1 Giới thiệu hệ thống FAT32, cấu trúc FAT32, partion Boot Sector,
directory table
2 Giới thiệu hệ thống NTFS, Cấu trúc phân vùng NTFS, Master File
Table
3 So sánh hệ thống FAT32 và NTFS
4 Xây dựng chương trình thực hiện các chức năng sau: Đưa ra màn
hình Ổ đĩa, tên ổ đĩa, số serial, trạng thái, định dạng, dung lượng, còn
trống, số byte /sector, số sector/cluster
5.Viết báo cáo theo mẫu Bộ môn mạng và Truyền thông
6 Gặp giáo viên hướng dẫn, làm đúng yêu cầu của giáo viên hướng dẫn
và báo cáo tiến độ đúng thời gian
7 Ngôn ngữ dùng để viết chương trình Visual C++
Trang 78 Làm 10 đến 15 slide để bảo vệ sau khi được giáo viên hướng dẫn
duyệt và đồng ý được bảo vệ
Tài liệu tham khảo
[1] Lê Ngọc Thạnh, Lập trình windows với MFC Visual C++6.0, NXB
thống kê, 2002
[2] Nguyễn Chánh Thành, Lập trình windows với VC/MFC, 2006
[3] Trần Hồ Thuỷ Tiên, Bài giảng Nguyên lý hệ điều hành, Khoa CNTT
trường Đại học Bách khoa Đà nẵng
[4] http://www.ntfs.com
Đề tài số 6 Tìm hiểu hệ thống File trong các hệ điều hành hiện đại
Yêu cầu
Tìm hiểu:
1 File System Layout
2 Implementing Files
3 Implementing Directories
4 Shared Files
5 Disk Space Management
6 File System Reliability
7 File System Performance
8 Log-Structured File Systems
Trang 89 Viết báo cáo theo mẫu Bộ môn mạng và Truyền thông
10 Gặp giáo viên hướng dẫn, làm đúng yêu cầu của giáo viên hướng dẫn
và báo cáo tiến độ đúng thời gian
11 Làm 10 đến 15 slide để bảo vệ sau khi được giáo viên hướng dẫn
duyệt và đồng ý được bảo vệ
Tài liệu tham khảo
[1] Andrew S Tannenbaum, Modern Operating Systems, Prentice Hall
2nd
[2] Trần Hồ Thuỷ Tiên, Bài giảng Nguyên lý hệ điều hành, Khoa CNTT
trường Đại học Bách khoa Đà nẵng
[3] http://www.ntfs.com
Đề tài số 7 Tìm hiểu cơ chế giao tiếp giữa hai tiến trình dùng hàng
đợi thông điệp (Message Queue)
Yêu cầu
1 Giới thiệu tiến trình trong Linux
2 Các trạng thái của tiến trình, cách xử lý các tiến trình bằng hàm
System(), giao tiếp giữa các tiến trình bằng hàng đợi thông điệp
3 Xây dựng chương trình minh họa để giải quyết bài toán sau:
a Tạo ra 2 tiến trình Tiến trình thứ nhất đọc 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ụ 3-1
Trang 94*2
5+4
20/5
Sau đó tiến trình thứ nhất truyền các chuỗi dữ liệu này sang tiến
trình thứ 2 Tiến trình thứ 2 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 file như sau:
3-1=2
4*2=8
5+4=9
20/5=4
4 Dùng hàm fork() để tạo 2 tiến trình
5 Viết báo cáo theo mẫu Bộ môn mạng và Truyền thông
6 Gặp giáo viên hướng dẫn, làm đúng yêu cầu của giáo viên hướng dẫn
và báo cáo tiến độ đúng thời gian
7 Ngôn ngữ dùng để viết chương trình C trên Linux hoặc ubuntu
8 Làm 10 đến 15 slide để bảo vệ sau khi được giáo viên hướng dẫn
duyệt và đồng ý được bảo vệ
Tài liệu tham khảo
Trang 10[1] Phạm Quang Dũng, Bộ môn Khoa học máy tính, Giáo trình Linux,
Đại học Quốc gia Hà nội
[2] Nguyễn Phương Lan, Hoàng Đức Hải, lập trình Linux-Tập 1, NXB
Giáo dục
[3] Đỗ Duy Việt-Nguyễn Hoàng Thanh Ly, Linux kernel
[4] Trần Hồ Thuỷ Tiên, Bài giảng Nguyên lý hệ điều hành, Khoa CNTT
trường Đại học Bách khoa Đà nẵng
[5] Andrew S Tannenbaum, Modern Operating Systems, Prentice Hall
2nd
[6] http://www.cprogramming.com/tutorial.html
Đề tài số 8 Giao tiếp giữa các tiến trình bằng đường ống PIPE
Yêu cầu
1 Giới thiệu tiến trình trong Linux, các hoạt động của tiến trình, cấu
trúc tiến trình, giao tiếp giữa các tiến trình, các cơ chế giao tiếp và
giới thiệu cơ chế liên lạc bằng đường ống Pipe
2 Tạo đường ống giao tiếp
3 Viết chương trình gồm 2 tiến trình Tiến 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 các 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ó cùng độ ưu tiên
Ví dụ:
Trang 111+2+(2-3-4)-((3+4)-5)
(1+(-2)-((3+4)-5))
Sau đó truyền chuỗi dữ liệu này sang tiến trình thứ hai Tiến trình thứ
hai thực hiện tính toán và trả về cho tiến trình thứ nhất để thể hiện cho
người sử dụng biết
5 Viết báo cáo theo mẫu Bộ môn mạng và Truyền thông
6 Gặp giáo viên hướng dẫn, làm đúng yêu cầu của giáo viên hướng dẫn
và báo cáo tiến độ đúng thời gian
7 Ngôn ngữ dùng để viết chương trình C trên Linux hoặc ubuntu
9 Làm 10 đến 15 slide để bảo vệ sau khi được giáo viên hướng dẫn
duyệt và đồng ý được bảo vệ
Tài liệu tham khảo
[1] Nguyễn Phương Lan-Hoàng Hải, Lập trình Linux, tập1, NXB Giáo
dục, 2001
[2] Đỗ Duy Việt-Nguyễn Hoàng Thanh Ly, Linux kernel
[3] Nguyễn Thanh Thủy, Nhập môn hệ điều hành Linux
[4] Trần Hồ Thuỷ Tiên, Bài giảng Nguyên lý hệ điều hành, Khoa CNTT
trường Đại học Bách khoa Đà nẵng
[5] Andrew S Tannenbaum, Modern Operating Systems, Prentice Hall
2nd
Trang 12Đề tài số 9 Tìm hiểu các lời gọi hệ thống (System calls)
Yêu cầu
1 Tìm hiểu các lời gọi hệ thống trong quản lý tiến trình
2 Tìm hiểu các lời gọi hệ thống trong quản lý file, thư mục
3 Trình bày các lời gọi hệ thống trong Win32 API
4 Viết báo cáo theo mẫu Bộ môn mạng và Truyền thông
5 Gặp giáo viên hướng dẫn, làm đúng yêu cầu của giáo viên hướng dẫn
và báo cáo tiến độ đúng thời gian
6 Làm 10 đến 15 slide để bảo vệ sau khi được giáo viên hướng dẫn
duyệt và đồng ý được bảo vệ
Tài liệu tham khảo
[1] Nguyễn Phương Lan-Hoàng Đức Hải, Lập trình Linux, tập1, NXB
Giáo dục, 2001
[2] Đỗ Duy Việt-Nguyễn Hoàng Thanh Ly, Linux kernel
[3] Nguyễn Thanh Thủy, Nhập môn hệ điều hành Linux
[4] Trần Hồ Thuỷ Tiên, Bài giảng Nguyên lý hệ điều hành, Khoa CNTT
trường Đại học Bách khoa Đà nẵng
[5] Andrew S Tannenbaum, Modern Operating Systems, Prentice Hall
2nd
Trang 13Đề tài số 10 Tìm hiểu các giao diện đồ hoạ (Graphical User
Interfaces)
Yêu cầu
1 Tìm hiểu phần cứng của bàn phím, chuột, màn hình của máy tính cá
nhân
2 Tìm hiểu phần mềm Vào (Input Software)
3 Tìm hiểu phần mềm Ra cho Windows (Output Software for
Windows)
4 Trình bày các lời gọi hệ thống trong Win32 API cho các giao tiếp
Vào/Ra
5 Viết báo cáo theo mẫu Bộ môn mạng và Truyền thông
6 Gặp giáo viên hướng dẫn, làm đúng yêu cầu của giáo viên hướng dẫn
và báo cáo tiến độ đúng thời gian
7 Làm 10 đến 15 slide để bảo vệ sau khi được giáo viên hướng dẫn
duyệt và đồng ý được bảo vệ
Tài liệu tham khảo
[1] Nguyễn Phương Lan-Hoàng Hải, Lập trình Linux, tập1, NXB Giáo
dục, 2001
[2] Đỗ Duy Việt-Nguyễn Hoàng Thanh Ly, Linux kernel
[3] Nguyễn Thanh Thủy, Nhập môn hệ điều hành Linux
Trang 14[4] Trần Hồ Thuỷ Tiên, Bài giảng Nguyên lý hệ điều hành, Khoa CNTT
trường Đại học Bách khoa Đà nẵng
[5] Andrew S Tannenbaum, Modern Operating Systems, Prentice Hall
2nd
Đề tài số 11 Tìm hiểu việc quản lý nguồn năng lƣợng điện của máy
tính
Yêu cầu
1 Tìm hiểu về phần cứng liên quan đến tiêu thụ năng lượng điện: màn
hình, đĩa cứng, CPU, bộ nhớ
2 Tìm hiểu khía cạnh của hệ điều hành liên quan đến việc quản lý năng
lượng:
- Màn hình
- Đĩa cứng
- CPU
- Bộ nhớ
- Truyền thông không dây
- Quản lý pin
3 Tìm hiểu chức năng của Hệ điều hành Windows trong việc tiết kiệm
nguồn điện trên các máy tính cá nhân
4 Viết báo cáo theo mẫu Bộ môn mạng và Truyền thông
Trang 155 Gặp giáo viên hướng dẫn, làm đúng yêu cầu của giáo viên hướng dẫn
và báo cáo tiến độ đúng thời gian
6 Làm 10 đến 15 slide để bảo vệ sau khi được giáo viên hướng dẫn
duyệt và đồng ý được bảo vệ
Tài liệu tham khảo
[1] Nguyễn Phương Lan-Hoàng Hải, Lập trình Linux, tập1, NXB Giáo
dục, 2001
[2] Đỗ Duy Việt-Nguyễn Hoàng Thanh Ly, Linux kernel
[3] Nguyễn Thanh Thủy, Nhập môn hệ điều hành Linux
[4] Trần Hồ Thuỷ Tiên, Bài giảng Nguyên lý hệ điều hành, Khoa CNTT
trường Đại học Bách khoa Đà nẵng
[5] Andrew S Tannenbaum, Modern Operating Systems, Prentice Hall
2nd
Trang 16Gợi ý nội dung trình bày quyển báo cáo
Lời mở đầu
Mục lục
Danh mục các hình vẽ, bảng biểu
MỞ ĐẦU
M.1 MỤC TIÊU CỦA ĐỀ TÀI
M.2 YÊU CẦU CỦA ĐỀ TÀI
M.3 NỘI DUNG ĐỀ TÀI
Chương 1 CƠ SỞ LÝ THUYẾT
1.1 NGUYÊN LÝ
1.2 CƠ SỞ LÝ THUYẾT
1.3 CÔNG CỤ HỖ TRỢ
Chương 2 XÂY DỰNG CHƯƠNG TRÌNH 2.1 MÔ TẢ BÀI TOÁN
2.2 PHÂN TÍCH DỮ LIỆU VÀ THUẬT TOÁN
2.3 TỔ CHỨC CHƯƠNG TRÌNH
2.4 XÂY DỰNG CHƯƠNG TRÌNH
Chương 3 MÔ PHỎNG VÀ KẾT QUẢ
3.1 CHƯƠNG TRÌNH DEMO
3.2 KẾT QUẢ VÀ NHẬN XÉT
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN K.1 KẾT LUẬN
K.2 HƯỚNG PHÁT TRIỂN