分為兩類:
- 搶佔式多工
- 非搶佔式多工
程序可分為:IO消耗型、CPU消耗型。
排程方式
(1)優先順序排程
- nice值(-20~19):值越大、優先順序越低。
nice 值對映到時間片問題:(1)絕對時間片無法保證最優解;(2)nice值越靠近邊界、波動越大;(3)定時器節拍問題
- 實時優先順序。
(2)時間片
- CFS排程分配的是處理器使用比例、而非時間片。
Linux
程序切換大致由這幾步組成:
- 程序的排程是由核心管理的,因此首先會進行使用者態到核心態的切換。
- 儲存被中斷程序的上下文。
- 修改被中斷程序的狀態資訊,並加入到相應的狀態佇列。
- 排程一個新的程序,載入其上下文。