0
1     HỆ ĐIỀU HÀNH LINUX      (Quản lý tiến trình)Phạm Nguyên Khang, Đỗ Thanh NghịEmail: pnkhang,dtnghi@cit.ctu.edu.vn
Nội dung                          2Tiến trìnhThực thiTạo tiến trìnhCác hàm cơ bản khácThực thi chương trình ở chế độ nềnLi...
Tiến trình                            3Tiến trình = chương trình đang thực thiẢnh bộ nhớ (memory image) bao gồm:Text: mã t...
Thực thi                        4Điều khiển bằng tiến trình 0 (sched hoặcswapper)Tiến trình 0 (không) trong không gian hệ ...
Tạo tiến trình                                      5fork:                                     Ví dụ: (viết bằng ngôn ngữ ...
Các hàm cơ bản khác                                     6exec:Thay thế ảnh bộ nhớ bằng nội dung của một file thực thi khác...
Chế độ nền                                        7Mặc định các tiến trình thực thi tuần tự (foreground), tiến trình này t...
Tạm dừng tiến trình                                8Các trạng thái của tiến trìnhactive (đang hoạt động), waiting (chờ), …...
Liệt kê tiến trình                                          9ps:                                           Các OPTIONSLiệt...
Liệt kê tiến trình                                10Xem các tiến trìnhLệnh pstree với-p: hiển thị PID-h: highlight tiến tr...
Các lệnh khác                                      11các thông số của hệ thống như: bộ nhớ sử dụng, % sử dụng CPU, ...ang ...
Các lệnh khác                                                 12kill:Gởi một tín hiệu đến một tiến trìnhCú pháp:kill [-sig...
Các lệnh khác                        13Tránh HUP: nohupTiến trình nhận tín hiệu HUP khi người dùng logoutkhỏi sessionSử dụ...
Các lệnh khác                                     14jobs:Liệt kê tất cả các job gồmTiến trình thực thi chế độ nềnTiến trìn...
Các lệnh khác                            15renice:Thay đổi độ ưu tiên của một tiến trìnhCú pháp: renice -n <độ ưu tiên> -p...
Upcoming SlideShare
Loading in...5
×

6 quan ly-tien_trinh

235

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
235
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "6 quan ly-tien_trinh"

  1. 1. 1 HỆ ĐIỀU HÀNH LINUX (Quản lý tiến trình)Phạm Nguyên Khang, Đỗ Thanh NghịEmail: pnkhang,dtnghi@cit.ctu.edu.vn
  2. 2. Nội dung 2Tiến trìnhThực thiTạo tiến trìnhCác hàm cơ bản khácThực thi chương trình ở chế độ nềnLiệt kê tiến trìnhCác hàm quản lý tiến trình khác
  3. 3. Tiến trình 3Tiến trình = chương trình đang thực thiẢnh bộ nhớ (memory image) bao gồm:Text: mã thực thi của chương trìnhData: lưu trữ dữ liệuStack: ngăn xếp của người dùngĐịnh danh: phân biệt tiến trình với chương trình khácCấu trúc u (user: người dùng)Ngăn xếp (stack) của hệ thốngVùng định danh chỉ truy xuất được trong chế độ hệthống (system mode)
  4. 4. Thực thi 4Điều khiển bằng tiến trình 0 (sched hoặcswapper)Tiến trình 0 (không) trong không gian hệ thốngSử dụng CPU theo mức độ ưu tiên của tiến trìnhTiến trình thực thi trong chế độ người dùng (usermode) và chuyển sang chế độ hệ thống bằng các hàmđặc biệt của nhânChỉ có duy nhất một tiến trình chạy trongkhông gian hệ thống: trình quản lý bộ nhớảo (pagedaemon)
  5. 5. Tạo tiến trình 5fork: Ví dụ: (viết bằng ngôn ngữ C)Tạo ra một tiến trình con pid = fork();bằng cách sao chép vùng if (pid == -1) {nhớ của một tiến trình cha /*lỗi*/ } else if (pid == 0) {Kết quả trả về: /*mã lệnh chương trình con*/-1 thất bại } else { /*mã lệnh chương trình cha */0 tiến trình con }N tiến trình cha với N là PID (định danh) của tiến trình cha
  6. 6. Các hàm cơ bản khác 6exec:Thay thế ảnh bộ nhớ bằng nội dung của một file thực thi khácwait:Chờ tất cả các tiến trình con kết thúcexit:Kết thúc một tiến trìnhkill:Gởi tín hiệu đến một tiến trình (thường dùng để đồng bộ các tiến trìnhhoặc buộc một tiến trình kết thúc)signal:Chọn cách xử lý phải thực hiên khi nhận được một tín hiệupipe:Tạo một ống dẫn để giao tiếp giữa hai tiến trình
  7. 7. Chế độ nền 7Mặc định các tiến trình thực thi tuần tự (foreground), tiến trình này thựchiện xong rồi mới đến tiến trình khácVí dụ: người dùng gõ lệnh date (hiển thị ngày hệ thống)Shell tạo ra một tiến trình con (sử dụng hàm fork)Chờ tiến trình con này kết thúc (dùng hàm wait)Trong chương trình con gọi thực thi lệnh /bin/date (bằng lệnh exec)Để thực thi một tiến trình ở chế độ nền (background) ta thêm dấu & vàocuối lệnhVí dụ: người dùng gõ lệnh date&Shell tạo ra một tiến trình con (fork)Không chờ tiến trình con kết thúcTiến trình con gọi thực thi lệnh /bin/date (bằng lệnh exec)Tiến trình cha và tiến trình con chạy song songCó thể kế quả hiển thị bị lẫn lộn (vì sử dụng chung một màn hình)
  8. 8. Tạm dừng tiến trình 8Các trạng thái của tiến trìnhactive (đang hoạt động), waiting (chờ), …Trạng thái tạm dừng = tiến trình bị ngắt có khả năngchạy lại bằng cách sử dụng lệnhfg (chạy lại chương trình ở chế độ foreground)bg (chạy lại chương trình ở chế độ background)Tạm ngưng chương trình bằng cách gõ Ctrl + ZMục đích:Thực thi một chương trình khác mà không cần phải kết thúc tiếntrình đang chạy
  9. 9. Liệt kê tiến trình 9ps: Các OPTIONSLiệt kê các tiến trình đang thực thi -a: hiển thị các tiến trình của user đượcHiển thị tất cả các thuộc tính của tiến liên kết tới ttytrình -e (-A): hiển thị tất cả các tiến trìnhMặc định chỉ liệt kê các tiến trình của -f: hiển thị PID của tiến trình cha vàngười dùng thời điểm bắt đầuCú pháp: ps [OPTIONS] -l: tương tự như –fVí dụ: a: hiển thị các tiến trình của các usersps liên kết tới ttyps l x: hiển thị các tiến trình ngoại trừ cácps aux (liệt kê tất cả các tiến trình) tiến trình là controlling tty (e.g /sbin/mingetty tty*) u: dạng hiển thị hướng đến người dùng Ví dụ: ps –ux
  10. 10. Liệt kê tiến trình 10Xem các tiến trìnhLệnh pstree với-p: hiển thị PID-h: highlight tiến trình hiệnhành và những tiến trình concháu của tiến trình hiện hành 10
  11. 11. Các lệnh khác 11các thông số của hệ thống như: bộ nhớ sử dụng, % sử dụng CPU, ...ang thực thi 11
  12. 12. Các lệnh khác 12kill:Gởi một tín hiệu đến một tiến trìnhCú pháp:kill [-signal | -s signal] pidCác signal0 0HUP 1 (hangup)INT 2 (tương đương CTRL + C)KILL 9 (buộc kết thúc)TERM 15 (mặc định, kết thúc êm ái)STOP 19 (tạm dừng, tương đương CTRL + Z)Ví dụ:kill -1 1234 (gởi tín hiệu HUP đến tiến trình 1234)kill -s 9 3456 (gởi tín hiệu KILL đến tiến trình 3456, buộc tiến trình này kết thúc)kill -l liệt kê tất cả các tín hiệuid = -1 có nghĩa tất cả các tiến trình trừ tiến trình kill và tiến trình init
  13. 13. Các lệnh khác 13Tránh HUP: nohupTiến trình nhận tín hiệu HUP khi người dùng logoutkhỏi sessionSử dụng nohup để bỏ qua tín hiệu HUPVí dụ: nohup find / –name log.txt&
  14. 14. Các lệnh khác 14jobs:Liệt kê tất cả các job gồmTiến trình thực thi chế độ nềnTiến trình tạm ngưngTiến trình bị ngẽn (chờ vào/ra)Chú ý: mỗi job có một số hiệu của job (khác với định danh của tiến trình)Các lệnh bg, fg, kill cũng có thể làm việc được với số hiệu job thay vì pid.Để sử dụng số hiệu job ta dùng %<số hiệu job>nice:Chạy chương trình với một độ ưu tiên nào đóCú pháp: nice –n <độ ưu tiên> <chương trình>Độ ưu tiên từ -20 (ưu tiên cao nhất) đến 19 (ưu tiên thấp nhất). Độ ưutiên mặc định = 0.Ví dụ: nice -n 12 xcalc
  15. 15. Các lệnh khác 15renice:Thay đổi độ ưu tiên của một tiến trìnhCú pháp: renice -n <độ ưu tiên> -p <pid>Hoặc: renice <độ ưu tiên> <pid>Ví dụ: renice 1 4567Chú ý: người dùng bình thường không thể thay đổi độưu tiên nhỏ hơn 0 (không).
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×