Part A
高级调度与低级调度的主要任务是什么,为什么要引进中级调度?
高级调度又称为作业调度,用于决定把外存后备队列中的那些作业调入内存,为它们分配必要的资源,并创建进程
低级调度又称为进程调度,用来决定就绪队列中哪个进程先获得处理机,并将处理机分配给选中的进程,然他投入执行
中级调度又称为内存调度,目的是解决内存紧张的问题,提高内存利用率和系统的吞吐量
处理机调度算法的共同目标是什么?批处理系统的调度目标又是什么?
共同目标:资源利用率,公平性,平衡性,策略强制执行
批处理的目标:希望时间周转时间短,系统吞吐量高,处理机利用率高
分时目标:响应快,均衡性
实时目标:保证截止时间,可预测性
何谓作业,作业步和作业流?
作业:不仅包含了通常的程序和数据,而且还应配有一份作业说明书,系统根据这个进行控制
作业步:作业中的每一个加工步骤
作业流:整个作业的过程
在什么情况下需要使用作业控制块JCB,其中包含了哪些内容?
当每个作业进入系统时,便由“作业注册”程序为该作业建立一个作业控制块JCB
JCB包含:作业标识,用户名称,用户账号,作业类型,作业状态,调度信息,资源需要,资源使用情况等
在作业调度中应如何确定接纳多少个作业和接纳哪些作业?
根据系统规模,运行速度,作业大小以及能否获得较好的系统性能等情况决定接纳多少个作业
根据调度算法决定接纳哪些作业
为什么要引入高响应比优先调度算法?他们的优势?
FCFS只考虑了作业等待时间,忽视了作业运行时间;SJF只考虑了作业运行时间,忽略了作业等待时间
高响应比既考虑了作业等待时间,也考虑了作业运行时间
说明低级调度的主要功能?
保护处理机的现场信息;按某种算法选取进程;把处理器分配给进程
在抢占调度的过程中,抢占的原则是什么?
优先权原则,短进程优先原则,时间片原则
在选择调度方式和调度算法时,应遵循的原则是什么?
作业需求,系统目标,调度性能,调度公平性
何为静态和动态优先级?确定静态优先级的依据?
静态:在创建进程时确定的,在进程的整个运行过程期间保持不变;
依据进程的类型【系统>用户】,进程对资源的需求【资源要求少>资源要求多】,用户要求
动态:在创建进程之初,先赋予其一个优先级,然后其值随进程的推进或等待时间的增加而改变,以便获得更好的调度性能
试比较FCFS和SJF两种进程调度算法?
FCFS:先来先服务,不会出现饥饿,实现简单,不利于I/O和短作业
SJF:短作业优先,会出现饥饿,不利于长作业和紧迫作业
在时间片轮转法中,应如何确定时间片的大小?
一般确定为略大于一次典型的交互所需时间,使得大多数交互式进程能在一个时间片内完成
通过一个例子来说明通常的优先级调度算法为什么不能适用于实时系统?
因为优先级调度算法没办法确保每个作业都在预定时间内完成,会出现饥饿等情况
为什么说多级反馈队列调度算法能较好地满足各方面用户的需要?
因为能在规定第一队列的时间片中略大于多数人机交互所需之处理时间
保证调度算法是如何做到调度公平的?
跟踪计算每个进程自创建以来已经执行的处理时间
计算每个进程应获得的处理机时间【t/n,n个相同类型的进程】
计算进程获得处理机时间的比例,即进程实际执行的处理时间和应获得的处理机时间之比
比较各进程获得处理机时间的比率
调度程序应选择比率最低的进程将处理机分配给他,并让该进程一直运行,直到超过最接近她的进程比率为止
公平分享调度算法又是如何做到调度的公平性的?
使所有用户能获得相同的处理机时间或所要求的时间比例
为什么实时OS中,要求系统具有较强的处理能力?
因为实时OS要求每个作业都要在保证时间内完成,并且又要满足算法调度的公平实现每个作业有相同的几率运行
按调度方式可将实时调度算法分为哪几种?
非抢占式和抢占式算法
什么是可重用性资源,什么是可消耗资源?
可重用性资源:可供用户重复使用多次的资源
可消耗性资源:临时性资源,由进程动态创建的消耗型资源
为了破坏“请求和保持”条件而提出了两种协议?
第一种协议:所有进程在运行前,必须一次性地申请其在整个运行过程中所需的全部资源【简单,容易;但浪费且会饥饿】
第二种协议:允许一个进程只获得运行初期所需的资源后,便可以运行
何谓死锁?产生死锁的原因和必要条件是什么?
死锁:每一个进程,都在等待另一个死锁进程所占有的资源
互斥条件,请求和保持条件,不可抢占条件,循环等待条件
解决死锁问题的方法,哪种最容易实现?哪种方法使用资源利用率最高?
方法:预防死锁,避免死锁【系统安全状态,银行家算法】,检测死锁【资源分配图】,解除死锁
防范程度依次递减,资源利用率依次提高,阻塞频率依此下降
预防死锁的途径?
破坏请求和保持,破坏不可抢占,破坏循环等待
Part B
- 在三种基本类型的操作系统中,都设置了【进程调度】,在批处理系统中还应设置【作业调度】;在分时系统中除了【进程调度】以外,通常还设置了【中级调度】,在多处理机系统中则还需要设置【多处理机调度】
- 在面向对用户的调度准则中,【截止时间的保证】是实时调度算法的重要准则,【响应时间快】是选择分时系统中进程调度算法的重要准则,【平均周转时间短】是批处理系统中选择作业调度算法的重要准则,而【优先权高的作业能获得优先服务】准则则是为了照顾紧急作业用户的要求而设置的
- 作业调度是从处于【后备】状态的队列中选取作业投入运行,【周转时间】是指作业进入系统到作业完成所经过的时间间隔,【时间片轮转】算法不适合作业调度
- 下列算法中,【FCFS调度算法】只能采用非抢占调度方式,【时间片轮转法】只能采用抢占调度方式,而其余的算法既可采用抢占方式,也可采用非抢占方式
- 如果为每个作业只建立一个进程,则为了照顾短作业用户,应采用【短作业优先算法】;为照顾紧急作业的用户,应采用【基于优先权的剥夺调度算法】;为了能够实现人机交互作用应采用【时间轮转法】;为了兼顾短作业和长作业等待的作业,应采用【高响应比优先】;为了使短作业,长作业及交互作业用户都比较满意,应采用【多级反馈队列调度】;为了使作业的平均周转时间最短,应采用【短作业优先】
- 最容易引起进程长期等待的是:【抢占式静态优先权算法】
- 降低进程优先级的最合理的时机是:【进程的时间片用完】
- 支持多道程序设计的操作系统在运行过程中,不断地选择新进程运行来实现CPU的共享,但其中【有新进程进入就绪队列】不是引起操作系统选择新进程的直接原因
- 优先级:I/O型优先,系统进程优先,短作业优先,资源要求少的优先,动态优先权执行时间越长则优先级越低
- 假设就绪队列中有10进程,以时间轮转方式进行进程调度,时间片大小为300ms,CPU进行进程切换要花费10ms,则系统开销所占的比率约为【%3】;若就绪队列中进程个数增加到20个,其余条件不变,则系统开销所占的比率将【不变】
- EDF算法选择【截止时间最早的进程】为下一个执行的进程,LLF算法则优先选择【松弛度最低的进程】为下一个执行的进程
- 实时OS的优先级倒置是指:【高优先级进程被低优先级进程延迟或阻塞】
- 系统产生死锁是指【若干进程等待被其他进程所占用而又不可能被释放的资源】。产生死锁的基本原理【系统资源不足】和【进程推动顺序不当】,产生死锁的四个必要条件是互斥条件、【请求和保持条件】、不剥夺条件和【环路条件】
- 在多道程序的环境中,不会因竞争【可抢占资源】而产生死锁
- 设m为同类资源R的数目,n为系统中并发进程数。当n个进程共享m个互斥资源R时,每个进程对R的最大需求是w;则下列情况会出现死锁的是【m=4,n=2, w=3】
- 下述解决死锁的方法中,属于死锁预防策略的是【资源有序分配法】,属于死锁避免策略的是【银行家算法】
- 死锁的四个必要条件中,一般情况下,无法破坏的是【互斥使用资源】
- 死锁的预防是通过破坏产生死锁的四个必要条件来实现,下列方法中,【一次性分配策略】破坏了请求与保持条件,【资源有序分配策略】破坏了循环等待条件
- 某系统中有13态磁带机,K个进程共享这些设备,每个进程最多请求使用3台,则系统不会死锁的K值是【不大于6】
- 安全状态是没有死锁的状态,非安全状态是可能有死锁的状态
Part C
- 高级调度又称作【作业】调度,其主要功能是【根据某种算法决定将外存上处于后备队列中的哪几个作业调入内存,并为他们创建进程】;低级调度又称作【进程】调度,其主要功能【按一定算法从就绪队列中选一个进程投入执行】
- 作业调度必须做【接纳多少作业】和【接纳哪些作业】两个决定
- 进程调度的主要任务是【保存处理机的现场信息】、【按照某种算法选取进程】和【把处理器分配给进程】,进程调度的方式主要有【非抢占】和【抢占】两种方式
- 在抢占调用方式中,抢占的原则主要有:【优先权原则】、【短进程优先原则】和【时间片原则】
- 在设计进程调度程序时,应考虑【引起调度的因素】,【调度算法的选择】和【就绪队列的组织】三个问题
- 为了使作业的平均周转时间最短,应选择【短作业优先】调度算法;为了使当前执行的进程总是优先权最高的进程,则应选择【立即抢占的高优先权优先】调度算法;而分时系统则常采用【时间片轮转】调度算法
- 分时系统中,时间片选得太小会造成【系统开销增大】的现象,因此,时间片的大小一般选择为【略大于一次典型的交换所需时间】
- 在采用动态优先权时,为了避免一个低优先权的进程处于饥饿状态,可以【随着等待时间的增加,而提高其优先权】;而为了避免高优先权的长作业长期垄断CPU,则可以【随着运行时间的增加,而降低其优先权】
- 高响应比优先调度算法综合考虑了作业的【等待时间】和【运行时间】,因此会兼顾到长短作业
- 死锁产生的主要原因是【竞争资源】和【进程推动顺序非法】
- 死锁产生的必要条件是【请求和保持条件】,【互斥条件】,【环路等待条件】,【不剥夺条件】
- 通过破坏死锁产生的四个必要条件,可以进行死锁的预防,其中【互斥】条件一般是不允许破坏的,一次性分配所有资源破坏的是其中的【请求和保持】条件,资源的有序分配破坏的是其中的【环路保持】条件
- 避免死锁,允许进程动态地申请资源,但系统在进行分配时应先计算资源分配的【安全性】。若此次分配不会导致系统进入【不安全状态】,便将资源分配给它,否则便让进程【等待】
- 解决死锁问题的方法有预防,避免,检测并解除等,一次性分配所有的资源采用的是其中的【预防死锁】方法,银行家算法采用的是其中的【避免死锁】方法
- 根据死锁定理,一个状态为死锁状态的充分条件是当且仅当该状态的资源分配图是【不可完全简化】时
- 【撤销进程】和【剥夺资源】是解除死锁的两个常用方法