操作系统Operating System第1~3章 习题讲解 2010 年春
Chap1 操作系统引论1. OS的主要目标是什么? (P33) 解答:1)方便性:方便用户、程序员; 2)有效性:提高软硬件资源利用率; 3)可扩充性:便于扩充功能和性能; 4)开放性:增加系统兼容性和互操作 性。
Chap1 操作系统引论2. OS的作用可表现在哪几个方面? (P33) 解答:1)从一般用户的观点,可把OS看作 是用户与计算机硬件系统之间的接口; 2)从资源管理角度看,可把OS视为 计算机系统资源的管理者; 3)OS作为系统软件覆盖在裸机之上 后,便可获得一台功能显著增强的虚拟机 器,因此,OS还有扩充机器的作用。
Chap1 操作系统引论
13. OS有那几大特征?最基本的特征是什 么?(P33) 解答:基本特征是:并发、共享、虚拟、 异步。最基本的特征是:并发性和共享性
Chap1 操作系统引论18. 什么原因使OS具有异步性? (P33) 解答:1)程序执行结果是不确定的,即程序 运行结果是不可再现的。 2)每个程序在何时执行,多个程序 间的执行次序以及完成每个程序的时间都 是不确定的,即不可预知性。
Chap1 操作系统引论22. 基于微内核的OS中,应用了哪些新技 术? (P33) 解答:客户/服务器技术、面向对象技术。
Chap1 操作系统引论补充1:什么是多道程序设计? 实现多道 程序设计的计算机需要那些必不可少的硬 件支持? 采用多道程序设计会带来什么好 处? 解答:在计算机内存中同时存放几道相互独 立的程序,它们在管理程序的控制下相互 穿插地运行,共享CPU和外设等资源。 硬件支持:中断技术 优点:资源的利用率、系统吞吐量大。
Chap1 操作系统引论
补充2:操作系统是如何从单道批处理, 发展到多道批处理,再到分时系统的,随 之出现了哪些技术。 解答:1)单道 多道批处理:提高资源利 用里,产生了多道程序设计技术、通道、 中断、作业管理、处理机管理、存储管理、 文件系统。 2)批处理 分时系统:提高系统的交 互能力,产生了时钟技术。
Chap1 操作系统引论
补充3:分时系统的出现让用户感受到了 什么好处?典型的分时系统是什么?
解答:1)同时性或多路性:多用户同时操作、使 用计算机 2)独占性:各终端用户感觉到自己独占了 计算机; 3)及时性:用户请求在较短时间内相应; 4)交互性:用户能计算机进行人机对话。 典型的分时系统:UNIX
Chap2 进程管理6:从动态性、并发性和独立性上比较进程和 程序.(P81)答案见P37-38 7:说明PCB作用,为什么PCB是进程存在唯一 标志.(P81) 解答:1)PCB 是进程实体的一部分,是操作系统 中最
重要的记录型数据结构。PCB 中记录了操 作系统所需的用于描述进程情况及控制进程运 行所需的全部信息。 2)在进程的整个生命周期中,系统总是 通过其PCB 对进程进行控制,系统是根据进程 的PCB 而不是任何别的什么而感知到该进程的 存在的。
Chap2 进程管理10:进程切换时保存CPU状态信息包含哪 些?(P81) 解答:1)通用寄存器 2)指令计数器 3)程序状态字 4)用户栈指针 注意:处理机状态是PCB的一部分,它描 述了进程在处理机上执行时的各种信息; 当进行进程切换时,处理机中的这些信息 统统要被其它进程覆盖,所以必须保存。
Chap2 进程管理
18:同步应该遵循的基本原则?(P82) 答案见P50 19:记录型信号量的wait和signal 的物 理含义(P82) 1) 只答出wait、signal操作的原子性。 2)只答出wait表示申请一个资源, signal表示释放一个资源。
作业问题:
Chap2 进程管理Cont.解答: 1)wait操作意味着请求一个单位的资源; 若减1后S.value<0时,表示资源已分配完 毕,故进程调用block原语进行自我阻塞, 并被插入到等待队列中。 2)signal操作意味着释放一个单位的资源; 若加1后S.value<=0,表示等待队列中仍有 进程等待该资源,故进程调用wakeup原 语唤醒一个等待进程。
Chap2 进程管理21:如何使用信号量机制实现多个进程 对临界资源的互斥访问?(P82) 解答: 1)设臵记录型信号量mutex,初值为1。 2)将访问临界资源的代码放臵于 wait(mutex); 和 signal(mutex)之间。
Chap2 进程管理
23:在生产者—消费者问题中,如果缺 少了signal(full)和signal(empty),对执行 结果有何影响? (P82)
作业问题: 1)认为缓冲区满后会溢出(或缓冲区中原有 数据被覆盖)。 2)认为消费者(或生产者)阻塞就是死锁。 3)只下结论,缺少分析过程。
Chap2 进程管理Producer: (2)Wait(empty) 成功,继续 repeat (当缓冲区放 wait(empty) 满后,生产者 进程也阻塞) wait(mutex) … signal(mutex) signal(mutex) until false Consumer: (1)Wait(full)不成 repeat 功,消费者进程 阻塞 wait(full) wait(mutex) … signal(mutex) signal(empty) until false