为提高CPU的效率,引入了进程的概念,本章首先介绍了进程的概念、特性、状态、状态转换以及系统中进程的数据结构PCB;由于操作系统的异步性,并发的进程可能会产生结果不一致等问题,本章随后介绍了解决此类问题的方法:①互斥(间接同步)。通过临界区管理来实现互斥,本章介绍了临界区管理的软件方法(Dekker和Peterson算法)和硬件方法(关中断和测试指令方法)。②同步(直接同步)。介绍了实现同步的信号量机制以及PV操作;之后介绍了进程并发时可能出现的死锁状态、死锁产生的必要条件以及死锁解决的方法;最后介绍多线程的引入、多线程的定义、状态以及实现。
习 题
一、选择题
1.操作系统对进程进行管理与控制的基本数据结构是_______。
A.JCB B.PCB C.PMT D.DCT
2.进程和程序的本质区别是_______。
A.动态或静态B.分时使用或独占计算机资源
C.顺序或非顺序地执行其指令D.存储在内存和外存
3.进程和线程的区别是_______。
A.大小不同B.独立调度的单位
C.是否拥有资源D.对应的分别是程序和过程
4.在单处理机中,如果系统中有N个进程,则就绪队列中的进程个数最多是________。
A.1个B.N+1个C.N个D.N-1个
5.在单处理机系统中有n(n>2)个进程,________情况不可能发生。
A.没有进程运行,没有就绪进程,n个阻塞进程
B.有1个进程运行,没有就绪进程,n-1个阻塞进程
C.有2个进程运行,有1个就绪进程,n-3个阻塞进程
D.有1个进程运行,有n-1个就绪进程,没有阻塞进程
6.对于两个并发进程都想进入临界区,设互斥信号量为S,若某时S=0,表示_______。
A.没有进程进入临界区
B.有1个进程进入了临界区
C.有2个进程进入了临界区
D.有1个进程进入了临界区并且另一个进程正等待进入
7.进程在处理机上执行,它们的关系是_______。
A.进程之间无关,系统是封闭的
B.进程之间相互依赖、相互制约
C.进程之间可能有关,也可能无关
D.以上都不对
8.以下________方法可以解除死锁。
A.挂起进程B.剥夺资源C.提高进程优先级D.降低进程优先级
9.以下关于安全状态的说法,______正确。
A.安全状态是没有死锁的,非安全状态是有死锁的状态
B.安全状态是可能有死锁的状态,非安全状态也是可能有死锁的状态
C.安全状态是可能没有死锁的状态,非安全状态是有死锁的状态
D.安全状态是没有死锁的状态,非安全状态是可能有死锁的状态(www.xing528.com)
10.信箱通信是一种_______方式。
A.直接通信B.间接通信C.低级通信D.信号量
二、判断题
1.用户态和核心态是由操作系统设定的。( )
2.只有处在阻塞状态的进程才可能被挂起。( )
3.线程所占有的存储空间一定比进程小。( )
4.并发执行的程序具有可再现性。( )
5.对临界区应采用互斥访问的方式来实现共享。( )
6.进程A,B共享资源X,需要互斥执行,进程B,C共享资源Y,也需要互斥执行,因此进程A,C必须互斥执行。( )
7.当进程数大于资源数时,进程竞争资源也不一定会产生死锁。( )
8.对系统资源分配图进行简化,可以检测死锁。( )
9.管程中使用条件变量来实现同步。( )
10.死锁只发生在相互竞争资源的进程之间。( )
三、问答题
1.试画出下面四条语句的前趋图:
S1:a:=x+y;
S2:b:=z+1;
S3:c:=a-b;
S4:w:=c+1;
2.程序并发执行时为什么会失去封闭性和可再现性?
3.同步机制应遵循哪些基本准则?为什么?
4.在生产者-消费者问题中,如果将两个wait操作即wait(full)和wait(mutex)互换位置,或者将signal(mutex)与signal(full)互换位置,结果会如何?
5.何谓用户级线程和内核级线程?
6.画图说明管程由哪几部分组成,为什么要引入条件变量?
7.何谓死锁?产生死锁的原因和必要条件是什么?
8.请详细说明可通过哪些途径预防死锁。
9.多个进程共享一个文件,其中只读文件的称之为读者,其余只写的称之为写者,读者可以同时读,但是写者只能独立地写。
(1)说明进程间的相互制约关系;应设置哪些信号量;
(2)用P,V操作写出其同步算法;
(3)修改上述的同步算法,使得它对写者优先,即一旦有写者到达,后续的读者都必须等待,而无论是否有读者在读文件。
10.某系统有r1,r2,r3三种资源,在T 0时刻P1,P2,P3,P4四个进程对资源的占用和需求情况见下表,此刻系统的可用资源向量为(2,1,2),问:
(1)将系统中各种资源总数和此刻各进程对各类资源的需求数目用向量或矩阵表示出来;
(2)如果此时P1和P2均发出资源请求向量Request(1,0,1),为了保持系统安全性,应该如何分配资源给这两个进程?说明你所采用策略的原因;
(3)如果(2)中两个请求立刻得到满足,系统此刻是否处于死锁状态?为什么?
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。