2015-11-03 51 views

回答

1

如果談論O(1) 調度程序:

的方法可以如CPU結合或I/O綁定基於它運行在CPU上的時間片來確定。

每個進程在允許在處理器上進行調度之前都會設置其默認時間片(100ms)。

如果進程佔用全部時間片(爲處理器上的整個時間片運行),則進程稱爲CPU綁定進程。

同樣,不消耗其整個時間片,但會打電話甚至在它的時間片已經運行了SCHED_YIELD,,如果進程等待/休眠發生的任何事件的任何處理,那麼調度會被調用來將其推入睡眠隊列,這意味着它正在等待一些I/O發生,是一個I/O綁定進程。

每個這樣的CPU綁定進程都將受到優先處罰,保持時間片相同,並且每個這樣的I/O綁定進程都將獲得優先獎金,並保持時間片相同。因此,在GPOS(通用操作系統)上,它是effective_priority或dynamic_priority,它會告訴你該進程是否良好(I/O限制)或不良行爲(CPU限制進程),因爲新流程的默認優先級爲20,除非另有更改。

有一些參數基於哪個,你可以確定相同。

effective_prio:返回任務的有效優先級(基於靜態優先級,但包含任何獎勵或懲罰)。

recalc_task_prio:根據空閒時間確定任務的獎金或懲罰。

Ref:https://www.cs.columbia.edu/~smb/classes/s06-4118/l13.pdf

相關問題