Bài giảng Hệ điều hành UNIX-Linux - Chương 4: Quản trị tiến trình - Đặng Thu Hiền
Khái niệm cơ bản
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
n Tiến trình bao gồm ba thành phần là text, data, stack
n 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
n 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
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.
n Mức người dùng (user level): gồm 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 (phần lệnh của chúng thực hiện)
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.
n 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 con điều khiển File, hệ thống con đ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 Hai thành phần
cơ bản nhất là Hệ thống điều khiển File và Hệ thống con điều khiển tiến trình
Tóm tắt nội dung tài liệu: Bài giảng Hệ điều hành UNIX-Linux - Chương 4: Quản trị tiến trình - Đặng Thu Hiền
1 Hệ điều hành UNIX-Linux Chương 4. Quản trị tiến trình Đặng Thu Hiền Khoa Công nghệ thông tin Trường Đại học Công nghệ Đại học Quốc gia Hà Nội 2 Đặng Thu Hiền - 2009 Khái niệm cơ bản 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 n Tiến trình bao gồm ba thành phần là text, data, stack n 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 n 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 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. n Mức người dùng (user level): gồm 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 (phần lệnh của chúng thực hiện) 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. n 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 con điều khiển File, hệ thống con đ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 Hai thành phần cơ bản nhất là Hệ thống điều khiển File và Hệ thống con điều khiển tiến trình 3 Đặng Thu Hiền - 2009 Phân cấp trong Linux 4 Đặng Thu Hiền - 2009 Điều khiển tiến trình n 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: n Trạng thái của tiến trình, n Chủ sở hữu của tiến trình, n 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) n Địa chỉ của vùng sử dụng tương ứng với tiến trình, n Các thông tin tương ứng được trình bày trong PCB. n 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: 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, n Bộ đếm thời gian chạy mức nhân và mức người dùng, n 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, n Mô tả về các file đang mở ứng với tiến trình, n Tham số lưu trữ dung lượng dữ liệu di chuyển trong vào - ra. n 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, n Các giới hạn kích thước file và tiến trình, n Các mức cho phép thực hiện đối với tiến trình, n Một số thông tin khác n Các bảng định vị địa chỉ bộ nhớ đối với mỗi tiến trình, n 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. 5 Đặng Thu Hiền - 2009 Trạng thái tiến trình 6 Đặng Thu Hiền - 2009 Trạng thái tiến trình với người dùng 7 Đặng Thu Hiền - 2009 Các lệnh thao tác với tiến trình n 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 n Lệnh fg (foreground) tham chiếu đến các chương trình mà màn hình cũng nh- bàn phím đang làm việc với chúng n Ví dụ: đang xem trang man của lệnh sort, muốn thử tùy chọn -b đồng thời vẫn muốn xem trang man. Thay cho việc đánh q để thoát và sau đó chạy lại lệnh man, cho phép người dùng gõ CTRL+z để tạm dừng lệnh man và gõ lệnh thử tùy chọn -b. Sau khi thử xong, hãy gõ fg để tiếp tục xem trang man của lệnh sort n # man sort | more n SORT(1) FSF SORT(1) n NAME n sort - sort lines of text Files n SYNOPSIS n ../src/sort [OPTION] ... [Files]... n DESCRIPTION n --More-- n (CTRL+z) n [1]+ Stopped man sort | more n # ls -s | sort -b | head -2 n # fg n man sort | more 8 Đặng Thu Hiền - 2009 Hiển thị các tiến trình đang chạy n ps [tùy-chọn] n -A, -e : chọn để hiển thị tất cả các tiến trình. n -T : chọn để hiển thị các tiến trình trên trạm cuối đang chạy. n -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. n -C : chọn hiển thị các tiến trình theo tên lệnh. n -G : hiển thị các tiến trình theo chỉ số nhóm người dùng. n -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ả. n -f : hiển thị thông tin về tiến trình với các tr-ờng sau UID - chỉ số người dùng, PID - chỉ số tiến trình, PPID - chỉ số tiến trình khởi tạo ra tiến trình, C - , STIME - thời gian khởi tạo tiến trình, TTY - tên thiết bị đầu cuối trên đó tiến trình được chạy, TIME - thời gian để thực hiện tiến trình, CMD - lệnh khởi tạo tiến trình n -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: n %C, %cpu % CPU được sử dụng cho tiến trình n %mem % bộ nhớ được sử dụng để chạy tiến trình n %G tên nhóm người dùng n %P chỉ số của tiến trình cha khởi động ra tiến trình con n %U định danh người dùng n %c lệnh tạo ra tiến trình n %p chỉ số của tiến trình n %x thời gian để chạy tiến trình n %y thiết bị đầu cuối trên đó tiến trình được thực hiện 9 Đặng Thu Hiền - 2009 Hủy tiến trình n Xác định được chỉ số của tiến trình mà chúng ta muốn hủy n Cú pháp lệnh: n kill [tùy-chọn] n kill -l [tín hiệu] n Lệnh kill sẽ gửi một tín hiệu đến tiến trình được chỉ ra n Ngầm định là tín hiệu TERM sẽ được gửi. n Ví dụ: n # ps n PID TTY TIME CMD n 2240 pts/2 00:00:00 bash n 2276 pts/2 00:00:00 man n 2277 pts/2 00:00:00 more n 2280 pts/2 00:00:00 sh n 2281 pts/2 00:00:00 sh n # kill 2277 10 Đặng Thu Hiền - 2009 Các tín hiệu 11 Đặng Thu Hiền - 2009 Cho máy ngừng hoạt động một thời gian n 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. Cú pháp: n sleep [tùy-chọn] NUMBER[SUFFIX] n NUMBER: số giây(s) ngừng hoạt động. n SUFFIX : có thể là giây(s) hoặc phút(m) hoặc giờ hoặc ngày(d) n Các tùy chọn: n --help : hiện thị trợ giúp và thoát n --version : hiển thị thông tin về phiên bản và thoát 12 Đặng Thu Hiền - 2009 Xem cây tiến trình n pstree [tùy-chọn] [pid | người-dùng] n Hiển thị các tiến trình đang chạy d-ới dạng cây tiến trình n Gốc của cây tiến trình thường là init n 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 13 Đặng Thu Hiền - 2009 Thiết đặt lại độ ưu tiên của tiến trình n nice [tùy-chọn] [lệnh [tham-số ]... ] n Chạy một chương trình (lệnh) theo độ ưu tiên đã sắp xếp n 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). n -ADJUST : tăng độ ưu tiên theo ADJUST đầu tiên n --help : hiển thị trang trợ giúp và thoát n Để thay đổi độ ưu tiên của một tiến trình đang chạy dùng lệnh renice [tùy-chọn] n -g : thay đổi quyền ưu tiên theo nhóm người dùng n -p : thay đổi quyền ưu tiên theo chỉ số của tiến trình n -u : thay đổi quyền ưu tiên theo tên người dùng n Ví dụ: n # renice +1 987 -u daemon root -p 32 n 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:
- ai_giang_he_dieu_hanh_unix_linux_chuong_4_quan_tri_tien_trin.pdf