Tải bản đầy đủ (.pdf) (26 trang)

Quản lý tiến trình

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (98.8 KB, 26 trang )

Quản lý tiến trình
Chương trình ñào tạo Việt Nhật &
Khoa Công nghệ Thông tin
Giới thiệu

M

t ti
ế
n trình = m

t s

th

c thi c

a m

t ch
ươ
ng trình

M

i ti
ế
n trình s

t
ươ


ng

ng v

i m

t t

p các thông tin
sau:

Một ñịnh danh (pid)

Một tiến trình cha (ppid)

Người sở hữu (uid) và nhóm (gid)

Một ñầu vào chuẩn (stdin), một ñầu ra chuẩn (stdout), một kênh
báo lỗi chuẩn (stderr)

Thời gian sử dụng CPU (CPU time) và mức ñộ ưu tiên

Thư mục hoạt ñộng hiện tại của tiến trình

Bảng các tham chiếu ñến các file ñược tiến trình sử dụng.

Các ti
ế
n trình
ñượ

c s

p x
ế
p
ñể
chia s

th

i gian s

d

ng CPU
Các kiểu tiến trình (1)

Các tiến trình hệ thống

Th
ườ
ng thu

c v

quy

n root

Không có giao di


n
tươ
ng tác

Th
ườ
ng
ñượ
c ch

y d
ướ
i d

ng các ti
ế
n trình ng

m
(daemon)

ðả
m nhi

m các nhi

m v

chung, ph


c v

m

i ng
ườ
i
s

d

ng.

Ví d

:

lpsched: Quản lý các dịch vụ in ấn

cron: tự ñộng thực hiện một lệnh/chương trình vào một thời
gian xác ñịnh trước.

inetd: quản lý các dịch vụ mạng.
Các kiểu tiến trình (2)

Các tiến trình của người sử dụng

Th


c hi

n các nhi

m v

c

a m

t ng
ườ
i dùng c

th


Thực hiện dưới dạng một shell tương ứng với một sự ñăng
nhập.

Thực hiện dưới dạng một lệnh thông qua shell

Th
ườ
ng
ñượ
c th

c hi


n, qu

n lý b

ng m

t terminal

Ví d

:

cp

vi

man


Lệnh ps

Hi

n th

các ti
ế
n trình

Theo ngầm ñịnh, lệnh ps hiển thị các tiến trình thuộc về người

sử dụng terminal.

Sử dụng tùy chọn aux ñể hiển thị tất cả các tiến trình ñang chạy
trong máy.
$ ps
PID TTY TIME CMD
2803 pts/1 00:00:00 bash
2965 pts/1 00:00:00 ps
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.1 1104 460 ? S 15:26 0:03 init[3]

ttanh 951 0.0 0.3 1728 996 pts/0 S 16:09 0:00 bash
ttanh 953 0.0 1.9 6860 4916 pts/0 S 16:09 0:00 emacs
ttanh 966 0.0 0.3 2704 1000 pts/0 R 16:23 0:00 ps aux

Trạng thái của tiến trình

S : sleeping

R : ñang chạy

T : dừng

Z : zombie
Lệnh kill

Gửi một tín hiệu ñến một tiến trình (ñịnh danh
của tiến trình ñược xác ñịnh dưới dạng một
tham số của lệnh).


Theo ng

m
ñị
nh, tín hi

u g

i
ñ
i là tín hi

u 15
(SIGTERM – k
ế
t thúc ti
ế
n trình)

Tùy ch

n -9: g

i tín hi

u 9 (SIGKILL – h

y ti
ế

n trình)

Tùy ch

n –l: li

t kê t

t c

các tín hi

u có th

s

d

ng.

Lệnh killall: dùng ñể kết thúc tất cả các tiến trình
của một câu lệnh thông qua việc truyền tên của
câu lệnh dưới dạng một tham số.

Quyền hủy tiến trình thuộc về người sở hữu tiến
trình
ðộ ưu tiên của các tiến trình

T


t c

các ti
ế
n trình
ñề
u có
ñộ

ư
u tiên
ban ñầ
u
ñượ
c
ng

m
ñị
nh là 0

M

c
ñộ

ư
u tiên c

a m


t ti
ế
n trình
dao ñộ
ng trong
kho

ng t

-19
ñế
n +19

Chỉ người sử dụng có quyền root mới có thể giảm giá trị biểu
diễn ñộ ưu tiên của tiến trình. Một người sử dụng thông thường
chỉ có thể làm giảm ñộ ưu tiên của tiến trình thông qua việc tăng
giá trị biểu diễn ñộ ưu tiên.

L

nh nice cho phép thay
ñổ
i
ñộ

ư
u tiên c

a m


t ti
ế
n
trình ngay khi b

t
ñầ
u th

c hi

n l

nh
tươ
ng

ng v

i ti
ế
n
trình.

$ nice [-n Value] [Command [Arguments ]]

L

nh renice cho phép thay

ñổ
i
ñộ

ư
u tiên c

a m

t ti
ế
n
trình sau
khi ñ
ã ch

y.
Lệnh top

Hiển thị và cập nhật các thông tin sau của các
tiến trình ñang chạy:

Ph

n tr
ă
m s

d


ng CPU

Ph

n tr
ă
m s

d

ng b

nh

trong

$ top [–d]

Tùy ch

n –d cho phép xác
ñị
nh th

i gian
ñị
nh k

c


p
nh

t thông tin (tính theo giây).

Lệnh top cho phép người sử dụng tương tác và
quản lý các tiến trình (thay ñổi ñộ ưu tiên, gửi
các tín hiệu, …)
Các kiểu thực thi

Thực thi nhiều lệnh ñộc lập

S

d

ng ký t

;
ñể
th

c thi nhi

u l

nh liên ti
ế
p, các
l


nh này ho

t
ñộ
ng
ñộ
c l

p v

i nhau.

$cp public/* perso; rm -r public

Thực thi nhiều lệnh phụ thuộc nhau

S

d

ng ký hi

u &&
ñể
th

c thi nhi

u l


nh liên ti
ế
p,
các l

nh này ph

thu

c nhau, l

nh sau ch
ỉ ñượ
c th

c
hi

n n
ế
u l

nh
trướ
c không g

p l

i.


$cp public/* perso && rm -r public
Chạy ở chế ñộ hiện (foreground và
chạy ở chế ñộ ngầm (background) (1)

Quá trình chạy ở chế ñộ hiện sẽ tiến hành theo
những bước như sau:

Th

c hi

n quá trình « fork », nhân b

n ti
ế
n trình cha
(trong
trườ
ng h

p th

c thi các l

nh,
ñ
ó s

là ti

ế
n trình
shell)

Th

c hi

n quá trình « wait »,
ñư
a ti
ế
n trình cha vào
tr

ng thái ng

(sleep).

Th

c hi

n quá trình « exec », th

c thi ti
ế
n trình con.

Sau khi ti

ế
n trình con th

c thi xong, m

t tín hi

u
«
ñ
ánh th

c » s


ñượ
c g

i
ñế
n ti
ế
n trình cha.

Do quá trình ch

y nh
ư
trên => trong quá trình th


c
hi

n ti
ế
n trình con, ng
ườ
i s

d

ng không th
ể tươ
ng
tác v

i ti
ế
n trình cha.
Chạy ở chế ñộ hiện (foreground và
chạy ở chế ñộ ngầm (background) (2)

Quá trình chạy ở chế ñộ ngầm cho phép thực thi
tiến trình cha và tiến trình con một cách ñộc lập.

Ví dụ: $ emacs&

Sau khi thực hiện lệnh trên, emacs sẽ chạy ở
chế ñộ ngầm, người sử dụng có thể tiếp tục sử
dụng console ñể thực thi các lệnh khác

Quản lý tác vụ

Một tác vụ = việc thực hiện một câu lệnh. Một tác vụ có thể liên
quan ñến một nhóm các tiến trình (một tiến trình cha và tập các tiến
trình con của nó)

Không thể có nhiều hơn 1 tác vụ chạy ở chế ñộ hiện (foreground)

Có thể có nhiều hơn 1 tác vụ chạy ở chế ñộ ngầm (background)
Background
Foreground
Stop
$ command
$ command &
fg
kill
Ctrl-C
fg
bg
Ctrl-Zstop
Fin Fin
Ví dụ
$ emacs &
[1] 756
$ stop 756
# or $ stop %1
$ bg 756
# or $ bg %1
$ kill 756
# or $ kill %1

Chuyển hướng các kênh chuẩn

M

i ti
ế
n trình s

h

u:

Một ñầu vào chuẩn (ngầm ñịnh là bàn phím)

Một ñầu ra chuẩn (ngầm ñịnh là terminal)

Một kênh báo lỗi chuẩn (ngầm ñịnh là terminal)

Chuy

n
hướ
ng
ñầ
u vào chu

n (<)
$ tee < test.txt

Chuy


n
hướ
ng
ñầ
u ra chu

n (>, >>)
$ ls > /dev/lp
$ ls >> test.txt

Chuy

n h
ướ
ng kênh báo l

i
$ rm prog.c 2> /dev/null
$ gcc prog.c 2>> erreur.txt
Cơ chế ñường ống

Cơ chế ñường ống giữa hai tiến trình cho phép
ñịnh hướng lại ñầu ra của tiến trình thứ nhất trở
thành ñầu vào của tiến trình thứ hai

Cơ chế ñường ống ñược thiết lập bằng cách sử
dụng ký tự: |

$ cmd1 | cmd2


Ví dụ

$ls –l | more #affiche page par page

$ls –l | tee log.txt #duplique la sortie
Xử lý file
L

c thông tin
 $cat tên_file1 […]

Hiển thị nội dung 1 hoặc nhiều file
 $head -n tên_file

Hiển thị n dòng ñầu tiên của 1 file
 $tail -n tên_file

Hiển thị n dòng cuối cùng của 1 file
 $wc tên_file

Hiển thị số dòng, số từ, số ký tự trong 1 file
thông qua các tùy chọn –l, -w, -c
grep : Tìm kiếm các dòng
$grep [-options] expreg [files]

Tìm ki
ế
m trong file ho


c trong
ñầ
u vào chu

n các
dòng có ch

a các ký t

ho

c xâu th

a mãn m

t s

ñ
i

u ki

n nào
ñ
ó.

Các tùy ch

n


-c : ch
ỉ ñư
a ra t

ng s

dòng th

a mãn
ñ
i

u ki

n

-I : ch
ỉ ñư
a ra tên file

-v : ch
ỉ ñư
a ra các dòng mà
ñ
i

u ki

n tìm ki
ế

m không
th

a mãn

-i : không phân bi

t ch

hoa, ch
ữ thườ
ng

-n : ch
ỉ ñư
a ra s

th

t

c

a dòng

-w : th

c hi

n tìm ki

ế
m v

i quá trình so sánh
ñượ
c
th

c hi

n
ñố
i v

i t

ng t

c

a chu

i nh

p vào (các t

ñượ
c phân cách nhau b

ng các ký t


không ph

i là
ch

cái, không ph

i là ch

s

và không ph

i là d

u
g

ch
dướ
i _)
Một số ký tự ñặc biệt

grep sử dụng một số ký tự ñặc biệt trong câu
lệnh:
. Bi

u di


n 1 ký t

b

t k

* L

p l

i ký t
ự ở
v

trí
trướ
c
^ b

t
ñầ
u 1 dòng
$ k
ế
t thúc 1 dòng
[ ] xác
ñị
nh danh sách ho

c m


t kho

ng các ký t

c

n
tìm ki
ế
m
[^ ] các ký t

không tìm ki
ế
m

Chú
ý
:
ñể
tránh nh

m l

n, nên
ñặ
t các ký t

bi


u di

n

ñ
i

u ki

n trong ngo

c kép.
Ví dụ

$grep “^t" /etc/passwd

Tìm trong file /etc/passwd t

t c

các dòng b

t
ñầ
u
b

ng ký t


“t”

$grep -w "^t" /etc/passwd

Tìm t

t c

các dòng không b

t
ñầ
u b

ng ký t

“t”

$grep “tuananh" /etc/passwd

Tìm t

t c

các dòng có ch

a xâu “tuananh”

$ls -l /etc | grep "^d"


Hi

n th

t

t c

các th
ư
m

c con c

a /etc
cut : Xác ñịnh các cột
$cut -options [files]

Tùy chọn

-c<S

ký t

> xác
ñị
nh các ký t


-f<S


tr
ườ
ng> xác
ñị
nh các
trườ
ng

-d<phân cách>

Ví dụ

$cut -c5 file #hi

n th

ký t

th

5

$cut -c5-10 file #hi

n th

ký t

th


5
ñế
n ký t

th

10

$cut -d: -f1 /etc/passwd #hi

n th

tên t

t c

ng
ườ
i s

d

ng c

a h

th

ng

Thay ñổi nội dung file
 split

Cắt một file ra thành nhiều file nhỏ hơn

Ví dụ:

split -10 /etc/passwd smallpasswd
 tr

Thay thế một chuỗi bằng một chuỗi khác có
cùng ñộ dài

Ví dụ:

$cat /etc/passwd | tr ":" "#"
sort: sắp xếp nội dung

$sort -options tên_file

Các tùy chọn

-b: b

qua các d

u cách


ñầ

u m

i tr
ườ
ng

-d : s

p x
ế
p ch

d

a vào các ký t

trong b

ng ch

cái
và ch

s

(ký t

, ch

s


, d

u cách)

-r :
ñả
o ng
ượ
c th

t

s

p x
ế
p

-f : không phân bi

t ch
ữ thườ
ng ch

hoa

-t x : ký t
ự x ñượ
c s


d

ng làm ký hi

u ng
ă
n cách
gi

a các
trườ
ng

-u : xóa các dòng trùng nhau.

-n s

p x
ế
p d

a vào các ch

s

Ví dụ

carnet.txt
maurice:29:0298334432:Crozon

marcel:13:0466342233:Marseille
robert:75:0144234452:Paris
yvonne:92:0133444335:Palaiseau

$sort -n -t : +1 -2 carnet.txt

Thực hiện quá trình sắp xếp từ trường thứ 2 ñén trường thứ 3
(các trường ñược ñánh số từ 0)

$sort -t : +3.2 +0 carnet.txt

Thực hiện quá trình sắp xếp ñầu tiên dựa trên ký tự thứ 3 của
trường thứ 4, sau ñó thực hiện tiếp quá trình sắp xếp dựa trên
trường thứ nhất

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×