操作系统课后作业参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统课后作业参考答案
第⼀章
1、设计现代OS的主要⽬标是什么?
答:设计现代操作系统的主要⽬标有
⽅便性:帮助⽤户更简单的完成预定⼯作
有效性:更有效的利⽤各类软硬件资源,同时提⾼系统吞吐量
可扩充性:OS应采⽤层次化结构,便于未来根据功能对各层次和模块进⾏增删、修改
开放性:不同的OS具有统⼀的开放环境,便于其移植和互操作
其中,⽅便性和可靠性是设计OS时最重要的⽬标。
8、试在交互性、及时性及可靠性⽅⾯,将分时系统与实时系统进⾏⽐较。
答:交互性:实时系统的交互性仅限于允许⽤户访问系统中某些特定的专⽤服务程序,分时系统可以向⽤户提供全⾯的服务;
及时性:实时信息系统和分时系统以⼈能忍受的等待时间来确定,⽽实时控制系统则以被控制对象所要求的截⾄时间来确定;
可靠性:分时系统对可靠性的要求⽐实时系统低,要求⾼度可靠的实时系统需要有多级容错措施保障系统和数据安全性。
9、OS有哪⼏⼤特征?其最基本的特征是什么?
答:OS具有以下四个特征
并发:OS中的两个或多个程序要能够在同⼀时间间隔内发⽣,以提⾼系统资源利⽤率和系统吞吐量,改善系统性能
共享:系统中的资源可供内存中多个并发执⾏的进程(线程)共同使⽤
虚拟:通过某种技术把⼀个物理实体变为若⼲个逻辑上的对应物
异步:进程以不可预知的速度向前推进
其中并发性是OS最重要的特征。
14、是什么原因使操作系统具有异步性特征?
答:由于操作系统具有并发性特征,即多个进程并发执⾏,⽽各进程在共享资源时获取和释放资源的顺序与时间都是不确定的,因此其推进速度和总完成时间不能唯⼀确定,即OS系统具有异步性,但在相同运⾏环境下,作业多次运⾏结果应是⼀致的。
第⼆章
6、试从动态性、并发性和独⽴性上⽐较进程和程序。
答:见课本P30。
7、试说明PCB的作⽤,为什么说PCB是进程存在的唯⼀标识?
答:见课本p32进程控制块的作⽤。
8、试说明进程在三个基本状态间转换的典型原因。
答:见课本P31 图2-5
18、同步机构应遵循哪些基本准则?为什么?
答:见课本P41
22、试写出相应的程序来描述图2-15所⽰的前趋图。
答:V ar a,b,c,d,e,f,g,h,i,j;semaphore := 0,0,0,0,0,0,0,0,0,0;
begin
parbegin
begin S1: S1; V(a); V(b); end;
begin S2: P(a); S2;V(c);V(d);end;
begin S3: P(b); S3; V(e); V(f);end;
begin S4: P(c); S4; V(g); end;
begin S5: P(d); S5; V(h); end;
begin S6: P(e); S6; V(i); end;
begin S7: P(f); S7; V(j); end;
begin S8: P(g); P(h); P(i); P(j);S8; end;
parend
end
24、在⽣产者-消费者问题中,如果将waitl(full)和wait(mutex)互换位置,或者将signal(mutex)与signal(full)互换位置,结果会如何?
答:将wait(full)和wait(mutex互换位置会导致进程死锁的产⽣。
因为互斥信号量mutex’保证了临界区的互斥进⼊,即⼀个进程进⼊临界区时,其他进程不可⼊。
资源信号量full 表⽰的是满缓冲区的数量,随着每次的p、v操作对其进⾏减和加的⼯作。
将mutex和full 的P操作互换即表⽰允许先进⼊缓冲区再申请资源,若进程A进⼊临界区后发现没有资源可⽤时必须等待,但并不退出临界区,⽽占⽤了A所需资源的进程B再想进⼊临界区时就产⽣了死锁。
将signal(mutex和signal(full)互换位置不会产⽣问题,⼆者的区别仅在于释放资源时是否先退出临界区。
26、试修改下⾯⽣产者-消费者问题解法中的错误
答:修改为P46所⽰格式,错误在于
1)producer⽣产产品,需要向空缓冲区放⼊数据,因此在进⼊临界区前应申请空区,即将P(full)改为P(empty)
2)producer中的P(mutex)和P(empty)(即P(full))互换位置,因为这样会产⽣死锁3)在producer的V(mutex)后插⼊V(full),对满缓冲区数量增1
4))consumer中也需要将P(mutex)与P(full)(即题中的P(empty))互换,以避免死锁
5)在consumer的V(mutex)前加⼊V(empty),以实现对空缓冲区数量的正确控制
6)consumer中的V(empty)应改为V(full),消费者应对满缓冲区数据进⾏处理
38、试从调度性、并发性、拥有资源及系统开销⽅⾯,对进程和线程进⾏⽐较。
答:在具有线程的OS中,进程和线程既不相同⼜有联系
在调度性⽅⾯:进程不再是⼀个可执⾏的实体,调度程序选择合适的线程交付处理机,⽽对进程的调度实际上指的是对该进程所包含的部分线程进⾏调度;
在并发性⽅⾯:进程与线程均可并发执⾏,但线程是轻型实体,且不同进程的线程间也可并发执⾏,因此引⼊线程后,OS的并发⾏进⼀步提⾼;
在资源拥有⽅⾯:进程是系统进⾏资源分配的单位,同⼀个进程中的各线程共享⽗进程的所有资源,进程终⽌时释放占⽤的资源,⽽线程终⽌时通常不⽴即释放所占有的资源,只有同进程中的其他线程需求该资源时才释放
在系统开销⽅⾯:进程是资源拥有者,在创建、撤销、切换时都需要付出较⼤的时空开销,⽽线程不⽤于分配资源,因此其切换快速,时空开销较⼩
补充题:
桌上有⼀空盘,只能放⼀只⽔果。
Father向其中放苹果或桔⼦,⼉⼦只吃桔⼦,⼥⼉只吃苹果。
当盘空时⼀次只能放移⾄⽔果供⼉⼥取⽤。
请⽤P、V原语实现father、son和daughter 三个并发进程的同步。
答:本题中应设置三个信号量S、S o、S a,信号量S表⽰盘中是否为空,其初值为1;S o表
⽰盘中是否有桔⼦,其初值为0;S a表⽰盘中是否有苹果,其初值为0。
同步描述如下:father: P(S); son:P(S o); daughter:P(S a);
将⽔果放⼊盘中从盘⼦中取出桔⼦从盘⼦中取出苹果if (放⼊的是桔⼦) v(S o);V(S);V(S);
else v(S a);吃桔⼦吃苹果;
第四章
5、为什么要引⼊动态重定位?如何实现?
答:引⼊动态重定位是为了保证程序在运⾏过程中也能够根据内存使⽤情况改变在内存中的位置。
实现动态重定位需要设置⼀个重定位寄存器,⽤来存放程序在内存中的起始地址,此时作业装⼊内存后所有的地址仍然是相对地址,只有当执⾏某条程序指令时,才将相对地址与重定位寄存器中的值相加形成物理地址。
11、较详细的说明引⼊分段存储管理是为了满⾜⽤户哪⼏⽅⾯的需要。
答:见课本P119
15、试全⾯⽐较连续分配和离散分配⽅式。
答:连续分配⽅式为⼀个⽤户进程分配⼀个连续的内存空间,具有访问速度快、实现简单的优点,但同时也要求在分配前预知进程占⽤的空间、回收时需要考虑邻接空闲区、易形成外碎⽚等问题;
离散分配⽅式将⼀个进程分散的装⼊到不相邻接的多个分区中,具有空间利⽤率⾼、⽀持程序空间动态变化的要求等优点,但其实现复杂性⾼、数据寻道时间相对较长。
补1:在⼀个请求分页系统中,假定系统分配给⼀个作业的物理块数为3,且此作业的页⾯访问顺序为2、3、2、1、5、2、4、5、3、2、5、2,试⽤FIFO和LRU两种算法分别计算出程序访问过程中发⽣的缺页次数
答:使⽤FIFO算法,缺页次序为2、3、1、5、2、4、3、5、2,共产⽣9次缺页;使⽤LRU 算法,缺页次序为2、3、1、5、4、3、2,共产⽣7次缺页。
补2:在采⽤页式存储管理的系统中,某作业J的逻辑地址空间为4页,每页2048字节,且已知该作业的页表如下,试求出逻辑地址4865所对应的物理地址,并画出该逻辑地址在地址变换机构中的转换过程。
答:由于⼀页⼤⼩为2K字节,则逻辑地址4865的页号和页内位移为
页号:4865/2048=2
页内位移:4865-2048*2=769
通过查表可知2号页⾯对应的物理块号为6,则物理地址为6×2048+769=13057
第五章
7、有哪⼏种I/O控制⽅式?各使⽤于何种场合?
答:早期的OS使⽤程序I/O⽅式,会出现忙等现象
当代OS则引⼊了中断驱动⽅式,适⽤于字节为单位的数据传输
DMA⽅式,适⽤于传输⼀个数据块的场合
通道⽅式,适⽤于传输⼀组数据块的场合
15、为何要引⼊设备独⽴性?如何实现?
答:见课本P163-164
17、何谓设备虚拟?实现设备虚拟时所依赖的关键技术是什么?
答:设备虚拟指的是使⽤特定技术将⼀台物理设备模拟为多台逻辑设备,使得多⽤户可以共享该设备的服务。
实现设备虚拟使⽤的关键技术为SPOOLing技术。
18、试说明SPOOLing 系统的组成
答:见课本P166
25、⽬前常⽤的磁盘调度算法有哪⼏种?每种算法优先考虑的问题是什么?
答:先来先服务,优先考虑进程请求访问磁盘的先后次序
最短寻道时间优先,优先考虑现有申请中哪个距离当前磁头最近
扫描算法,优先考虑磁头当前的移动⽅向。