赞
踩
注:本文以操作系统—精髓与设计原理(第九版中文翻译版)为参考,答案仅供参考,如有疑惑欢迎提出指正。转载请标明出处。
第五章
1. (单选题) 临界区指的是:并发进程中访问共享变量的:( )
A代码/Code段
B数据/Data段
C堆栈/Stack段
D堆/Heap段
正确答案:A
答案解析:
临界区指的是一段代码,在这段代码中进程将访问共享资源,当另外一个进程已在这段代码中运行时,这个进程就不能在这段代码中执行(P122)。
2. (单选题) 生产者/消费者问题不能视为一个的特殊读者/写者问题的原因是:( )
A生产者和消费者其实同时是读者和写者
B生产者/消费者各自一个,而读者/写者各自可以有多个
C以上都不是
D当写者执行写入的时候,读者也可以执行读取;而生产者/消费者不同
正确答案:A
答案解析:
A.
生产者消费者问题和读者写者问题的区别在于:
消费者是要消耗数据的,而读者不消耗数据。
意味着不论生产者消费者,都要进行读写操作,都不能与其他任何一个人的操作同时进行。
D.
说法错误,任一写者在完成写操作之前不允许其他读者或写者工作
(1)生产者消费者问题(P138)
①系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲区中取出一个产品并使用。【注:这里的“产品”理解为某种数据】
生产者、消费者共享一个初始为空、大小为n的缓冲区。
②只有缓冲区没满时,生产者才能把产品放入缓冲区,否则必须等待
【当缓冲区满时,生产者需要等待消费者取走产品才能继续操作,有顺序,所以是同步关系】
③只有缓冲区不空时,消费者才能从中取出产品,否则必须等待【同理也是同步关系】。
④缓冲区是临界资源,各进程必须互斥地访问
(2)读者写者问题
有读者和写者两组并发进程,共享一个文件,当两个或两个以上的读进程同时访问共享数据时不会产生副作用,但若某个写进程和其他进程(读进程或写进程)同时访问共享数据时则可能导致数据不一致的错误。因此要求:
①允许多个读者可以同时对文件执行读操作
②只允许一个写者往文件中写信息
③任一写者在完成写操作之前不允许其他读者或写者工作
④写者执行写操作前,应让已有的读者和写者全部退出
3. (单选题) 没有指定进程从队列中移除的顺序的信号量称为:( )
A强信号量
B以上都不是
C弱信号量
D二元信号量
正确答案:C
答案解析:
没有指定进程从队列中移除的顺序的信号量称为弱信号量。在弱信号量中,进程可以从信号量的队列中移除,但移除的顺序是不确定的,也就是说,进程可以按任意顺序移除信号量。
与强信号量不同,强信号量要求进程必须从信号量的队列中移除,且移除的策略是先进先出(FIFO):被阻塞最久的进程最先从队列释放。
与弱信号量、二元信号量等其他信号量类型相比,弱信号量的使用较为频繁,因为它可以满足大多数同步原语的需求。
4. (单选题) 多个进程或线程在读写一个共享数据时,如果最终的运行结果依赖于它们执行的相对时间,这个现象被称为:( )
A同步
B互斥
C条件竞争/Race Condition
D死锁
正确答案:C
答案解析:
多个进程或线程在读写一个共享数据时,如果最终的运行结果依赖于它们执行的相对时间,这个现象被称为条件竞争/Race Condition(P128)。
在条件竞争情况下,多个进程或线程在访问共享数据时,可能会同时读取或写入数据,从而导致数据的不一致性和错误的结果。同步和互斥都是用于控制进程或线程对共享数据的访问的方法,而条件竞争则是一种潜在的问题,它可能导致同步和互斥方法失效,导致错误的结果。死锁是指多个进程或线程无法继续执行,因为资源已经被其他进程或线程占用,因此无法继续申请资源的现象。
5. (单选题) 以下哪个术语不属于“并发/Concurrency”的“核心的四个要解决的问题”的范畴:( )
A互斥/Mutual Exclusion
B死锁/Deadlock
C同步/Synchronization
D条件竞争/Race Condition
正确答案:D
答案解析:
“并发/Concurrency”的“核心的四个要解决的问题是互斥、死锁、同步和饥饿(参考五六章的题目)。
6. (单选题) 为了在进程所竞争的关键资源上实现互斥,同一时间只允许一个程序:( )
A以上都不是
B展示合作
C进入程序的临界区
D进行消息传递
正确答案:C
答案解析:
在进程竞争关键资源的情况下,为了实现互斥,同一时间只允许一个程序进入临界区(critical section)(P129)。临界区是指一段对关键资源进行访问的程序代码,只有当前程序在临界区中执行完毕后,才能轮到下一个程序进入临界区。
7. (单选题) 当一个进程在临界区访问某个共享资源时,其他进程不能进入该临界区访问此共享资源的情形, 它被称为:( )
A同步
B死锁
C互斥
D条件竞争/Race Condition
正确答案:C
答案解析:
当一个进程在临界区访问某个共享资源时,其他进程不能进入该临界区访问此共享资源,这种情况被称为互斥(P122 表5.1)。
8. (单选题) 实现互斥需要满足下列哪些要求:( )
A对相关进程的执行速度没有任何要求和限制
B一个进程驻留在临界区中的时间必须是有限的
C一次只允许一个进程进入临界区
D以上都是
正确答案:D
答案解析:
要提供对互斥的支持,必须满足以下要求(P131):
补充:
操作系统中关于解决进程互斥的方法有两种,分别是软件实现和硬件实现。在实现互斥时,需要关心的问题是:是否满足:忙则等待、让权等待、有限等待和空闲让进,这四个条件。
忙则等待:
意思是如果一个进程在使用临界资源,另一个进程也想访问该临界资源,必须等待在使用的进程使用完成。
让权等待:
如果一个进程发现另一个进程正在使用自己想要使用的临界资源,自己目前得不到该资源的访问权时,必须交出CPU资源进入阻塞状态。
有限等待:
一个进程等待访问临界资源,必须能保证在未来的时间里一定能拿到该临界资源的访问权,也就是该进程不会饥饿。
空闲让进:
当进程想访问临界资源时,如果该临界资源空闲,该进程就不用等待直接拿到该临界资源的访问权。
9. (单选题) 读者/写者问题需要要求满足的条件有:( )
A多个写者可同时写某个共享文件
B以上都不是
C多个读者可同时读某个共享文件
D当写者在写某个共享文件时,读者也可以读取这个共享文件
正确答案:C
答案解析:
读者写者问题(P156)
有读者和写者两组并发进程,共享一个文件,当两个或两个以上的读进程同时访问共享数据时不会产生副作用,但若某个写进程和其他进程(读进程或写进程)同时访问共享数据时则可能导致数据不一致的错误。因此要求:
10. (单选题) 为了实现互斥,可以采用哪些方法/技术:( )
A信号量
B关中断
C以上均可
D通过特殊的硬件指令
正确答案:C
答案解析:
以上均可(指ABD都可以,这个选项位置被没有意义地错乱了)。
为了实现互斥,可以采用以下方法和技术:
互斥锁 (mutex):使用互斥锁来保护共享资源的访问,确保同一时间只有一个进程可以访问共享资源。
信号量 (Semaphore):使用信号量来管理进程对共享资源的访问,信号量可以表示进程对共享资源的访问权限,0 表示没有访问权限,1 表示已经拥有访问权限,多个信号量可以组合使用来实现多进程间的同步和互斥。
条件变量 (Condition Variable):使用条件变量来实现进程间的等待和唤醒,以实现同步和互斥。
关中断 (disable interrupt):在实现互斥时,可以通过关闭中断的方式来避免中断对互斥操作的影响。
信号量组 (Semaphore Set):使用信号量组来管理多个共享资源的访问,信号量组可以表示多个进程对共享资源的访问权限,从而实现多进程间的同步和互斥。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。