看板 Grad-ProbAsk 關於我們 聯絡資訊
小弟在念OS的時候 突然有個疑問 假設說 有兩個 Process 叫 A 跟 B A 先做接著 去做I/O 那麼 是 A context switching 成 B 有和 A 去做I/O的時間有平行嗎 ? 還是說先 A context switching 成 B 之後 A才開始做I/O ? 示意圖如下 : Process_A context switching Process_B CPU : |________________|____________________|_______________| Process_A I/O : |____________________________________| 還是 Process_A context switching Process_B CPU : |________________|____________________|_______________| Process_A I/O : |__________________________| 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.243.92.172 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1509683891.A.986.html
nat99up: A call I/O會切給Kernel不是B 11/03 13:24
alan23273850: good question 給推 11/03 15:55
miniear: context switching time is overhead 11/03 18:19
TMDTMD2487: 我的理解是process發出做io的system call 11/03 18:43
TMDTMD2487: kernel處理io初始動作,然後kenral做context swtiching 11/03 18:44
TMDTMD2487: 給下一個process 11/03 18:45
can18: 理解同樓上 11/03 18:46
TMDTMD2487: 我的理解拉希望有人跟我說適不適這樣ww 11/03 18:47
https://i.imgur.com/ivntkjl.png 事情是這樣的 洪逸有講到 若有 11 個 I/O-Bound Job I/O-Bound Job 每隔 1ms 發出I/O-Request Context Switching is 0.1 ms 採RR 那麼 " 每個 I/O 花 10ms "這行敘述可以忽略 因為這11個I/O-Bound Job 輪完 剛好第 1 個 I/O-Bound Job 也回到Ready Queue 所以我就在想圖中右下角紅筆的地方 第一個 I/O-Bound Job 做 I/O 的時候 是從 1ms 起算 還是 1.1ms 起算 ?? 感謝大大們熱情討論 ※ 編輯: jerry900287 (61.230.64.78), 11/03/2017 19:59:03
TMDTMD2487: 我相信一定是kernel設定完io才去做context switching 11/03 20:21
TMDTMD2487: 所以這裡應該就是當作設定io的時間可以省略 11/03 20:22
TMDTMD2487: 做完context switching就等於說把cup的使用權交給下一 11/03 20:24
TMDTMD2487: 個process,所以io的初始設定要在context switching前 11/03 20:25
我也覺得你這樣講比較有道理 感謝想法XD ※ 編輯: jerry900287 (61.230.64.78), 11/03/2017 21:50:46 ※ 編輯: jerry900287 (61.230.64.78), 11/03/2017 21:51:05