1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第七章 操作系统的整体设计,第七章 操作系统的整体设计,操作系统的整体设计经历了系统开发和程序设计的各个阶段,它是伴随着系统工程和程序设计方法的发展而成长的。,本章的目的是更全面、更深入的了解操作系统的整体设计。,操作系统的各种模型,分布式操作系统,网络操作系统,Windows,的网络操作系统,Linux,操作系统,7.1 操作系统的各种模型,由于操作系统是程序的集合,因此,操作系统的模型必然要决定程序之间的相互关系。,根据程序之间的调用关系可以将操作系统分为:,网络模型,层次模型,根据程序作用范围及包装手段可将操作系统分为:,面向过
2、程的模型,面向对象的模型,7.1.1,网状结构与层次结构,1.,模快,模块,模块化的方法,模块的独立性,高内聚,低耦合,将整个操作系统根据设计所要求的子功能划分成单独命名、独立编址的程序部分,这些程序部分被称为模块。,采用模块化的方法可以使设计者更清晰的了解整个系统的结构,并且可以采用分而治之的方法来完成每一个程序段的设计。,所谓独立性是指每个模块只涉及操作系统所要求的某一个或某几个具体的子功能,并且有唯一的入口和出口,模块与模块之间的接口简单明了。,在模块内部,各个功能部分的联系代表模块的内聚性,联系越紧密,内聚程度越高。,而在模块之间,相互交流信息与控制的程度代表耦合性,模块间的联系越高,
3、耦合程度越高。,模块之间的调用关系可以有不同的组织方式,最典型的有网状结构和层次结构。,2.网状结构,如果任意两个模块之间可以相互调用,并且系统没有明确的上级模块和下级模块的区别,该系统的结构称为网状结构。,7.1.1,网状结构与层次结构,系统服务代表操作系统所提供的面向用户的功能和界面。,中间的模块代表各种操作系统的子功能。,各个子功能之间根据需要可以形成相互的调用关系,既可以横向调用,也可以上下调用。,网状结构的好处是:可以很轻松地从一个子功能转向另一个子功能,这给系统的运行带来了灵活性。,如果对网状结构不加限制,有可能形成循环调用的情况,安全的隐患随时可能导致系统的崩溃。,3.层次结构,
4、依据操作系统各子功能与计算机系统不同种类的资源之间的相互关系,将操作系统程序模块划归于不同的层次,层次之间形成单向调用关系。,7.1.1,网状结构与层次结构,系统服务处于最上层,它通过调用下层的作业管理来实现对用户的交互和控制。,当需要使用信息资源时,由作业管理调用文件系统来实现数据的存储与流动;,文件存储与流动所涉及的存储介质的使用需调用内存管理和,I/O,设备管理模块;,上层各个模块的实现又必然是不同进程的实现,因此,需要调用处理机调度模块。,处理机调度处于系统的底层,它只能被上层的各个模块调用而不能调用上层模块。,调用只能朝一个方向进行,因此不会产生循环调用的情况。如果按层次对模块赋予对
5、应的权限,就很容易实现对资源的保护。,Windows,和,Linux,都采用了层次结构进行设计。,某些操作系统的设计者经过权衡以后,在同层模块之间使用少量的网状结构。比如,UNIX,系统的有些底层模块之间可以相互调用。,7.1.2,面向过程与面向对象,1.,面向过程的操作系统,早期的操作系统都是采用的面向过程的设计方法。,在面向过程的操作系统中,要查看资源的使用状况非常容易,只需要找到代表该资源的数据结构就可以对资源的情况一目了然。,如果想实现对某个资源的新的动作,只需要针对该数据结构再编制一段程序就可以完成了。,什么是面向过程的程序设计?,问题:只要任何一个程序操作发生失误,对应的数据就可能
6、出错,随着程序之间的相互调用不断扩大,最后扩展到整个系统,导致整个系统错误的发生。,另外,大量的全局变量使系统安全性受到威胁。,2.,面向对象的操作系统,(1)对象,(2)消息,(3)类,(4)继承,7.1.2,面向过程与面向对象,让我们来回忆一下过去学过的内容!,(1)对象,2.,面向对象的操作系统,对象是一组属性和一组针对该属性的操作。,属性和操作在对象内部相互作用,对象的状态通过属性的值来体现,每一次对操作的调用都可能改变对象的状态。,而在对象外部,如果不经特许无法了解对象的内部结构,只能通过对象所提供的外部接口来获知对象的状态。,(2)消息,2.,面向对象的操作系统,消息是对象之间的通
7、信单元。,当一个对象接收来自外部的消息时,可根据消息中指定的操作与传递的参数来对对象中的属性进行操作,从而改变对象的属性。,由用户,U,向文件,B,发送消息,从而启动文件,B,的打开操作。,消息发送的主体也可以是任意对象,,接收消息的对象必须含有消息所对应的操作,,否则消息发送失败。,(3)类,2.,面向对象的操作系统,类是一组具有相同数据结构和相同操作的对象的集合,因此,它是对对象的抽象。,类中同样定义了一组属性和针对该属性的一组操作。,一般情况下类中的属性没有具体的值来代表,而只是一个数据结构框架。,类的实例被称为对象,因此,对象是类的实现。,(4)继承,2.,面向对象的操作系统,在某一个
8、既存类的基础上经过添加新的属性或操作生成一个新类,新类直接继承既存类的属性和操作,因此被称为对既存类的继承。,使用类与类之间的继承特性,可以极大地简化对属性和操作的设计工作量。,同时一个新类并不会对既存类产生影响,因此,操作系统的扩展将不会影响原有系统的功能。,2.,面向对象的操作系统,(5)面向对象操作系统的设计方法,设计操作系统将经过如下几个步骤:,分析,设计,类的设计与实现,对类进行实例化,系统组装与测试,维护,7.1.2,面向过程与面向对象,分析所要设计的操作系统的类型、应用范围和要达到的系统目标等,确定了操作系统的逻辑模型。,进行系统结构设计,根据资源的分类将系统分层,确定每层要完成
9、的任务,确定对类进行描述所依据的模型。,对类进行定义与设计,包括类的设计、复用、继承,确定类与类之间要传送的消息格式与时机。,它主要是依据不同计算机的硬件资源的规格、型号以及其他参数将类实例化为对象,由这些对象来代表具体的资源。,以类和对象为部件按操作系统的设计要求组装完整的系统,并根据预先设计好的测试流程进行系统测试,测试通过以后操作系统完全生成。,在操作系统的运行过程中针对发现问题进行修正、补丁、扩展等。维护往往只针对指定的类或者对象,因此涉及范围很小。,7.2 分布式操作系统,计算机的发展并不局限于称为集中式系统的单处理机和单存储器的形式。,为了达到更大程度的并行,系统可能使用多个处理机
10、甚至多台主机。因此,我们必须了解分布式系统。,7.2 分布式操作系统,分布式系统定义,分布式系统,是由多个物理上分布的处理机或计算机经过连接构成的计算机系统,这些组成部件可以合作完成一个共同的任务,以透明的方式在用户面前呈现出一个整体形象。,分布式操作系统,是建立于分布式系统基础之上的,对所有分布式资源进行管理和控制的操作系统。,由于增加了分布特性,操作系统需要增加进程间的数据交换、全局性的保护机制、各个物理位置上的数据一致性、任务分布与协调等功能,以实现资源共享、开放性、并发性、容错性和透明性。,7.2 分布式操作系统,分布式操作系统的设计目标,1.资源共享,2.开放性,3.并发性,4.可靠
11、性,5.数据一致性,6.透明性,分布式系统的资源共享指的是对分布式资源的共享。,分布式操作系统需要解决如下问题:采用何种管理手段来记录分布于不同地理位置上的资源?当多进程同时需要对同类资源使用时,由谁及采用何种调度策略来对进程与资源进行连接?如何实现远程资源与用户的交互?,目前讨论得比较多的有两种模型:客户机服务器模型和面向对象模型。,由于分布式系统是通过对不同地理位置上的计算机的连接来构成的,它应该能够允许连接数量的变化、软件功能的增减、服务分布的变化、节点之间的沟通等,而不导致系统功能的削弱或破坏。如果能够实现上述要求,则称该分布式系统是开放的。要实现开放系统必须有标准的数据通信格式、可移
12、植的系统软件、统一的用户界面。,在分布式系统中,存在着许多进程,这些进程既存在物理上的并行,也存在逻辑上的并行;在节点与节点之间又存在大量的数据并发流动。,这一切对操作系统的并发控制能力提出了要求,要尽量减少并发行为之间可能发生的冲突,保证资源的安全使用,实现各进程之间的协调运作。,相对于传统的计算机系统,分布式系统具有较高的可靠性。,硬件的可靠性可以利用相同部件的相互替代来保证,数据的可靠性可以通过一定程度的冗余与备份来实现。,另外,对于整个系统的容错能力,需要操作系统具有错误检测和恢复功能。,相同的数据可能分布于不同的节点上,保证数据一致性的办法通常是保证,事务处理的原子性,,即在事务处理
13、过程中如果发生中断,则取消该事务的处理,并让系统恢复到处理之前的状态。,原子性避免了事务在处理过程中产生的错误。,另外,对分布于不同位置的相同数据定期刷新也可以保证一定程度上的数据一致性。,透明性指用户在使用分布式系统时,不需要了解系统的资源、进程、动作、服务等任何数据与行为所处的位置。,与集中式操作系统相比,分布式系统集中了各部分资源的优势,因此,运行速度更快、系统处理能力更强、资源共享范围更广、更易于进行功能扩充并且有更高的可靠性。,分布式系统管理复杂、系统安全保密实现困难、软件太少等都对分布式系统的发展与应用有影响。,7.3 网络操作系统,什么是网络,网络的结构,网络操作系统,7.3.1
14、什么是网络,计算机,网络,是按照网络协议通信,以共享资源为目的,将地理上分散且自主的计算机互相连接的集合。,网络的构成包含,三个要素,网络的,主要功能,计算机网络主要,分为三类,网络的物理架构,通信协议,一系列独立的计算机,(,1,)在计算机与计算机之间进行通信或数据传输。,(,2,)实现对数据、软件和硬件资源的共享。,(,3,)提高计算机的可靠性和可用性。,(,4,)便于进行分布式处理。,局域网,广域网,城域网,7.3.2,网络的结构,1.网络拓扑结构,网络在物理上表现为通信子网对网络节点的连接,其中,通信子网,的结构称为网络拓扑结构。,星形结构一般是通过一个,中央交换机,实现对网络各节点
15、的,连接,,所有的数据通信都必须经过交换机的,控制与转接,来实现。,总线形结构中的所有节点都连接到,一条公用的数据通路,上(称为总线),接点之间的数据通信靠各节点对总线信息的,分辨与获取,来实现。,环形结构是将各节点连接成环,通过节点,争取环路使用权,来完成信息通信的。,目前使用较多的还有树形结构,它往往采用,星形的连接方式与总线形的通信,手段来实现通信。,7.3.2,网络的结构,2.,网络体系结构之一,OSI,参考模型,物理层提供为建立、维护和拆除物理链路所需的机械的、电气的、功能的和规程的特性;提供有关在传输介质上传输二进制位流及物理链路故障检测指示。,数据链路层为网络层实体提供点到点无差
16、错帧传输功能,并进行流量控制及链路管理。,网络层接受来自数据链路层的服务,并为传输层建立、保持及释放连接和数据传送提供数据交换、流量控制、拥挤控制、差错控制及恢复、路由选择等功能。,传输层为会话层实体提供透明的、可靠的数据传输服务,保证端到端的数据完整性;按本层需要选择网络层能提供的服务;提供建立、维护和拆除传输连接功能。,会话层提供面向用户的连接服务,对不同系统会话层实体提供组织和同步所必需的手段,以便对数据的传送提供控制和管理。,表示层为应用层进程提供能解释所交换信息含义的一组服务,如代码转换、格式转换、文本压缩、文本加密与解密等。,应用层为,OSI,进程提供服务,如文件传送、电子邮件、,
17、EDI,等,保证网络的完整透明性。,7.3.3,网络操作系统,网络操作系统是针对网络环境设计的、具有,OSI,上层功能的、能同时对网络服务器及工作站进行管理的,并实现,网络节点之间,通信功能,的操作系统。,因为网络的目的是实现资源共享与数据通信,在,文件共享,和,进程通信,方面有许多工作要做。,7.3.3,网络操作系统,网络操作系统必须具有如下功能:,(1)用户管理功能。,(2)系统容错措施。,(3)服务连接维护和数据访问同步。,(4)文件、目录服务,除基本文件及目录管理外,还包括文件传输协议、远程通信等。,(5)网络计费、安全与维护。,(6)提供开放的软件开发环境。,7.3.3,网络操作系统
18、分布式,OS,网络,OS,表现形式,功能强大的单机系统,若干分立的计算机及其连接,操作系统,部件上运行相同的操作系统,各计算机可运行独立的操作系统,通信,进程之间传递消息来实现通信,采用文件共享的形式,文件组织,文件有统一的组织与形式,允许文件的多样化,7.4,Windows,的网络操作系统,Windows,系列逐渐分化为三类产品:,以,Windows 9x/Me,为代表的是,面向家庭计算机,用户的操作系统,其最新的版本是,Windows XP Home Edition,;,以,Windows NT,Worksation,/2000 Professional,为代表的是,面向商业办公,的操作
19、系统,其最新的版本是,Windows XP Professional,;,以,Windows NT Server/2000 Server,为代表的是,面向高端应用,的操作系统,其最新版本是,Windows 2003 Server,。,7.4,Windows,的网络操作系统,网络构成,Windows,的结构,Windows,的管理职能,Windows Server,的安全与监视,7.4.1,网络构成,常见的,Windows,网络构造,7.4.2,Windows,的结构,Windows,操作系统结构,划分成用户模式和核心模式两大部分,用户模式中有:,环境子系统,集成子系统,每个环境子系统代表一个用
20、户态服务器,每个集成子系统是完成操作系统功能的服务器,核心模式被称为执行体,对象(资源)管理器,拥有内核对象,这些对象具有获得创建应用程序所需要的核心服务的手段;,安全引用监视器,为系统资源提供一致的安全检查和实施;,进程管理器,管理线程和进程的寿命,承担安排执行时间的责任;,虚拟内存管理器(,VMM),,为每个进程提供统一的、私有的地址空间;,本地过程调用工具,向同一计算机上的客户和服务器提供简单的消息传送手段;,IO,管理器,为所有的进程提供访问硬件驱动程序、文件系统和网络的方法;,窗口管理器,创建用户熟悉的界面并为进程提供访问图形设备接口的方法。,微内核和硬件抽象层采用了层次操作系统模型
21、提供了线程调度、中断、异常调度及多处理机同步。,7.4.3,Windows,的管理职能,Windows Server,对网络的管理是通过,活动目录,来进行的。,活动目录是一种,目录服务,,它存储有关,网络对象,的信息,这些对象是,用户、域、组织单元、树和森林,,网络上的所有可用资源信息都被集成于这些对象之中,利于管理员和用户,方便地查找和使用,。,域,是对计算机及用户的一种组织,任何用户只要在域中有一个帐户,就拥有了网络资源的使用权利。,一个域作为一个完整的目录,,域之间,能够通过信任关系建立起,树状连接,,使单一帐户可享用该树状结构中的任何信息。,活动目录服务把,域又,详细划分,成组织单元
22、组织单元是一个逻辑单位,它是域中一些用户和组、文件与打印机等资源对象的集合。,7.4.3,Windows,的管理职能,活动目录完全,采用了,Internet,标准协议,,进行网络登录时,可用,“,用户名,域名,”,的用户帐号。,Windows,活动目录把,DNS,作为其定位服务,因此是直接面向,Internet,的。,域中有许多,平等的域控制器,,,Windows,任何一个域控制器上的目录库的变更都会自动复制到其他域控制器上的副本中。,7.4.3,Windows,的管理职能,域安全策略,7.4.3,Windows,的管理职能,用户和计算机帐户管理,7.4.3,Windows,的管理职能,活
23、动目录的特性,(,1,)信息安全性,(,2,)基于策略的管理,(,3,)扩展性,(,4,)可调整性,(,5,)信息复制,(,6,)与,DNS,集成,(,7,)与其他目录服务的内部操作,(,8,)灵活的查询,安全性与活动目录完全集成在一起。不仅可以针对目录中的每个对象定义访问控制,还可对其每种属性进行操作。,活动目录的目录服务包括数据存储以及逻辑、分层结构。作为逻辑结构,它为策略应用程序提供上下文分层结构。作为目录,它存储指定给特定上下文的策略(称为组策略)。,活动目录是可扩展的,这意味着管理员可以将对象的新类添加到规划中,而且还可以将新属性添加到已现有的对象类中。,活动目录可包括一个或多个域,
24、每个又都带有一个或多个域控制器,这使得可调整目录以便满足任何网络的要求。多域可组合成域目录树或林。,活动目录使用多主复制。目录存储在初始域控制器中,其内容可复制到域、域目录树或林的每个域中。对目录数据所做的更改将复制到所有域控制器中。,活动目录使用域名解析系统,DNS,(,Domain Name System,)。,DNS,是一个,Internet,的标准服务,它可以很容易地将可读主机名称翻译成数字的,IP,地址。这可以在,TCP/IP,网络上启用与计算机和用户的标识和连接。,由于活动目录是基于工业标准的目录访问协议,它可以与使用这些协议的其他目录服务实现内部操作。,用户和管理员可在搜索功能中
25、指定网络邻居、活动目录用户和计算机来快速查找网络上的对象,使用对象属性。可通过使用活动目录生成的全局目录优化查找信息。,7.4.4,Windows Server,的安全与监视,Windows Server,提供了许多安全机制,如:,备份,事件查看,性能监视,系统监视,网络监视等,7.5,Linux,操作系统,Linux,体系结构,Linux,模块化加载,核心数据结构,设备驱动,文件系统,Linux,特性,7.5.1,Linux,体系结构,内核是系统的心脏,是运行程序和管理计算机硬件的核心程序。,它接受,shell,传来的系统调用命令并把命令送给内核去执行。,Shell,是系统的用户界面,提供了
26、用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。,实际上,Shell,是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。,Shell,有自己的编程语言,用这种编程语言编写的,Shell,程序与其他应用程序具有同样的效果。,内核、,Shell,和文件结构一起形成了基本的操作系统结构。,标准的,Linux,系统都有一套叫做实用工具的程序,它们是专门的程序,例如编辑器、执行标准的计算操作等。用户也可以产生自己的工具。,7.5.2,Linux,模块化加载,Linux,的核心(,Kernel,),可以认为是一个,单一的巨大的程序,,核心的功能组件可以,访问,它的所有
27、的,内部数据结构以及例程,。,Linux,允许在你需要的时候,动态,地,加载和卸载,操作系统的组件。,Linux,的,模块,是可以在系统启动之后任何时候动态连接到核心的,代码块,。它们可以在不被需要的时候从核心删除并卸载。,7.5.3,核心数据结构,数据结构说明,block_dev_,struct,向核心登记块设备,buffer_head,关于,buffer cache,中一块缓存的信息,device,表示系统网络设备,device_,struct,块设备和字符设备用来向核心登记,file,表示每个打开的文件,files_,struct,描述被某进程打开的所有文件,gendisk,关于某个硬盘
28、的信息,inode,描述磁盘上一个文件或目录的信息,irqaction,用来描述系统的中断处理过程,linux,_,binfmt,用来表示可被,Linux,理解的二进制文件格式,mem,_map_t,用来保存每个物理页面的信息,mm_,struct,用来描述某任务或进程的虚拟内存,pci,_bus,表示系统中的一个,PCI,总线,pci,_dev,表示系统中的每个,PCI,设备,request,用来向系统的块设备发送请求,rtable,用来描述向某个,IP,主机发送包的路由信息,semaphore,保护临界区数据结构和代码信号灯,sk,_buff,用来描述在协议层之间交换的网络数据,sock,
29、包含,BSD,套接口的协议相关信息,task_,struct,用来描述系统中的进程或任务,timer_list,用来为进程实现实时时钟,tq,_,struct,任务队列结构,vm,_area_,struct,表示一个进程的一个虚拟内存区域,7.5.3,核心数据结构,7.5.4,设备驱动,设备驱动组成了,Linux,核心的主要部分。像操作系统的其他部分一样,它们运行在,高权限,环境中,一旦出错将引起灾难性后果。,设备驱动控制操作系统和硬件设备之间的相互操作。设备驱动,负责,处理所有,设备相关细节,。,Linux,的一个基本特点是它抽象了设备的处理。所有的硬件设备都象,常规文件一样看待,:它们可以
30、使用和操作文件相同的、标准的系统调用来进行打开、关闭和读写。,系统中的每一个,设备,都用一个,设备特殊文件,代表。,7.5.4,设备驱动,Linux,有许多不同的设备驱动程序,但是它们都具有一些一般的属性:,1.,核心代码。,2.,核心接口。,3.,核心机制及服务。,4.,可拆装。,5.,可配置。,6.,动态性。,7.5.5,文件系统,Linux,文件结构,Linux,文件系统,装载文件系统,虚拟文件系统,7.5.5,文件系统,Linux,文件结构,目录名说明,/,bin,二进制可执行命令;,/,dev,设备特殊文件;,/,etc,系统管理和配置文件;,/,etc/,rc,.d,启动的配置文件
31、和脚本;,/,home,用户主目录的基点,比如用户,user,的主目录就是/,home/user;,/lib,标准程序设计库,又叫动态链接共享库;,/,sbin,系统管理命令,这里存放的是系统管理员使用的管理程序;,/,tmp,公用的临时文件存储点;,/,root,系统管理员的主目录;,/,mnt,系统提供这个目录是让用户临时挂载其他的文件系统;,/,lost+found,这个目录平时是空的,系统非正常关机而留下“无家可归”的文件;,Linux,文件结构,/,proc,虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息;,/,var,某些大文件的溢出区,比方说各种服务的日志文件;,
32、/,usr,最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:,/,usr,/X11R6,存放,Xwindow,的目录;,/,usr,/bin,众多的应用程序;,/,usr,/,sbin,超级用户的一些管理程序;,/,usr,/doc,linux,文档;,/,usr,/include,linux,下开发和编译应用程序所需要的头文件;,/,usr,/lib,常用的动态链接库和软件包的配置文件;,/,usr,/man,帮助文档;,/,usr,/,src,源代码,,linux,内核的源代码就放在/,usr,/,src,/,linux,里;,/,usr,/local/bin,本地增加的命
33、令;,/,usr,/local/lib,本地增加的库。,7.5.5,文件系统,2.,linux,文件系统,linux,系统中,每个分区,都是一个文件系统,都有自己的目录层次结构。,linux,文件系统使用,索引节点,来记录文件信息。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。,linux,文件系统将文件索引节点号和文件名同时保存在,目录,中。所以,目录只是将文件的名称和它的索引节点号结合在一起的一张表,目录中每一对文件名称和索引节点号称为一个连接。,对于一个索引节点号,可以有多个文件名与之对应。这种别名方法称为,连接,。,7.5.5,文件系统,3.,装载文件
34、系统,linux,会将这些分属不同分区的、单独的文件系统通过,装载形成,一个系统的,总,的,目录层次结构,。,4.,虚拟文件系统,装载后多种文件系统的兼容是由,Linux,内核内部的虚拟文件系统,VFS,(,Virtual File System,),实现的。,Linux,文件系统的所有细节都通过软件进行转换,所以所有的文件系统对于,Linux,核心的其余部分和系统中运行的程序显得一样。,Linux,的虚拟文件系统层允许你同时,透明地安装许多不同的文件系统,。,7.5.6,Linux,特性,1.,开放性,2.,多用户,3.,多任务,4.,良好的用户界面,5.,设备独立性,6.,供了丰富的网络功能,7.,可靠的系统安全,8.,良好的可移植性,本章结束,又兴趣请参阅其他专业书籍!,






