28 lines
897 B
Markdown
28 lines
897 B
Markdown
|
### 1. 协作方式:等待系统调用或非法操作
|
|||
|
|
|||
|
- 操作系统相信进程会合理运行
|
|||
|
- 运行时间长的进程被假定为会定期释放CPU,以便操作系统可以运行其他进程
|
|||
|
- 大多数进程通过系统调用,将CPU还给操作系统,例如打开文件,创建一个新的进程
|
|||
|
- 如果进程尝试非法操作,也会将CPU还给操作系统,比如除0或者尝试访问无法访问的内存
|
|||
|
|
|||
|
|
|||
|
|
|||
|
### 2. 非协作方式:时钟中断
|
|||
|
|
|||
|
> 时钟中断
|
|||
|
>
|
|||
|
> TODO
|
|||
|
|
|||
|
- 在操作系统启动时,时钟也会跟随启动
|
|||
|
- 可以理解为每隔一段时间产生一次时钟中断
|
|||
|
- 运行的进程在接收到中断信号时会停止
|
|||
|
- 操作系统预先配置好的中断程序会运行
|
|||
|
|
|||
|
|
|||
|
|
|||
|
### 3. 保存和恢复上下文
|
|||
|
|
|||
|
- 保存当前进程的通用寄存器,程序计数器,以及进程的内核栈指针
|
|||
|
- 恢复或准备即将执行的进程的寄存器
|
|||
|
|