[理工] OS context switching 觀念

看板Grad-ProbAsk作者時間8年前 (2017/11/03 12:38), 8年前編輯推噓6(606)
留言12則, 5人參與, 8年前最新討論串1/1
小弟在念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

11/03 13:24, 8年前 , 1F
A call I/O會切給Kernel不是B
11/03 13:24, 1F

11/03 15:55, 8年前 , 2F
good question 給推
11/03 15:55, 2F

11/03 18:19, 8年前 , 3F
context switching time is overhead
11/03 18:19, 3F

11/03 18:43, 8年前 , 4F
我的理解是process發出做io的system call
11/03 18:43, 4F

11/03 18:44, 8年前 , 5F
kernel處理io初始動作,然後kenral做context swtiching
11/03 18:44, 5F

11/03 18:45, 8年前 , 6F
給下一個process
11/03 18:45, 6F

11/03 18:46, 8年前 , 7F
理解同樓上
11/03 18:46, 7F

11/03 18:47, 8年前 , 8F
我的理解拉希望有人跟我說適不適這樣ww
11/03 18:47, 8F
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

11/03 20:21, 8年前 , 9F
我相信一定是kernel設定完io才去做context switching
11/03 20:21, 9F

11/03 20:22, 8年前 , 10F
所以這裡應該就是當作設定io的時間可以省略
11/03 20:22, 10F

11/03 20:24, 8年前 , 11F
做完context switching就等於說把cup的使用權交給下一
11/03 20:24, 11F

11/03 20:25, 8年前 , 12F
個process,所以io的初始設定要在context switching前
11/03 20:25, 12F
我也覺得你這樣講比較有道理 感謝想法XD ※ 編輯: jerry900287 (61.230.64.78), 11/03/2017 21:50:46 ※ 編輯: jerry900287 (61.230.64.78), 11/03/2017 21:51:05
文章代碼(AID): #1P-_Apc6 (Grad-ProbAsk)