广工哲学原理课后答案

上传人:xzh****18 文档编号:35523948 上传时间:2018-03-17 格式:DOC 页数:9 大小:53.50KB
返回 下载 相关 举报
广工哲学原理课后答案_第1页
第1页 / 共9页
广工哲学原理课后答案_第2页
第2页 / 共9页
广工哲学原理课后答案_第3页
第3页 / 共9页
广工哲学原理课后答案_第4页
第4页 / 共9页
广工哲学原理课后答案_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《广工哲学原理课后答案》由会员分享,可在线阅读,更多相关《广工哲学原理课后答案(9页珍藏版)》请在金锄头文库上搜索。

1、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.段页式

2、管理12.磁盘参数计算13.FAT 文件系统14.索引文件系统15.文件系统相关的概念:文件夹、内存映射文件、访问效率、保证文件系统一致性的手段Chapter 1:练习:练习 2,7-2 问题:你对操作系统和用户程序之间有什么看法?诠释你的想法。答:在操作系统 的上面是虚拟界面,其下面是物理机器。而物理机器下面是硬件,虚拟界面上面就是用户程序。显然,操作系统为用户程序提供了很好的虚拟界面,而应用程序很好滴在正界面上运行。1)本质上而言,OS也是个程序,用户程序也是个程序,两者扮演者调用与被调用的关系。这样理解,操作系统通过虚拟界面为用户程序提供各种服务,用户程序在运行过程中不断地使用 OS 提

3、供个各种服务来完成自己的任务。这样而言,是用户程序调用 OS 提供的各种服务。2)而另一种角度看,OS 是主程序,用户程序是子程序。启动 OS 后,OS 将控制交给了用户程序,用户程序执行完后将控制交回给 OS,这样而言,是操作系统调用主程序用户程序执行完后在返回操作系统。3)对于两种截然相反的观点,没有对错,只有好坏,这也是人造科学的主要特点。对次,我认为,OS 和用户程序的关系不单是一种简单的调用与被调用的关系,还是一种相互协调的调用。形成一种非常复杂的动态关系。-2 问题:有人认为设备管理(设备驱动程序)应该由第三方提供,而不是 OS 的一部分。对此,你有什么看法?如何判断一个软件是不是

4、属于操作系统?答:1)一般操作系统只是为 I/O 管理提供接,那样子可以实现其屏蔽设备差异性和提供并发访问。本质上,设备驱动程序是常驻内存低级硬件程序共享库。从理论上讲,所有的硬件设备都需要安装相应的驱动程序才能正常工作。但像 CPU、内存、主板、软驱、键盘、显示器等设备却并不需要安装驱动程序也可以正常工作,而显卡、声卡、网卡等却一定要安装驱动程序,否则便无法正常工作。这是为什么呢? 这主要是由于这些硬件对于一台个人电脑来说是必需的,所以早期的设计人员将这些硬件列为 BIOS 能直接支持的硬件。换句话说,上述硬件安装后就可以被 BIOS 和操作系统直接支持,不再需要安装驱动程序。从这个角度来说

5、,BIOS 也是一种驱动程序。所以设备驱动有多种,如官方版、第三方版、微软认证版、发烧友修改版等2)要界定一个软件是不是操作系统的那得先清楚 OS 是什么。OS 扮演的是一个管理者和魔术师的角色,所以他能够全局地掌握计算机局势,管理计算机的资源,为用户程序提供服务,并且将复杂的事情简单化。对此,OS大概划分了几大领域:CPU 管理、内存管理、外存管理、I/O 管理。但是不是说每一个都是很清晰地划定界限的。更多的是相互协作,而且分别在不同的态势下运行的。所以说,基本满足 OS 的要求的都可以放在内核态,其他的可以归属于用户态。那样会比较合理。Chapter 2:练习:练习 3,4,7,9-3 问

6、题:计算机有过去的单一操心到终端到现在的个人,似乎人类在兜圈子了。这种否定之否定的观点。你何解?答:对此,我个人观点是,不算兜圈子。这是一个螺旋上升的发展方式。也是任何事物大发展趋向。从单一的操作员到控制端,再到现在的个人机都是需求而导向的发展。其否定之否定,并不是完全地否定。而是在否定前单一操作员的基础上提炼发展出终端控制,再到个人机。当然,从另一个角度而言,这是一种兜圈子的。在单一操作员可以直接发展到个人机,但是人类没那么聪明,只能在探索中发展改变。所以,这种否定之否定的发展策略是必须的,也是一种能可持续发展的根本!-4 问:对 OS 未来的看法。答:-7 问:没有 OS 的计算机是废铁,

7、早期的计算机没有 OS 也能运转,怎么理解?答:确实,没有 OS 的计算机就是废铁,即使是早期的计算机没有 OS,第一阶段时的状态机是有人工地进行操作,那也是一种操作系统,即那时人就是操作系统。到了第二阶段的是人机交互的操作系统。然后再渐渐地发展的。-9 问:MACH 提出的微内核操作系统因为运行效率低下没被商业化,那为什么效率低下呢??Chapter 3:练习:练习 3,7,9,11-3 问:内核程序可以访问任何资源的权限对操作系统安全造成严重的威胁,你怎么看?答:认同这种观点。运行在内核态的程序的可靠性和安全性和必要,否则会造成威胁。所以要求在内核态运行的程序可以访问更多的资源但是也要求可

8、靠性、安全性高,那么维护管理比较复杂。-7 问:操作系统调用和壳之间的关系。答:壳(Shell)是方便那些不会编程的用户提供的一中服务,每一中系统调用都提供某种壳,这个壳是覆盖在操作系统上的用户界面,即是图形界面,又是文本界面。用户在这个界面上输入命令,操作系统折执行这些命令。但是,这个命令不是直接调用操作系统,而是调用 Utilities,Utilities 类似于 C 语言的库函数,有 Utilities 调用系统服务。-9 问 fork 是如何实现一次调用两次返回的?它有必要吗?为什么?答:一次返回值为 0,表明是子进程(创建新进程) ,对应 if-else 复合语句中的 if 部分;另

9、一次是返回值不是 0,表明是父进程,对应 if-else 符合语句中的 else 部分,而这个返回值就子进程的进程 ID,也就是 fork 的 if-else 的 if和 else 部分在 fork 完成后都执行。但是为什么 fork 能返回两个值进行两次呢?那时因为 fork 创建一个和自己完全一样的进程。在 fork 系统调用后,我们面对的是两个进程,而不是一个进程,这两个进程的程序代码时一样的,也就是其中一个执行 if 部分后,在另一个进程执行 else 部分。因此,从两个进程来看分别执行,都有自己的调用栈,是没有矛盾的!-11 问:内核态的特权是如何实现的?答:首先明白操作系统是怎么对

10、一个程序的限制,才能明白怎么实现内核态和用户态。要限制一个程序对资源的使用,程序每发出一条指令都要进程检查才能执行,这种检查就是地址翻译。通过地址翻译的控制来控制对资源的使用。所以内核态的实现时,当系统处于内核态的时候,内核程序可以绕过内存地址翻译而直接执行特权指令。WednesdayChapter 4:练习:练习 1,2,8,10,12-1 问:发明进程的根本动力是什么,它与进程是什么关系?答:进程是为了实现多道程序设计而产生的,它是程序的一次执行,是放在内存中的程序。追求效率,第一阶段的操作系统是单一操作员进行控制终端的、批处理效率低下的问题,是 CPU 使用的效率不高,为了提高效率,人们

11、将多个程序同时加载到计算机里面,并发执行。这些同时存在计算机的程序就是进程。让每一个用户都感觉自己又自己的 CPU。追求高效率导致进程的产生,进程实现了高效率的使用宗旨。-2 问:进程给我们带来最大的好处是什么?它有什么缺点?答:优点:1)提高 CPU 的运行效率,或者说是提高了系统的吞吐量;2)改善系统的响应时间。缺点:1)同一时间只能种同一件事情;2)阻塞,如有不需要数据部分也无法执行-8 问:进程管理的两个重要考虑是公平和效率除此之外,还要什么因素考虑吗?答:优先级,重要的任务优先!-?补充?-10 问:多道编程只能提高 CPU 的效率吗?为什么?答:不是的!当多道编程的度数的增加,CP

12、U 的利用率的增长速率就降低。3 个进程 CPU 是 48.9%,4 个进程的CPU 利用率是 73.8%,5 个是 67.2%,6 个是 73.8%,7 个是 80%。逐渐地提升幅度降低。直到某个临界点就是多道编程的极限。然后再添加度数就会降低 CUP 的利用率。所以说不是都到编程总能提高 CPU 的使用率的!-12 问:分析内核态下的进程通常共享一个地址空间这是为什么?答:内核态下只有操作系统本身能进行调度,用户态无法达到。内核态程序具有访问所有资源的权限,所有地址空间对内核态来说都是透明的,而且内核状态下操作系统本身可以按部就班运行而不发生错误,共享一个地址空间使得系统运行更高效。Cha

13、pter 5:了解各种进程调度算法,练习:了解各种进程调度算法,练习 4,5,7,8,12,13,14-4 问:如果想让某个进程获得 50%的运行机会,那么该使用哪种调度策略?答:首先明白进程调度的目的是:极小化响应时间、极大化系统吞吐量、保持系统的各个功能处于繁忙状态和提供貌似公平的机制。实现方法有:FCFS(先来先服务) 、时间片轮转算法、短任务优先、优先级调度、混合调度、保证调度、彩票调度、用户公平调度,还有实时调度、EDF 调度、RMS 调度算法等等。而其中能达到保证 50%的CPU 时间的是彩票调度-5 问:P92答:FCFS 调度情况:C(1+9)*10=100ms A100+50

14、ms B 100+50+100ms 这样系统的响应时间是:250ms+300ms时间片轮转算法调度:时间片大小为 10ms : (B-10ms -A-10ms-C-10ms)*5 次 -(A 10ms -C 10ms)*5 次 系统响应总时间=150ms+100ms=250ms-7 问:优先级倒挂是什么?有什么危害?答:-8 问:优先级倒挂的 3 中方法,哪种最优?答:-12 问:P92答:-13:问:答:-14 问:答:Chapter 6:PassThursdayChapter 7:线程模型(内核态:线程模型(内核态/用户态)用户态) ,调度器激活,练习:,调度器激活,练习:2,3,6,9-

15、2 问:用户态线程实现由于不能应对阻塞操作,有人为其实没有任何用处的,你怎么认为?答:用户态线程解决阻塞问题是很麻烦的,虽然当发生阻塞时可以通过激活调度器来实现,但是要修改操作系统,而且违反层次设计的原则,所以没有被商业化。但也并非一无是处的,用户态线程的实现要执行系统调度器进行切换线程,这样很灵活,操作系统无需知道线程的存在;此外,线程切换得快,无需进入内核态;CPU 的运行效率很高;用户编程简单,复杂性的东西交给 OS 处理。凡事有阴阳,当然也有缺点的,线程切换要在内核下执行,要开锁;线程控制块要内核空间,导致空间溢出;大大增加了程序员的工作量。-3 问:调度激活器是一种良好的解决用户态线

16、程问题的方案吗?它为什么没有得到商业应用?答:不是!如果该进程只有一个线程,该线程阻塞了,那么控制权将交回给操作系统,从而切换到别的进程。此外,需要修改操作系统,使其在进行进程切换时,不是立即切换到别的进程,而是调用受阻进程的执行系统。而且这种做法违反了我们系统设计的层次架构原则,很容易给黑客攻击者提供系统缺口。所以没有商业化。-6 问:一个进程中的不同线程如何进行共享信息?这种共享可以再不同进程的不同线程进行直接的实现吗?答:同一进程下的不同线程进行共享信息是通过公用该进程的进程空间。这些共享的信息存放在进程控制块中而不是存放早线程控制块中,其中包括有:地址空间、全局变量、打开的文件、子进程、闹铃、信号及信号服务程序、记账信息等等。当其他进程下的线程想共享信息的话,这种方式不可以。不同的进程有不同的地址空间,不可能两个进程共享一个地址空间,但是可以共享一些系统的资源,从而实现让线程共享资源。-9 问:解释包裹在线程实现上的作用。其使用价值高吗?答:将系统调用包裹起来,用户程序使用系统调用时需要通过包裹,包裹内有代

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 计算机原理

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号