还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
在多道程序和分时环境中,多个用户同时共享
1.1一个系统,这种情况导致多种安全问题列出此a.类的问题在一个分时机器中,能否确保像在专b.用机器上一样的安全度?并解释之Answer:a.窃取或者复制某用户的程序或数据;没有合理的预算来使用资源CPU内存,磁盘空间,外围设备b.应该不行,因为人类设计的任何保护机制都会不可避免的被另外的人所破译,而且很自信的认为程序本身的实现是正确的是一件困难的事
1.2资源的利用问题在各种各样的操作系统中出现试例举在下列的环境中哪种资源必须被严格的管理a大型电脑或迷你电脑系统b与服务器相联的工作站c手持电脑An swer:a大型电脑或迷你电脑系统内存和CPU资源,外存,网络带宽b与服务器相联的工作站内存和CPU资源c手持电脑功率消耗,内存资源
1.3在什么情况下一个用户使用一个分时系统比使用一台个人计算机或单用户工作站更好?Answer:当另外使用分时系统的用户较少时,任务十分巨大,硬件速度很快,分时系统有意义充分利用该系统可以对用户的问题产生影响比起个人电脑,问题可以被更快的解决还有一种可能发生的情况是在同一时间有许多另外的用户在同一时间使用资源当作业足够小,且能在个人计算机上合理的运行时,以及当个人计算机的性能能够充分的运行程序来达到用户的满意时,个人计算机是最好的,
1.4在下面举出的三个功能中,哪个功能在下列两种环境下,a手持装置⑹实时系统需要操作系统的支持?a批处理程序b虚拟存储器c分时An swer:对于实时系统来说,操作系统需要以一种公平的方式支持虚拟存储器和分时系统对于手持系统,操作系统需要提供虚拟存储器,但是的系统部件分层Answer:虚拟内存子系统和存储子系统通常是紧密耦合,并由于以下的相互作用需要精心设计的层次系统许多系统允许文件被映射到一个执行进程的虚拟内存空间另一方面,虚拟内存子系统通常使用存储系统来提供当前不在内存中的页止匕外,在刷新磁盘之前,更新的文件有时会缓冲到物理内存,从而需要认真协调使用的内存之间的虚拟内存子系统和文件系统
2.12采用微内核方法来设计系统的主要优点是什么?在微内核中如何使客户程序和系统服务相互作用?微内核方法的缺点是什么?An swer:优点主要包括以下几点a)增加一个新的服务不需要修改内核b)在用户模式中比在内核模式中更安全、更易操作c)一个简单的内核设计和功能一般导致一个更可靠的操作系统用户程序和系统服务通过使用进程件的通信机制在微内核中相互作用,例如发送消息这些消息由操作系统运送微内核最主要的缺点是与进程间通信的过度联系和为了保证用户程序和系统服务相互作用而频繁使用操作系统的消息传递功能
2.13模块化内核方法的什么方式与分层方法相似?什么方式与分层方法不同?An swer:模块化内核方法要求子系统通过创建的一般而言狭隘(从功能方面来说是揭露外部模块)的接口来相互作用分层内核方法在细节上与分层方法相似但是,分层内核必须要是有严格排序的子系统,这样的子系统在较低层次中不允许援引业务相应的上层子系统在模块化内核方法中没有太多的限制,模式在哪方面是随意援引彼此的是没有任何约束的
2.1414操作系统设计员采用虚拟机结构的主要优点是什么?对用户来说主要有什么好处?Answer:系统是容易被调试的,此外,安全问题也是容易解决的虚拟机同样为运作体系提供了一个很好的平台,因为许多不同的操作系统只可以在一个物理系统中运行
2.15为什么说一个JIT编译器对执行一个Java程序是有用的?Answer:Java是一种解释语言这就意味着Java虚拟机一次解释一个字节代码一般来说,绝大多数解释环境是比运行本地二进制慢,因为解释进程要求把每一个命令转化为本地机器代码一个JIT编译器把字节代码转换成本地机器代码,第一次这种方法是偶然碰到的这就意味着Java程序作为一个本地用途(当然,JIT的这种转换过程是要花费时间的,但并没有像字节代码花费的这么多)是非常重要的一种运行方式此外,JIT存储器编译代码以便能够在下一次需要时使用一个是被JIT运行的而不是传统的一般的解释运行的Java程序是非常快的
2.16在一个系统(例如VWware中,来宾作业系统和主机操作系统的关系是什么?在选择主机操作系统时哪些因素需要考虑?Answer:一个来宾作业系统提供它的服务通过映射到有主机操作系统提供的功能上一个主要的事情需要被考虑,为了能够支持与来宾作业系统相联系的功能,选择的主机操作系统,从系统调用接口而言,是否足够一般
2.17实验性的综合操作系统在内核里有一个汇编器为了优化系统调用的性能,内核通过在内核空间内汇编程序来缩短系统调用在内核必须经过的途径这是一种与分层设计相对立的方法,经过内核的途径在这种设计中被延伸了,使操作系统的构造更加容易分别从支持和反对的角度来综合设计方式对讨论这种内核设计和系统性能优化的影响An swer:综合是令人钦佩的由于这种性能通过即时复杂化取得了成功不幸的是,由于代码的流动很难在内核中调试问题这种复杂化是系统的详细的表现,让综合很难port(一个新的编译器必须写入每一种架构)
3.1论述短期,中期和长期调度之间的区别.Answers.短期调度在内存作业中选择就绪执行的作业,并为他们分配CPUob.中期调度作为一种中等程度的调度程序,尤其被用于分时系统,一个交换方案的实施,将部分运行程序移出内存,之后,从xx处继续执行c.长期调度(作业调度程序)确定哪些作业调入内存以执行.它们主要的不同之处是它们的执行的频率短期调度必须经常调用一个新进程,由于在系统中,长期调度处理移动的作业时,并不频繁被调用,可能在进程离开系统时才被唤起
3.2问描述一下内核在两个进程间进行上下文功换的动作.Answer:总的来说,操作系统必须保存正在运行的进程的状态,恢复进程的状态保存进程的状态主要包括W寄存器的值以及内存分配,上下文切换还必须执行一些确切体系结构的操作,包括刷新数据和指令缓存(书中答案)进程XX是由进程的PCB来表示的,它包括CPU寄存器的值和内存管理信息等当发生上下文切换时,内核会将旧进程的XX状态保存在其PCBxx然后装入经调度要执行的新进程的已保存的xx状态
3.3考虑1^(3机制考虑的RPC机制描述不可取的情况下可能出现或者不执行的“最多一次“或“到底一旦“语义说明在没有这些保障的情况下,可能使用的一种机制Answer:如果一个RPC机制无法支持无论是“最多一次”或“至少一次”的语义,那么RPC服务器不能保证远端程序不会引起多个事件的发生试想,如果一个远端程序在一个不支持这些语义的系统上从银行账户中撤回投资的资金很可能一个单一调用的远程过程会导致多种服务器的撤回如果一个系统不能支持这两种语义,那么这样一个系统只能安全提供远程程序,这些远程程序没有改变数据,没有提供时间敏感的结果,用我们的银行账户做例,我们当然需要“最多一次”或“至少一次”的语义执行撤销(或存款)然而,账户余额成其它账户信息的查询,如姓名,地址等,不需要这些语义
3.4图表
3.24里显示的程序,说明A行将会输出什么?Answer:当控制回到父进程时,它的值会保持在5,而子进程将更新并拷贝这个值
3.5问下面设计的好处和坏处分别是什么?系统层次和用户层次都要考虑到.A,对称和非对称通信B,自动和显式缓冲不需要提供分时系统批处理程序在两种环境中都是非必需的
1.5描述对称多处理SMP和非对称多处理之间的区别多处理系统的三个优点和一个缺点?Answer:SMP意味着所以处理器都对等,而且I/O可以在任何处理器上运行非对称多处理有一个主处理器控制系统,与剩下的处理器是随从关系主处理器为从处理器安排工作,而且I/O也只在主处理器上运行多处理器系统能比单处理器系统节省资金,这是因为他们能共享外设,大容量存储和电源供给它们可以更快速的运行程序和增加可靠性多处理器系统能比单处理器系统在软、硬件上也更复杂增加计算量、规模经济、增加可靠性
1.6集群系统与多道程序系统的区别是什么?两台机器属于一个集群来协作提供一个高可靠性的服务器的要求是什么?Answer:集群系统是由多个计算机耦合成单一系统并分布于整个集群来完成计算任务另一方面,多道程序系统可以被看做是一个有多个CPU组成的单一的物理实体集群系统的耦合度比多道程序系统的要低集群系统通过消息进行通信,而多道程序系统是通过共享的存储空间为了两台处理器提供较高的可靠性服务,两台机器上的状态必须被复制,并且要持续的更新当一台处理器出现故障时,另一台处理器能够接管故障处理的功能
1.7试区分分布式系统distribute system的客户机-服务器client-server模型与对等系统peer-to-peer模型Answer:客户机-服务器client-server模型可以由客户机和服务器的角色被区分在这种模型下,客户机向服务器发出请求,然后服务器满足这种请求对等系统peer-to-peer模型没有这种严格的区分角色,实际上,在系统中的所有结点被看做是对等的,而且这些结点既可以是客户机也可以是服务器,或者两这都是也许一个结点从另一个对等结点上请求一个服务,或者,这个结点满足在系统中的另一个结点的请求比如,一个系统中的结点共享烹饪方法在客户机-服务器client-server模型下,所有方法都被存储在服务器上如果一个客户机想要获得烹饪方法,它必须向那台服务器发出请求在对等系统peer-to-peer模型下,一个结点可以向另外的结点请求指定的烹饪方法存储了这种烹饪方法的那个结点或几个结点可以把烹饪的方法提供给发出请求的结点注意每个对等结点既可以扮演客户机发出请求,也可以扮演服务器提供请求
1.8如果一个由两个结点组成的集群系统正在运行一个数据库,试描述集群软件可以用哪两种方法管理存取磁盘的数据,并说明每种方法的优点和缺点Answer:两种方法非对称集群系统asymmetric clustering和并行集群系统parallel clustering.对于非对称集群系统,一个主机运行这个数据库,而其它主机只是监测这个数据库如果服务器出现故障,进行监测的主机就会转变成运行这个数据库的主机这是提供适当的冗余然而,它没有利用具有潜在处理能力的主机对于并行集群系统,数据库可以在两个并行的主机上运行在并行集群系统上实现的困难是提供一些分布式锁机制给共享磁盘上的文件
1.9网络计算机是怎样不同与传统的个人计算机的?试取出一些使用网络计算机的好处的方案Answer:网络计算机是基于一台核心的计算机作为其服务器同时,它也具有一个最小化的操作系统来管理这些资源另一方面,个人计算机必须在不依赖于核心计算机的基础上,能够独立提供所有被请求的功能在行政花费太高以及共享导致更高效的使用资源的情景下是精确的,在这些环境中网络计算机是理想的
1.10xx interupt的目的是什么?陷阱trap与xx的区别是什么?陷阱可以被用户程序user program有意地的产生吗?如果可以,那目的是什么?Answer:xx是一种在系统内硬件产生的流量变化xx操作装置是用来处理xx请求;然后返回控制xx的上下文和指令陷阱是软件产生的xxo xx可以被用来标志I/O的完成,从而排除设备投票站device polling的需要陷阱可以被用来调用操作系统的程序或者捕捉到算术错误
1.11内存存储是被用于高速的I/O设备,其目的是为了避免增加CPU的过度运行a设备的CPU接口是怎样与转换器transfer协作的?b当内存操作完全时,CPU是怎么知道的?c当DMA控制器正在转换数据时,CPU是被允许运行其它程序的这种进程与用户程序的运行冲突吗?如果冲突的话,试描述可能引起哪种冲突?Answer:CPU可以通过写数据到可以被设备独立存储的寄存器中来启动DMA操作当设备接收到来自CPU的命令时,启动响应的操作当设备完成此操作时,就xx CPU来说明操作已经完成设备和CPU都可以被内存同时访问内存控制器对这两个实体以公平的方式给内存总线提供存取CPU可能不能同时以很快的速度配给给内存操作,因为它必须去竞争设备而使得自己存取到内存总线中去
1.12一些计算机系统没有在硬件中提供个人模式(privileged modeo对于这种计算机系统来说,可能构成安全的操作系统吗?对可能和不可能两种情况分别给出理由An swer:一种类型处理器的操作系统需要在任何时候都被控制(或监测模式)有两种方法可以完成这个操作a.所有用户程序的软件翻译(像一些BASIC,Java,LISP systems)在软件中,软件解释程序能够提供硬件所不能提供的b.要求所有程序都用高级语言编写,以便于所以目标代码都被编译出来编译器将会产生硬件忽略的防护性检查(in-line或功能调用)
1.13给出缓存(caches)十分有用的两个理由他们解决了什么问题?他们引起了什么问题?如果缓存可以被做成装备想要缓存的容量(例如,缓存像磁盘那么大),为什么不把它做的那么大,其限制的原因是什么?Answer:当两个或者更多的部件需要交换数据,以及组成部件以不同的速度完成转换时,缓存是十分有用的缓存通过在个组成部件之间提供一个中间速度的缓冲区来解决转换问题如果速度较快的设备在缓存中发现它所要的数据,它就不需要再等待速度较慢的设备了缓存中的数据必须与组成部件中的要一致如果一个组成部件中的数据值改变了,缓存中的这个数据也必须更新在多进程系统中,当有不止一个进程可能进入同一个数据时,这就成了一个显著的问题一个组成部件将会被一个同等大小的组成部件所消除,但是只有当;(a)缓存和组成部件有相同状态存储能力(也就是,当断电的时候,组成部件还能保存它的数据,缓存也一样能保存它的数据),(b)缓存是可以负担的起的,因为速度更快的存储器意味着更高的价格
1.14试举例说明在下列的进程环境中,快速缓冲贮存区的数据保持xx的问题是怎样表明的?(a)单道程序系统(Single-processor systems)(b)多道程序系统Multiprocessor systemsc分布式系统Distribute systemsAnswer:在单道程序系统Single-processor systems中,当一个进程发布更新给快速缓冲贮存区的数据时,内存需要被更新这些更新一种快速的或缓慢的方式执行在多道程序系统Mulitiprocessor systems中,不同的进程或许在它的本地存储上存储相同的内存位置当更新发生时,其它存储的位置需要使其无效或更新在分布式系统Distribute systems中,快速存储区数据的协调不是问题,然而,当客户机存储文件数据时,协调问题就会被提及
1.15试描述一个机器装置为了阻止一个程序避免修改与其它程序有联系的内存而执行内存保护An swer:处理器可以追踪哪个位置是与每个进程相联系的以及限制进入一个程序的范围的外面位置信息与一个程序的内存范围有关,它可以通过使用库,限制寄存器和对每个进入内存的信息执行检查来维持其本身
1.16哪种网络结构最适合下列环境a一个寝室楼层b一个大学校园c一个州d—个国家Answer:a一个寝室楼层A LANb一个大学校园ALAN,possibly aWAN fora verylarge campuses.c一个州A WANd一个国家:A WAN
1.17列出下列操作系统的基本特点a.批处理b.交互式c.分时d.实时e.网络f.并行式g.分布式h.集群式i.手持式Answer:a.批处理具有相似需求的作业被成批的集合起来,并把它们作为一个整体通过一个操作员或自动作业程序装置运行通过计算机通过缓冲区,线下操作,后台和多道程序,运用尝试保持CPU和I/O一直繁忙,从而使得性能被提高批处理系统对于运行那些需要较少互动的大型作业十分适用它们可以被更迟地提交或获得b.交互式这种系统由许多短期交易构成,并且下一个交易的结果是无法预知的从用户提交到等待结果的响应时间应该是比较短的,通常为1秒左C.分时这种系统使用CPU调度和多道程序来经济的提供一个系统的人机通信功能CPU从一个用户快速切换到另一个用户以每个程序从xx中读取它的下一个控制卡,并且把输出的信息正确快速的输出到显示器上来替代用soopledcard images定义的作业d.实时经常用于专门的用途这个系统从感应器上读取数据,而且必须在严格的时间内做出响应以保证正确的性能e.网络提供给操作系统一个特征,使得其进入网络,比如;文件共f.并行式每一个处理器都运行同一个操作系统的拷贝这些拷贝通过系统总线进行通信g.分布式这种系统在几个物理处理器中分布式计算,处理器不共享内存或时钟每个处理器都有它各自的本地存储器它们通过各种通信线路在进行通信,比如一条高速的总线或一个本地的网络h.集群式集群系统是由多个计算机耦合成单一系统并分布于整个集群来完成计算任务i.手持式一种可以完成像记事本,email和网页浏览等简单任务的小型计算机系统手持系统与传统的台式机的区别是更小的内存和屏幕以及更慢的处理能力
1.18手持计算机中固有的折中属性有哪些?Answer:手提电脑比传统的台式PC机要小的多这是由于手提电脑比台式PC机具有更小的内存,更小的屏幕,更慢的处理能力的结果因为这些限制,大多数现在的手提只能完成基本的任务,比如记事本,email和简单的文字处理然而,由于它们较小的外形,而十分便于携带,而且当它们具备无线上网时,就可以提供远程的email通信和上网功能
2.1操作系统提供的服务和功能可以分为两个类别简单的描述一下这两个类别并讨论他们的不同点An swer:第一种操作系统提供的服务是用来保护在系统中同时运行的不同进程进程只被允许获得与它们地址空间有联系的内存位置同样,进程不允许破坏和其他用户有关的文件一个进程同样不允许在没有操作系统的干预下直接进入设备第二种服务由操作系统提供的服务是提供一种新的功能,而这种功能并不直接被底层的硬件支持虚拟存储器和文件系统就是由操作系统提供的这种新服务的实例
2.2列出操作系统提供的五项服务说明每项服务如何给用户提供便利说明在哪些情况下用户级程序不能够提够这些服务Answer:a.文件执行.操作系统一个文件的目录(或章节)装入到内存并运行一个用户程序不能被信任,妥善分配CPU时间b.I/O操作.磁盘,磁带,串行线,和其他装置必须在一个非常低的水平下进行通信用户只需要指定装置和操作执行要求,然后该系统的要求转换成装置或控制器的具体命令.用户级程序不能被信任只在他们应该获得时获得装置和只使用那些未被使用的装置c.文件系统操作.在文件创建、删除、分配和命名时有许多细节是用户不能执行的磁盘空间块被文件所使用并被跟踪删除一个文件需要清除这个文件的信息和释放被分派给这个文件的空间用户程序不仅不能够保证保护方法的有效实施,也不能够被信任只会分配空闲的空间和在删除文件是清空空间d.通信.信息在系统间交换要求信息转换成信息包,送到网络控制器中,通过通信媒介进行传播,并由目的地系统重新组装信息包调整和数据修改是一定会发生的止匕外,用户程序也许不能够协调网络装置的取得,或者接收完全不同的其他进程的信息包e.错误检测.错误检测在硬件和软件水平下都会发生在硬件水平下,所有数据转移都必须仔细检查以确保数据在运送中不会被破坏在媒介中的所有数据都必须被检查以确保他们在写入媒介时没有被改变在软件水平下,为了数据,媒介不需不间断的被检查例如,确保信息存储中被分配和还未被分配的空间块的数量和装置中所有块的数量的一致进程独立经常有错误(例如,磁盘中数据的破坏),所以必须有一个统筹的程序(操作系统)来处理各种错误同样,错误经过操作系统的处理,在一个系统中程序不再需要包含匹配和改正所遇可能错误的代码
2.3讨论向操作系统传递参数的三个主要的方法Answer:
1.通过寄存器来传递参数
2.寄存器传递参数块的首地址
3.参数通过程序存放或压进堆栈中,并通过操作系统弹出堆栈
4.4描述你怎样能够统计到一个程序运行其不同部分代码时,它的时间花费数量的数据图表,并说明它的重要性An swer:一个能够发布定期计时器打断和监控正在运行的命令或代码段当xx被进行时一个满意的配置文件,其中的代码块都应积极覆着被程序在代码的不同的部分花费时间一旦这个配置文件被获得,程序员可以尽可能的优化那些消耗大量CPU资源的代码段
5.5操作系统关于文件管理的五个主要活动是什么?Answer:
1.创建和删除文件
2.创建和删除目录
3.提供操作文件和目录的原语的支持
4.将文件映射到二级存储器上
5.在稳定(非易失的)的存储媒介上备份文件
2.6在设备和文件操作上用相同的系统调用接口的好处与不足是什么?An swer:每一个设备都可以被得到只要它是一个在文件系统的文件因此大多数内核通过文件接口处理设备,这样相对容易,加一个新的设备通过执行硬件确定代码来支持这种抽象的文件接口因此,这种方式不仅有利于用户程序代码的发展,用户程序代码可以被写入设备和文件用相同的方式,还有利于设备驱动程序代码,设备驱动程序代码可以书面支持规范定义的API.使用相同接口的缺点是很难获得某些设备档案存取的API范围内的功能,因此,结果或者是丢失功能或者是丢失性能但有些能够被克服通过使用ioctl操作,这个操作为了进程在设备上援引操作提供一个通用接口
2.7命令解释器的用途是什么?为什么它经常与内核是分开的?用户有可能通过使用由操作系统提供的系统调用接口发展一个新的命令解释器?Answer:命令解释器从用户或文件中读取命令并执行,一般而言把他们转化成系统调用它通常是不属于内核,因为命令解释会有所变动用户能够利用由操作系统提供的系统调用接口开发新的命令解释器这命令解释器允许用户创建、管理进程和确定它们通信的方法例如通过管道和文件所有的功能都被用户程序通过系统调用来使用,这个也可能有用户开发一个新的命令行解释
2.8通信的两种模式是什么?这两种模式的优点和缺点是什么?Answer:通信的两种模式是1共享内存,2消息传递这两种模式的最基本的不同是在它们的性能上一个内存共享块是通过系统调用创建的然而,一旦内存共享块在两个或更多的进程间建立,这些进程可以借助内存共享块来通信,不再需要内核的协助另一方面,当send和receive操作被调用时,信息传递通常包含系统调用因此,因为内核是直接的包含在进程间通信的,一般而言,它的影响比内存共享小然而,消息传递可以用作同步机制来处理通信进程间的行动也就是说,send和receive段可以用来协调两个通信进程的动作另一方面,内存共享没有提供这种同步机制的进程
2.9为什么要把机制和策略区分开来?Answer:机制和策略必须区分开来,来保证系统能够被很容易的修改没有两个系统的装置是完全相同的,所以每一个装置都想要把操作系统改为适合自己的当机制和政策分开时,政策可以随意的改变但机制还是不能改变这种安排提供了一个更灵活的制度
2.10为什么Java提供了从Java程序调用由C或C++编写的本地方法的能力?举出一个本地方法有用的例子Answer:Java程序的开发是用来作为I/O独立的平台因此,这种语言没有提供途径给许多特殊的系统资源,例如从I/设备读取为了运行一个系统特定的I/O操作,你必须用一种支持这些特性的语言例如C或C++写记住一个Java程序调用由另外一种语言编写的本地方法写将不再结构中立
2.11有时获得一个分层方法是有困难的如果操作系统的两个部件相互依存识别一个方案,在这个方案中并不非常清楚如何为两个作用紧密相连。