文章目录
- 进程调度(低级调度)
- 进程调度的时机
- 进程调度的方式
- 调度算法的评价指标
- FCFS,SJF,HRRN调度算法
- 先来先服务(FCFS)
- 短作业优先(SJF)
- 高响应比优先(HRRN)
进程调度(低级调度)
进程调度的时机
需要进行进程调度与切换的情况:
- 当前进程主动放弃处理机
- 进程正常终止
- 进程主动请求阻塞(如等待I/O)
- 运行过程中异常而终止
- 当前进程被动放弃处理机
- 分给进程的时间片用完
- 有更加紧急的事需要处理(如I/O中断)
- 有更高优先级的进程进入就绪队列
不能进行进程调度的情况:
1.在处理中断的过程中。中断处理过程复杂,与硬件密切相关,很难做到在中断处理过程中进行进程切换。
2.进程在操作系统内核程序临界区中
3.在原子操作中(原语)
临界资源:一段时间内只允许一个进程使用的资源(访问内核数据结构,打印机等),各进程需要互斥的访问
临界区:访问临界资源的那段代码
问题:
进程在操作系统内核程序临界区中不能进行调度与切换
原因:
因为临界区分为内核程序临界区以及普通临界区
内核程序临界区一般是用来访问某种内核数据结构的(比如进程的就绪队列),即cpu在运行内核程序临界区(代码),功能是为了查看队列的一些信息,因此该进程在此期间不能被调度。
普通临界区,如访问打印机,那么该进程允许被调度。
进程调度的方式
- 非剥夺调度方式
- 剥夺调度方式
课后思维导图总结
调度算法的评价指标
FCFS,SJF,HRRN调度算法
先来先服务(FCFS)
按照作业/进程到达的先后顺序进行服务
这里的作业是指程序需要被运行就作业需要被加载,作业排队的的队列叫做后备队列
先来先服务一般是非抢占式的算法
短作业优先(SJF)
- 非抢占式的短作业优先算法(SPF)(默认情况下 SJF就是指SPF)
每次调度时选择当前已到达且运行时间最段的作业/进程 - 抢占式的短作业优先算法
抢占式的短作业优先又叫“最短剩余时间优先算法(SRTN)”
每当有进程加入就绪列表改变时就需要调度(进程切换),如果新到达的进程运行时间要比当前运行的进程的剩余时间更短,则有新进程抢占处理机,当前运行进程重新回到就绪队列。一个进程运行完也需要调度
高响应比优先(HRRN)
响应比 = 等待时间+运行时间 / 运行时间
相等等待时间, 运行时间越短的进程响应比越高,越优先执行
相等运行时间,等待时间越久的进程响应比越高,越优先执行