操作系统习题答案—高峰整理
因为调用wait 原语后,使进程等待的原因有多种,为了区别它们,引入了条件变量.
30.如何利用管程来解决生产者-消费者问题?
(见P60)
31.什么是AND 消费者问题的解法为解决并行所带来的死锁问题,在基本思想是将进程在整个运行过程中所需要的所有临界资源,一次性地全部分配给进程,用完后一次性释放解决生产者-消费者问题可描述如下var mutex,empty,full: semaphore:=1,n,0; buffer: array[0,...,n-1] of item; in,out: integer:=0,0; begin parbegin
producer: begin repeat.
produce an item in nextp;. wait(empty);
wait(s1,s2,s3,...,sn); //s1,s2,...,sn wait(mutex);
buffer(in):=nextp; in:=(in+1) mod n; signal(mutex); signal(full);
signal(s1,s2,s3,...,sn); until false; end
consumer: begin repeat
wait(full);
?.
AND 信号量写出生产者-wait 操作中引入AND 条件,其. :
为执行生产者进程除empty 外其余的条件 21
信号量试利用操作系统习题答案—高峰整理
wait(k1,k2,k3,...,kn); //k1,k2,...,kn 为执行消费者进程除full 外其余的条件 wait(mutex);
nextc:=buffer(out); out:=(out+1) mod n; signal(mutex); signal(empty);
signal(k1,k2,k3,...,kn); consume the item in nextc; until false; end parend end
32.什么是信号量集?试利用信号量集写出读者解法。
P64略
33.试比较进程间的低级通信工具与高级通信工具用户用低级通信工具实现进程通信很不方便,因为其效率低,通信对用户不透明,所有的操作都必须由程序员来实现具则可弥补这些缺陷,用户可直接利用操作系统所提供的一组通信命令,高效地传送大量的数据34.当前有哪几种高级通信工具。共享存储器系统、消息传递系统和管道通信系统三大类。35.消息队列通信机制应有哪几方面功能略
.
?
22 -写者问题的.
. 而高级通信工
操作系统习题答案—高峰整理
36.为什么要在OS中引人线程?
略
37.说明线程具有哪些属性?
略
38.试从调度性,进程和线程进行比较a. 在引入线程的进程作为资源拥有的基本单位;b. 在引入线程的进程中的多个线程之间,亦可并发执行,因而使发性;
c. 进程始终是拥有资源的一个独立单位,线程自己不拥有系统资源,但它可以访问其隶属进程的资源;d. 在创建,撤消和切换进程方面,进程的开销远远大于线程的开销.
39.为了在多线程供了哪几种同步机制?略
拥有资源及系统开销几个方面,.
中,把线程作为调度和分派的基本单位,而把
中,不仅进程之间可以并发执行,而且在一个
OS中实现进程之间的同步与通信,
23 并发性,对OS OS OS 具有更好的并通常提
操作系统习题答案—高峰整理
40.用于实现线程同步的私用信号量和公用信号量之间有何差异?
略
41.何谓用户级线程和内核级线程?并对它们进行比较.
a. 内核级线程是依赖于内核的,它存在于用户进程和系统进程中,它们的创建,撤消和切换都由内核实现;用户级线程仅存在于用户级中,它们的创建,撤消和切换不利用系统调用来实现,因而与内核无关,内核并不知道用户级线程的存在b. 内核级线程的调度和切换与进程十分相似,调度方式采用抢占式和非抢占式,调度算法采用时间轮转法和优先权算法等,当由线程调度选中一个线程后,再将处理器分配给它;而用户级线程通常发生在一个应用程序的诸线程之间,无需终端进入规则也较简单,因而,用户级线程的切换速度较快用户级线程调用系统调用和调度另一个进程执行时,内核把它们看作是整个进程的行为,内核级线程调用是以线程为单位,内核把系统调用看作是该线程的行为对于用户级线程调用,进程的执行速度随着所含线程数目的增加而降低,对于内核级线程则相反42.试说明用户级线程的实现方法。略
.
OS 内核,切换.
.
.
24
相关推荐: