《操作系统原理》孟庆昌等编著机械工业出版社2010.7《计算机操作系统(第3版)》汤小丹、梁红兵、哲凤屏、汤子瀛编著西安电子科技大学出版社2007.8现代操作系统(原书第3版)(荷兰)塔嫩鲍姆(Tanenbaum.A.S)译者:陈向群马洪兵机械工业出版社2009.7操作系统设计与实现(第3版)塔嫩鲍姆等译者:陈渝谌卫军电子工业出版社2007.3计算机系统是由_____和_____组成的硬件是软件建立与活动的基础软件是对硬件进行管理和功能扩充计算机硬件结构由五大功能部件组成,即:它们经由__________连接在一起,实现彼此通信。硬件软件运算器、控制器、存储器、输入设备和输出设备。系统总线现代计算机硬件结构基本沿用___________体系结构,采用______________工作原理冯·诺依曼存储程序存储程序指令指令集(指令系统)特权指令与非特权指令运行模式:•内核态(核心态、系统态、管态)•用户态(目标态、目态)计算机加电启动,CPU进入实模式ROM-BIOS起始位置代码加电自检程序(POST)按CMOS中设置的启动顺序,读入系统引导区程序并将系统控制权交给引导装入程序引导扇区,主引导记录块MBR找到活动分区将引导程序读入内存运行系统引导程序加载操作系统内核Setup设置系统参数(内存、磁盘等)、检测和设置显示器等进入保护模式,转到操作系统内核开头,执行内核初始化初始化CPU本身(内核页表、启动页面映射)初始化基础设施(内存边界、内存页面等)初始化操作系统上层部分(外设、驱动等)系统运行的设置(默认执行级别、激活交换分区、建立用户工作环境、显示界面)账号和密码验证抽象虚拟机重叠监视各种资源,记录它们的状态实施某种策略以决定谁获得资源,何时获得,获得多少分配资源回收资源此观点占主导地位用户观点:接口和各种资源管理服务•使用方便、功能强、效率高、安全可靠、易于安装和维护、便宜系统观点:管理计算机各种硬件、软件资源的分配•使得资源的利用率高效且公平操作系统是控制和管理计算机系统内各种硬件和软件资源,有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。操作系统是系统软件基本职能是控制和管理系统内各种资源提供众多服务,方便用户使用,扩充硬件功能高效性方便性安全性鲁棒性(强健性)移植性软件分类:系统软件、应用软件、支撑软件并发性•并发和并行•宏观和微观共享性•互斥共享和同时共享•宏观和微观异步性(不确定性)•走走停停•宏观和微观抽象性(虚拟性)•复杂到简单服务项目①程序执行②I/O操作③文件系统管理④出错检测⑤通信⑥资源分配⑦统计⑧保护服务方式①系统调用进程控制、文件管理、设备管理、信息维护、通信②系统程序(系统实用程序或应用程序)文件管理、状态信息、文件修改、程序设计语言的支持、程序装入和执行、通信命令解释程序shell(内置或外置)内存分配地址映射内存保护内存扩充(虚拟内存技术)作业和进程调度进程控制进程通信文件存储空间的管理文件操作的一般管理目录管理文件的读写管理和存取控制缓冲区管理设备分配设备驱动设备无关性程序接口命令行接口图形用户接口GUI从无到有硬件和软件相互促进从简单到复杂从低级到高级1946-20世纪50年代末第一代计算机,无操作系统人工干预:程序纸带(卡片)-输入机-计算机(控制台开关启动、监视、控制)-取走结果-缷下纸带(卡片)手工操作慢而CPU处理速度快严重缺点:资源浪费、使用不便人工操作-自动转换(监督程序,OS的雏形)(1)早期联机批处理•单道批处理•作业输入、调入内存、结果输出都在CPU控制下(2)早期脱机批处理•卫星机负责I/O、CPU负责快速计算,可并行•解决人机矛盾、CPU与I/O设备速率不匹配矛盾•促进软件发展,出现监督程序、汇编程序、编译程序和装配程序等20世纪60年代内存中同时存放多道程序,在管理程序的控制下交替执行,共享CPU和其他资源优点:•CPU、内存、设备等系统资源利用率提高了•系统吞吐量(单位时间内,计算机完成的总工作量)增加了•从0到1、从1到2是质变,从2到=3是量变缺点:系统变复杂了,要解决很多问题•内存分配和保护•CPU的调试和作业的合理搭配•I/O设备的共享和方便使用•文件的存放和读写操作及安全性问题等分时系统实时系统个人OS网络OS多CPUOS嵌入式OS分布式OS根据各操作系统具备的功能、特征、规模和提供的应用环境等方面的差别,可以划分为最基本的类型多道批处理系统、分时系统和实时系统。20世纪60-70年代作业,是用户定义的、由计算机完成的工作单位。它通常包括一组计算机程序、文件和对操作系统的控制语句。利用作业控制语言(JCL)书写的作业控制语句标识一个作业的存在,描述它对操作系统的需求。作业控制语句可由作业控制卡输入到计算机中,控制计算机系统执行相应的动作,如调用编译程序对源程序进行编译,调用装配程序对目标代码进行连接装入,运行可执行代码,对可能的错误按指定方式进行处理等。逻辑上,一个作业可由若干有序的步骤组成。由作业控制语句明确标识的计算机程序的执行过程称为作业步。一个作业可以指定若干要执行的作业步。如上面的编译作业步、装配作业步、运行作业步、出错处理作业步等。两个特点:一是“多道”,二是“成批”主要优点是:•①系统资源利用率高;•②系统吞吐量大。缺点:①用户作业的等待时间长,往往要经过几十分钟、几小时,甚至几天;②没有交互能力,用户无法干预自己作业的运行,使用起来不方便。20世纪60-70年代CTSS(CompatibleTime-SharingSystem,兼容分时系统)MULTICS(MULTiplexedInformationandComputingSystem,多道信息和计算系统)UNIX分时,就是对时间的共享。在分时系统中,分时主要是指若干并发程序对CPU时间的共享。它是通过系统软件实现的。分享的时间单位称为时间片,它往往是很短的,如几十毫秒。这种分时的实现,需要有中断机构和时钟系统的支持。利用时钟系统把CPU时间分成一个一个的时间片,操作系统轮流地把每个时间片分给各个并发程序,每道程序一次只可运行一个时间片。当时间片计数到时后,产生一个时钟中断,控制转向操作系统;操作系统选择另一道程序并分给它时间片,让其投入运行;到达给定时间,再发中断,重新选程序(或作业)运行,如此反复。由于相对人们的感觉来说,这个时间片很短,往往在几秒钟内即可对用户的命令做出响应,使系统上的各个用户都认为整个系统只为他自己服务,并未感觉到还有别的用户也在上机。分时系统的基本特征•①同时性。若干用户可以同时上机使用计算机系统。•②交互性。用户能够方便地与系统进行人-机对话。③独立性。系统中各用户可以彼此独立地操作,互不干扰或破坏。•④及时性。用户能在很短时间内得到系统的响应。分时系统所具有的优点•①为用户提供友好的接口,即用户能在较短时间内得到响应,能以对话方式完成对程序的编写、调试、修改、运行和得到运算结果。•②促进了计算机的普及应用,一个分时系统可带多台终端,同时为多个远近用户使用,这给教学和办公自动化提供了很大方便。•③便于资源共享和交换信息,为软件开发和工程设计提供良好的环境。QNX、VxWorks、RTLinux等在计算机的某些应用领域内,要求对实时采样数据进行及时(立即)处理,做出相应的反映,如果超出限定的时间就可能丢失信息或影响到下一批信息的处理。例如卫星发射过程中,必须对出现的各种情况立即进行分析、处理。这种系统是专用的,它对实时响应的要求是批处理系统和分时系统无法满足的。于是,人们引入了实时操作系统,简称实时系统。实时系统是指具有实时特性,能够支持实时控制系统工作的操作系统。实时系统现在有三种典型应用形式:(1)过程控制系统(硬实时)计算机用于工业生产的自动控制,它从被控过程中按时获得输入,例如,化学反应过程中的温度、压力、流量等数据,然后算出能够保持该过程正常进行的响应,并控制相应的执行机构去实施这种响应。比如测得温度高于正常值,可降低供热用的电压,使温度下降。这种操作不断循环反复,使被控过程始终按预期要求工作。在飞机飞行、导弹发射过程中的自动控制也是如此。(2)信息查询系统(软实时)该系统的主要特点是配有大型文件系统或数据库,并具有向用户提供简单、方便、快速查询的能力,例如仓库管理系统和医护信息系统。当用户提出某种信息要求后,系统通过查找数据库获得有关信息,并立即回送给用户。整个响应过程应在相当短的时间内完成(比如不超过一分钟)。(3)事务处理系统(软实时)该系统的特点是数据库中的数据随时都可能更新,用户和系统之间频繁地进行交互作用。典型应用例子是飞机票预订和银行财务往来。事务处理系统不仅应有实时性,且当多个用户同时使用该系统时,应能避免用户相互冲突,使各个用户感觉是单独使用该系统。实时系统有时也涉及若干同时性用户,但它与分时系统是有区别的:(1)交互性(2)实时性(3)可靠性操作系统内部是怎么构造的?或者说,操作系统作为一个大程序,由众多程序模块组成,它们按什么方式集合在一起?任意调用,耦合紧密,实现的效率高结构关系不清晰,系统的可靠性降低,甚至出现循环调用模块调用示意图按照功能和相互依存关系,把系统中的模块分为若干层,其中任一层模块(除底层外)都建立在它下面一层的基础上,因而,任一层模块只能调用比它低的层来得到服务,不能调用比它高的层。第一个按这种方式构造的操作系统是THE系统,它是1968年由E.W.Dijkstra和他的学生们建造的。具有整体系统的长处;结构关系清晰,提高系统的可靠性、可移植性和可维护性。但设计困难。THE操作系统的层次结构一般原则是:接近用户应用的模块在上层,贴近硬件的驱动程序模块在下层。处于下层的这些程序模块,也称做操作系统的内核。这一部分模块包括中断处理程序,各种常用设备的驱动程序,以及运行频率较高的模块(如时钟管理程序、进程调度和低级通信模块以及被许多模块公用的程序、内存管理程序等)。为了提高操作系统的执行效率和便于实施特殊保护,它们一般常驻内存。带CMS的VM/370结构通过共享物理机器资源来实现主要优点:①同时运行多个操作系统②系统安全,有效地保护系统资源③提供良好的工作环境④组建虚拟网络现代操作系统有一种发展趋势,就是把实现扩展机器功能的这部分代码向上移入更高层次中,从而尽可能地使操作系统保持最小的核心(微内核)。通常的方法是以用户进程身份实现操作系统的多数功能。操作系统被分成几个部分,每个部分只处理系统的一个方面的功能,如文件服务、进程服务、终端服务,或者内存服务,每部分都很小,易于管理。各个服务器都在用户态下运行(不在核心态下运行),因而它们并不直接访问硬件。由于每个服务器以独立的用户态进程方式运行,因此,单个服务器出现故障(或重新启动)不会引起整个系统崩溃。客户-服务器系统模型客户-服务器系统的另一个优点是它适于在分布式系统中应用。如果一个客户与一个服务器通信,它把消息发送给后者,不必知道该消息是在自身机器中处理,还是通过网络把消息发送到远程服务器。在这两种情况下,客户对它们的处理都是相同的,即发送请求和收到回答。分布式系统中的客户-服务器模型