进程调度、上下文切换

来源:互联网 发布:新站怎么做优化 编辑:程序博客网 时间:2024/05/20 01:11
多道程序设计的目的:无论何时都有进程在运行,从而使CPU利用率达到最大化
分时系统的目的:在进程之间快速切换CPU以便用户在程序运行时能与其进行交互。

作业队列:进程进入系统时,包括系统中的所有进程
就绪队列:驻留在系统内存中的就绪的、等待运行的进程
设备队列:等到特定I/O设备的进程列表


进程调度队列图:


就绪队列————————————>CPU——————>|
          |<---I/O<——I/O队列<——I/O请求<—————-|
          |—————————————时间片结束<———|
          |<——————子进程运行<——创建子进程<——|
          |<——————中断发生<————等待中断<——|

上下文切换:将CPU切换到另一个进程需要保存current 进程state并恢复另一个进程的状态。发生context switch时,内核会将旧进程的状态保存在PCB中,然后装入经调度要执行的并已保存的新的进程上下文。