1. Trang chủ
  2. » Công Nghệ Thông Tin

Các loại tiến trình chính

39 195 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 39
Dung lượng 1,22 MB

Nội dung

Linux Process Management Giới thiệu  Tiến trình (process) là một chương trình đơn chạy trên không gian địa chỉ ảo của nó. Cần phân biệt tiến trình với lệnh vì một dòng lệnh trên shell có thể sinh ra nhiều tiến trình.  Ví dụ: dòng lệnh sau  netstat –n | grep 8080 | more  sẽ sinh ra 3 tiến trình khác nhau.  Kiểm soát tiến trình là khả năng giao tiếp liên tiến trình được xử lý bởi Kernel Các loại tiến trình chính  Tiến trình với đối thoại (Interactive processes) : là tiến trình khởi động và quản lý bởi shell, kể cả tiến trình foreground hoặc background.  Tiến trình batch (Batch processes) : Tiến trình không gắn liền đến bàn điều khiển (terminal) và được nằm trong hàng đợi để lần lượt thực hiện.  Tiến trình ẩn trên bộ nhớ - Daemon processes Daemon processes  Là các tiến trình chạy dưới background. Đa số các server cho các dịch vụ chạy theo phương thức này. Đây là các chương trình sau khi được gọi lên bộ nhớ, đợi thụ động các yêu cầu từ các client để trả lời sau các port xác định. Hầu hết các dịch vụ Internet như mail, Web, DNS … chạy theo nguyên tắc này. Các chương trình được gọi là các chương trình daemon và tên của nó thường kết thúc bằng ký tự “d” như named, inetd … Ký tự “d” cuối được phát âm rời ra như “đê “ trong Tiếng Việt. Kiểm tra tiến trình  Cách đơn giản nhất để kiểm tra hệ thống tiến trình đang chạy là sử dụng lệnh ps (process status). Lệnh ps có nhiều tùy chọn (option) và phụ thuộc một cách mặc định vào người login vào hệ thống.  $ ps  PID TTY STAT TIME COMMAND  41 v01 S 0:00 -bash  134 v01 R 0:00 ps Các lệnh liên quan đến process  kill - Kill một tiến trình số PID  killall - Gửi tín hiệu đến một tiến trình bằng tên  nice - Thiết lập độ ưu tiên của 1 tiến trình mới  pstree - Hiển thị cây các tiến trình đang chạy.  renice – thay đổi thứ tự ưu tiên của tiến trình đang chạy.  skill – Thông báo trạng thái của tiến trình  snice - Thông báo trạng thái của tiến trình  top - Hiển thị tải của hệ thống Lệnh ps  Để hiển thị tất cả các process, ta có thể sử dụng lệnh ps –a.  Một user thường có thể thấy tất cả các tiến trình, nhưng chỉ có thể điều khiển được các tiến trình của mình tạo ra.  Chỉ có superuser mới có quyền điều khiển tất cả các tiến trình của hệ thống Linux  Lệnh ps –ax cho phép hiển thị tất cả các tiến trình  Ta có thể xem các tiến trình đang chạy cùng với dòng lệnh đầy đủ để khởi động tiến trình này bằng lệnh ps –axl. Dừng một tiến trình- kill  Trong nhiều trường hợp, một tiến trình có thể bị treo, một chương trình server cần nhận cấu hình mới, card mạng cần thay đổi địa chỉ IP …, khi đó chúng ta phải dừng tiến trình.  Linux có lệnh kill để thực hiện các công tác này. Trước tiên bạn cần phải biết PID của tiến trình cần dừng thông qua lệnh ps.  Chỉ có super-user mới có quyền dừng tất cả các tiến trình, còn người sử dụng chỉ được dừng các tiến trình của mình. Lệnh kill  kill -signal PID_của_ tiến_trình  Tham số -signal là gửi tín hiệu dừng đến chương trình. Tùy theo mục đích ta có thể gửi tín hiệu dừng khác nhau đến tiến trình.  Một tiến trình có thể sinh ra các tiến trình con trong quá trình hoạt động của mình. Nếu dừng tiến trình cha, các tiến trình con cũng sẽ dừng theo, nhưng không tức thì. Vì vậy phải đợi một khoảng thời gian và sau đó kiểm tra lại xem tất cả các tiến trình con có dừng đúng hay không. Dừng nhiều tiến trình - killall  Lệnh killall dùng để dừng nhiều tiến trình bằng tên của tiến trình đó.  Cách dùng :  killall –SIGNAL tên_tiến_trình_cần_kill  Ví dụ: killall -9 vi ; lệnh này sẽ kill hết tất cả các tiến trình vi đang chạy trong hệ thống [...]... của tiến trình  running: tiến trình đang chiếm quyền xử lý CPU, đang tính toán  waiting: tiến trình đang chờ CPU phục vụ ( CPU chuyển sang phục vụ các tiến trình khác)  susspend: OS tạm từng tiến trình  sleep() Khi cần thì OS sẽ đánh thức (wake up) hay nạp lại mã lệnh vào memory, cấp phát tài nguyên và CPU để process tiếp tục chạy Inter-Process Communication  Signals - Gửi bởi 1 các tiến trình. .. line.\n");  exit(0);  } Dùng fork()   Thay thế tiến trình đôi khi rất bất lợi Khi gọi exec() ta không còn có thể kiểm soát được tiến trình hiện hành của mình nữa Khởi tạo tiến trình chính Gọi fork() UNIX-Linux dùng fork() để nhân bản tiến trình Trả về PID của Trả về trị 0 tiến trình con Mã lệnh kế của process ban đầu (Parent) Mã lệnh thực thi tiến trình mới Child process fork_demo.c #include ... các tiến trình khác hay kernel vào 1 tiến trình cụ thể nào để thay đổi trạng thái hoạt động  Pipes – Dùng để dẫn các output của 1 tiến trình vào thành input của tiến trình khác  FIFOS - first data in, first data out  Message queues – hàng đợi message là cơ chế thiết lập để cho phép 1 hay nhiều processes có thể ghi messages mà có thể được đọc bởi 1 hay nhiều tiến trình khác Inter-Process Communication... Scheduling)  Thời gian máy tính trong Linux được đặt trong các jiffies jiffie là một bộ vi xử lý thời gian Trong hầu hết các hệ Linux là 1/100 giây Một vài hệ thống khác là 1/1024 giây Linux kernel kiểm soát việc định thời tiến trình Có 3 cách sau:  normal – dùng cho các chương trình bình thường  FIFO - Trật tự định thì real time FIFO có nghĩa là tiến trình nào vào trước(first in) sẽ được làm xong trước... tương đương nhau theo 3 cách -SIGKILL -KILL -9 ( 3 tín hiệu này đều là 1) snice - Thông báo trạng thái của tiến trình  Tương tự như skill Lệnh top  Hiển thị sự hoạt động của các tiến trình, đặc biệt là các thông tin về tài nguyên hệ thống cũng như việc sử dụng tài nguyên đó của từng tiến trình 11:09am up 46 days, 17:44, 2 users, load average: 0.08, 0.03, 0.01 63 processes: 61 sleeping, 2 running,... tự ưu tiên của tiến trình đang chạy  renice priority [ [ -p ] pids ] [ [ -g ] pgrps ] [ [ -u ] users ] skill  Thông trình báo trạng thái của tiến  skill [signal to send] [options] process selection criteria  Ví dụ: skill -KILL -v pts/*  skill –l : liệt kê các tín hiệu kill  Các tín hiệu thường dùng là HUP, INT, KILL, STOP, CONT  Các tín hiệu có thể dùng tương đương nhau theo 3 cách -SIGKILL -KILL... chuyển sang phục vụ tiến trình khác sau đó quay trở lại task queue để tiếp tục Đây là thứ tự ưu tiên định thời real time Tính chất của tiến trình   policy - normal hay real time Real time processes có thứ tự ưu tiên cao hơn normal processes priority - Thứ tự ưu tiên của tiến trình Nó là 1 con số giữa between -20 và 19 Giá trị -20 là cao nhất , 19 là thấp nhất Thứ tự ưu tiên của tiến trình có thể được... dùng lệnh fg  Trong trường hợp có nhiều tiến trình đang ở trong background ta dùng lệnh jobs để liệt kê và gọi lên bằng cách dùng fg kèm theo thứ tự của process đó trong jobs queue Ví dụ: fg, bg, jobs  [root@alibaba root]# jobs  [1]+ Stopped  [2] Stopped vim def  [3]- Stopped vim ghi  [root@alibaba root]# fg 2  Tiến trình có dấu + là đang ở top  Tiến trình có dấu - là đang ở bottom vim abc Định... có tiến trình nào chiếm dụng quá nhiều thời gian CPU cũng như truy cập đĩa không  Ngoài ra, một số lệnh khác như vmstat mpstat, sar, iostat cũng cho phép xem xét với các mục đích khác nhau hoạt động của máy chủ Background & foregound  Ta có thể đưa tiến trình vào hoạt động ở background của hệ thống bằng lệnh bg hoặc Ctrl-Z hoặc thêm dấu “&” sau dòng lệnh  Ví dụ: /vi hello.txt  Để gọi tiến trình. .. tiên của 1 tiến trình mới  nice [OPTION] [COMMAND [ARG] ]  COMMAND -n, adjustment=ADJUST increment priority by ADJUST first  help display this help and exit  version: output version information and exit   Ví dụ:  [root@alibaba root]# nice -19 /home/natuan/server2  ADJUST mặc định là 10 Khoảng thay đổi từ -20 (trật tự cao nhất) đến 19 (thấp nhất) pstree  Hiển chạy thị cây các tiến trình đang . 3 tiến trình khác nhau.  Kiểm soát tiến trình là khả năng giao tiếp liên tiến trình được xử lý bởi Kernel Các loại tiến trình chính  Tiến trình với đối thoại (Interactive processes) : là tiến. tín hiệu dừng khác nhau đến tiến trình.  Một tiến trình có thể sinh ra các tiến trình con trong quá trình hoạt động của mình. Nếu dừng tiến trình cha, các tiến trình con cũng sẽ dừng theo,. tất cả các tiến trình của hệ thống Linux  Lệnh ps –ax cho phép hiển thị tất cả các tiến trình  Ta có thể xem các tiến trình đang chạy cùng với dòng lệnh đầy đủ để khởi động tiến trình này

Ngày đăng: 14/08/2015, 20:33

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w