close

擷取  

有以下狀況必須做排程

1. running state ~waiting state (Ex: I/O request)

2. running state ~ready state (interrupt)

3. waiting state ~ready state (I/O 完成)

4. 程序完成

 

有1和4稱 (non-preemptive) EX: Windows

沒有為preemptive EX: Windlws NT , UNIX

 

為了防止process執行被搶佔

造成kernel data 流出 ( EX: 正在system call )

所以等完成後才做context switch

 

Cooperative scheduling (沒有timer, 可自行interrupt)

 

preemptive 須 consider

shared data

kernel mode 被搶占

在OS運算時interrupt

 

Oispatcher :

將CPU 控制權交給選定執行的程序

context switch

切換 user mode

切換 user program 到適當位置重啟

(dispatch latency: 停止~開始所需時間)

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 cc08310112tw 的頭像
    cc08310112tw

    墨墨喵喵喵

    cc08310112tw 發表在 痞客邦 留言(0) 人氣()