02.第二章 进程管理.pptx

  • 进程的状态
  • 进程控制
  • 进程调度

进程的状态

image.png

进程控制

OS对进程实现有效的管理,包括新建进程、挂起、阻塞和唤醒、进程切换等多种操作。OS通过原语操作实现进程控制。(原语操作:若干条指令注册,完成特定功能的原子操作)

  • 创建原语:create
  • 阻塞原语:block
  • 唤醒原语:wakeup
  • 撤销原语:destroy
  • 挂起原语:supend
  • 激活原语:active

image.png

处理机调度

根据一定的算法和原则将处理机资源进行重新分配的过程。
调度一方面要满足特定用户的需求,另一方面需要考虑系统整体效率和调度算法本身的开销。

  • 调度的层级
    • 高级调度/作业调度——把后备作业调入内存,只调入一次调出一次
    • 中级调度/内存调度——将进程调至外存,条件合适再调入内存;在内存对换区进行兑换
    • 低级调度/进程调度——从就绪队列选取进程分配给处理机,是最基本的调度
  • 调度的方式
    • 抢占式调度——优先权、短进程优先、时间片原则
    • 非抢占式调度——若有进程请求执行,等待直到当前进程完成或阻塞
  • 调度时机
    • 进程运行完毕
    • 进程时间片用完
    • 进程进行IO操作
    • 执行某种原语操作
    • 高优先级进程申请运行
  • 调度过程
    • 保存镜像(进程现场信息)—>调度算法—>进程切换—>处理机回收

      调度算法

      调度算法指标:CPU利用率、系统吞吐量、周转时间、等待时间、响应时间
      1. 先来先服务(FCFS,First Come First Served)

      调度作业、就绪队列中最先入队者,等待操作完成或阻塞。按入队先后顺序调度,适合CPU繁忙型作业,充分利用CPU。不利于IO繁忙型作业,操作耗时,等待线程饥饿。

      1. 短作业优先(SJF,Shortest Job First)

      所需服务时间最短的作业/进程优先调度执行。平均等待时间最少,但是长作业进程增加饥饿。另外估计的时间可能不准确,不能保证紧迫性任务即时处理。

      1. 高响应比优先调度(HRRN,Highest Response Ratio Next)

      结合FCFS和SJF,综合考虑等待时间和服务时间计算响应比,高的优先调度。 响应比=(等待时间+服务时间)/服务时间 只有当前进程放弃执行权(完成或阻塞)时重新计算所有进程响应比,长作业等待越久响应比越高,容易获得处理。

      1. 优先级调度(PSA,Priority-Scheduling Algorithm)

      优先权调度,按作业/进程的优先级进行调度。低优先级的进程容易产生饥饿。

      1. 时间片轮转调度(RR,Round-Robin)

      按进程到达就绪队列的顺序,轮流分配一个时间片去执行,时间用完则剥夺。公平轮流为每个进程服务,进程在一定时间内都能得到执行。时间片由系统响应时间、就绪队列进程数量、系统处理能力等多种因素决定,当时间片太大,类似FCFS,当时间片太短,频繁切换,消耗性能。

      1. 多级反馈队列(MFQ,Multileveled Feedback Queue)

      类似PSA+RR,适合进程调度。 设置多个按优先级排序的就绪队列优先级从高到底,时间片从小到大新进程采用队列降级法 进入第一级队列,按FCFS分时间片没有执行完,移到第二级,第三级。。。 前面队列不为空,不执行后续队列进程 image.png