[理工] 幾個觀念問題 OS/計組

作者: leoone (里歐一代)   2017-11-10 18:26:39
1.在OS RR排班中,若Process A time out ,可因為PA 優先權極高,要立即preemptive
進Running,有需要再做context switch嗎?
2.在pipeline中,若branch 跟jump taken 那在跳了之後這兩個指令的MEM與WB stage是
都為空的?
兩個小東西突然卡住,感謝各位大大
作者: TMDTMD2487 (ㄚ冰)   2017-11-10 18:40:00
RR的ReadyQ預設應該都是FIFO所以除非裡面沒東西不然A進去應該都會有人比他權重高,如果Q裡面沒別的東西的話好像沒再算context switching,這是真對做題目說的實際上我也不知道XD阿你跳躍了之後後面的stage還是會把解碼過的控制訊號往後面送,只是他們的控制信號本就不會做寫入等等的事我覺得說是空的不太準確,本來就會往後只是不會有問題這兩個指令本來就不會做寫入的動作,所以把控制信號設好,剩下的問題就是hazard那些了我的感覺是os可以針對這個狀況做避免(當然時間要小於Context switching才有效益,不過題目是沒有算拉XD做題目當他沒有實際上要問有研究或實作過的人才知道了我也蠻好奇的XD 希望有人可以跟我講實際上是怎樣棒 問完告訴我 我上tkb的XD然後阿pipeline沒有方法攔下來就只有把它變成無意義的指令,那這兩個指令再mem跟wb本來就是無意義的了這應該蠻好理解的你頂多只能做一個register配合clock做緩衝讓它分成幾個stage,但你要真的把一個東西攔下直接不見應該有困難mem wb的regwrite跟memwrite本來就是0壓(這就是無意義無意義的指令基本就把寫入跟branch這類的設0就是了
作者: q1qip123 (wtlee)   2017-11-10 22:36:00
https://stackoverflow.com/questions/8997616/does-a-context-switch-occur-in-a-system-whose-ready-queue-has-only-one-process-a他舉Linux 為例,他會檢查ready queue,所以不需要context switching ~
作者: leoone (里歐一代)   2017-11-10 23:01:00
所以這算是OS自己會去辨識ready queue情況,沒process在Q裡面他就會讓剛time out 進到Q的process再次執行?
作者: q1qip123 (wtlee)   2017-11-11 01:26:00
以下是我對這篇文章的想法RR排班法則Context switching (簡稱CW)的大略步驟1.interrupt發生,切換至kernel mode2.儲存相關資訊至PCB3.把執行中的process放到Ready Queue中4.選擇新的process執行,載入process的PCB5.切換至user mode 執行process其中當Ready Q中只有一個程序時,因為分時系統要求一段時間要有回有回應所以會執行到步驟2,才能給予回應,但不能確定他是否有因為time out進入ready q而CW的定義是步驟2+4,而她說明並沒有進行CW,只是恢復執行原本的process但是當他恢復執行自己的PCB也算是一種載入吧(? 所以感覺有點矛盾這邊我覺得應該是我們CW學得較簡略,所以不能完整說明CW沒有執行不好意思 感覺把問題反推給你…我找到相關問題的解答都只有這篇
作者: TMDTMD2487 (ㄚ冰)   2017-11-11 08:37:00
https://goo.gl/fVxcdK畢竟linux是開放原始碼的,可以去看看原始碼大概看下去看起來像是是若Q中挑選出得跟原本的一樣,那就不做cs了linux scheduler跟context switch應該還是查得到相關原始碼的兩篇我看了一下,一切都是發生在挑選的跟目前的process不一樣
作者: q1qip123 (wtlee)   2017-11-11 10:03:00
所以結論是有回到ready Q,只是cs要再查一下原始碼?
作者: TMDTMD2487 (ㄚ冰)   2017-11-11 10:56:00
linux的kernel/sched/core.c有一個_schedule()是核心的的function,可是我用手機,我要很晚才回用電腦,你可以斟酌看一下,不過這應該要花一點時間
作者: q1qip123 (wtlee)   2017-11-11 12:19:00
好 我再找時間追蹤看看 感謝~
作者: TMDTMD2487 (ㄚ冰)   2017-11-11 14:12:00
https://goo.gl/mZ33cq 3259~33393320行之前都是再做一些flag設定之類的有興趣可以看前面queue那邊怎麼做挑選這類的我有點懶得看了,不過至少確定若當前的權值最高,context switch是不會做的3327行那個就是系統紀錄做了幾次context switch用的
作者: leoone (里歐一代)   2017-11-11 14:53:00
那我想在問一下我一開始的問題 如果Q內有東西的話 PA優先權最高running完要立刻再進CPU 還要context switch?
作者: TMDTMD2487 (ㄚ冰)   2017-11-11 15:11:00
從這份原始碼看是不需要的歐他會從q中挑一個,判斷他是不是跟之前那個一樣不一樣才會去做context switch
作者: leoone (里歐一代)   2017-11-11 16:03:00
好謝謝T大QQ

Links booklink

Contact Us: admin [ a t ] ucptt.com