- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统课后题答案
2.1 一类操作系统服务提供对用户很有用的函数,主要包括用户界面、程序执行、I/O操作、文件系统操作、通信、错误检测等。 另一类操作系统函数不是帮助用户而是确保系统本身高效运行,包括资源分配、统计、保护和安全等。 这两类服务的区别在于服务的对象不同,一类是针对用户,另一类是针对系统本身。
2.6 优点:采用同样的系统调用界面,可以使用户的程序代码用相同的方式被写入设备和文件,利于用户程序的开发。还利于设备驱动程序代码,可以支持规范定义的API。 缺点:系统调用为所需要的服务提供最小的系统接口来实现所需要的功能,由于设备和文件读写速度不同,若是同一接口的话可能会处理不过来。
2.9 策略决定做什么,机制决定如何做。他们两个的区分对于灵活性来说很重要。策略可能会随时间或位置而有所改变。在最坏的情况下,每次策略改变都可能需要底层机制的改变。系统更需要通用机制,这样策略的改变只需要重定义一些系统参数,而不需要改变机制,提高了系统灵活性。
3.1、短期调度:从准备执行的进程中选择进程,并为之分配CPU;
中期调度:在分时系统中使用,进程能从内存中移出,之后,进程能被重新调入内存,并从中断处继续执行,采用了交换的方案。
长期调度:从缓冲池中选择进程,并装入内存以准备执行。
它们的主要区别是它们执行的频率。短期调度必须频繁地为CPU选择新进程,而长期调度程序执行地并不频繁,只有当进程离开系统后,才可能需要调度长期调度程序。
3.4、当控制返回到父进程时,value值不变,A行将输出:PARENT:value=5。
4.1、对于顺序结构的程序来说,单线程要比多线程的功能好,比如(1)输入三角形的三边长,求三角形面积;(2)从键盘输入一个大写字母,将它改为小写字母输出。
4.4、在多线程程序中各线程共享堆内存和全局变量,而寄存值和栈内存是每个线程所独有的。
4.7、C行输出:CHILD:value=5;
P行输出:PARENT:value=0
5.4、SJF调度算法和Priority调度算法会导致饥饿。
5.10、FCFS:最先到达的进程最先完成,若某个长进程先到达,则之后的任一短进程都会有较长的等待时间。
RR:将就绪队列作为循环队列,CPU调度程序循环就绪队列,为每个进程分配不超过一个时间片的时间,所以只要短进程可以先完成,它们可以很快的离开系统。
多级反馈队列调度算法:并不会特意的区分短进程并优先选择它,对待短进程上和RR调度算法相似。
6.1、(1)互斥条件通过flag和turn变量的使用实现。如果两个进程将flag设为真,那么只有轮到的那个进程会成功进行。只有当一个进程更新turn值时,等待的那个进程才能进入它的临界区域。 (2)前进也是通过flag和turn实现的。如果一个进程想要进入它们的临界区域,它可以将它的flag设为真,然后进入临界区域。当退出它的临界区域,将turn设置为转向其他进程的值。如果这个进程想要在其他进程之前再次进入临界区域,它会不断重复进入临界区域,在退出时将turn置为转向另一个进程的过程。 (3)有限等待通过turn的使用来实现。假设两个进程想要进入临界区域,它们都将flag的值设为真,而只有轮到的那个线程可以执行,其他的线程处于等待状态。如果有限等待没有实现,那么当第一个进程重复“进入-退出”临界区域这一过程时,其他进程则必须无限等待下去。Dekker算法要求一个进程将turn设置为转向另一个进程的值,从而保证另一个进程接下来进入临界区域。 6.4、 自旋锁不适合在单处理器系统是因为从自旋锁中打破一个进程的条件只有在执行一个不同的进程时才能获得。如果这个进程没有闲置处理器,其他进程不能够得到这个机会去设定第一个进程进展需要的程序条件。在一个多处理器系统中,其他进程在其他处理器上执行,从而可以修改程序状态使得第一个进程从自旋锁中释放。 6.5、 如果一个用户级程序具有停止中断的能力,那么它能够停止计时器中断,防止上下文切换的发生,从而允许它使用处理器而不让其他进程执行。 6.6、 因为停止中断仅仅能够防止其他进程在一个中断不能实现的处理器上执行,而在其他处理器上能执行什么进程是没有限制的,所以进程停止中断并不能保证互斥进入程序状态,即中断在多处理器系统中是不够的。 6.16、 当执行管程的signal操作时,如果没有等待线程,那么系统会忽略signal操作,认为signal操作没有发生过。如果随后执行wait操作,那么相关的线程就会被阻塞。然而在信号量中,即使没有等待线程,每个signal操作都会导致相应的信号量值的增加,那么接下来的wait操作就会因为之前的信号量值的增加而马上成功进行.
7.1a、死锁的四个必要条件:互斥;占有并等待;非抢
文档评论(0)