第四章 PV补充练习

上传人:豆浆 文档编号:6455352 上传时间:2017-09-11 格式:DOC 页数:13 大小:62KB
返回 下载 相关 举报
第四章 PV补充练习_第1页
第1页 / 共13页
第四章 PV补充练习_第2页
第2页 / 共13页
第四章 PV补充练习_第3页
第3页 / 共13页
第四章 PV补充练习_第4页
第4页 / 共13页
第四章 PV补充练习_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《第四章 PV补充练习》由会员分享,可在线阅读,更多相关《第四章 PV补充练习(13页珍藏版)》请在金锄头文库上搜索。

1、1、在操作系统中,P、V 操作是一种(D) 。A.机器指令 B. 系统调用命令 C.作业控制命令 D.低级进程通信原语2、若信号量 S 的初值为 2,当前值为-1,则表示有(B)个等待进程。A. 0 B. 1 C.2 D.33、当(B)时,进程从执行状态转变为就绪状态。A.进程被调度程序选中 B.时间片到C.等待某一事件 D.等待事件发生4、临界区是(C)A.一个缓冲区 B.一段共享数据区 C. 一段程序 D.一个互斥资源5、如果系统中有 n 个进程,则就绪队列中进程的个数最多为(C)A.n+1 B.n C.n-1 D.16、进程的基本状态有:执行、就绪和阻塞(等待、挂起).7、进程的基本特征

2、有:动态、并发、独立、异步、结构特征。8、进程是一个程序对某个数据集的一次执行过程。9、程序并发执行与顺序执行时相比产生了一些新特征,分别是间断性、失去封闭性和不可再现性10、有 m 个进程共享同一临界资源,若使用信号量机制实现对临界资源的互斥访问,则信号量的取值范围是 1-(m-1)1、什么是进程?进程与程序的主要区别是什么? 答:进程,即是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。 进程与程序的主要区别是:(1)程序是指令的有序集合,是一个静态概念,其本身没有任何运行的含义,进程是程序在处理机上的一次执行过程,是一个动态概念。(2)程序作为软件资料可长期保存,而进程是有生命

3、期的,因创建而产生、因调度而执行、因得不到资源而暂停、因撤消而消亡。 (3)程序是记录在介质上指令的有序集合,而进程则由程序、数据和进程控制块 3 部分组成。 (4)进程与程序之间无一一对应关系。不同的进程可以包含同一程序,同一程序在执行中也可以产生多个进程。(5)进程是一个独立的运行单位,也是系统进行资源分配和调度的独立单位,而程序无此概念。2、什么是线程?线程和进程有什么区别?答:线程有时也称为轻量级进程,它是比进程更小的活动单位,它是进程中的一个执行路径。一个进程可以有多个执行路径即线程。线程和进程的主要区别如下:(1)线程是进程的一个组成部分。一个进程可以有多个线程,而且至少有一个可执

4、行的线程。(2)进程是资源分配的基本单位,它拥有自己的地址空间和各种资源。线程是处理机调度的基本单位,它只能和其他线程共享进程的资源,而本身并不具有任何资源。(3)进程的多个线程都在进程的地址空间内活动。这样,在以线程为单位进行处理机调度和切换时,由于不发生资源变化特别是地址空间的变化,因此切换时间较短。而以进程为单位进行处理机调度和切换时,由于涉及到资源转移及现场保护等问题,将导致切换时间变长和资源利用率降低。(4)线程和进程一样,都有自己的状态和相应的同步机制。但是,由于线程没有自己单独的程序和数据空间,因而不能像进程的程序和数据那样交换到外存去。 (5)进程的调度和控制大多由操作系统的内

5、核完成,而线程的控制既可以由操作系统内核完成,也可以由用户控制完成。3、试说明进程互斥、同步和通信三者之间的关系。答:进程的同步与互斥是指进程在推进时的相互制约关系。在多道程序系统中,由于资源共享与进程合作,这种进程间的制约成为可能。为了保证进程的正确运行以及相互合作的进程之间交换信息,需要进程之间的通信。 进程之间的制约关系体现为:进程的同步和互斥。 进程同步:它主要源于进程合作,是进程间共同完成一项任务时直接发生相互作用的关系。为进程之间的直接制约关系。在多道环境下,这种进程间在执行次序上的协调是必不可少的。 进程互斥:它主要源于资源共享,是进程之间的间接制约关系。在多道系统中,每次只允许

6、一个进程访问的资源称为临界资源,进程互斥就是保证每次只有一个进程使用临界资源。进程通信是指进程间的信息交换。PV 操作作为进程的同步与互斥工具因信息交换量少,效率太低,称为低级通信。而高级通信则以较高的效率传送大批数据。P115 4-9 n 个并发进程共用一个公共变量 Q,写出用信号灯实现 n 个进程互斥时的程序描述,给出信号灯值的取值范围,并说明每个取值的物理意义。main()int mutex=1cobeginp1();p2();pn();coend对于两个并发进程,互斥信号灯的取值仅取 1、0、-1 这三个值若 mutex=1,表示没有进程进入临界区;若 mutex=0,表示有一个进程进

7、入临界区;若 mutex=-1,表示有一个进程进入临界区,另一个进程等待进入。p1()p(mutex);cs1;v(mutex);p2()p(mutex);cs2;v(mutex);pn()p(mutex);csn;v(mutex);缓冲区 s 缓冲区 tP116 4-12 如图 4.34 所示,get、copy、put 三进程共用两个缓冲区 s、t (其大小为每次存放一个记录) 。get 进程负责不断地把输入记录送入缓冲区 s 中,copy 进程负责从缓冲区 s 中取出记录复制到缓冲区 t 中,而 put 进程负责从缓冲区 t 中取出记录打印。试用 P、V 操作实现这三个进程之间的同步,并写

8、出程序描述。 get copy put 解:main() int sa=1,sb=0;/ sa 表示缓冲区 s 是否为空, sb 表示是否有数据可被处理。int ta=1,tb=0;/ ta 表示缓冲区 t 是否为空,tb 表示是否有数据可被处理。 cobegin get; copy; put; coend Get() while(1) P(sa); input data to buffer s; V(sb); Copy () while(1) P(sb); copy data from buffer s; V(sa); P(ta); input copy-data to buffer t;

9、V(tb);Put() while(1) P(tb); output data to buffer s; V(ta); 6、某车站售票厅,任何时刻最多可容纳 20 名购票者进入,当售票厅中少于 20 名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题: (1) 用 PV 操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种取值的含义。 (2) 根据所定义的信号量,把应执行的 PV 操作填入下述方框中,以保证进程能够正确地并发执行。 COBEGIN PROCESS PI(I=1 ,2, ) begin ; ;进入售票厅; 购票;

10、 退出; ;end ; COEND (3) 若欲购票者最多为 n 个人,写出信号量可能的变化范围 ( 最大值和最小值 ) 。 (1) 定义一信号量 S ,初始值为 20 。 意义: S0 S 的值表示可继续进入售票厅的人数 S=0 表示售票厅中已有 20 名顾客 ( 购票者 ) S0 |S| 的值为等待进入售票厅的人数 (2) 上框为 P(S) 下框为 V(S) (3)S 的最大值为 20 S 的最小值为 20-n7、假设公共汽车上,司机和售票员的活动分别是:司机:启动车辆、正常行车、到站停车售票员:关车门、售票、开车门在汽车不断的到站、停站、行驶过程中,这两个活动有什么同步关系?用信号量 P

11、 和 V 操作实现他们的同步。解:在汽车的行驶过程中,司机活动与售票员活动的同步关系为:售票员关车门后,向司机发开车信号,司机接到开车信号后启动车辆,在汽车正常行驶过程中售票员售票,到站时司机停车,售票员在车停后开车门让乘客上下车。同步要求:先关门,后开车;先停车,后开门因此司机启动车辆的动作必须与售票员关车门的动作取得同步;售票员开车门的动作必须与司机停车动作取得同步。本题中设置两个信号量,S1、S2 ,其中 S1 表示是否允许司机启动汽车,初值为 0, S2 表示是否允许售票员开门,初值为 0。这两个活动的同步用 P、V 原语描述如下:driver( );while(true)P(S1);

12、启动车辆;正常驾驶;到站停车;V(S2);busman(); while(true)关门;V(S1);售票;P(S2);开门;上下乘客;semaphore s1=0;semaphore s2=0;main( )cobegindriver();busman();coend经典 IPC 问题变形1、用 P、 V 操作实现下述问题的解。桌子上有一个盘子,可以存放一个水果。父亲总是放苹果到盘子中,母亲是放香蕉在盘子中;一个儿子专门等吃盘中的香蕉,一个女儿专门等吃盘中的苹果。 (生产者-消费者 变形)2、哲学家甲请哲学家乙、丙、丁到某处讨论问题,约定全体到齐后开始讨论;在讨论的间隙四位哲学家进餐,每人进

13、餐时都需要使用刀、叉各一把,餐桌上的布置如下。请用信号量及 P、V 操作说明这四位哲学家的同步、互斥过程。(哲学家进餐 变形)乙甲丙丁刀 1 叉 1 食品叉 2刀 21、父亲、母亲、儿子、女儿四人共用 1 个盘子,盘中一次只能放一个水果。当盘为空时,父亲及母亲均可试着将一个水果放入盘中,但一次只能有一个人成功放入。若盘中是香蕉,则允许儿子吃,女儿必须等待;若盘中是苹果,则允许女儿吃,儿子必须等待。设置 3 个信号量,dish 表示盘子是否为空,初值为 1,apple 表示盘中是否有苹果,初值为 0,banana 表示盘中是否为香蕉,初值为 0,进程同步描述如下:semaphore dish=1

14、;semaphore apple=0;semaphore banana=0;main()cobeginfather();mother();son();daughter();coendfather()while(1)P(dish);将苹果放人盘中;V(apple);mother()while(1)P(dish);将香蕉放人盘中;V(banana);son()while(1)P(banana);从盘中取出香蕉;V(dish);吃香蕉;daughter()while(1)P(apple);从盘中取出苹果;V(dish);吃苹果2、四位哲学家讨论问题期间的生活方式为交替的进行讨论和进餐。由于刀和叉的资

15、源均为 2,而哲学家有四位,肯定会出现资源竞争,为此应对他们的进餐进行同步控制。假设解决方案为:所有哲学家先申请使用刀,申请到刀的再申请使用叉,刀和叉都拿到后才能进餐。设置 4 个信号量 fork1、fork2 、knife1、knife2,初值均为 1,分别表示叉 1、叉 2、刀 1、刀 2 是否可用。semaphore fork1=1;semaphore fork2=1;semaphore knife1=1;semaphore knife2=1;main()cobeginpa(); /用进程 pa、pb、pc、pd 分别代表哲学家甲、乙、丙、丁的活动pb();pc();pd();coendpa()while (1)p(knife1);p(fork1);进餐;v(knife1);v(fork1);讨论问题;pb()while (1)p(knife2);p(fork1);进餐;v(knife2);v(fork1);讨论问题;pc()while (1)p(knife2);p(fork2);进餐;v(knife2);v(fork2);讨论问题;pd()while (1)p(knif

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号