Bài thực hành số 2 học phần Hệ điều hành | Trường Đại học Phenikaa

Bài 1. Run ./fork.py -s 10 and see which actions are taken. Can you predict what the process tree looks like at each step? Use the -c flag to check your answers. Try some different random seeds (-s) or add more actions (a) to get the hang of it. Câu 2. Now run with these flags: ./process-run.py -l 4:100,1:0. These flags specify one process with 4 instructions (all to use the CPU), and one that simply issues an I/O and waits for it to be done. How long does it take to complete both processes? Use -c and -p to find out if you were right. Tài liệu giúp bạn tham khảo, ôn tập và đạt kết quả cao. Mời bạn đón xem.

Môn:
Trường:

Đại học Phenika 846 tài liệu

Thông tin:
9 trang 2 tháng trước

Bình luận

Vui lòng đăng nhập hoặc đăng ký để gửi bình luận.

Bài thực hành số 2 học phần Hệ điều hành | Trường Đại học Phenikaa

Bài 1. Run ./fork.py -s 10 and see which actions are taken. Can you predict what the process tree looks like at each step? Use the -c flag to check your answers. Try some different random seeds (-s) or add more actions (a) to get the hang of it. Câu 2. Now run with these flags: ./process-run.py -l 4:100,1:0. These flags specify one process with 4 instructions (all to use the CPU), and one that simply issues an I/O and waits for it to be done. How long does it take to complete both processes? Use -c and -p to find out if you were right. Tài liệu giúp bạn tham khảo, ôn tập và đạt kết quả cao. Mời bạn đón xem.

38 19 lượt tải Tải xuống
Thứ 6, ngày 5 tháng 1 năm 2024
BÀI THỰC HÀNH SỐ 2
Họ và tên: Đỗ Thị Mỹ Hạnh MSV:
22010128
Bài 1. Run ./fork.py -s 10 and see which actions are taken. Can you predict what the process tree looks like at
each step? Use the -c flag to check your answers. Try some different random seeds (-s) or add more actions
(a) to get the hang of it.
-s 10 -c
-a 10 -c
Dựa vào kết quả chạy chương trình ở trên, ta thấy rằng có thể dự oán cây tiến trình trông như thế nào ở mỗi
bước
Câu 2. Now run with these flags: ./process-run.py -l 4:100,1:0. These flags specify one process with 4
instructions (all to use the CPU), and one that simply issues an I/O and waits for it to be done. How long
does it take to complete both processes? Use -c and -p to find out if you were right.
-s -10 -a 10 -f 0.1 -c
-s -10 -a 10 -f 0.2 -c
-s -10 -a 10 -f 0.3 -c
-s -10 -a 10 -f 0.4 -c
-s -10 -a 10 -f 0.5 -c
-s -10 -a 10 -f 0.6 -c
-s -10 -a 10 -f 0.7 -c
-s -10 -a 10 -f 0.8 -c
-s -10 -a 10 -f 0.9 -c
Khi thay ổi tỷ lệ phần trăm fork từ 0,1 ến 0,9 cây tiến trình, tần số hành ộng EXIT sẽ giảm dần, tần số hành ộng
tạo nhánh fork sẽ tăng dần và cuối cùng không còn xuất hiện hành ộng EXIT.
Câu 3. Now, switch the output by using the -t flag (e.g., run ./fork.py -t). Given a set of process trees, can you
tell which actions were taken?
Với một bộ cây tiến trình, ta có thể cho biết ược hành ộng ã thực hiện. Như ở chương trình trên ta có thể biết
ược các hành ộng ã thực hiện như sau:
+ Hành ộng 1: a forks b
+ Hành ộng 2: b forks c
+ Hành ộng 3: c forks d
+ Hành ộng 4: d forks e
+ Hành ộng 5: e forks f
Câu 4. We’ll now explore some of the other flags. One important flag is -S, which determines how the system
reacts when a process issues an I/O. With the flag set to SWITCH ON END, the system will NOT switch to
another process while one is doing I/O, instead waiting until the process is completely finished. What
happens when you run the following two processes (-l 1:0,4:100 -c -S SWITCH ON END), one doing I/O
and the other doing CPU work?
-A a+b,b+c,c+d,c+e,c- -R -c
Không có cờ -R, khi thoát ra khỏi cây c, các cây con của c là ‘d’ và ‘e’ sẽ ược gắn trực tiếp vào tiến trình cha
tước ó là b
Khi có cờ -R, khi thoát ra khỏi cây c, các cây con của c là ‘d’ và ‘e’ sẽ ược gắn vào cây con gần cây c nhất.
Câu 5. Now, run the same processes, but with the switching behavior set to switch to another process
whenever one isWAITING for I/O (-l 1:0,4:100 -c -S SWITCH ON IO).What happens now? Use -c and -p to
confirm that you are right.
Có thể viết ra cây cuối cùng khi nhìn vào chuỗi hành ộng ược tạo ra, cây cuối cùng ược biểu diễn như sau:
Process Tree:
a
Action: a forks b
a
└── b
Action: b EXITS
a
Action: a forks c
a
└── c
Action: c forks d
a
└── c
└── d
Action: d forks e
a
└── c
└── d
└── e
Dưới ây là một ví dụ khác: khi chạy cờ -F -c
Câu 6. Finally, use both -t and -F together. This shows the final process tree, but then asks you to fill in the
actions that took place. By looking at the tree, can you determine the exact actions that took place? In which
cases can you tell? In which can’t you tell? Try some different random seeds to delve into this question
Có thể xác ịnh các hành ộng diễn ra(nhưng không hoàn toàn chính xác), việc xác ịnh chính xác các hành ộng ã
diễn ra từ cây tiến trình cuối cùng, phụ thuộc vào cấu trúc cây, thứ tự hành ộng và hạt giống ngẫu nhiên. Trong
một số trường hợp, ta có thể suy ra một số hành ộng ã xảy ra nhưng không thể khẳng ịnh ược tất cả các hành
ộng, như ở bài tập trên ta có thể xác ịnh các hành ộng thông qua cây cuối cùng:
Action: a forks b
Action: a forks c
Action: c EXITS
Action: a forks d Action:
a forks e
| 1/9

Preview text:


Thứ 6, ngày 5 tháng 1 năm 2024
BÀI THỰC HÀNH SỐ 2
Họ và tên: Đỗ Thị Mỹ Hạnh MSV: 22010128
Bài 1. Run ./fork.py -s 10 and see which actions are taken. Can you predict what the process tree looks like at
each step? Use the -c flag to check your answers. Try some different random seeds (-s) or add more actions
(a) to get the hang of it.
-s 10 -c -a 10 -c
Dựa vào kết quả chạy chương trình ở trên, ta thấy rằng có thể dự oán cây tiến trình trông như thế nào ở mỗi bước
Câu 2. Now run with these flags: ./process-run.py -l 4:100,1:0. These flags specify one process with 4
instructions (all to use the CPU), and one that simply issues an I/O and waits for it to be done. How long
does it take to complete both processes? Use -c and -p to find out if you were right.

-s -10 -a 10 -f 0.1 -c
-s -10 -a 10 -f 0.2 -c
-s -10 -a 10 -f 0.3 -c
-s -10 -a 10 -f 0.4 -c
-s -10 -a 10 -f 0.5 -c
-s -10 -a 10 -f 0.6 -c
-s -10 -a 10 -f 0.7 -c
-s -10 -a 10 -f 0.8 -c
-s -10 -a 10 -f 0.9 -c
Khi thay ổi tỷ lệ phần trăm fork từ 0,1 ến 0,9 cây tiến trình, tần số hành ộng EXIT sẽ giảm dần, tần số hành ộng
tạo nhánh fork sẽ tăng dần và cuối cùng không còn xuất hiện hành ộng EXIT.
Câu 3. Now, switch the output by using the -t flag (e.g., run ./fork.py -t). Given a set of process trees, can you
tell which actions were taken?
Với một bộ cây tiến trình, ta có thể cho biết ược hành ộng ã thực hiện. Như ở chương trình trên ta có thể biết
ược các hành ộng ã thực hiện như sau: + Hành ộng 1: a forks b + Hành ộng 2: b forks c + Hành ộng 3: c forks d + Hành ộng 4: d forks e + Hành ộng 5: e forks f
Câu 4. We’ll now explore some of the other flags. One important flag is -S, which determines how the system
reacts when a process issues an I/O. With the flag set to SWITCH ON END, the system will NOT switch to
another process while one is doing I/O, instead waiting until the process is completely finished. What
happens when you run the following two processes (-l 1:0,4:100 -c -S SWITCH ON END), one doing I/O
and the other doing CPU work?

-A a+b,b+c,c+d,c+e,c- -c
-A a+b,b+c,c+d,c+e,c- -R -c
Không có cờ -R, khi thoát ra khỏi cây c, các cây con của c là ‘d’ và ‘e’ sẽ ược gắn trực tiếp vào tiến trình cha tước ó là b
Khi có cờ -R, khi thoát ra khỏi cây c, các cây con của c là ‘d’ và ‘e’ sẽ ược gắn vào cây con gần cây c nhất.
Câu 5. Now, run the same processes, but with the switching behavior set to switch to another process
whenever one isWAITING for I/O (-l 1:0,4:100 -c -S SWITCH ON IO).What happens now? Use -c and -p to
confirm that you are right
.

Có thể viết ra cây cuối cùng khi nhìn vào chuỗi hành ộng ược tạo ra, cây cuối cùng ược biểu diễn như sau: Process Tree: a Action: a forks b a └── b Action: b EXITS a Action: a forks c a └── c Action: c forks d a └── c └── d Action: d forks e a └── c └── d └── e
Dưới ây là một ví dụ khác: khi chạy cờ -F -c
Câu 6. Finally, use both -t and -F together. This shows the final process tree, but then asks you to fill in the
actions that took place. By looking at the tree, can you determine the exact actions that took place? In which
cases can you tell? In which can’t you tell? Try some different random seeds to delve into this question

Có thể xác ịnh các hành ộng diễn ra(nhưng không hoàn toàn chính xác), việc xác ịnh chính xác các hành ộng ã
diễn ra từ cây tiến trình cuối cùng, phụ thuộc vào cấu trúc cây, thứ tự hành ộng và hạt giống ngẫu nhiên. Trong
một số trường hợp, ta có thể suy ra một số hành ộng ã xảy ra nhưng không thể khẳng ịnh ược tất cả các hành
ộng, như ở bài tập trên ta có thể xác ịnh các hành ộng thông qua cây cuối cùng: Action: a forks b Action: a forks c Action: c EXITS Action: a forks d Action: a forks e