Re: [理工] [OS]-師大資工
(1)
這個畫圖應該比較好懂. 可惜我不太會用BBS畫
先說幾個重點:
1. child copy parent的當前所有的環境變數, 包含PC, 所以child出生後會執行fork()
的下一行
2. fork( )傳回child's pid給parent, 傳0給child
3. parent和child執行順序不一定, 這裡假設parent先執行, 不考慮cascading
termination.
令一開始的process是P0
P0輸出 "start of test"
第一個fork, 生出P1(假設pid = 1001)
輸出 "my pid = 1001"
第二個fork, 生出P2(假設pid = 1002)
輸出 "my pid = 1002"
P0結束
考慮P1
輸出 "my pid = 0"
第二個fork, 生出P3(假設pid = 1003)
輸出 "my pid = 1003"
P1結束
考慮P2
輸出 "my pid = 0"
P2結束
考慮P3
輸出 "my pid = 0"
P3結束
可能的輸出結果為
"start of test"
"my pid = 1001"
"my pid = 1002"
"my pid = 0"
"my pid = 1003"
"my pid = 0"
"my pid = 0"
(2)
(a) 16 bits
(b) pointer內存放memory的physical address, 所以大小為14 bits
(c) 3 + (14 - 12 ) = 5 bits
(d) 16 * 2 ^ (16 - 12) = 256 bits = 32 bytes.
(e) inverted page table entry 數 = memory frame 數 = 2^(14-12) = 4個
有錯請更正~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.231.189.87
推
03/17 19:36, , 1F
03/17 19:36, 1F
推
03/17 19:40, , 2F
03/17 19:40, 2F
推
03/17 19:45, , 3F
03/17 19:45, 3F
→
03/17 19:46, , 4F
03/17 19:46, 4F
→
03/17 19:47, , 5F
03/17 19:47, 5F
推
03/17 19:54, , 6F
03/17 19:54, 6F
推
03/17 19:57, , 7F
03/17 19:57, 7F
→
03/17 19:57, , 8F
03/17 19:57, 8F
→
03/17 19:59, , 9F
03/17 19:59, 9F
→
03/17 20:01, , 10F
03/17 20:01, 10F
推
03/17 20:31, , 11F
03/17 20:31, 11F
推
03/17 20:34, , 12F
03/17 20:34, 12F
→
03/17 21:38, , 13F
03/17 21:38, 13F
→
03/17 21:39, , 14F
03/17 21:39, 14F
→
03/17 21:40, , 15F
03/17 21:40, 15F
推
03/17 22:00, , 16F
03/17 22:00, 16F
→
03/17 22:28, , 17F
03/17 22:28, 17F
推
03/17 22:50, , 18F
03/17 22:50, 18F
→
03/17 22:52, , 19F
03/17 22:52, 19F
→
03/17 22:52, , 20F
03/17 22:52, 20F
會有9個行程進入i = 1; 接下來只看P0, P0含自己會有9個行程進入i = 2.
所以共有9*9個行程進入i = 2, ... 最後i = 2結束時有9*9*9個行程.
※ 編輯: uminchu185 來自: 125.231.189.87 (03/17 23:23)