Bài giảng Hệ điều hành Unix-Linux - Chương 4: Quản trị tiến trình
Khái niệm cơ bản
Tiến trình là ñối tượng trong hệ thống tương ứng với một phiên
thực hiện của một chương trình
Tiến trình bao gồm ba thành phần là text, data, stack
Text là thành phần câu lệnh thực hiện, data là thành phần dữ
liệu còn stack là thành phần thông tin tạm thời hoạt ñộng theo cơ
chế LIFO
Các câu lệnh trong text chỉ thao tác tới vùng data, stack tương
ứng của tiến trình, không truy nhập ñược tới data và stack của các
tiến trình khác, ngoại trừ các vùng dữ liệu dùng chung
1Unix operating system - Nguyen Tri Thanh Sep-10 Hệ ñiều hành UNIX-Linux Chương 4. Quản trị tiến trình 2Unix operating system - Nguyen Tri Thanh Sep-10 Khái niệm cơ bản Tiến trình là ñối tượng trong hệ thống tương ứng với một phiên thực hiện của một chương trình Tiến trình bao gồm ba thành phần là text, data, stack Text là thành phần câu lệnh thực hiện, data là thành phần dữ liệu còn stack là thành phần thông tin tạm thời hoạt ñộng theo cơ chế LIFO Các câu lệnh trong text chỉ thao tác tới vùng data, stack tương ứng của tiến trình, không truy nhập ñược tới data và stack của các tiến trình khác, ngoại trừ các vùng dữ liệu dùng chung 3Unix operating system - Nguyen Tri Thanh Sep-10 Khái niệm cơ bản Hệ thống thực hiện theo ba mức: mức người dùng, mức nhân và mức phần cứng Mức người dùng (user level) Có chương trình người dùng và chương trình trong các thư viện. Các chương trình này chạy trong trạng thái người dùng của tiến trình, chương trình người dùng thao tác với nhân hoặc trực tiếp hoặc gián tiếp nhờ gọi thư viện nhờ các lời gọi hệ thống. Mức nhân Là mức trọng tâm nhất của hệ ñiều hành Linux-UNIX Là những chương trình của hệ ñiều hành thuộc hệ thống ñiều khiển File, hệ thống ñiều khiển tiến trình, các lời gọi hệ thống (system calls), các chương trình ñiều khiển thiết bị, Cache bộ ñệm và các chương trình ñiều khiển phần cứng, … 4Unix operating system - Nguyen Tri Thanh Sep-10 Phân cấp trong Linux 5Unix operating system - Nguyen Tri Thanh Sep-10 ðiều khiển tiến trình Tương ứng với mỗi tiến trình ñang tồn tại trong hệ thống có một khối chứa thông tin ñiều khiển tiến trình (PCB) Trạng thái của tiến trình Chủ sở hữu của tiến trình Trường liên quan ñến trạng thái ngưng của tiến trình (theo lời gọi hàm sleep) ðịa chỉ của vùng sử dụng tương ứng với tiến trình Các bảng ñịnh vị ñịa chỉ bộ nhớ ñối với mỗi tiến trình, Bảng chứa vùng bộ nhớ chung: phân hoạch bộ nhớ, ñặc tính mỗi vùng theo phân hoạch: chứa text, data hoặc vùng bộ nhớ dùng chung v.v. 6Unix operating system - Nguyen Tri Thanh Sep-10 ðiều khiển tiến trình Vùng sử dụng (U-area) chứa các thông tin riêng, có tác dụng khi tiến trình ñang thực hiện: Chỉ số thành phần tương ứng với tiến trình trong bảng các tiến trình: ñịa chỉ của khối PCB tương ứng, Bộ ñếm thời gian chạy mức nhân và mức người dùng, Các giá trị trả về và mã lỗi (nếu có) ñối với lời gọi hệ thống hiện tại, Mô tả về các file ñang mở ứng với tiến trình, Tham số lưu trữ dung lượng dữ liệu di chuyển trong vào - ra. Thư mục hiện tại và thư mục gốc hiện tại: môi trường của tiến trình, Các giới hạn kích thước file và tiến trình, Các mức cho phép thực hiện ñối với tiến trình, Một số thông tin khác 7Unix operating system - Nguyen Tri Thanh Sep-10 Trạng thái tiến trình 8Unix operating system - Nguyen Tri Thanh Sep-10 Trạng thái tiến trình với người dùng 9Unix operating system - Nguyen Tri Thanh Sep-10 Các lệnh thao tác với tiến trình - Tổ hợp phím CTRL+z sẽ dừng một tiến trình, khởi ñộng lại tiến trình bằng cách gõ lệnh fg - Lệnh fg (foreground) Ví dụ: ñang xem trangman của lệnh sort, muốn thử tùy chọn -b ñồng thời vẫn muốn xem trangman. gõ CTRL+z ñể tạm dừng lệnh man và gõ lệnh thử tùy chọn –b, sau ñó gõ fg ñể tiếp tục xem # man sort | more SORT(1) FSF SORT(1) NAME sort - sort lines of text Files SYNOPSIS ../src/sort [OPTION] ... [Files]... DESCRIPTION --More-- (CTRL+z) [1]+ Stopped man sort | more # ls -s | sort -b | head -4 1 Archives/ 1 InfoWorld/ 1 Mail/ 1 News/ 1 OWL/ # fg man sort | more --More-- 10Unix operating system - Nguyen Tri Thanh Sep-10 Hiển thị các tiến trình ñang chạy ps [tùy-chọn] Tùy chọn -A, -e : chọn ñể hiển thị tất cả các tiến trình. -T : chọn ñể hiển thị các tiến trình trên trạm cuối ñang chạy. -a : chọn ñể hiển thị tất cả các tiến trình trên một trạm cuối, bao gồm cả các tiến trình của những người dùng khác. -G : hiển thị các tiến trình theo chỉ số nhóm người dùng. -u : hiển thị các tiến trình theo tên và chỉ số của người dùng hiệu quả. -o xâu-chọn : hiển thị các thông tin về tiến trình theo dạng do người dùng tự chọn thông qua xâu-chọn các kí hiệu ñiều khiển hiển thị có các dạng nh- sau: %C, %cpu % CPU ñược sử dụng cho tiến trình %mem % bộ nhớ ñược sử dụng ñể chạy tiến trình %G tên nhóm người dùng %P chỉ số của tiến trình cha khởi ñộng ra tiến trình con %U ñịnh danh người dùng %c lệnh tạo ra tiến trình %p chỉ số của tiến trình %x thời gian ñể chạy tiến trình %y thiết bị ñầu cuối trên ñó tiến trình ñược thực hiện ư 11Unix operating system - Nguyen Tri Thanh Sep-10 Liệt kê tiến trình Ví dụ # ps -o '%U %G %p %P %y %x %c‘ USER GROUP PID PPID TTY TIME COMMAND root root 1929 1927 pts/1 00:00:00 bash root root 2279 1929 pts/1 00:00:00 ps 12Unix operating system - Nguyen Tri Thanh Sep-10 Hủy tiến trình kill [tùy-chọn] kill -l [tín hiệu] Lệnh kill sẽ gửi một tín hiệu ñến tiến trình ñược chỉ ra Ngầm ñịnh là tín hiệu TERM sẽ ñược gửi Ví dụ # ps PID TTY TIME CMD 2240 pts/2 00:00:00 bash 2276 pts/2 00:00:00 man 2277 pts/2 00:00:00 more 2280 pts/2 00:00:00 sh 2281 pts/2 00:00:00 sh 2285 pts/2 00:00:00 less 2289 pts/2 00:00:00 man 2291 pts/2 00:00:00 sh … # kill 2277 13Unix operating system - Nguyen Tri Thanh Sep-10 Các tín hiệu 14Unix operating system - Nguyen Tri Thanh Sep-10 Cho máy ngừng hoạt ñộng một thời gian sleep [tùy-chọn] NUMBER[SUFFIX] Cho máy nghỉ một thời gian mà không muốn tắt vì ngại khởi ñộng lại thì cần dùng lệnh sleep Tham số NUMBER: số giây(s) ngừng hoạt ñộng. SUFFIX : có thể là giây(s) hoặc phút(m) hoặc giờ hoặc ngày(d) Ví dụ sleep 3 15Unix operating system - Nguyen Tri Thanh Sep-10 Xem cây tiến trình pstree [tùy-chọn] [pid | người-dùng] Hiển thị các tiến trình ñang chạy dưới dạng cây tiến trình Gốc của cây tiến trình thường là init Nếu ñưa ra tên của một người dùng thì cây của các tiến trình do người dùng ñó sở hữu sẽ ñược ñưa ra # pstree init-+-apmd |-atd |-automount |-crond |-enlightenment |-gdm-+-X | `-gdm---gnome-session |-gen_util_applet |-gmc |-gnome-name-serv |-gnome-smproxy |-gnomepager_appl 16Unix operating system - Nguyen Tri Thanh Sep-10 Thiết ñặt lại ñộ ưu tiên của tiến trình nice [tùy-chọn] [lệnh [tham-số ]... ] Chạy một chương trình (lệnh) theo ñộ ưu tiên ñã sắp xếp Nếu không có lệnh, mức ñộ ưu tiên hiện tại sẽ hiển thị. ðộ ưu tiên ñược sắp xếp từ -20 (mức ưu tiên cao nhất) ñến 19 (mức ưu tiên thấp nhất). ðể thay ñổi ñộ ưu tiên của một tiến trình ñang chạy: renice [tùy-chọn] Tùy chọn -g : thay ñổi quyền ưu tiên theo nhóm người dùng -p : thay ñổi quyền ưu tiên theo chỉ số của tiến trình -u : thay ñổi quyền ưu tiên theo tên người dùng Ví dụ: # renice +1 987 -u daemon root -p 32 lệnh trên sẽ thay ñổi mức ñộ ưu tiên của tiến trình có chỉ số là 987 và 32, và tất cả các tiến trình do người dùng daemon và root sở hữu.
File đính kèm:
- Bài giảng Hệ điều hành Unix-Linux - Chương 4 Quản trị tiến trình.pdf