目录
-
填空题
- 一次只允许一个进程访问的资源叫 临界资源;
- 在引入线程的操作系统中,把进程作为 系统资源分配和调度 的基本单位,而把线程作为 CPU调度和分配的 的基本单位;
- 若信号量S的初值为2,当前值为-1,则表示有 1 个进程等待
- 高级通信方式有:消息队列 ,共享内存 ,信号量集 ;
- 设有6个进程共享同一互斥段,若最多允许有2个进程进入互斥段,则采用的互斥信号量初值为 2;
- 系统中表示一个进程存在的唯一标志是 进程控制块(PCB) ;
- 产生进程死锁的必要条件有 互斥条件, 请求和保持条件, 循环等待条件 ,不剥夺条件;
- 处理死锁的基本方法 预防死锁,避免死锁,检测死锁,解除死锁;
- 一个操作中的所有动作,要么全做,要么全不做,这叫做 原语操作;
- 同步机制应遵循的基本准则有 空闲让进, 忙则等待, 有限等待,,和让权等待 ;
产生死锁的原因主要是:
(1) 因为系统资源不足。
(2) 进程运行推进的顺序不合适。
(3) 资源分配不当等。
如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则
就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。
产生死锁的四个必要条件:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之
一不满足,就不会发生死锁。
解除死锁的方法有:
- 资源剥夺
- 撤销进程
- 进程回退
-
选择题
- 1. 有m个进程共享同一临界资源,如用信号量机制,实现对一临界资源的互斥访问,则信号量的变化范围是?
A:1----m B:1----(-m) C:1----(m-1) D:1----(1-m)
答案解析
信号量大于零时的数值表示某类资源的可用数量,每分配一个资源,信号量的值要减1。题目中有一个共享资源,因此信号量的初值为1。最坏的情况是一个进程访问临界资源而其余m-1个进程处于等待状态,此时信号量的值为1-m。
- 2.一作业8:00到达系统,估计运行时间为1小时,若10:00开始执行该作业.其响应比是
A.2 B.1 C.3 D.0.5
答案解析
响应比=(等待时间+要求服务时间)/要求服务时间
该题中等待时间为2小时,要求服务时间为1小时,所以响应比=(2+1)/1=3
- 3.单处理机系统中,可并行的是
Ⅰ.进程与进程Ⅱ.处理机与设备Ⅲ.处理机与通道Ⅳ.设备与设备
A.Ⅰ、Ⅱ和Ⅲ
B.Ⅰ、Ⅱ和Ⅳ
C.Ⅰ、Ⅲ和Ⅳ
D.Ⅱ、Ⅲ和Ⅳ
答案解析
本题考查并发与并行的概念。并发是多个事件在同一时间间隔内发生,并行是指多个事件在同一时刻发生。在单处理机系统中,进程是并发执行的,是不能并行的,其它CPU与设备,设备与设备,CPU与通道都是可以并行的。
- 4.某进程在运行过程中需要等待从磁盘上读入数据,此时该进程的状态将( )。
A.从就绪变为运行
B.从运行变为就绪
C.从运行变为阻塞
D.从阻塞变为就绪
答案解析
某进程在运行过程中,说明当前状态为运行状态。因需要等待从磁盘上读入数据,所以变为阻塞状态,停止运行,放弃CPU。所以是从运行变为阻塞。
- 5.在消息缓冲通信机制中,使用的临界资源是(D )。
A.信箱
B.消息队列中的某个消息缓冲区
C.管道
D.整个消息队列
- 6.死锁定理是用于处理死锁的(C )方法。
A.预防死锁
B.避免死锁
C.检测死锁
D.解除死锁
- 7.不是同步机制应遵循的准则的是( )。
A.让权等待
B.空闲让进
C.忙则等待
D.AND等待
答案解析
同步机制的四个准则是空闲让进、忙则等待、让权等待和有限等待。
- 处于执行状态中的进程若时间片到达,则该进程由执行状态变迁为()状态
A 阻塞 B就绪 C完成 D结束
- 系统中表示一个进程存在的唯一标志是
A.进程的程序
B.该进程的文件说明
C.进程控制块PCB
D.该进程的程序状态字
10.资源的按需分配策略可以破坏
A.互斥使用资源
B.占有且等待资源
C.非抢夺资源
D.循环等待条件
11.进程所请求的一次打印输出结束后,将使进程状态从( )。
A.运行态变为就绪态
B.运行态变为等待态
C.就绪态变为运行态
D.等待态变为就绪态
答案解析
运行中的进程有3种状态:运行状态、就绪状态和等待状态。
运行状态:是指进程已获得CPU,并且在CPU中执行的状态。
就绪状态:是指进程已具备运行条件,但由于没有获得CPU而不能运行所处的状态,一旦CPU分配给它,就可以运行。
等待状态:是指进程因等待某种事件发生而暂时不能运行的状态。
例如,当两个进程竞争使用同一资源时,没有占用该资源的进程便处于等待状态。
它必须等到该资源被释放后才可以去使用它。
引起等待的原因一旦消失,进程就变为就绪状态,以便在适当的时候投入运行。
- 12.产生系统死锁的原因可能是由于
A.进程释放资源
B.一个进程进入死循环
C.多个进程竞争,资源出现了循环等待
D.多个进程竞争共享型设备
答案解析
若系统中存在多个进程,它们中的每一个进程都占用了某种资源而又都在等待其中另一个进程所占用的资源,那么这种等待永远都不能结束,就称为系统出现了“死锁”。
- 13.当( )时,进程从执行状态转变为就绪状态。
A.进程被调度程序选中
B.时间片到
C.等待某一事件
D.等待的事件发生
答案解析
当一个进程的时间片用完时,该进程的CPU控制权将被剥夺。但由于其执行所需的其他资源均处于就绪状态,该进程就从执行状态改变为就绪状态
- 14.死锁的预防是根据()采取措施实现的
A配置足够的系统资源
B是进程的推进顺序合理
C 破坏死锁的4个必要条件之一
D防止系统进入不安全状态
-
简答题
- 1.某系统中有10台打印机,有三个进程P1,P2,P3分别需要8台,7台和4台.若P1,P2,P3已申请到4台,2台和2台.试问:按银行家算法能安全分配吗?请说明分配过程.
进程 | 请求 资源数目 | 已分配 资源数目 |
p1 | 8 | 4 |
p2 | 7 | 2 |
p3 | 4 | 2 |
- 剩余资源数目 2;
- 可安全分配,分配过程:
- 将剩余资源数 2 全部分配给p3进程,p3进程获取足够资源,运行完成,释放资源;
- 此时系统剩余资源数目 4 ;将其全部分配给p1进程,p1运行完成,释放资源;
- 此时系统剩余资源数目 8 ,将其分配给p2,p2进程运行;
- 安全序列为 : p3---------> p1----------->p2;
- 2.常用的作业调度算法有哪些?叙述各个算法的思想
- 先来先服务调度算法(FCFS):
- 就是按照各个作业进入系统的自然次序来调度作业。
- 这种调度算法的优点是实现简单,公平。
- 其缺点是没有考虑到系统中各种资源的综合使用情况,往往使短作业的用户不满意,因为短作业等待处理的时间可能比实际运行时间长得多。
- 短作业优先调度算法(SPF):
- 就是优先调度并处理短作业,所谓短是指作业的运行时间短。
- 而在作业未投入运行时,并不能知道它实际的运行时间的长短,因此需要用户在提交作业时同时提交作业运行时间的估计值。
- 最高响应比优先算法(HRN):
- 响应比=1+作业等待时间/作业处理时间。
- FCFS可能造成短作业用户不满,SPF可能使得长作业用户不满,于是提出HRN,选择响应比最高的作业运行。响应比=1+作业等待时间/作业处理时间。
- 基于优先数调度算法(HPF):
- 每一个作业规定一个表示该作业优先级别的整数,当需要将新的作业由输入井调入内存处理时,
- 优先选择优先数最高的作业。
- 基本概念:
- 作业周转时间(Ti)=完成时间(Tei)-提交时间(Tsi)
- 作业平均周转时间(T)=周转时间/作业个数
- 作业带权周转时间(Wi)=周转时间/运行时间
- 响应比=(等待时间+运行时间)/运行时间
- 3.在生产者消费者问题中能否将生产者进程wait(empty)和wait(matex)语句互换,为什么?
- 不能;
- 如果交换后,就可能会发生死锁。
- 生产者进程,执行(mutex)进入临界区,接下来执行(empty),但现在empty为0,生产者被阻塞无法继续生产
- 用时它又已经进入了临界区,消费者进行由于无法进入临界区,也被阻塞。这样整个系统都被阻塞,发生死锁现象。
- 4.试说明多级反馈队列调度算法的基本思想,为什么说这是一种较好的进程调度算法?
- 调度机制:
- 设有N个就绪队列(Q1,Q2....QN);
- 每个队列赋予不同的优先级,一般来说,优先级Priority(Q1) > Priority(Q2) > ... > Priority(QN)。
- 不同队列的进程赋予的执行时间片大小不同,优先级越高的队列,时间片越小;
- 各个队列的时间片是随着优先级的增加而减少的,也就是说,优先级越高的队列中它的时间片就越短;
- 我们也可以认为特定队列中的作业的优先级是按照FCFS来调度的。
- 调度程序首先调度最高优先级队列中的诸进程运行,仅当第一队列空闲才会调度第二队列;
- 优点:
- 不必实现知道各个进程所需执行时间,
- 较好的满足各类进程的需要;
- 目前给人的一种较好的进程调度算法;
-
应用题
- 1.假定系统有进程集合(p0,p1,p2,p3,p4),资源集合为(A,B,C),资源数量分别为(9,8,8),假定某时刻的系统状态如下图所示,试给出进程安全序列的计算过程,判断当前是否处于安全状态,若是,给出相应的安全序列;
进程数 资源需求 已经分配 可用资源
- 资源数量分别为(9,8,8), 可用资源数 (2,3,2) ;
- 选择先分配给进程p1; p1运行结束,释放资源, 可用资源为(4,4,2);
- 选择分配给进程p3,p3运行结束,释放资源,可用资源为(6,5,4);
- 选择分配给进程p0,p0运行结束,释放资源,可用资源为(6,7,4);
- 选择分配给进程p2,p2运行结束,释放资源,可用资源为(9,7,6);
- 选择分配给进程p4,p4运行结束,释放资源,可用资源为(9,8,8);
- 安全序列为: p1----->p3----->p0----->p2----->p4;
- 2.设有4道作业,它们的提交时间及执行时间如表所示,假设系统采用单道程序设计计数,请给出采用高响应比优先调度算法(HRN)的调度作业顺序、作业的平均周转时间T、平均带权周转时间W;
作业 | 提交时间 | 执行时间 |
1 | 8.00 | 2.00 |
2 | 8.50 | 0.50 |
3 | 9.00 | 0.10 |
4 | 9.50 | 0.20 |
- 响应比=(等待时间+运行时间)/运行时间 (响应比=1+ 等待时间/运行时间。)
- 周转时间=作业完成时间-作业提交时间
- 平均周转时间 = 所有进程周转时间 / 进程数
- 带权周转时间=周转时间/运行时间
- 平均带权周转时间=带权周转时间/进程数
- 作业1先进行调度, 1调度结束,时间10.0;
- 此时作业2,3,4 提交到达,等待时间分别为: 1.5 , 1 , 0.5 ,
- 响应比: 2 : (1.5+0.5)/0.5=4; 3 : (1.0+0.1)/0.1 =11 ; 4 :(0.5+0.2)/0.2=3.5
- 则开始执行 作业 3 ,3 执行完毕,结束时间 10.1 作业 2, 4 等待时间: 1.6 0.6
- 响应比: 2 : 4.2 4: 4
- 则执行作业 2 结束时间: 10.6
- 最后执行作业 4 ,
- 作业顺序: 1---->3----->2------>4
-
作业 提交时间 执行时间 开始时间 结束时间 周转时间 带权周转时间 1 8.00 2.00 8.0 10.0 2 1 2 8.50 0.50 10.1 10.6 2.1 4.2 3 9.00 0.10 10.0 10.1 1.1 11 4 9.50 0.20 10.6 10.8 1.3 6.5 平均周转时间: (2+2.1+1.1+1.3)/4=1.625 平均带权周转时间: (1+4.2+11+6.5)/4=5.675
- 3.桌子上有一个盘子,每次只能放一个水果.爸爸专门向盘子里放苹果,妈妈专门向盘子里放橘子,一个儿子专门等吃盘子中的橘子,一个女儿专门等吃盘子中的苹果
- (1).给出私人之间的同步互斥关系
- (2).试用信号量PV操作,实现父母子女私人之间的并发协作过程
- (2):盘子是临界资源.要实施互斥. 用信号量 f 表示.
- 苹果用 a 表示. 橘子用 o 表示;
- :盘子的状态(空,或者满) 用 e 表示.
算法描述如下:
semphore: f=1, e=1, a=0, o =0;
ProcessDad(){
semWait(e);//盘子中是否空
semWait(f);//是否有人在用盘子,f保证盘子被独占。
setApple();
semSignal(a);//通知放了一个苹果
semSignal(f);
}
ProcessMom(){
semWait(e);
semWait(f);
setOrange();
semSignal(o);
semSignal(f);
}
ProcessSon(){
semWait(o); //是否有橘子
semWait(f); //是否有人在用盘子
eatOrange();
semSignal(e); //通知盘子为空
semSignal(f);
}
ProcessDaughter(){
semWait(a);
semWait(f);
eatApple();
semSignal(e);
semSignal(f);
}