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

Bài thực hành 4 CT178 Nguyên lý hệ điều hà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 (225.74 KB, 10 trang )

Bài tập 1 Sử dụng câu lệnh ps, thực hiện các yêu cầu sau:
1. Hiển thị tất cả các tiến trình của người dùng hiện đang làm việc
2. Hiển thị tất cả các tiến trình hiện đang chạy
3. Đọc và hiểu các output trên 4.2 Bài tập 2 Giải thích output của câu lệnh ps sau: $ps -l & [1] 478 4.3 Bài tập 3
Thực hiện tạo một tiến trình và một tiến trình chạy ngầm (background). Cho nhận xét về 2 tiến trình trên.
(cho ví dụ minh họa và nhận xét) 4.4 Bài tập 4 Tạo một tiến trình chạy ngầm với câu lệnh ps. Khi tiến trình
trên kết thúc, một thông báo kết thúc sẽ xuất hiện : “END.” (không sử dụng shell script) 4.5 Bài tập 5 Tuần
tự thực hiện các yêu cầu sau:
4. Thưc thi lệnh top
5. Treo tiến trình đó
6. Tạo một tiến trình mới mà ở đó nó sẽ bị trì hỗn 2 lần 60 giây trước khi thực hiện lưu output của lệnh ls – l
vào tập tin flist
7. Chuyển tiến trình ở bước 3 sang chế độ chạy ngầm (background)
8. Liệt kê các tiến trình đang chạy ngầm
9. Hủy tiến trình ở bước 1
10. Kiểm tra lại để thấy tiến trình ở bước 3 là hoàn tất.
11. Cho nhận xét việc thực hiện các công việc 1 -> 7 4.6 Bài tập 6 Liệt kê tất cả các tiến trình hiện đang chạy
theo từng trang màn hình 4.7 Bài tập 7 Tạo một shell script có tên uncount hiển thị dãy chữ số : 6 5 4 3 2 1
trong các khoãng thời gian 5 giây (hiển thị một số/5giây), mà nếu ta gõ phím DEL thì nó sẽ hiển thị chữ số kế
tiếp Tài Liệu Thực Hành Hệ Điều Hành – Bộ môn HTMT&TT Ths. Phan Thượng Cang - Ths. Bùi Quốc Thái
Trang 42 4.8 Bài tập 8 Liệt kê các tiến trình ngầm hiện đang chạy 4.9 Bài tập 9 Liệt kê các tiến trình ngầm
đã kết thúc 4.10 Bài tập 10 Xác định số tín hiệu phát sinh khi thực hiện lệnh:
12. $kill 408
13. $kill -9 521 4.11 Bài tập 11 Hãy viết shell script : LisFileDel file1 file2 Chức năng:
hiển thị nội dung các tập tin có tên trong danh sách đối số
nếu gõ phím DEL, bỏ qua tập tin đang hiển thị, bắt đầu tập tin kế tiếp
khơi phục chức năng mặc định của phím DEL khi kết thúc 4.12 Bài tập 12 Hãy viết shell script : trap2 Chức
năng:
thực hiện một chu trình hiển thị một thơng báo: “Shutdown in n minutes” n có giá trị từ 5 đến 1
mỗi khi gõ phím DEL, lập tức hiển thị thông báo tiếp theo
khôi phục chức năng mặc định của phím DEL khi kết thúc



Bài tập 1
Bài tập 1 Sử dụng câu lệnh ps, thực hiện các yêu cầu sau:
1. Hiển thị tất cả các tiến trình của người dùng hiện đang làm việc
2. Hiển thị tất cả các tiến trình hiện đang chạy
3. Đọc và hiểu các output trên
1.
In [ ]:
!ps


.
PID
1
7
18
28
29
42
43
60
80
95
136

TTY
?
?
?
?

?
?
?
?
?
?
?

TIME
00:00:00
00:00:00
00:00:00
00:00:05
00:00:00
00:00:01
00:00:00
00:00:02
00:00:00
00:00:01
00:00:00

CMD
docker-init
node
tail
python3 <defunct>
colab-fileshim.
jupyter-noteboo
dap_multiplexer
python3

python3
node
ps

TTY
?
?
?
?
?
?
?
?
?
?
?

TIME
00:00:00
00:00:00
00:00:00
00:00:05
00:00:00
00:00:01
00:00:00
00:00:02
00:00:00
00:00:01
00:00:00


CMD
docker-init
node
tail
python3 <defunct>
colab-fileshim.
jupyter-noteboo
dap_multiplexer
python3
python3
node
ps

2.
In [ ]:
!ps -A

.
PID
1
7
18
28
29
42
43
60
80
95
141

3.


1.
2.
3.
4.

PID: Số định danh của tiến trình (process identity)
TTY: Terminal điều khiển tiến trình
TIME: Thời gian tích lũy thực hiện tiến trình (cumulative time)
COMMAND: Tên lệnh sinh ra tiến trình

Bài tập 2
Giải thích output của câu lệnh ps sau: $ps -l & [1] 478
In [ ]:
!ps -l &
F
4
4
4
4
4
4
4
4
1
4
0
0


S
S
S
S
Z
S
S
S
S
S
S
Z
R

UID
0
0
0
0
0
0
0
0
0
0
0
0

PID

1
7
18
28
29
42
43
60
80
95
208
209

PPID
0
1
0
7
7
7
7
42
1
7
60
1

C PRI
0 80
0 80

0 80
0 80
0 80
0 80
0 80
0 80
0 80
0 80
0 80
0 80

NI
0
0
0
0
0
0
0
0
0
0
0
0

ADDR SZ WCHAN TTY
248 sigtim ?
- 85017 epoll_ ?
- 8972 hrtime ?
0 ?

- 40102 epoll_ ?
- 51020 epoll_ ?
- 176771 futex_ ?
- 119410 select ?
- 31847 futex_ ?
- 130713 epoll_ ?
0 ?
- 12646 ?

TIME
00:00:00
00:00:01
00:00:00
00:00:05
00:00:00
00:00:02
00:00:00
00:00:03
00:00:00
00:00:03
00:00:00
00:00:00

CMD
docker-ini
node
tail
0
colab-file
jupyter-no

dap_multip
python3
python3
node
0
ps

Giải thích: Liệt kê chi tiết các tiến trình của người dùng và cho chạy ở chế độ nền (background)

Bài tập 3
Thực hiện tạo một tiến trình và một tiến trình chạy ngầm (background). Cho nhận xét về 2 tiến trình trên. (cho ví
dụ minh họa và nhận xét)
In [ ]:
for i in $(seq 1 1 1000); do echo "Xin chao so $i"; sleep 5; done &
for i in $(seq 1 1 1000); do echo "Xin chao so $i"; sleep 5; done
In [ ]:
!bash
bash: cannot set terminal process group (62): Inappropriate ioctl for device
bash: no job control in this shell
/content# for i in $(seq 1 1 1000); do echo "Xin chao so $i"; sleep 5; done
Xin chao so 1
Xin chao so 2
Xin chao so 3
/content# for i in $(seq 1 1 1000); do echo "Xin chao so $i"; sleep 5; done &
[1] 370
/content# Xin chao so 1
Xin chao so 2
Xin chao so 3
Xin chao so 4
kill %1

/content#
/content# exit
exit
Nhận xét:
Đối với tiến trình bình thường (foreground) thì ta có thể tương tác trực tiếp với nó bằng: Ctrl + C, Ctrl + Z,


Đối với tiến trình bình thường (foreground) thì ta có thể tương tác trực tiếp với nó bằng: Ctrl + C, Ctrl + Z,
bằng các tính hiệu. Khi chạy tiến trình bình thường thì ta khơng thể thực hiện các cơng việc khác trong khi
tiến trình này đang thực hiện. -Đối với tiến trình chạy ngầm (background) thì ta khơng thể tương tác trực tiếp
với nó bằng: Crtl + C hay Ctrl Z, mà chỉ có thể gửi tính hiệu tới nó. Khi chạy tiến trình chạy ngầm thì nó sẽ
chạy ngầm định bên dưới và ta có thể tiếp tục thực hiện các công việc khác.

Bài tập 4
Tạo một tiến trình chạy ngầm với câu lệnh ps. Khi tiến trình trên kết thúc, một thơng báo kết thúc sẽ xuất hiện :
“END.” (không sử dụng shell script)
In [ ]:
%%bash
ps & p=$! ; wait $p; echo -e "\n END."
PID
1
7
19
30
31
44
45
62
82
99

402
403

TTY
?
?
?
?
?
?
?
?
?
?
?
?

TIME
00:00:00
00:00:02
00:00:00
00:00:06
00:00:00
00:00:03
00:00:02
00:00:12
00:00:05
00:00:03
00:00:00
00:00:00


CMD
docker-init
node
tail
python3 <defunct>
colab-fileshim.
jupyter-noteboo
dap_multiplexer
python3
python3
node
bash
ps

END.

Bài tập 5
Tuần tự thực hiện các yêu cầu sau:
1. Thưc thi lệnh top
2. Treo tiến trình đó
3. Tạo một tiến trình mới mà ở đó nó sẽ bị trì hỗn 2 lần 60 giây trước khi thực hiện lưu output của lệnh ls – l
vào tập tin flist
4. Chuyển tiến trình ở bước 3 sang chế độ chạy ngầm (background)
5. Liệt kê các tiến trình đang chạy ngầm
6. Hủy tiến trình ở bước 1
7. Kiểm tra lại để thấy tiến trình ở bước 3 là hồn tất.
8. Cho nhận xét việc thực hiện các công việc 1 -> 7
In [ ]:
for i in $(seq 1 1 1000); do echo $i; sleep 1; done &

In [ ]:
%%bash
echo "sleep 60; sleep 60; ls -l > flist" > proc
chmod 755 proc
In [ ]:
!bash
bash: cannot set terminal process group (62): Inappropriate ioctl for device
bash: no job control in this shell
/content# for i in $(seq 1 1 1000); do echo $i; sleep 1; done &


[1] 430
/content# 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

19
./proc&
[2] 455
/content# 20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
jobs -l
[1]430 Running
do
echo $i; sleep 1;
done &
[2]+
455 Running
/content# 38
39

40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
jobs -l
[1]430 Running
do
echo $i; sleep 1;

for i in $(seq 1 1 1000);

./proc &

for i in $(seq 1 1 1000);



done &
[2]+
455 Running
/content# 60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
kill %1
/content# jobs -l
[1]430 Terminated

do
echo $i; sleep 1;
done
[2]+
455 Running
/content# ls
proc sample_data
/content# jobs -l
[2]+
455 Running
/content# exit
exit

./proc &

for i in $(seq 1 1 1000);

./proc &

./proc &

Bài tập 6
Bài tập 6 Liệt kê tất cả các tiến trình hiện đang chạy theo từng trang màn hình
In [ ]:
%%bash
ps -A | more
PID
1
7
19

30
31
44
45
62
82
99
565
566
567

TTY
?
?
?
?
?
?
?
?
?
?
?
?
?

TIME
00:00:00
00:00:03
00:00:00

00:00:06
00:00:00
00:00:03
00:00:03
00:00:15
00:00:07
00:00:03
00:00:00
00:00:00
00:00:00

CMD
docker-init
node
tail
python3 <defunct>
colab-fileshim.
jupyter-noteboo
dap_multiplexer
python3
python3
node
bash
ps
more

Bài tập 7
Bài tập 7 Tạo một shell script có tên uncount hiển thị dãy chữ số : 6 5 4 3 2 1 trong các khoãng thời gian 5 giây
(hiển thị một số/5giây), mà nếu ta gõ phím DEL thì nó sẽ hiển thị chữ số kế tiếp Tài Liệu Thực Hành Hệ Điều
Hành – Bộ môn HTMT&TT Ths. Phan Thượng Cang - Ths. Bùi Quốc Thái Trang 42



In [1]:
%%shell
n=6
while [[ $n -gt 0 ]]
do
trap "n=`expr $n - 1`; continue;" 2
sleep 5
echo -e "$n \c"
n=`expr $n - 1`
done
trap 2
6 5 4 3 2 1
Out[1]:

Bài tập 8 + 9
4.8 Bài tập 8 Liệt kê các tiến trình ngầm hiện đang chạy 4.9 Bài tập 9 Liệt kê các tiến trình ngầm đã kết thúc
In [ ]:
%%bash
jobs -r
jobs -s

Bài tập 10
4.10 Bài tập 10 Xác định số tín hiệu phát sinh khi thực hiện lệnh:
1. $kill 408
2. $kill -9 521
kill 408 : Tính hiệu số 15
kill -9 521 : Tính hiệu số 9
Bài tập 11 4.11 Bài tập 11 Hãy viết shell script : LisFileDel file1 file2 Chức năng:

hiển thị nội dung các tập tin có tên trong danh sách đối số
nếu gõ phím DEL, bỏ qua tập tin đang hiển thị, bắt đầu tập tin kế tiếp
khôi phục chức năng mặc định của phím DEL khi kết thúc
In [2]:
%%bash
for i in $(seq 1 1 10); do echo "Noi dung file $i" > "file$i"; done
touch LisFileDel
chmod 755 LisFileDel
In [ ]:
while [[ $ # -gt 0 ]]
do
cat $1
sleep 1
shift


done
In [ ]:
while [[ $ # -gt 0 ]]
do
trap shift 2
cat $1
sleep 1
shift
done
trap 2
In [ ]:
./cau11.sh

file1 file2 file3 file4 file5


In [3]:
!bash
bash: cannot set terminal process group (59): Inappropriate ioctl for device
bash: no job control in this shell
/content# ./LisFileDel file1 file2 file3 file4 file5
Noi dung file 1
Noi dung file 2
Noi dung file 3
Noi dung file 4
Noi dung file 5
/content# exit
exit

Bài tập 12
4.12 Bài tập 12 Hãy viết shell script : trap2 Chức năng:
thực hiện một chu trình hiển thị một thơng báo: “Shutdown in n minutes” n có giá trị từ 5 đến 1
mỗi khi gõ phím DEL, lập tức hiển thị thông báo tiếp theo
khôi phục chức năng mặc định của phím DEL khi kết thúc
In [4]:
%%bash
touch trap2
chmod 755 trap2
In [ ]:
n=5
while [[ $n -gt 0 ]]
do
trap "n=`expr $n - 1`; continue;" 2
sleep 5
echo -e "Shutdown in $n minutes\n "

n=`expr $n - 1`
done
trap 2
In [1]:
!bash
bash: cannot set terminal process group (242): Inappropriate ioctl for device
bash: no job control in this shell
/content# ./trap2
Shutdown in 5 minutes


Shutdown in 4 minutes
Shutdown in 3 minutes
Shutdown in 2 minutes
Shutdown in 1 minutes
/content# exit
exit
Bài tập 1 Sử dụng câu lệnh ps, thực hiện các yêu cầu sau:
1. Hiển thị tất cả các tiến trình của người dùng hiện đang làm việc
2. Hiển thị tất cả các tiến trình hiện đang chạy
3. Đọc và hiểu các output trên 4.2 Bài tập 2 Giải thích output của câu lệnh ps sau: $ps -l & [1] 478 4.3 Bài tập 3
Thực hiện tạo một tiến trình và một tiến trình chạy ngầm (background). Cho nhận xét về 2 tiến trình trên.
(cho ví dụ minh họa và nhận xét) 4.4 Bài tập 4 Tạo một tiến trình chạy ngầm với câu lệnh ps. Khi tiến trình
trên kết thúc, một thơng báo kết thúc sẽ xuất hiện : “END.” (không sử dụng shell script) 4.5 Bài tập 5 Tuần
tự thực hiện các yêu cầu sau:
4. Thưc thi lệnh top
5. Treo tiến trình đó
6. Tạo một tiến trình mới mà ở đó nó sẽ bị trì hoãn 2 lần 60 giây trước khi thực hiện lưu output của lệnh ls – l
vào tập tin flist
7. Chuyển tiến trình ở bước 3 sang chế độ chạy ngầm (background)

8. Liệt kê các tiến trình đang chạy ngầm
9. Hủy tiến trình ở bước 1
10. Kiểm tra lại để thấy tiến trình ở bước 3 là hồn tất.
11. Cho nhận xét việc thực hiện các công việc 1 -> 7 4.6 Bài tập 6 Liệt kê tất cả các tiến trình hiện đang chạy
theo từng trang màn hình 4.7 Bài tập 7 Tạo một shell script có tên uncount hiển thị dãy chữ số : 6 5 4 3 2 1
trong các khoãng thời gian 5 giây (hiển thị một số/5giây), mà nếu ta gõ phím DEL thì nó sẽ hiển thị chữ số kế
tiếp Tài Liệu Thực Hành Hệ Điều Hành – Bộ môn HTMT&TT Ths. Phan Thượng Cang - Ths. Bùi Quốc Thái
Trang 42 4.8 Bài tập 8 Liệt kê các tiến trình ngầm hiện đang chạy 4.9 Bài tập 9 Liệt kê các tiến trình ngầm
đã kết thúc 4.10 Bài tập 10 Xác định số tín hiệu phát sinh khi thực hiện lệnh:
12. $kill 408
13. $kill -9 521 4.11 Bài tập 11 Hãy viết shell script : LisFileDel file1 file2 Chức năng:
hiển thị nội dung các tập tin có tên trong danh sách đối số
nếu gõ phím DEL, bỏ qua tập tin đang hiển thị, bắt đầu tập tin kế tiếp
khôi phục chức năng mặc định của phím DEL khi kết thúc 4.12 Bài tập 12 Hãy viết shell script : trap2 Chức
năng:
thực hiện một chu trình hiển thị một thông báo: “Shutdown in n minutes” n có giá trị từ 5 đến 1
mỗi khi gõ phím DEL, lập tức hiển thị thông báo tiếp theo
khôi phục chức năng mặc định của phím DEL khi kết thúc
Bài tập 1 Sử dụng câu lệnh ps, thực hiện các yêu cầu sau:
1. Hiển thị tất cả các tiến trình của người dùng hiện đang làm việc
2. Hiển thị tất cả các tiến trình hiện đang chạy
3. Đọc và hiểu các output trên 4.2 Bài tập 2 Giải thích output của câu lệnh ps sau: $ps -l & [1] 478 4.3 Bài tập 3
Thực hiện tạo một tiến trình và một tiến trình chạy ngầm (background). Cho nhận xét về 2 tiến trình trên.
(cho ví dụ minh họa và nhận xét) 4.4 Bài tập 4 Tạo một tiến trình chạy ngầm với câu lệnh ps. Khi tiến trình
trên kết thúc, một thông báo kết thúc sẽ xuất hiện : “END.” (không sử dụng shell script) 4.5 Bài tập 5 Tuần
tự thực hiện các yêu cầu sau:
4. Thưc thi lệnh top
5. Treo tiến trình đó
6. Tạo một tiến trình mới mà ở đó nó sẽ bị trì hỗn 2 lần 60 giây trước khi thực hiện lưu output của lệnh ls – l
vào tập tin flist

7. Chuyển tiến trình ở bước 3 sang chế độ chạy ngầm (background)
8. Liệt kê các tiến trình đang chạy ngầm
9. Hủy tiến trình ở bước 1


10. Kiểm tra lại để thấy tiến trình ở bước 3 là hoàn tất.
11. Cho nhận xét việc thực hiện các công việc 1 -> 7 4.6 Bài tập 6 Liệt kê tất cả các tiến trình hiện đang chạy
theo từng trang màn hình 4.7 Bài tập 7 Tạo một shell script có tên uncount hiển thị dãy chữ số : 6 5 4 3 2 1
trong các khoãng thời gian 5 giây (hiển thị một số/5giây), mà nếu ta gõ phím DEL thì nó sẽ hiển thị chữ số kế
tiếp Tài Liệu Thực Hành Hệ Điều Hành – Bộ môn HTMT&TT Ths. Phan Thượng Cang - Ths. Bùi Quốc Thái
Trang 42 4.8 Bài tập 8 Liệt kê các tiến trình ngầm hiện đang chạy 4.9 Bài tập 9 Liệt kê các tiến trình ngầm
đã kết thúc 4.10 Bài tập 10 Xác định số tín hiệu phát sinh khi thực hiện lệnh:
12. $kill 408
13. $kill -9 521 4.11 Bài tập 11 Hãy viết shell script : LisFileDel file1 file2 Chức năng:
hiển thị nội dung các tập tin có tên trong danh sách đối số
nếu gõ phím DEL, bỏ qua tập tin đang hiển thị, bắt đầu tập tin kế tiếp
khôi phục chức năng mặc định của phím DEL khi kết thúc 4.12 Bài tập 12 Hãy viết shell script : trap2 Chức
năng:
thực hiện một chu trình hiển thị một thơng báo: “Shutdown in n minutes” n có giá trị từ 5 đến 1
mỗi khi gõ phím DEL, lập tức hiển thị thông báo tiếp theo
khôi phục chức năng mặc định của phím DEL khi kết thúc
Bài tập 1 Sử dụng câu lệnh ps, thực hiện các yêu cầu sau:
1. Hiển thị tất cả các tiến trình của người dùng hiện đang làm việc
2. Hiển thị tất cả các tiến trình hiện đang chạy
3. Đọc và hiểu các output trên 4.2 Bài tập 2 Giải thích output của câu lệnh ps sau: $ps -l & [1] 478 4.3 Bài tập 3
Thực hiện tạo một tiến trình và một tiến trình chạy ngầm (background). Cho nhận xét về 2 tiến trình trên.
(cho ví dụ minh họa và nhận xét) 4.4 Bài tập 4 Tạo một tiến trình chạy ngầm với câu lệnh ps. Khi tiến trình
trên kết thúc, một thơng báo kết thúc sẽ xuất hiện : “END.” (không sử dụng shell script) 4.5 Bài tập 5 Tuần
tự thực hiện các yêu cầu sau:
4. Thưc thi lệnh top

5. Treo tiến trình đó
6. Tạo một tiến trình mới mà ở đó nó sẽ bị trì hỗn 2 lần 60 giây trước khi thực hiện lưu output của lệnh ls – l
vào tập tin flist
7. Chuyển tiến trình ở bước 3 sang chế độ chạy ngầm (background)
8. Liệt kê các tiến trình đang chạy ngầm
9. Hủy tiến trình ở bước 1
10. Kiểm tra lại để thấy tiến trình ở bước 3 là hồn tất.
11. Cho nhận xét việc thực hiện các công việc 1 -> 7 4.6 Bài tập 6 Liệt kê tất cả các tiến trình hiện đang chạy
theo từng trang màn hình 4.7 Bài tập 7 Tạo một shell script có tên uncount hiển thị dãy chữ số : 6 5 4 3 2 1
trong các khoãng thời gian 5 giây (hiển thị một số/5giây), mà nếu ta gõ phím DEL thì nó sẽ hiển thị chữ số kế
tiếp Tài Liệu Thực Hành Hệ Điều Hành – Bộ môn HTMT&TT Ths. Phan Thượng Cang - Ths. Bùi Quốc Thái
Trang 42 4.8 Bài tập 8 Liệt kê các tiến trình ngầm hiện đang chạy 4.9 Bài tập 9 Liệt kê các tiến trình ngầm
đã kết thúc 4.10 Bài tập 10 Xác định số tín hiệu phát sinh khi thực hiện lệnh:
12. $kill 408
13. $kill -9 521 4.11 Bài tập 11 Hãy viết shell script : LisFileDel file1 file2 Chức năng:
hiển thị nội dung các tập tin có tên trong danh sách đối số
nếu gõ phím DEL, bỏ qua tập tin đang hiển thị, bắt đầu tập tin kế tiếp
khôi phục chức năng mặc định của phím DEL khi kết thúc 4.12 Bài tập 12 Hãy viết shell script : trap2 Chức
năng:
thực hiện một chu trình hiển thị một thơng báo: “Shutdown in n minutes” n có giá trị từ 5 đến 1
mỗi khi gõ phím DEL, lập tức hiển thị thơng báo tiếp theo
khơi phục chức năng mặc định của phím DEL khi kết thúc



×