广工哲学原理课后答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2012 操作系统复习提纲
本来想搞好在共享的!没时间了!大家凑合着用吧!
立业
教材名称:《操作系统之哲学原理》
Please remember the title of the book during your preparation for the exam.
核心考点:
1.微内核操作系统
2.进程管理
3.线程模型,两种线程模型,与线程管理模型实现相关的各种概念
4.多道编程的好处,程序道数和吞吐量的关系,响应时间计算(不同的调度策略)
5.信号量、管程的非编程题
6.页式管理
7.同步/互斥喂金鱼问题
8.死锁算法,银行家算法,哲学家就餐问题
9.锁的实现
10.页面替换算法
11.段页式管理
12.磁盘参数计算
13.FAT文件系统
14.索引文件系统
15.文件系统相关的概念:文件夹、内存映射文件、访问效率、保证文件系统一致性的手段
Chapter 1:练习2,7
-2问题:你对操作系统和用户程序之间有什么看法?诠释你的想法。
答:在操作系统的上面是虚拟界面,其下面是物理机器。而物理机器下面是硬件,虚拟界面上面就是用户程序。显然,操作系统为用户程序提供了很好的虚拟界面,而应用程序很好滴在正界面上运行。1)本质上而言,OS也是个程序,用户程序也是个程序,两者扮演者调用与被调用的关系。这样理解,操作系统通过虚拟界面为用户程序提供各种服务,用户程序在运行过程中不断地使用OS提供个各种服务来完成自己的任务。这样而言,是用户程序调用OS提供的各种服务。
2)而另一种角度看,OS是主程序,用户程序是子程序。启动OS后,OS将控制交给了用户程序,用户程序执行完后将控制交回给OS,这样而言,是操作系统调用主程序用户程序执行完后在返回操作系统。
3)对于两种截然相反的观点,没有对错,只有好坏,这也是人造科学的主要特点。对次,我认为,OS和用户程序的关系不单是一种简单的调用与被调用的关系,还是一种相互协调的调用。形成一种非常复杂的动态关系。
-2问题:有人认为设备管理(设备驱动程序)应该由第三方提供,而不是OS的一部分。对此,你有什么看法?如何判断一个软件是不是属于操作系统?
答:1)一般操作系统只是为I/O管理提供接,那样子可以实现其屏蔽设备差异性和提供并发访问。本质上,设备驱动程序是常驻内存低级硬件程序共享库。从理论上讲,所有的硬件设备都需要安装相应的驱动程序才能正常工作。但像CPU、内存、主板、软驱、键盘、显示器等设备却并不需要安装驱动程序也可以正常工作,而显卡、声卡、网卡等却一定要安装驱动程序,否则便无法正常工作。这是为什么呢?这主要是由于这些硬件对于一台个人电脑来说是必需的,所以早期的设计人员将这些硬件列为BIOS能直接支持的硬件。换句话说,上述硬件安装后就可以被BIOS和操作系统直接支持,不再需要安装驱动程序。从这个角度来说,BIOS也是一种驱动程序。所以设备驱动有多种,如官方版、第三方版、微软认证版、发烧友修改版等
2)要界定一个软件是不是操作系统的那得先清楚OS是什么。OS扮演的是一个管理者和魔术师的角色,所以他能够全局地掌握计算机局势,管理计算机的资源,为用户程序提供服务,并且将复杂的事情简单化。对此,OS 大概划分了几大领域:CPU管理、内存管理、外存管理、I/O管理。但是不是说每一个都是很清晰地划定界限的。
更多的是相互协作,而且分别在不同的态势下运行的。所以说,基本满足OS的要求的都可以放在内核态,其他的可以归属于用户态。那样会比较合理。
Chapter 2:练习3,4,7,9
-3问题:计算机有过去的单一操心到终端到现在的个人,似乎人类在兜圈子了。这种否定之否定的观点。你何解?答:对此,我个人观点是,不算兜圈子。这是一个螺旋上升的发展方式。也是任何事物大发展趋向。从单一的操作员到控制端,再到现在的个人机都是需求而导向的发展。其否定之否定,并不是完全地否定。而是在否定前单一操作员的基础上提炼发展出终端控制,再到个人机。当然,从另一个角度而言,这是一种兜圈子的。在单一操作员可以直接发展到个人机,但是人类没那么聪明,只能在探索中发展改变。所以,这种否定之否定的发展策略是必须的,也是一种能可持续发展的根本!
-4问:对OS未来的看法。
答:
-7问:没有OS的计算机是废铁,早期的计算机没有OS也能运转,怎么理解?
答:确实,没有OS的计算机就是废铁,即使是早期的计算机没有OS,第一阶段时的状态机是有人工地进行操作,那也是一种操作系统,即那时人就是操作系统。到了第二阶段的是人机交互的操作系统。然后再渐渐地发展的。
-9问:MACH提出的微内核操作系统因为运行效率低下没被商业化,那为什么效率低下呢?
???
Chapter 3:练习3,7,9,11
-3问:内核程序可以访问任何资源的权限对操作系统安全造成严重的威胁,你怎么看?
答:认同这种观点。运行在内核态的程序的可靠性和安全性和必要,否则会造成威胁。所以要求在内核态运行的程序可以访问更多的资源但是也要求可靠性、安全性高,那么维护管理比较复杂。
-7问:操作系统调用和壳之间的关系。
答:壳(Shell)是方便那些不会编程的用户提供的一中服务,每一中系统调用都提供某种壳,这个壳是覆盖在操作系统上的用户界面,即是图形界面,又是文本界面。用户在这个界面上输入命令,操作系统折执行这些命令。但是,这个命令不是直接调用操作系统,而是调用Utilities,Utilities类似于C语言的库函数,有Utilities调用系统服务。-9问fork是如何实现一次调用两次返回的?它有必要吗?为什么?
答:一次返回值为0,表明是子进程(创建新进程),对应if-else复合语句中的if部分;另一次是返回值不是0,表明是父进程,对应if-else符合语句中的else部分,而这个返回值就子进程的进程ID,也就是fork 的if-else的if和else部分在fork完成后都执行。但是为什么fork能返回两个值进行两次呢?那时因为fork创建一个和自己完全一样的进程。在fork系统调用后,我们面对的是两个进程,而不是一个进程,这两个进程的程序代码时一样的,也就是其中一个执行if部分后,在另一个进程执行else部分。因此,从两个进程来看分别执行,都有自己的调用栈,是没有矛盾的!
-11问:内核态的特权是如何实现的?