操作系统答 案4

操作系统答 案4

ID:44244749

大小:46.50 KB

页数:4页

时间:2019-10-20

操作系统答 案4_第1页
操作系统答 案4_第2页
操作系统答 案4_第3页
操作系统答 案4_第4页
资源描述:

《操作系统答 案4》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、6.16管程的signal操作和信号量的signal操作有什么不同?管程的signal操作在以下情况下是不能继续进行的:当执行signal操作并且无等待线程时,那么系统会忽略signal操作,认为signal操作没有发生过。如果随后执行wait操作,那么相关的线程就会被阻塞。然后在信号量中,即使没有等待线程,每个signal操作都会是相应的信号量值增加。接下来的等待操作因为之前的信号量值的增加而马上成功进行。6.17假设signal语句只能作为一个管程中的最后一条语句出现,可以怎样简化6.7节所描述的实现?如果signal语句作为最后一条语句出现,那么锁会使发出信号的进

2、程转化成接受信号的进程。否则,发出信号的进程将解锁,并且接受信号的进程则需要和其他进程共同操作获得锁从而使操作继续下去。6.21假设将管程中的wait和signal操作替换成一个单一的构件await(B),这里B是一个普通的布尔表达式,进程执行直到B变成真a.用这种方法写一个管程实现读者—作者问题。b.解释为什么一般来说这种结构实现的效率不高。c.要使这种实现达到高效率需要对await语句加上哪些限制?(提示,限制B的一般性,参见Kessels[1977].)a.读者—作者问题可以进行以下修改,修改中产生了await声明:读者可以执行“await(activewrite

3、rs==0&&waitingwriters==0)”来确保在进入临界区域时没有就绪的作者和等待的作者。作者可以执行“await(activewriters==0&&activereaders==0)”来确保互斥。b.在signal操作后,系统检查满足等待条件满足的等待线程,检查其中被唤醒的等待线程。这个要求相当复杂,并且可能需要用到交互的编译器来评估在不同时间点下的条件。可以通过限制布尔条件,使布尔变量和其他部分分开作为独立的程序变量(仅仅用来检查是否相等的一个静态值)。在这种情况下,布尔条件可以传达给运行时系统,该系统可以执行检查每一个它所需要的时间,以确定哪些线程被

4、唤醒。6.23为什么Solaris、Linux和Windows2000都使用自旋锁作为多处理器系统的同步机制而不作为单处理器系统的同步机制?Solaris,Linux和Windows2000中只有在多处理器系统才能使用自旋锁作为一个同步机制。自旋锁不适合单处理器的系统,因为打破了这一进程的自旋锁只有通过执行不同的进程才可以得到。如果这一进程不会放弃此处理器,其他进程就无法设置第一个进程所要求的程序条件,从而不能继续操作。在一个多处理器系统,其他进程执行其他处理器,从而修改程序状态从自旋锁中释放第一个进程。6.24在基于日志的系统中可以给事务提供支持,在相应日志记录写到稳

5、定存储之前不能允许真正地更新数据项。为什么这个限制是必需的?如果事务需要放弃,那么更新的数据项的值应该要恢复到原来的值。这就需要原来值的数据在进行操作之前完成更新。6.25证明两段锁协议能确保冲突的串行执行。调度是指一个或多个事务的执行顺序。一个串行调度是指每个事务执行的原子调度。如果一个调度由两个不同的事务组成,通过连续的操作从这两个事务中获得相同的数据,并至少有一个write操作,然后有所谓的冲突。如果一个调度可以通过一系列非冲突操作的交换而转化成串行调度,那么这个调度为是冲突可串行化。 这两阶段加锁协议确保冲突串行化,因为独占锁(这是用于写操作)必须连续收购,不释

6、放任何锁在获取(增长)的阶段。其他事务希望获得同样的锁必须等待第一个事务开始释放锁。通过要求任何锁必须首先释放所有锁,从来避免潜在的冲突。6.26分配一个新时间戳给已经恢复到原值的事务有什么影响?对于新进入系统进程的事务,其所赋予的时间戳是如何大于原先事务的时间戳的?在原先事务的访问变量改变后执行事务,那么相应的事务也恢复到原先的值。如果他们没有执行此项操作(也就是说没有重复的原先事务的访问变量值),那么这些操作在适当的时候就不会受到约束。6.27假设数目有限的资源中的一个单一的资源型必须加以管理。进程需要一定数量的这种资源,一旦用完将释放它们。例如,许多商业软件包提供

7、了一定数量的许可证,这表明一些应用程序可以同时运行.当应用程序启动时,许可证的计数递减。当申请终止,许可证计数递增。如果所有的许可证都在使用,那么要求启动该应用程序的申请被剥夺了。只有当现有的许可证持有人终止申请并切许可证已经返还,那么这种申请将被授予.下列程序段是用来管理一个数目有限的情况下的可用资源。最多的资源数量和一些可用的资源数量如下所示:#defineMAXRESOURCES5intavailableresources=MAXRESOURCES;Whenaprocesswishestoobtainanumberofresourc

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。