您的位置:首页 > 其它

OS 进程管理

2017-12-27 21:25 190 查看
1、同步与互斥

     同步是并发进程互相共享对方的“私有资源”

            举例:读写操作,A将数据读入缓冲区,B从缓冲区中读取数据。只有A将数据读入缓冲区,B才能获得读取数据的机会。这个是有顺序的。

     互斥是共享资源引起的临界区不允许并发进程交叉执行的现象。

            举例:打印机,AB要打印东西,A和B假设同时发出请求,打印机只有一个,A打印的时候B就不能打了,但你不能确定是A打印还是B打印。

    互斥其实是一种实现同步的一种机制吧。

2、信号量机制 :信号量可以解决互斥问题和同步问题。

     1 一整形变量

     2 每个信号量表示一种系统资源的状况,其值表示该资源当前可用的数量

     3 每个信号量代表一个空的或非空等待队列

     4 对信号量只能实施P、V操作,只有P、V操作才能改变其值

     5 对应于wait操作和signal操作

 


3、利用PV操作实现进程的互斥
令信号量mutex的初值为1,当进入临界区时执行P操作,退出临界区时执行V操作。这样利用PV操作实现进程互斥的代码段如下:
      P(mutex)
         临界区
      V(mutex)

4、利用PV操作实现进程的前驱关系





5、练习

若wait、signal操作的信号量S初值为2,当前值为 -1,则表示有(  )个等待进程。
 A.0      B.1        C.2         D.3

解析:S初值是2,代表此进程拥有两个资源,进行一个P操作,申请资源,S--;当S<0,则进入等待队列,现在S=-1,则有一个进程在等待队列。选B

若有4个进程共享同一程序段,每次允许3个进程进入该程序段,用wait\signal操作作为同步机制。则信号量S的取值范围是()。
   A.4,3,2,1,0            
   B.3,2,1,0,-1
   C.2,1,0,-1,-2           
   D.1,0,-1,-2,-3

解析:有四个进程共享程序段,允许三个进程进入程序段代表信号的初值应该是3,因为他只允许三个进程,如果是4,根据P操作,S--,只有当S<0

的时候才会停止,那么进入程序段的就不止三个的,所以S==3。选B

有9个生产者,6个消费者,共享容量为8的缓冲区。在这个生产者-消费者问题中,互斥使用缓冲区的信号量mutex的初值应该为(    )。 

A  1    B  6    C  8     D  9

解析:mutex一般都是1,互斥的话可以理解为可以运行和不可以运行两种状态,取值是1 0 -1,没有其他情况,选A

信号量S的初值为8,在S上执行了10次P操作,6次V操作后,S的值为(    )。
   A  10    B  8   C  6     D  4

解析:选D,8-10+6=4

任何两个并发进程之间存在着( )的关系。

A.各自完全独立    B.拥有共享变量   C.必须互斥   D.可能相互制约

解析:进程具有的特点之一,并发性,异步性,独立性,动态性(* 最重要);进程本来就是并发的,这就是他的一个特性。A是一个混淆的选项比较难,进程的独立性体现在他能够独立运行,独立接收资源和独立调度,他们的资源还是可以共享的,A中的完全独立有点不大准确,很不准确。B中的拥有共享变量,错,有些变量可以共享,但有些不行,比如不可重用的资源没办法共享,C进程必须互斥有点扯了,选D
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: