Trường Đại Học Bách Khoa Hà Nội Khoa Điện Tử Viễn Thông BÁO CÁO BÀI TẬP LỚN HỆ ĐIỀU HÀNH Tùy Chỉnh Mức Ưu Tiên Của Tiến Trình Trong Hệ Điều Hành Linux GIẢNG VIÊN HƯỚNG DẪN : TS. PHẠM VĂN TIẾN SINH VIÊN: BÙI TUẤN ANH NGUYỄN DUY LINH LÊ THÁI HƯNG LÊ ANH VĂN LỚP: KSTNĐTVTK52 Hà Nội, 102011 Mục lục I. Lời mở đầu 1 II. Lý thuyết 1 2.1. Khái niệm tiến trình 1 2.2. Các trạng thái của tiến trình 1 2.3. Mức ưu tiên của tiến trình 1 III. Các thông số hiển thị của tiến trình cho người dùng 1 IV. Thực hiện bài tập lớn 1 4.1. Yêu cầu 1 4.2. Thực hiện 1 4.2.1. Cách thức hiển thị các tiến trình 1 4.2.2. Cách thức thay đổi giá trị ưu tiên của tiến trình 1 4.2.3. Cách thức hủy tiến trình 1 4.2.4. Xây dựng giao diện đồ họa 1 4.3. Kết quả 1 4.3.1. Hiển thị các tiến trình 1 4.3.2. Thay đổi mức ưu tiên các tiến trình 1 4.3.3. Hủy tiến trình 1 4.3.4. Kiểm tra kết quả hủy tiến trình 1 Tài liệu tham khảo 1 I. Lời mở đầu Nghiên cứu về hệ điều hành đã và đang là đề tài lôi cuốn nhiều nhà nghiên cứu.Sự phát triển của phần cứng tốc độ xử lí cao, khả năng đa nhiệm, đã yêu cầu hệ điều hành phải có sự phát triển trước và tương xứng.Một trong những vấn đề cơ bản nhất của hệ điều hành đó là xử lí đa nhiệm.Và để hiểu rõ hơn chúng em đã chọn đề tài số 3: “ Tùy chỉnh mức ưu tiên của tiến trình trong hệ điều hành Linux “ . Cảm ơn thầy Phạm Văn Tiến đã hướng dẫn giúp chúng em hoàn thành bài tập lớn này. II. Lý thuyết 2.1. Khái niệm tiến trình Linux là hệ đa xử lý, tức khả năng thực thi nhiều tác vụ cùng một lúc. Một chương trình máy tính là một chuỗi các chỉ lệnh mà theo đó máy tính phải thực hiện. Mặt khác tài nguyên máy tính (CPU, bộ nhớ, tệp, các thiết bị…) là hữu hạn và khi các chương trình này chạy thì các chương trình đều có nhu cầu trên các tài nguyên đó.Để đáp ứng nhu cầu tài nguyên, cần có một sách lược chạy trình hiệu quả để đảm bảo tính đa nhiệm, nhiều người dùng.Cách phổ biến nhất là cấp tài nguyên cho mỗi chương trình trong một lượng thời gian nhất định, sao cho các chương trình đều có cơ hội thực hiện như nhau và trong thời gian thực hiện chương trình, cần kiểm soát việc thực hiện đó chặt chẽ.Để làm được điều này, người ta đưa ra một khái niệm gọi là tiến trình (process). Vậy tiến trình có thể hiểu là thời gian thực hiện của một chương trình và việc thực hiện đó chỉ xảy ra trong một khoảng thời gian nhất định (slice time).
[...]... chỉnh mức ưu tiên của tiến trình trong hệ điều hành Linux Hình 4.8 Tiến trình gedit khi bị hủy Ấn refresh sẽ thấy tiến trình này đã mất đi trong phần mềm Hình 4.9 Tiến trình gedit sau khi refresh 4.3.4 Kiểm tra kết quả hủy tiến trình Yêu cầu: Chạy nhiều tiến trình đưa hệ thống về trạng thái khan hiếm bộ nhớ, kiểm tra kết quả hủy tiến trình Đưa ra bằng chứng chứng tỏ tiến trình bị hủy đúng là tiến trình. .. Tùy chỉnh mức ưu tiên của tiến trình trong hệ điều hành Linux Hình 4.13: htop với NI=0 tại 7:19:00am có TIME+=3:13,36s Tiến trình “htop” với mức NI = 19: Hình 4.14: htop với NI = 19 tại 7:20:00am có TIME+=3:13,92s Group 4 – Lớp ĐTVT – KSTN – K52 16 Tùy chỉnh mức ưu tiên của tiến trình trong hệ điều hành Linux Hình 4.15: htop với NI=19 tại 7:35:00am có TIME+=3:20,06s Tổng kết kiểm tra hoạt động của tiến. ..Tùy chỉnh mức ưu tiên của tiến trình trong hệ điều hành Linux Hình 4.3 Cài đặt phần mềm Qt Hình 4.4 Giao diện chương trình 4.3 Kết quả 4.3.1 Hiển thị các tiến trình Chạy file biên dịch ra, ta được giao diện lựa chọn Lựa chọn hiển thị danh sách các tiến trình ta được kết quả như hình dưới Hình 4.5: Hiển thị các tiến trình 4.3.2 Thay đổi mức ưu tiên các tiến trình Sử dụng lựa chọn thay đổi mức ưu tiên của. .. em sử dụng tham số TIME+ được hiển thị trong “top” hoặc “htop” TIME+ là tham số đo thời gian chiếm dụng CPU của tiến trình Group 4 – Lớp ĐTVT – KSTN – K52 13 Tùy chỉnh mức ưu tiên của tiến trình trong hệ điều hành Linux Cụ thể ở đây, ta tính thời gian chiếm dụng CPU của tiến trình “htop” ở các mức NI khác nhau: mức -20, mức 0, và mức 19 Lưu ý ở đây là các chương trình chạy cùng lúc này ở mọi thời điểm... khan hiếm bộ nhớ Ở các thử nghiệm của chúng em, thì tiến trình có mức ưu tiên thấp nhất (trong khi gán cho các tiến trình còn lại mức cao nhất) cũng không bị OS kill mà chỉ rơi vào trạng thái chờ và khi đó thời gian chiếm dụng CPU của nó giảm đi rõ rệt và tăng tiến rất chậm Group 4 – Lớp ĐTVT – KSTN – K52 17 Tùy chỉnh mức ưu tiên của tiến trình trong hệ điều hành Linux Tài liệu tham khảo 1 Operating... thay đổi giá trị NI của htop thôi Ở đây, ta đo thời gian chiếm dụng CPU của tiến trình htop trong khoảng thời gian thực là 10 phút!!! Tiến trình “htop” với NI=-20 Hình 4.10: htop với NI = -20 ở 7:39:00am có TIME+ = 3:22,00 s Group 4 – Lớp ĐTVT – KSTN – K52 14 Tùy chỉnh mức ưu tiên của tiến trình trong hệ điều hành Linux Hình 4.11: htop với NI=-20 ở 7h:54am có TIME+=3:35,08s Tiến trình “htop” với NI... tiên của tiến trình, ta thu được các kết quả Đối với tài khoản sử dụng bình thường (không phải root), ta chỉ có thể thay đổi được các giá trị NI trong khoảng từ 0 đến 19, nếu muốn thay đổi giá trị NI xuống âm thì ta phải đăng nhập với tài khoản root Group 4 – Lớp ĐTVT – KSTN – K52 11 Tùy chỉnh mức ưu tiên của tiến trình trong hệ điều hành Linux Hình 4.6 Tiến trình gedit trước khi thay đổi mức ưu tiên Hình... gedit trước khi thay đổi mức ưu tiên Hình 4.7 Tiến trình gedit sau khi thai đổi mức ưu tiên 4.3.3 Hủy tiến trình Từ danh sách tùy chọn, ta lựa chọn tùy chọn hủy tiến trình. Sau khi xác định số PID của tiến trình muốn hủy (chọn hoặc gõ số), thì tiến trình đó sẽ bị hủy Dưới đây là hình vẽ minh họa sự hủy tiến trình của chương trình gedit có PID = 2587 Chương trình gedit trước khi bị hủy đang ở hình nền... tiến trình htop: Giá trị NI Thời gian chiếm dụng CPU trong 10 phút -20 3:35,08 – 3:22,00 = 13,08 giây 0 3:13,06 – 3:01,61 = 11,45 giây 19 3:20,06 – 3:13,92 = 6,14 giây Qua bảng trên, ta nhận thấy tiến trình với mức ưu tiên cao hơn sẽ có thời gian chiếm dụng CPU cao hơn • Kiểm tra kết quả hủy tiến trình: Đối với yêu cầu này, chúng em chưa kiểm tra được sự hủy tiến trình có mức ưu tiên thấp khi hệ thống... tiến trình có mức ưu tiên thấp theo ý muốn người dùng Hướng giải quyết: Đối với yêu cầu trên thì nhóm em vẫn chưa tìm ra được 1 phương án khả thi mà có thể theo dõi một cách rõ ràng Trước hết nhóm em đi kiểm tra hoạt động của tiến trình khi được set priority ở các mức khác nhau • Kiểm tra hoạt động của tiến trình với các mức priority khác nhau: Để kiểm tra được sự hoạt động của tiến trình, nhóm em . chỉnh mức ưu tiên của tiến trình trong hệ điều hành Linux Mục lục Group 4 – Lớp ĐTVT – KSTN – K52 2 Tùy chỉnh mức ưu tiên của tiến trình trong hệ điều hành Linux I. Lời mở đầu Nghiên cứu về hệ. Nội Khoa Điện Tử Viễn Thông BÁO CÁO BÀI TẬP LỚN MÔN: HỆ ĐIỀU HÀNH Tùy Chỉnh Mức Ưu Tiên Của Tiến Trình Trong Hệ Điều Hành Linux GIẢNG VIÊN HƯỚNG DẪN :TS. PHẠM VĂN TIẾN SINH VIÊN: BÙI TUẤN ANH NGUYỄN. 4 Tùy chỉnh mức ưu tiên của tiến trình trong hệ điều hành Linux tiến trình khác trong các tiến trình như trên cho chạy. Tiến trình bị chen ngang không có nghĩa là bị treo, mà chỉ đơn giản là tiến