【操作系统】第三章问题与解答

来源:默认网盘

1、高级调度与低级调度的主要任务是什么?为什么要引入中级调度?

高级调度:

又称作业调度。根据某种算法,将外存上后备队列的某个作业调入内存,为它们“创建进程”,“分配资源“,并放入“就绪队列

用于多道批处理,作业调度发生在一批作业已经运行完成后退出系统,需要重新调入一些作业进入内存

中级调度:

又称内存调度。为了提高内存利用率系统吞吐量,把不能运行的进程调至外存,把外存中具备运行条件的就绪进程重新调入内存

中级调度实现了存储器的对换功能

低级调度:

又称进程调度,根据某种算法,决定就绪队列的哪个进程获得处理机。用来多道批处理、分时、实时三种类型的OS中。


2、调度算法的目的是什么?

1、提高系统的资源利用率,全系统的处理机和其它所有资源都忙碌起来

2、使进程都获得合理的CPU时间,不会发生饥饿现象

3、尽量保持系统资源使用的平衡性

4、对所制订的策略要强制执行

3、什么是作业、作业步?

1、作业是比程序更广泛的概念,不仅包含程序和数据,还有一份作业说明书,系统根据该说明书来对程序进行控制

2、在作业运行期间,需要若干个相对独立又相互关联的顺序加工步骤才能得到结果,把每个加工步骤称为一个”作业步“

如:”编译“作业步,”链接装配“作业步,”运行“作业步

4、为什么要引入高响应比优先调度算法,有什么优点?

高响应比优先调度算法既考虑了作业的等待时间,也考虑作业的运行时间

即,既照顾了短作业,也不会使长作业等待时间过长

优先权=(等待时间+要求服务时间)/要求服务时间

抢占调度的原则

1、优先权原则:允许优先权高的进程抢占当前进程

2、短时间优先:新到的,短时间进程可以抢占当前长进程

3、时间片原则:当前进程时间片用完需要调度其它进程(主动让出处理机)

FCFS(First come first server)与SJF(short job first)比较

1、FCFS只考虑了进程的等待时间,按进程到达的先后顺序进行调度,不管进程的运行时间

2、SJF需要预计进程的运行时间,这个很难估计准确;对短进程的优先级高,对长进程不利,而且忽略了等待时间,可能会造成长进程饥饿现象

静态优先级与动态优先级

静态:

在创建进程时确定

依据如下:

1、进程类型,系统进程高于用户进程

2、进程对资源的需求,需求少的进程优先级高

3、用户要求,根据进程的紧迫程度和用户付费用多少确定???

动态:

创建进程之初,先赋予一个优先级,根据进程的推进或等待时间的增加而改变

如:等待时间越久,优先级越高;

多级反馈队列

调度机制:

1、设置多个就绪队列,每个队列赋予不同的优先级,第一个队列的优先级最高,越往下越低。但第一个队列的时间片最少,越往下越多

2、每个队列都用FCFS算法

如:某个进程先放入第一队列末尾,如果时间片用完,进程尚未结束,调度程序到第二队列的末尾,以此类推

3、按队列优先级调度

如:如果优先级高的队列不为空,就必须先执行高队列,否则再执行低优先级队列进程。

如果当前某个低优先级队列中进程获得了处理机,但有个高优先级进程加入,也要把当前进程放回到原队列中,并执行高队列进程。

调试性能:

对于不同类型用户都有不错的效果

1、终端型,由于终端型用户提交的多数为交互型作业,运行时间少,在第一队列即可完成

2、短批处理,在第一队列或第二队列即可完成,周转时间也较短

3、长批处理用户,对于长作业,在第1、2、N队列后依然可以轮转运行,不会长期饥饿

为什么传统的几种调度算法都不能算公平调度?

传统调度算法只保证优先运行,但并不保证作业占用了多少处理机的时间,也未考虑过公平性

可重用资源与消耗性资源性质

可重用资源

1、每个可重用资源只能分配给一个进程使用,不能多个进程共享

2、进程在使用可重用资源时需要,请求资源,使用资源,释放资源

3、系统中可重用资源的数量是相对固定的

消耗性资源

1、每类消耗性资源数目在进程运行期间是不断变化的

2、进程在运行中,可以不断创造可消耗性资源

3、进程在运行中,可以请求若干个可消耗性资源,用于进程自己的消耗

死锁

1、死锁的定义

每个进程都在无限等待其它进程释放所占的资源

2、死锁产生的条件

1、互斥条件:进程需要的资源在每段时间只能被一个进程占用,如果有其它进程请求此资源,需要等待

2、请求与保持:进程已经保持至少一个资源,但仍发出新的资源请求

3、不可抢占:进程已经获得的资源在未主动释放前不能被其它进程抢占

4、循环等待:必然有一个进程----资源的循环链,如:P0等待P1占用的资源,P1等待P0占用的资源。

3、死锁的预防

如果想到预防死锁,就必须打破四个条件中至少一个,但“互斥条件”是非共享设备必须的条件,只能打破剩下三个

1、破除”请求与保持“

进程只获得运行初期需要的资源,运行过程中,再逐步释放已经获得的资源,并请求新的资源

如:进程用完”磁带“和”磁盘“后,需要请求”打印机“,这时可以将不需要的”磁带“和”磁盘“释放,再请求“打印机”资源

2、破除”不可抢占“

如果进程提出新资源请求不能满足时,需要释放已经获得全部资源。但可能会造成进程”前功尽弃“

3、破除”循环等待“

给全部的资源进行编号,如果进程想请求一个低序号资源,需要其释放已经获得的全部相同或高序号资源

如:给”磁带“和”磁盘“编号1和3,给“打印机”编号10。如果已经占用了打印机,再想请求”磁带“和”磁盘“,就需要将”打印机“释放

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录