欢迎来到天天文库
浏览记录
ID:9907682
大小:26.50 KB
页数:4页
时间:2018-05-15
《教育论文一道关于p、v操作的操作系统经典题目的正确算法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、一道关于P、V操作的操作系统经典题目的正确算法一道关于P、V操作的操作系统经典题目的正确算法是小柯论文网通过网络搜集,并由本站工作人员整理后发布的,一道关于P、V操作的操作系统经典题目的正确算法是篇质量较高的学术论文,供本站访问者学习和学术交流参考之用,不可用于其他商业目的,一道关于P、V操作的操作系统经典题目的正确算法的论文版权归原作者所有,因网络整理,有些文章作者不详,敬请谅解,如需转摘,请注明出处小柯论文网,如果此论文无法满足您的论文要求,您可以申请本站帮您代写论文,以下是正文。 [摘要
2、]本文介绍了操作系统中P、V操作的有关概念,分析了应用PV操作的一道经典题目并给出了正确的解法。 [关键词]操作系统P、V操作算法 1操作系统中的P、V操作简介 现代操作系统基本上都是多进程的操作系统,系统中有多个进程并发执行,这些并发执行的进程之间存在着不同的相互制约关系,为了协调进程之间的这种相互制约关系,需要实现进程的同步与互斥。 在操作系统中存在着各种资源供进程使用,如果某个资源一次只能供一个进程使用,则称其为临界资源。计算机中许多物理设备如打印机、扫描仪等都属于临界资源
3、,除物理设备外,许多变量、数据等都可以被若干进程共享,但不允许多个进程同时进行修改操作,它们也可视为临界资源。 在每个进程中,访问临界资源的那段程序称为临界区,在操作系统中,当一个进程进入临界区使用临界资源时,另一个进程必须等待,当占用临界资源的进程退出临界区后,另一进程才允许去访问此临界资源,这种进程间的相互制约关系称为互斥。 一般说来,在操作系统中,一个进程相对于另一进程的运行速度是不确定的,但是相互合作的几个进程需要在某些确定点上协调它们的工作。所谓进程同步是指多个相互合作的进程,在一
4、些关键点上可能需要相互等待或相互交换信息,这种相互制约关系称为进程同步。 在操作系统中解决进程同步和互斥问题的一种重要方法是信号量机制和P、V操作。信号量是一个确定的二元组(S,Q),其中S是一个具有非负初值的整形变量,Q是一个初始状态为空的队列。整形变量S表示系统中某类资源的数目,当其值大于0时,表示系统中当前可用资源的数目;当其值小于0时,其绝对值表示系统中因其请求该类资源而被阻塞的进程数目。除信号量的初值外,信号量的值仅能由P操作和V操作改变。 P、V操作在1965年由荷兰计算机大师D
5、ijkstra引入,他用荷兰语中的单词passeren(通过)、vrijgeven(释放)的首字母来为这两种操作命名。 P、V操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的值减1,即S=S-1; ②如果S30,则该进程继续执行;否则该进程置为等待状态,排入等待队列。 V(S):①将信号量S的值加1,即S=S+1; ②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。 利用信号量和P、V操作可以有效
6、的解决进程的同步和互斥问题。 2一道考察PV操作的经典操作系统试题 P、V操作是操作系统课程中的重点内容,其考察形式并不仅限于计算机中进程的互斥和同步,而更多的将现实中的某些事务纳入,要求使用P、V操作来处理这些事务。许多操作系统教材中都有诸如哲学家进餐问题、理发师问题、生产者-消费者问题等经典例题,就是这种情况的体现。本文所要讲述的这道题目也是这种类型的。 在南开大学和天津大学之间有一条弯曲的小路,其中从S到T一段路每次只允许一辆自行车通过,但其中有一个小的安全岛M(同时允许两辆自行车停
7、留),可供两辆自行车已从两端进人小路情况下错车使用,如图1所示。试设计一个算法使来往的自行车均可顺利通过。 该题目是南开大学1997年研究生入学考试的操作系统科目的一道试题,在很多操作系统的参考书和习题集中都有收录,其解法一般如下: 分析及相关知识:在本题中,需要控制路段T到L,路段S到K及安全岛M的使用。路段T到L及路段S到K同时只允许一辆自行车通过。而安全岛M允许两辆自行车使用,因此可以用三个信号量来管理它们、另一方面,同一方向上的自行车最多只能有一辆通过这段路(两个方向上有两辆),因此
8、还应该用两个信号量来控制。 解:在本题中,应设置5个信号量ST,TSK,L,M,信号量ST表示是否允许自行车从南开大学去天津大学,其初值为1;信号量TS表示是否允许自行车从天津大学去南开大学,其初值为1;信号量K表示是否允许自行车通过路段S到K,其初值为1;信号量L表示是否允许自行车通过路段T到L,其初值为1;信号量M表示安全岛上还可停放自行车的数目;其初值为2。其控制过程描述如下: semaphoreST=1; semaphoreTS=1; semaphoreK=1; semapho
此文档下载收益归作者所有