Bài giảng Hệ điều hành UNIX-Linux - Chương 4: Quản trị tiến trình

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

!  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): 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.

!  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

pdf13 trang | Chuyên mục: Linux | Chia sẻ: dkS00TYs | Lượt xem: 2952 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng Hệ điều hành UNIX-Linux - Chương 4: Quản trị tiến trình, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trê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:

  • pdfBài giảng Hệ điều hành UNIX-Linux - Chương 4 Quản trị tiến trình.pdf
Tài liệu liên quan