前言:
这一部分的学习,其实也有很多博客有把几个关键的点罗列出来,也是很多人面试遇到的,但是还是想完整的学习一下,不想吃fast noodle的我又去万能的大B站上找了个视频,链接如下https://www.bilibili.com/video/av56600596?from=search&seid=10641281520121400845,大家可以自行学习,我尽量保证学习的笔记没有遗落。
正文:
1.处理机调度的层次和调度算法
在多道程序系统中,调度的实质是一种资源分配,处理机调度是对处理机资源进行分配。处理机调度算法是指根据处理机分配策略(比如:有优先级的、平均分配的等)所规定的的处理机分配算法,在多道批处理系统中,一个作业从提交到获得处理机执行,直至作业运行完毕,可能需要经历多级处理机调度。下面先来了解处理机调度的层次。
1.1 处理机调度的层次
1.高级调度
高级调度又称为长程调度或作业调度,它的调度对象是作业(静态的)。其主要功能是根据某种算法,决定将外存上处于后备队列中的哪几个作业调入内存,为它们创建进程、分配必要的资源,并将它们放入就绪队列。高级调度主要用于多道批处理程序中,而在分时和实时系统中不设置高级调度。
2.低级调度
低级调度又称为进程调度或短程调度,其调度的对象是进程(或内核级线程)(动态的)。其主要功能是,根据某种算法,决定就绪队列中哪个进程应获得处理机,并由分派程序将处理机分配给被选中的进程。进程调度是最基本的一种调度,在多道批处理、分时和实时三种类型的OS中,都必须配置这级调度。
调度名称 | 调度单位 | 适用OS | 起始 | 结束 |
高级调度 作业调度 长程调度 | 作业 | 多道批处理系统 | 磁盘的 后备队列 | 内存的 就绪队列 |
低级调度 进程调度 短程调度 | 进程 / 内核级线程 | 多道批处理系统 分时系统 实时系统 | 内存的 就绪队列 | 内存的 就绪队列 |
3.中级调度
中级调度又称为内存调度。引入中级调度的主要目的是,提高内存利用率和系统吞吐量。为此,应把那些暂时不能运行的进程,调至外存等待,此时进程的状态称为就绪驻外存状态(或挂起状态)。当它们已具备运行条件且内存又稍有空闲时,由中级调度来决定,把外存上的那些已具备运行条件的就绪进程再重新调入内存,并修改其状态为就绪,挂载就绪队列上等待。中级调度实际上就是存储器管理中的对换功能,将在第四章中介绍。