低级调度:
又称为进程调度,既根据相应的调度算法将进程从就绪态转化为执行态的过程。也就是cpu资源的分配。
中级调度:
又称为转换调度或者内存调度或者对换调度。既在遇到需要将进程调入到内存时,遇到内存满了的情况,然后将暂时不运行的进程从内存中调出来(称为挂起),之后将该进程调入到内存中。
高级调度:
又称为作业调度,主要是根据某种调度算法,将在外存中处于后备队列的作业调入到内存中,并未作业分配进程,以及必要的资源。并将进程的状态设置为就绪状态。
作业调度主要有四个基本状态:
1.提交态:用户将作业提交申请给系统,等待输入该作业。
2.后备态:作业在外存中按照规则排列,等待进入内存中
3.执行态:既作业占用cpu资源,执行任务。
4.完成态:既完成了该作业的任务。
接下来用一张图来解释这三个调度之间的关系:
首先就是作业由提交转为后备状态,接着进入执行态,执行态主要是进程的三大基本运行状态之间的切换,既进程先进入就绪态(也就是作业调度),如果此刻内存已经满了,就把暂时用不到的进程调到外存中(也就是内存调度),然后插入此进程,之后根据进程的调度算法,将就绪态中的一个进程转为执行态(也就是进程调度),开始占用cpu资源,如果该进程在执行过程中,需要申请资源,则将该进程转为堵塞态,cpu再分配给下一个进程,这里的堵塞态出现内存满时,也是要调入外存等待的,然后依次类推。从而完成进程。
进程的调度方式:
非抢占式调度:
进程在使用cpu的资源时,不会因时钟中断(就是分时操作系统里的时间片轮转)或其它原因而暂停使用cpu的资源,只有在某些事件或者进程完成了,才释放cpu的使用权。这里的某些事件主要分为以下几种:
1.需要申请其它资源。
2.在进程同步或通信中遇到了某种原语操作,导致其必须要释放cpu使用权。
3.出现特殊事件,导致其无法继续运行,如没电了。
抢占式调度:
该调度方式,允许程序根据某种原则,可以去暂停某个正在执行的进程,并重新分配cpu的资源,这也是现代操作系统所广泛采用的方式。
遵循的原则主要有以下几点:
1.优先级原则:如果新来的进程的优先级比当前执行的优先级高的话,允许该进程抢占当前执行进程的资源。
2.短进程优先原则:如果新来的进程的运行时间要比当前执行的进程的运行时间短的话,允许该进程抢占当前执行进程的资源。
3.时间片原则:既在分时操作系统中,采用时间片轮转,既该进程的时间片到了,就会停止占用cpu资源。