当前位置:   article > 正文

操作系统---第二章进程管理---进程同步---选择题_进程p0和p1的共享变量定义及其初值为: boolean flag[2]; int turn 0;

进程p0和p1的共享变量定义及其初值为: boolean flag[2]; int turn 0; flag[0]=fal

1信号量的值有什么含义?

信号量的值为-1,这表示等待进入临界区的进程数是1。信号量是一个特殊的整型变量,只有初始化和PV操作才能改变其值。通常,信号量分为互斥量和资源量,互斥量的初值一般为1,表示临界区只允许一个进程进入,从而实现互斥。当互斥量等于0时,表示临界区已有一个进程进入,临界区外尚无进程等待;当互斥量小于0时,表示临界区有1个进程,互斥量的绝对值表示在临界区外等待进入的进程数。资源信号量也是这么个情况。

2临界区是什么东西?临界区是访问临界资源中的一步。

临界资源是一次仅允许一个进程使用的资源,比如很多物理设备,如打印机。
进入区:为了进入临界区使用临界资源,在进入区要检查是否可进入临界区,若能进入临界区,则应设置正在访问临界区的标志,以阻止其他进程同时进入临界区。
临界区:进程中访问临界资源的那部分代码,又称临界段。
退出区:将正在访问临界区的标志清除。
剩余区:代码中的其他部分。

3 临界资源与共享资源

临界资源与共享资源的区别在于,在一段时间内能否允许被多个进程访问(并发使用),显然磁盘属于共享设备。共用队列可供多个进程使用,但一次只可供一个进程使用,试想若多个进程同时使用共用队列,势必造成队列中的数据混乱而无法使用。可重入的代码程序一次可供多个进程使用。# 4进程A和进程B共享缓冲区协作完成数据处理,进程A负责生产数据并放入缓冲区,进程B从缓冲区读数据并输出。进程A与B的关系是互斥和同步关系。其实这道题很坑啊!进程A要先放入数据,B才能取出来,这是很明显的同步机制。然后共享的缓冲区一定是互斥访问的,所以它们也有互斥关系。

5为什么P操作可能导致进程阻塞,但不可能导致进程就绪呢?

这是因为执行P操作时的进程处于运行态,如果说时间片消耗完了倒是可以从运行态转到就绪态,但是没取到资源就只能进入阻塞态,取到资源了进程还是运行态。

6什么是管程?

当共享资源用共享数据结构表示时,资源管理程序可用对该数据结构进行操作的一组过程来表示,如资源的请求和释放过程request和release。把这样一组相关的数据结构和过程一并归为管程。
管程由3部分组成:
(1)局部于管程的共享变量说明。
(2)该数据结构进行操作的一组过程
(3)对局部于管程的数据设置初始值得语句;此外,还需为该管程赋予一个名字。
管程的引入是为了解决临界区分散所带来的管理和控制问题。在没有管程之前,对临界区的访问分散在各个进程之中,不易发现和纠正分散在用户程序中的不正确使用P,V操作等问题。管程将这些分散在各进程中的临界区集中起来,并加以控制和管理,管程一次只允许一个进程进入管程内,从而既便于系统管理共享资源,又能保证互斥。

7一个进程因在互斥信号量mutex上执行V(mutex)操作而导致唤醒另一个进程时,执行V操作后mutex的值为?

因为系统中原来存在等待进入临界区的进程,mutx<=-1,因此在执行V(mutex)操作后,mutex<=0。

8管程的signal操作和信号量中的V操作相同吗?

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/661571
推荐阅读
相关标签
  

闽ICP备14008679号