计算机操作系统(第三版西电)复习提纲及重点习题注意:1)“本章要点”部分,用红字标注的不是期末考试出题范围。2)“习题部分”用蓝字标注的是重点习题,期末考试50%的题目是这些习题的原题。红字标注的习题期末考试不考,仅供考研的同学参考。3)大部分习题答案只给出要点,同学们可以自行适当补充,但一定要简明扼要。4)如“本章要点”部分用红字标注的非考试内容,在“习题”部分有相关的重点习题,则对该部分内容只需做该习题即可。----------------------------------------------------------------第一章本章概略叙述了操作系统的历史、功能、体系结构,属于常识性的知识。本章不指定要点,只需完成以下习题即可。教材习题(P33)1.设计现代OS的主要目标是什么?答:(P1-2)方便性,有效性,可扩充性和开放性.2.OS的作用可表现为哪几个方面?答:P2-3a.OS作为用户与计算机硬件系统之间的接口(用户观点);b.OS作为计算机系统资源的管理者(设计者观点);c.OS作为扩充机器.(虚拟机观点)3.为什么说OS实现了对计算机资源的抽象?答:P3。抽象,可以理解为“简单明了的通用性”。OS隐藏了多变的、琐碎硬件的细节,为用户提供了简单的、基本不随硬件变化而变化的操作方式。4.试说明推动多道批处理系统形成和发展的主要动力是什么?答:P7-8。提高计算机CPU、内存资源利用率和系统吞吐量的需要。5.何谓脱机I/O和联机I/O?答:P6。a.脱机(Off-Line)I/O是将用户程序和数据在一台外围机的控制下进行I/O,I/O计算机操作系统(第三版西电)复习提纲及重点习题时可以不连接主机。b.若这种I/O在主机控制下进行则称之为联机I/O。c.教材第5章还介绍了一种假脱机技术----SPOOLING,是模拟脱机的虚拟设备技术,主要用于虚拟打印机。6.试说明推动分时系统形成和发展的主要动力是什么?答:P9-P11。计算机最早主要用于科学计算,用于事务处理后(最早用于火车售票),用户需要人机交互和即时响应性,于是出现了分时系统。可以看到需求是技术的推动力。7.实现分时系统的关键问题是什么?应如何解决?答:P11-12。a.关键问题:及时接收,及时处理;b.对于及时接收,只需在系统中设置一多路卡,多路卡作用是使主机能同时接收用户从各个终端上输入的数据;对于及时处理,应使所有的用户进程都进入内存,在一个的时间段内,能使每个就程都轮换运行一次.8为什么要引入实时操作系统?答:P11-12。因为工业控制、国防、航空航天等很多领域存在实时信息处理领域的需要.9什么是硬实时和软实时任务?请举例说明。答:P12。硬实时对任务的截止时间有严格要求,超过截止时间任务即算失败,比如雷达、导弹控制系统。软实时对任务的截止时间要求较宽松,比如在线视频播放。一般来说,通用操作系统(Windows,linux,UNIT等)不支持硬实时,只支持软实时,有些嵌入式操作系统可以支持硬实时。10.在8位和16位(PC)微机中,占据统治地位的是什么操作系统?答:CP/M,MSDOS等。这两种操作系统是单用户、单任务的,主要用来管理文件和磁盘,现已成历史。11.试列出Windows的5个主要版本,并分别说明较其前一版本有何改进。答:有兴趣的同学可以上网查。Windows有几个历程碑:计算机操作系统(第三版西电)复习提纲及重点习题Windows3.X,非抢占式多任务,GUI,单用户。Windows95/98,抢占式多任务,GUI,单用户。WindowsNT,是微软第一个服务器版OS,后来发展成WindowsServer系列。WindowsXP,全面支持互联网、娱乐、单用户。。。。。。12.试从交互性、及时性、可靠性方面,将分时系统及实时系统进行比较。答:从对时间的要求看,分时系统实际上也是个软实时系统(定时切换),所以在及时性、可靠性方面与软实时差不多,但及时性肯定不如硬实时,对可靠性的要求也不如硬实时高(但硬实时对可靠性要求太高,不易满足)。另外,一般来说,分时系统的交互性要好于实时系统,因为分时系统就是为了交互的需求而出现的。13OS具有哪几大特征?它的最基本特征是什么?答:P14-18。a.并发(Concurrence),共享(Sharing),虚拟(Virtual),异步性(Asynchronism).b.其中最基本特征是并发和共享.14处理机管理具有哪些功能?它们的主要任务是什么?15内存管理有哪些主要功能?它们的主要任务是什么?16设备管理有哪些主要功能?其主要任务是什么?17文件管理有哪些主要功能?其主要任务是什么?这4道题虽然不是重点,但同学们还应该做一下,对操作系统“四大子系统”的功能有个整体的了解。18是什么原因使(多道)操作系统具有异步性特征?答:P17-18,及P36-37都解答了这个问题。这个问题较重要,说明了单道程序和多道程序运行的差别。a.多道程序执行结果可能是不确定的(比如说对共享变量的访问),即程序是不可再现的。解决这个问题主要靠进程的互斥。b.多道程序环境下,虽然任一个程序都有确定的运行顺序(有明确的前驱---后继),但多个程序间的执行顺序以及完成每道程序所需的时间都是不确定的,这取决于CPU的调度策略、进程间的同步关系(比如生产者消费者问题)等因素,计算机操作系统(第三版西电)复习提纲及重点习题这些因素在单道程序环境下都不存在。解决这个问题主要靠进程同步。19-24题:这几道题的答案都在1.5小节“OS结构设计”。这一小节讲了操作系统宏观的体系结构,这些知识也适合于一般的复杂软件。但教材的叙述有明显的问题:没有把操作系统的“内核”结构,与操作系统的“整体(内核+外围)”分开讲。操作系统的“内核”结构只有两种:微内核与结构化分层结构。面向对象、客户服务器模式等不适合于OS内核。补充习题1从程序员的角度,了解高级语言库(函数库、类库)、系统调用库(systemcall)、系统服务(systemservice)、OS核心之间的关系。答:这个问题是比较重要的,我在课堂上反复讲过。1)现代的通用操作系统,一般是不允许程序员接近其核心的。程序员怎样使用OS的功能呢?2)核心提供一组系统服务(systemservice),系统服务工作在系统态,一些指令时受保护的(特权指令),不允许程序员直接使用。3)OS提供一组系统调用库(systemcall),一般是C语言函数的形式,比如WIN32API。程序员可以通过调用这些库函数,这些库函数再调用系统服务(systemservice),把结果返回给程序员。需要注意的是:系统调用库工作在用户态,系统服务工作在内核态,两者调用—返回时,OS要进行状态切换。4)系统调用库(systemcall)是程序员所能直接访问的OS最底层了,大多数程序员是通过高级语言库(函数库、类库)去间接使用系统调用库的,这样更简单一些,但很显然效率不够好。5)系统调用库的使用相当繁杂,因此程序员可以使用C/C++、JAVA等高级语言里函数库、类库中的一部分函数或类(主要是与I/O有关的函数或类)调用操作系统的功能,当程序员调用这些函数或类后,系统(高级语言运行环境或操作系统)将其转换为系统调用—系统服务,一层层的调用OS内核功能,然后再一层层返回。2从用户角度,了解用户命令、系统服务(systemservice)、OS核心之间的关系。答:用户命令可分为字符命令和GUI命令2种,无论发出何种命令,都被OS外围的一个“命令解释程序(比如Windows的command.com,UNIT/LINUX的SHELL)程序”截获,变换成相应的系统服务(systemservice)去调用OS的核心,然后返回。用户命令是不能直接调用OS核心的。计算机操作系统(第三版西电)复习提纲及重点习题3.怎样看待操作系统的开销?答:OS为了管理硬件等资源,必需付出必要的“管理成本”—开销,比如进程调度。有时用纯软件方案“成本”太高,不得不加硬件,比如分页内存、虚拟内存、一些CACHE技术等等。当软件和硬件“成本”都太高时,不得不放弃一些好的方法,比如银行家算法。操作系统内核程序本身也是进程,本身就是开销。4有人说某操作系统是多用户多任务的,这是什么意思?答:多用户代表多个用户可同时登录使用,分时系统(UNIX)就是典型的多用户操作系统。多任务是多道程序(或多进程)并发的。5Windows有一个终端仿真程序,可以将本机仿真成主机终端登录远程主机,这个程序的名字叫什么?答:telnet6有人说设计PC机的单用户操作系统,CPU的利用率不重要,怎么理解此观点?答:多道程序设计可提高CPU的利用率,但在PC机中操作系统中,提高CPU利用率只是手段而不是目地,单用户操作系统CPU调度的主要的目地是方便用户同时运行多个任务,及快速响应用户请求。7为什么通用操作系统一般不支持硬实时?答:通用操作系统支持的应用种类太多,内部构造太复杂。比如CPU调度,要考虑公平性因素,为各类进程服务,很难以最优先的次序满足硬实时要求。在中断响应机制、进程上下文切换等操作中,时间开销也是无法准确预测的,不能满足硬实时要求。通用操作系统一般为分层设计,这降低了效率,也不能满足硬实时要求。计算机操作系统(第三版西电)复习提纲及重点习题注意:1)“本章要点”部分,用红字标注的不是期末考试出题范围。2)“习题部分”用蓝字标注的是重点习题,期末考试50%的题目是这些习题的原题。红字标注的习题期末考试不考,仅供考研的同学参考。3)大部分习题答案只给出要点,同学们可以自行适当补充,但一定要简明扼要。4)如“本章要点”部分用红字标注的非考试内容,在“习题”部分有相关的重点习题,则对该部分内容只需做该习题即可。------------------------------------------------------------第二章要点这一章和第3章是本课程最重要的两章。2.1进程的基本概念本小节重点内容是进程的概念、进程的三种状态及转换(围绕P38图2-5理解)、进程控制块FCB的概念及作用、进程就绪队列和阻塞(等待)队列的概念。其它内容作一般性的了解即可。2.2进程控制掌握原语的概念。其它内容作一般性的了解即可。2.3进程同步这一小节是至关重要的,也是相当难的。(1)P47-50,临界资源问题、临界区的概念、同步机制应遵循的规则。(2)P50,整型信号量原语的含义,及其缺点。(3)P51,记录型信号量原语的含义,特点,及其优点(与整形信号量对比)。(4)P52-53AND型信号量和信号量集,一般性了解。(5)P532.3.3信号量的应用,一般性了解。(6)P55管程,一般性了解。计算机操作系统(第三版西电)复习提纲及重点习题2.4经典进程的同步问题熟练掌握用记录型信号量解生产者—消费者、哲学家进餐、读者--写者问题。其它解法(AND信号量、信号量集、管程等)可以不看。2.5进程通信:一般性了解。2.6线程概念性的掌握什么是线程、线程与进程主要的异同、线程的状态、内核线程、用户线程。对于软件班和数学班的同学,上述概念将结合实验考核,二学历班的同学无此要求。教材习题1什么是前驱图?为什么要引入前驱图?答:P35。前驱图是一个有向无循环图,用于描述进程之间执行的前后关系。引入前驱图可以比较直观的描述多道程序进程之间的不确定(异步)关系。2试画出下面四条语句的前驱图:S1:a=x+y;S2:b=z+1;S3:c=a-b;S4:w=c+1答:参考P36图2-4。根据变量赋值的顺序,有(S1,S2)-S3-S43.程序并发执行为什么会产生间断性特征?答:P36。因为程序在并发执行过程中存在相互制约性(同步要求),另外进程时而要求使用CPU、时而I/O也会造成进程间断。4.程序并发执行为何会失去封闭性和可再现性?答:P37。多个进程共享系统中的各种共享资源(可以表示为共享变量或共享内存),一方面资源状态可由多个进程来改变,另一方面处置不当可能引起共享变量出错(需要互斥来解决)