《操作系统原理》第一章概述.ppt
操作系统原理Principle of Operating System,参考书目,操作系统原理教程(第2版),张丽芬 刘美华,电子工业出版社操作系统实用教程,任爱华主编,清华大学出版社计算机操作系统,汤子瀛等,西安电子科技大学出版社计算机操作系统,胡志刚、谭长庚,中南大学出版社 计算机操作系统教程,张尧学等,清华大学出版社,课程目的,不是 如何使用操作系统 而是 理解操作系统如何工作操作系统的工作方式操作系统内部的数据结构和算法设计、开发操作系统过程中的问题、解决方案和折中权衡,课程内容,第一章操作系统概论第二章进程管理第三章进程之间的并发控制和死锁第四章存储器管理第五章文件系统第六章设备管理,操作系统的作用,硬件,操作系统,应用软件,软件与硬件的关系,人的头颅和思想的关系,文化思想,第一章 操作系统概论,计算机的发展操作系统的发展操作系统的基本概念分析操作系统的几种观点,计算机的发展机械计算机时代,机械计算机时代(1614-1946):1614苏格兰人John Napier年提出的原始的自动计算装置标志着计算机时代的来临。1840年英国人Charles Babbage设计了差分机和分析机,设计理论非常超前,提出了卡片输入程序和数据,计算机的发展电子计算机时代,电子计算机时代(1946-至今):第一代电子计算机(19461958),电子管制作开关逻辑部件。代表机有“科洛萨斯”(英国),ENIAC(美国),10Hz第二代电子计算机(19591964),晶体管制作开关逻辑部件。程序设计开始使用高级语言。代表机IBM-7094,几十到几百万Hz第三代电子计算机(19651970),使用集成电路制作开关逻辑部件,IBM360,几百万到几千万Hz第四代电子计算机(1971至今),使用大规模/超大规模集成电路制作开关逻辑部件,Pentium等,计算机发展史中的大事,1848年英国数学家George Boole创立了二进制代数学1937年Turing提出了一种抽象计算模型,用来精确定义可计算函数。图灵机由一个控制器,一条无限延伸的带子和一个带子上左右移动的读写头组成。这个在概念上如此简单的机器,理论上可以计算任何直观可计算的函数。1949年出现Von Neumann计算机。它的结构和现代计算机结构一致,由运算器,控制器,存储器,I/O设备等五个部分组成。,Von Neumann计算机,又叫“存储程序式计算机”主要特点:集中顺序过程控制,处理器(运算器,控制器),协处理器,总线,内存储器,I/O设备,硬盘等,计算机未来的发展,未来的计算机将与各种新技术相结合:与光电子学相结合的光子计算机与生物科学相结合,用生物材料进行运算的生物计算机,第一章 操作系统概论,计算机的发展操作系统的发展操作系统的基本概念分析操作系统的几种观点,为什么引入操作系统?,从计算机管理的角度来看,为了更加充分、有效地使用计算机系统资源,合理地组织计算机的工作流程、有效地管理和分配计算机系统的硬件和软件资源。,从计算机使用的角度来看,为了给用户操作计算机提供一个良好的界面,以便用户无须了解计算机硬件或系统软件的有关细节就能方便地使用计算机。,操作系统由哪些成分组成?,控制和管理计算机系统的硬件和软件资源的程序集合合理地组织计算机的工作流程的程序集合方便用户使用的程序集合,操作系统的发展,操作系统发展是随着计算机硬件技术、应用软件的发展而发展的目标:充分利用硬件 提供更好的服务,大型机 PC机 后PC时代,操作系统的发展-手工操作阶段,操作员将纸带/卡片装入输入机,启动输入机把程序和数据装入输入机,通过控制台开关使程序运行,程序运行结束将结果在打印机上输出,卸下纸带/卡片,将结果取走,手工操作方式具有以下两个特点:串行工作方式资源独占方式,人机矛盾突出,世界第一台计算机(ENIAC)内部工作情况,过程:将用户提交的作业分批输入到磁带上,在监督程序的控制下连续处理。特征:自动性:无人工干预,提高计算机使用顺序性:按照进入内存的先后顺序执行单道性:内存中只保持一道作业,操作系统的发展-批处理阶段,联机批处理:输入过程、运算和输出过程全部都由CPU处理。输入输出设备速度远比CPU低,在管理输入输出设备过程中大部分时间CPU都处于等待状态。造成CPU资源的很大浪费脱机批处理:除主机外另设一台外围机,外围机只与输入输出设备打交道,不与主机直接连接。,联机批处理和脱机批处理,脱机批处理,纸带机,卡片机,打印机,外围机,输入带,输出带,主机,执行管理带,单道批处理系统-评价,解决了作业间的自动转接问题,减少了机器时间的浪费。不管作业大小,只要它一旦占用处理机开始执行,则它必须一直占据处理机,直到运行完毕。资源利用率低。对短作业不公平,因为它们等待执行的时间可能远远超过它们实际执行的时间。交互性差。作业由批处理程序控制运行,用户无法实时控制,如果运行中途出现故障,也只能停下来,重新运行。,多道批处理系统现代意义的操作系统引入的原因:单道批处理系统中,任意时刻只允许一道作业在内存中运行,资源利用率低。为了提高系统资源利用率和系统吞吐量,形成了多道批处理系统,操作系统的发展-多道批处理系统,多道:内存中同时存放多个相互独立的程序,并按照某种原则分派处理机,逐个执行这些程序。批处理:用户提交的作业首先存放在外存,并排成一个队列。然后,由作业调度程序按照一定的算法从该队列中一次选取一个或若干个作业装入内存执行。,多道批处理系统,处理机自动切换,当某个程序占用处理机执行过程中遇到了输入/输出语句,可以启动专门负责输入/输出的系统服务程序完成输入/输出操作,而处理机切换到另一个程序执行,运行,运行,程序A,等待,等待,运行,等待,等待,程序D,运行,等待,等待,程序C,运行,运行,等待,等待,程序B,从处理机看,运行A,运行B,运行C,运行D,等待,运行A,运行B,等待,时间,运行,运行,程序A,等待,等待,运行,等待,等待,程序D,运行,等待,等待,程序C,运行,运行,等待,等待,等待,程序B,从处理机看,运行A,运行B,运行C,运行D,等待,运行A,运行B,等待,多道批处理特征,多道性:内存中有多道程序,可以并发执行无序性:完成时间与进入内存先后无关调度性:作业从提交到完成经两次调度作业调度 外存内存(选多个)进程调度 分配处理机(选1个),多道批处理优缺点,资源利用率高系统吞吐量大吞吐量:单位时间内完成的总工作量原因:资源忙 完成或运行不下去时才切换平均周转时间长作业周转时间:从作业进入系统开始到完成并退出系统经历的时间通常几小时,甚至几天无交互能力修改和调试极不方便,操作系统的发展分时系统,提供了一个多用户工作环境,一台主机连接若干台终端,每台终端供一个用户使用。用户交互式地向系统提出联机命令请求,系统接受所有用户的命令,采用时间片轮转方式处理服务请求,再通过交互式在终端显示执行结果。用户根据上步结果发出下道命令。,主机,终端,分时系统,时间片 操作系统将CPU的时间划分成若干个片段,称为时间片 操作系统以时间片为单位,轮流为每个终端用户服务 每次服务一个时间片(其特点是利用人的错觉,使人感觉不到),分时系统的特征,多路性:同时有多个用户使用一台计算机。宏观上是多个人同时使用一个CPU。微观上多个人在不同时刻轮流使用CPU独占性:用户感觉不到计算机为其他人服务(OS提供虚机器,各个用户的虚机器互不干扰)交互性:用户根据系统响应结果进一步提出新请求(用户直接干预每一步)及时性:系统对用户提出的请求响应时间很短(23秒),操作系统的发展实时系统,是指使计算机能及时响应外部事件的请求,在规定的严格时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地工作的操作系统,实时系统的分类和特征,分类第一类:实时过程控制 工业控制,军事控制,.第二类:实时通信(信息)处理 电讯(自动交换),银行,飞机订票 股市行情特征及时性:系统对外部实时信号必须能及时响应,响应的时间间隔要满足能够控制发出实时信号的那个环境要求。高可靠性和安全性:容错能力(如故障自动复位)和冗余备份(双机,关键部件),实时系统与批处理系统和分时系统的区别,专用系统:许多实时系统是专用系统,而批处理与分时系统通常是通用系统实时控制:实时系统用于控制实时过程,要求对外部事件的迅速响应,具有较强的中断处理机构高可靠性:实时系统用于控制重要过程,要求高度可靠,具有较高冗余(如双机系统)事件驱动和队列驱动:实时系统的工作方式:接受外部消息,分析消息,调用相应处理程序进行处理。,网络操作系统,基于计算机网络 在各种计算机操作系统上 按网络体系结构协议标准开发的软件包括网络管理,通信,安全,资源共享和各种网络应用目标:相互通信,资源共享NetWare系列,Windows系列,Linux系列,网络操作系统,通常操作系统的功能:处理机管理、存储器管理、设备管理、文件管理等网络通信功能:通过网络协议进行高效、可靠的数据传输网络资源管理:协调各用户使用网络服务:文件和设备共享,信息发布网络管理:安全管理、故障管理、性能管理等互操作:直接控制对方比交换数据更为困难,分布式操作系统,分布式系统是以计算机网络为基础的,由若干台独立的计算机构成,它的基本特征是处理上的分布,即功能和任务的分布分布式操作系统的所有系统任务可在系统中任何处理机上运行,自动实现全系统范围内的任务分配并自动调度各处理机的工作负载,分布式操作系统特征,特征:是一个统一的操作系统 若干个计算机可相互协作共同完成一项任务资源进一步共享透明性:资源共享,分布对用户来讲是不知道的自治性:处于分布式系统的多个主机处于平等地位,无主从关系处理能力增强、速度更快、可靠性增强,网络操作系统和分布式操作系统的比较,耦合程度 分布式系统是紧密耦合系统,分布式操作系统是在各机上统一建立的,直接管理CPU、存储器和外设;统一进行全系统的管理;网络通常容许异种操作系统互连,各机上各种服务程序需按不同网络协议互操作并行性 分布式操作系统可以将一个进程分散在各机上并行执行“进程迁移”;网络则各机上的进程独立透明性 用户是否知道或指定资源在哪个机器上 分布式系统的网络资源调度对用户透明,用户不了解所占有资源的位置;网络操作系统中对网络资源的使用要由用户明确指定健壮性 分布式系统要求更强的容错能力(工作时系统重构),PC机操作系统,常用的个人计算机操作系统单用户单任务:MS DOS单用户多任务:OS/2,MS Windows 3.x,Windows 95,Windows NT,Windows 2000 Professional多用户多任务:UNIX(SCO UNIX,Solaris x86,Linux,FreeBSD),DOS操作系统,DOS操作系统,1981年问世,1.0版-7.0版以字符为基础的用户接口,单用户单任务MS-DOS(Microsoft),PC-DOS(IBM),DR DOS(Novell)适用于16位机,最大的优势是支持众多的通用软件,Windows操作系统,Windows操作系统,1985年问世,Windows1.0版-Windows2000以图形为基础的用户接口,多窗口多任务Windows*,Windows NT(New Technology),Windows XP(Explore)兼容16位软件,32位操作系统,OS/2操作系统,OS/2操作系统,1987年由IBM公司推出32位多任务操作系统因缺乏应用软件的支持而失败,UNIX操作系统,1969年,Ken Thompson在一台废弃的PDP-7小型计算机上用汇编语言重写一个简化的MULTICS操作系统,称为UNICS,即为UNIX1973年,Thompson和Ritchie一起用C重写了UNIX1973年到20世纪70年代末,UNIX免费扩散70年代中期到80年代中期,商用版本出现80年代中期,UNIX已被广泛应用于各种型号的小型机和工作站上,第一版(1971),第三版(1973),第六版(1975),第七版,第八版,SVR4(1989),IBM AIX,SUN Solaris,HP UX,1BSD(1978),2BSD(1978),3BSD(1979),4.xBSD(DARPA),4.4BSD(1993),SYSTEM III(1982),SYSTEM V(1983),SVR2(1984),SVR3(1987),第九版,第十版(1989),Linux,Linus Torvalds开发,以MINIX为基础。是一个功能可与UNIX和Windows相媲美的操作系统特点:免费软件:可以自由安装并任意修改软件的源代码Linux操作系统与主流的UNIX系统兼容支持几乎所有的硬件平台:Intel系列,Alpha系列,MIPS系列,并广泛支持各种周边设备,第一章 操作系统概论,计算机的发展操作系统的发展操作系统的基本概念分析操作系统的几种观点,操作系统在计算机系统中的地位,计算机系统由硬件和软件组成操作系统 是在硬件基础上的第一层软件 是其他软件和硬件之间的接口,组成计算机的任何机械的、磁性的、电子的装置或部件,为了方便用户和充分发挥计算机效能的各种程序的总称。,计算机硬件,操作系统,系统工具,应用软件,应用用户,应用开发人员,操作系统,开发人员,操作系统的地位:紧贴系统硬件之上,所有其他软件之下(是其他软件的共同环境),软件的分类,系统软件:对用户提出的功能,通过软方法编制程序在硬件上实现。这类特殊程序称之计算机系统软件。操作系统、编译程序等与计算机密切相关的程序应用软件:应用程序、软件包等工具软件:各种诊断、检查程序、引导程序,操作系统的定义,操作系统是计算机系统中的一个系统软件,是一些程序模块的集合,它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源 合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能 使得用户能够灵活、方便、有效的使用计算机,使整个计算机系统能高效地运行,有效:系统效率,资源利用率(如:CPU利用的充足与否,内存、外部设备是否忙碌),合理:公平与否,如果不公平则会产生“死锁”或“饥饿”,方便:两种角度:用户界面 编程接口,操作系统的基本特征,并发性共享性虚拟性异步性不确定性,操作系统的基本特征并发性,并发 处理多个同时性活动的能力在计算机系统中同时存在多个程序 宏观上:这些程序是同时在执行的 微观上:任何时刻只有一个程序在执行(单CPU),即微观上这些程序在CPU上轮流执行并行:(与并发相似,但多指硬件支持)由并发引起的问题:活动切换、保护、相互依赖的活动间的同步,并发性和并行性的区别,操作系统中的并发性和并行性是既相似又有区别的两个概念,并发性是指两个或多个事件在同一时间间隔内发生,并行性是指两个或多个事件在同一时刻发生,操作系统的基本特征共享性,共享 操作系统与多个用户的程序共同使用计算机系统中的资源(共享有限的系统资源)操作系统要对系统资源进行合理分配和使用资源在一个时间段内交替被多个进程所用两种资源的共享方式互斥共享 对临界资源的访问 如:音频设备、打印机等同时访问 多个进程同时访问的资源 如:可重入代码、磁盘文件,操作系统的基本特征虚拟性,虚拟 通过某种技术(分时或分空间)把一个物理实体映射为若干个对应的逻辑实体。虚拟是操作系统管理系统资源的重要手段,可提高资源利用率例如:虚拟CPU、虚拟内存、多窗口或虚拟终端虚拟化 是把计算机的资源,如运算能力、存储空间以及应用程序抽离出来,让资源的使用方式更具效率,操作系统的基本特征不确定性,不确定性 由共享和并发引起在操作系统中可运行多道用户程序,而每个用户程序的运行时间、要使用哪些系统资源、使用多长时间、使用的资源是共享还是独占的,操作系统在程序运行前是不知道的 要求操作系统的设计要很好地解决并发和共享的问题,否则,将会产生不可重现的错误,这种不可重现的错误称为不确定性,操作系统的功能,处理机分配(硬件资源管理)存储器管理(硬件资源管理)设备管理(硬件资源管理)文件管理(软件资源管理),操作系统的功能-处理机管理,目标:完成处理机资源的分配调度等功能(处理机调度的单位可为进程或线程)进程控制:创建、撤销、挂起、改变运行优先级等主动改变进程的状态进程同步:协调并发进程之间的推进步骤,以协调资源共享;交换信息能力弱进程通信:进程之间传送数据,以协调进程间的协作;交换信息能力强,也可以用来协调进程之间的推进进程调度:作业和进程的运行切换,以充分利用处理机资源和提高系统性能;未必是进程控制操作所引起(可能是时间片轮转、I/O操作)同一类型内的公平性、高效率(吞吐量大)、作业周转时间等,操作系统的功能-存储器管理,存储分配与回收存储保护:保证进程间互不干扰、相互保密;如:访问合法性检查、甚至要防止从垃圾中窃取其他进程的信息地址映射(变换):进程逻辑地址到内存物理地址的映射内存扩充(覆盖、交换和虚拟存储):提高内存利用率、扩大进程的内存空间,目标:提高利用率、方便用户使用、提供足够的存储空间、方便进程并发运行,操作系统的功能-设备管理,设备操作:利用设备驱动程序(通常在内核中)完成对设备的操作。设备独立性:提供统一的I/O设备接口,使应用程序独立于物理设备,提高可适应性;在同样的接口和操作下完成不同的内容(如FAX Modem作为Windows上的打印机设备)设备分配与回收:在多用户间共享I/O设备资源虚拟设备:设备由多个进程共享,每个进程如同独占缓冲区管理:匹配CPU和外设的速度,提高两者的利用率(单缓冲区、双缓冲区和公用缓冲区),目标:方便的设备使用、提高CPU与I/O设备利用率,操作系统的功能-文件管理,文件存储空间管理:解决如何存放信息,以提高空间利用率和读写性能目录管理:解决信息检索问题。文件的属性(如文件名)、单一副本赋予多文件名文件的读写管理和存取控制:解决信息安全问题。系统设口令、用户分类、文件权限软件管理:软件的版本、相互依赖关系、安装和拆除等,目标:解决软件资源的存储、共享、保密和保护,操作系统的性能指标-RAS,OK,故障,OK,正常运行,正在修理,平均无故障时间(MTBF),平均故障修复时间(MTRF),时间,系统可靠行(Reliability):在系统发生故障前正常运行的平均时间,通常用MTBF(Mean Time Before Failure)表示系统可维护性(Servicability):系统发生故障后到正常运行所需要的时间,用MTRF(Mean Time Repair a Fault)表示系统可用性(Availability):任何情况下系统能正常工作的可能性,表示为:A=MTBF/(MTBF+MTRF),其它性能参数,系统吞吐率:系统在单位时间内完成的总工作量系统响应时间:系统从接受数据到输出结果之间的时间间隔。批处理中指提交作业到得到结果的时间,分时系统中指发出终端命令到得到回应之间的时间系统资源利用率:系统各种设备忙的时间可移植性:操作系统在不同硬件环境之间的通用性,通常用工作量表示。,操作系统接口,操作系统是用户与计算机之间的接口,用户通过操作系统的帮助,可以快速、有效和安全可靠地使用计算机的各类资源,以解决自己的问题。命令接口:字符命令,图形界面等程序接口:系统调用其它接口,操作系统,系统调用,字符命令,图形界面等,命令接口,命令接口允许用户在终端上使用键盘命令、鼠标单/双击图符、语音输入等直接交互方式几乎所有计算机的操作系统中都有组成:命令+终端处理程序+命令解释程序过程:用户在键盘上输入命令;终端处理程序接收命令并显示在屏幕上;命令解释程序解释并执行该命令;,命令举例,UNIX:login;logoutDOS:copy;format命令解释程序:操作系统的最高层,如 MS-DOS:COMMAND.com UNIX:shell,系统调用,系统调用是操作系统提供给编程人员的唯一接口,编程人员用系统调用来请求操作系统提供服务系统调用在源程序一级调用系统中已有的功能完成那些和机器硬件部分相关的工作,控制程序的执行,系统调用过程,系统调用命令,用户程序,系统功能,调用,返回,系统调用的使用方法,只有用汇编语言或机器语言编程时才会直接使用系统调用大部分高级语言中没有系统调用这个概念,他们使用在操作系统的系统调用层之上的库函数,如:write(*,*)(Fortran),printf()(C)等有些高级语言中有系统调用函数,其功能和系统调用完全等同,如:read(file,uffer,nbytes),其它接口,图形界面和菜单接口,本质上被转化为命令接口,传递给系统内核智能化的用户界面,利用多媒体技术和仿真技术和计算机交互,是发展中的接口技术,单机操作系统的设计,模块化结构层次化结构客户/服务器结构微内核面向对象设计模式,模块化结构,操作系统由可兼容的基本模块组成,各模块功能独立,模块之间由规定的接口相互调用优点:各模块可以单独设计,缩短了开发周期缺点:模块之间相互依赖,调用关系复杂,给分析、移植和维护系统带来困难,模块化结构图,应用程序,用户态,核心态,硬件,应用程序,系统服务,层次化结构,操作系统也分成若干模块,但这些模块按照逻辑关系分层,各层之间的依赖关系、调用关系是单向的优点:避免了模块化设计中调用关系复杂的缺点,简化了接口设计缺点:维护依然有难度,模块之间依然相互依赖,局部错误会影响整个系统。DOS-模块分层结构的操作系统,层次化结构图,应用程序,用户态,核心态,硬件,应用程序,系统服务,文件服务,内存和I/O设备管理,处理器调度,客户/服务器结构,操作系统中的各个服务交给单独的服务器进程,服务进程运行在用户态系统本身只负责服务进程和调用者之间的消息传递等很少的任务,系统内核很小,称为微内核模块化、层次化的操作系统为单内核,客户/服务器结构图,文件服务器进程,目录服务器进程,进程服务器进程,微内核,硬件,用户态,核心态,应用程序,面向对象设计模式,面向对象开发的软件易于修改、扩充和维护。进程、内存块、文件等系统资源被当作数据对象,用对象服务实施操作Windows NT被称为对象操作系统,本章总结,计算机的发展操作系统的发展:单机、批处理、分时、实时,网络、分布式什么是操作系统;它的四大特征操作系统的四大功能操作系统的接口操作系统的设计观点,