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
16 trang |
Chia sẻ: Mr Hưng | Lượt xem: 886 | Lượt tải: 0
Nội dung tài liệu Hệ điều hành unix - Linux - Chương 4: Quản trị tiến trình, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
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.
Các file đính kèm theo tài liệu này:
- bai_giang_4_9017.pdf