首页 操作系统概念第一章 引论

操作系统概念第一章 引论

举报
开通vip

操作系统概念第一章 引论 http://www.tulipsys.com - 1 - 操作系统概念(第六版) 第一章 引论 更新日期:2004-8-8 0:00 操作系统是一种管理计算机硬件的程序,为应用程序提供了基本的运行条件,在计算机用户和计算机 硬件之间扮演着中介的角色。操作系统的一个让人感到惊奇的方面就是它们所表现出来的丰富的多样性。 大型计算机操作系统的首要设计目标是优化对硬件的使用。个人计算机(PC)操作系统则提供了对复杂的 游戏、商业应用,以及对介于二者之间的所有应用软件的支持。手持计算机操作系统则向用户...

操作系统概念第一章 引论
http://www.tulipsys.com - 1 - 操作系统概念(第六版) 第一章 引论 更新日期:2004-8-8 0:00 操作系统是一种管理计算机硬件的程序,为应用程序提供了基本的运行条件,在计算机用户和计算机 硬件之间扮演着中介的角色。操作系统的一个让人感到惊奇的方面就是它们所表现出来的丰富的多样性。 大型计算机操作系统的首要设计目标是优化对硬件的使用。个人计算机(PC)操作系统则提供了对复杂的 游戏、商业应用,以及对介于二者之间的所有应用软件的支持。手持计算机操作系统则向用户提供了一个 运行计算机程序的便利的环境。这样,有些操作系统追求易用性,有些追求效率,还有些则是两者的折衷。 要理解什么是操作系统,必须要首先清楚它们是如何发展的。在本章中,我们将从最初的 hands-on 系统开始,经过多道程序系统和分时系统,到个人计算机系统和手持计算机系统,以此来追寻操作系统的 发展。我们也将讨论操作系统的变种,比如,并行系统、实时系统和嵌入式系统。在跨越各种各样的平台 时,我们将看到作为一种自然而然的解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,操作系统是怎样在早期的计算机系统中发展的。 1.1 什么是操作系统? 操作系统几乎是所有的计算机系统的一个重要组成部份。大体上可以将一个计算机系统分为四部分: 硬件、操作系统、应用程序和用户(图1.1)。 Figure 1.1 Abstract vies of the components of a computer system 中央处理单元(CPU)、存储器和输入输出(I/O)设备等硬件提供了基本的计算资源。字处理软件、 电子制表软件、编译器和网页浏览器等应用程序定义了利用这些资源来解决用户计算问题的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 。操作系 统为用户在各种应用程序之间控制和协调着对硬件的使用。 计算机系统由硬件、软件和数据组成。在计算机系统的运行中,操作系统提供了利用这些资源的合理 途径。操作系统与政府十分相似。像一个政府,其本身并不能做什么。操作系统仅仅提供了一个环境,其 它程序可以在此做有用的工作。我们可以从两个视角来研究操作系统:用户视角和系统视角。 1.1.1 用户视角 计算机的用户视角随应用接口的不同而变化不一。大多数计算机用户坐在一台由显示器、键盘、鼠标 和系统单元组成的个人计算机前面。这样的系统针对独占资源的单用户,以求最优化用户的工作(或娱乐)。 http://www.tulipsys.com - 2 - 这样,操作系统的主要设计目标是易用性,同时也兼顾了性能,而没有太多考虑资源利用率。对用户来说, 性能是至关重要的,但是他们并不介意系统是不是频繁处于空闲状态等待缓慢的I/O处理。 有些用户使用连接到大型计算机或小型计算机的终端。有些用户通过终端访问同一台计算机,他们共 享资源并且可以进行信息交流。这种操作系统的设计目标是最优化资源利用,以保证对现有的所有 CPU时 间、存储器和I/O设备的高效利用,使每个用户都公平地分享资源。 有些用户使用工作站,并连接到其它工作站或服务器的网络。这些用户在他们的工作中互相提供资源, 也共享资源,例如:网络和服务器(文件、计算和打印服务器)。所以这种操作系统的设计是为了协调个 人的可用性和资源的利用率。 最近,各种各样的手持计算机流行起来。这些设备大多独立运行,一般由个人用户独自使用。有些通 过有线(这种更为普遍)或无线的方式与网络连接。受到电源容量和操作界面的限制,他们仅能执行相关 的远程操作。这种操作系统主要面向个人应用,节能也很重要。 有些计算机没有或者仅有很小的用户视角。例如:家用设备和汽车上的嵌入式计算机可能仅仅有一个 数字键盘和能够开关表示状态的指示灯。但是,它们和它们的操作系统的运行大多不需要用户介入。 1.1.2 系统视角 从计算机视角看来,操作系统是与硬件最为密切的程序。我们可以把操作系统视为资源分配程序。一 个计算机系统有许多资源(硬件和软件,系统工作时可能会需要它们):CPU时间、内存空间、文件存储空 间、I/O设备等等。操作系统扮演着这些资源的管理者的角色。面对为数众多而且可能相互冲突的资源请 求,操作系统必须决定如何为特定的程序和用户分配资源,力求高效、公平。 操作系统视角与用户视角的一个轻微的不同点在于它强调了对各种I/O设备和用户程序的控制需求。 操作系统是一种控制程序。控制程序管理用户程序的运行,以防止发生错误和对计算机的不合理利用。它 尤其关注对I/O设备的操作和控制。 然而,通常我们没有对操作系统做完全充分的定义。操作系统之所以存在是因为它们是构造便于使用 的计算环境的合理途径。计算机系统的基本目标是执行用户程序和简化用户问题。基于这个目标构建了计 算机硬件。因为纯粹的硬件并不易于使用,于是开发了应用程序。这些应用程序需要一些公共的操作,比 如控制I/O设备。于是控制和分配资源的公共功能就被整合到了一个软件中,这就是操作系统。 另外,对于操作系统应该包含哪些部分,我们还没有达成共识。一个简单的观点认为当你向商家订购 “操作系统”时就包含了一切。存储器(内存、磁盘和磁带)的需求和特性包含其中,然而随着系统的不同 而差异巨大。(系统的存储容量以吉为单位度量。(1千字节或1KB相当于1,024字节,1兆字节或1MB相 当于1,0242字节,1吉字节或1GB相当于1,0243字节,但是计算机制造商往往简单的称 1兆为1百万字节, 吉为 10亿字节。))有些系统拥有不足一兆的存储空间,甚至缺少一个全屏幕的编辑器,相反,有些则需 要数百兆的存储空间,并且基于图形视窗系统。一个更为普遍的定义是:操作系统是一个自始至终在计算 机中运行的程序(通常称之为内核),其它程序则属于应用程序。操作系统应该由那些部件组成,变得越 来越重要了。1998年,美国司法部起诉了微软,状告微软在她的操作系统中集成了太多应用程序,阻碍了 应用程序开发商与她的竞争。 1.1.3 系统目标 通过说明它做什么比它是什么更容易定义操作系统,但是这样也十分很困难。有些操作系统的首要目 标是用户的易用性。操作系统存在是因为它们被假定为较容易的计算手段。当你看待个人计算机时,这种 观点就会异常清晰。 其它操作系统的首要目标是计算机系统的高效性。这是对大型、共享、多用户的系统而言的。这些系 统非常昂贵,所以希望它们尽可能的高效。易用性和高效性这两个目标有时相互冲突。过去,效率要比易 用性更为重要(1.2.1节)。因此许多操作系统理论更为注重对计算资源的优化使用。随着时间的推移,操 作系统也在发展,例如 UNIX开始时以键盘和打印机作为它的用户接口,限制了用户的易用性。随着时间 的过去,硬件变了,UNIX也移植到了新硬件上并提供了更加友好的界面。许多图形用户界面(GUI)诞生 了,这允许UNIX在保持其高效性的前提下为用户提供更佳的易用性。 操作系统的设计是相当复杂的工作。设计者要在设计和实现的过程中面对众多的利弊权衡,许多人不 仅仅满足于实现,他们还不断的修订和更新操作系统。对于某个操作系统是否达到了其设计目标的讨论是 http://www.tulipsys.com - 3 - 公开的,不同用户各持己见。 要领会操作系统是什么和做什么,首先让我们考虑一下它在过去的 45年中是如何发展的。通过回顾 这个发展,我们可以明确操作系统的共同点,并理解这些系统如何和为什么会有这样的经历。 操作系统和计算机体系结构在很大程度上相互影响。为了推动对计算机硬件的利用,研究人员开发了 操作系统。而后操作系统用户提议改变硬件的设计以求简化他们的工作。在这个简短的历史回顾中,要注 意到为了解决操作系统的问题而导致了一些新硬件的引入。 1.2 大型计算机系统 大型计算机系统是最早在商业和科学领域应用的计算机系统。在这一节里,我们将从简单的批处理系 统到分时系统来追寻大型计算机系统的成长过程(批处理系统运行一个且仅仅一个应用程序;分时系统允 许用户与计算机系统交互)。 1.2.1 批处理系统 早期的计算机是通过控制台运行的体积巨大的机器。通用的输入设备是读卡器和磁带驱动器。输出设 备是行式打印机、磁带驱动器和卡片穿孔机。用户不直接与计算机系统交互,而是准备好一个作业(由程 序、数据和一些控制信息(控制卡片)组成)并提交给计算机操作员。作业一般以穿孔卡片的形式提交。 一段时间之后(数分钟、数小时或数天之后)结果就会出来。输出由程序结果和用于调试的最后的内存和 寄存器 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 组成。 这些早期计算机中的操作系统相当的简单。它的主要任务是自动的一个一个的传送作业。操作系统总 是驻留在内存中(图1.2)。 Figure 1.2 Memory layout for a simple batch system 为了提高处理速度,操作员根据作业需求的相似性将它们分批,然后以组为序来运行。这样,程序员 只需要把程序留给操作员。操作员根据程序的需求将它们分批,当计算机可用时,运行每一批程序。作业 的执行结果将返回给相应的程序员。 因为机械I/O设备的速度本质上就要比电子设备慢,所以在这种运行环境中CPU经常处于等待状态。 甚至一个慢速的CPU也要以微秒级的速度运行,每秒可以执行数千个指令。另一方面,即使快速读卡机也 只能每分钟读1200张卡(每秒钟20张)。这样,CPU和I/O设备的速度大约就相差三个数量级或者更多。 随着时间的推移,技术的进步和磁盘的引入造就了更快速的I/O设备。然而CPU速度的提高远为迅速,所 http://www.tulipsys.com - 4 - 以问题不但没有解决,反而加剧了。 磁盘的引入允许操作系统将所有的作业保留在一张磁盘上,这优于串行读卡器。由于直接读取多个作 业,操作系统可以实现作业调度,能够高效的利用资源和执行任务。我们讨论了作业和CPU调度的几个重 要方面;在第六章中将有详细的讨论。 1.2.2 多道程序系统 作业调度最重要的方面就是多道程序设计。一般而言,单个用户不能总是保持CPU或I/O设备忙碌。 通过组织多个作业,多道程序设计提高了CPU的利用率。如此,CPU总是有一个作业可以执行。 其思想是:操作系统在内存中同时保留多个作业(图1.3)。因为可同时保存在内存中的作业数要远小 于作业池中的作业数,所以内存中的作业集是作业池中的作业集的一个子集。操作系统从内存中挑选一个 作业并执行。最终,作业可能必须等待一些工作(比如说I/O操作)事先完成。而在非多道程序系统中, CPU将处于等待状态。在多道程序系统中,CPU简单的转向执行另外一个作业。当一个作业需要等待时, CPU就执行另外一个,以此类推。最终,第一个作业结束等待并重新获得 CPU。既然至少有一个作业需要 执行,那么CPU就不会空闲下来。 Figure 1.3 Memory layout for a multiprogramming system 这种思想在日常生活中是很普遍的。一个律师每次不会只为一个委托人工作。当一个案子等待审判或 打印文件时,律师可以为另一个案子工作。如果有足够的委托人,就不会因为缺乏工作而无事可做。(空 闲的律师往往会成为政客,因为那儿有确定的社会价值保持律师整天忙碌。) 多道程序设计是操作系统必须为用户做出选择的第一个实例。多道程序操作系统也因此有相当大的改 进。所有作业在进入系统之后保存在作业池中。作业池中包含了所有存储在磁盘中等待分配内存的进程。 如果几个作业准备完毕要被放到内存中,但是有没有足够的空间全部容纳,这时系统必须要从中选择。作 业调度做出这个选择,这将在第六章中进行讨论。操作系统从作业池中选择一个作业后就将这个作业调入 内存执行。因为同时有多个程序在内存中,所以就需要某种形式的内存管理,第九章和第十章中涉及到这 些内容。另外,如果多个作业同时准备好,系统就必须从中做出选择。这是CPU调度的任务,将在第六章 中讨论。最后,多个作业的并发运行只能够影响到操作系统的某些部分,包括进程调度、磁盘存储器和内 存管理等。对这些事项的讨论贯穿全书。 1.2.3 分时系统 http://www.tulipsys.com - 5 - 多道程序系统和批处理系统提供了一个可以高效利用系统资源(如CPU、存储器和外围设备)的环境, 但是没有为用户提供与计算机系统交互的能力。分时技术(或者说是多任务处理)是对多道程序设计的逻 辑扩展。通过在多个作业间转换 CPU,可以同时执行多个作业,但是这种转换发生的如此频繁以至于用户 在程序运行的同时可以与计算机交互。 交互式(或hands-on)计算机系统为用户提供了与计算机直接通信的能力。通过键盘或鼠标,用户直 接向操作系统或程序发出指令,然后等待会立即出现的结果。因此,响应时间应该较短——典型的大约在 一秒钟之内。 分时操作系统允许多个用户同时共享计算机。因为分时系统中的每个操作或命令往往都非常短,所以 每个用户仅仅需要一点CPU时间。系统快速的从一个用户转向另外一个,每个用户却感觉到自己独占了整 个计算机系统,即便此时是由多个用户共享。 分时操作系统利用CPU调度和多道程序设计为每个用户提供了分时系统资源的一小部分。每个用户至 少有一个独立的程序在内存中。程序在装入内存并执行后通常被视为进程。当一个程序正在运行时,在它 结束或需要进行I/O操作之前往往只会执行小段时间。输入输出可能是交互式的;换句话说,输出要显示 给用户,输入则来自用户的键盘、鼠标或其它设备。因为交互式的输入输出典型的运行在一个“人的速度” 上,它可能需要很长的时间才能完成。例如,输入可能会受限于用户的打字速度;对人们来说,8个字符 每秒是很快的,但对计算机来说却相当缓慢。当交互式输入发生时,与其让 CPU闲置还不如让操作系统快 速的将CPU转向其他用户的程序。 分时操作系统甚至比多道程序操作系统更加复杂。二者都必须在内存中同时保留多个作业,所以系统 必须要有内存管理和保护(第九章)。为了获得一个合理的响应时间,作业可能需要在主存和磁盘(作为 主存的后备存储器)之间换进换出。为达到这个目标,一个通用的方法是虚拟内存,这是一种允许将作业 部分内容装入内存就可以运行的技术(第十章)。虚拟内存策略的主要优点是程序可以比物理内存更大。 更进一步讲,它将主存抽象到一个大的统一的存储队列中,从而分开来看待逻辑内存和物理内存。这种方 案使程序员免受内存容量的限制。 分时系统也必须提供一个文件系统(第十一章和第十二章)。文件系统驻留在磁盘中;因此,必须要 提供磁盘管理(第十四章)。而且分时系统提供了一个并行运行机制,这需要完善的 CPU调度策略(第六 章)。为了保证作业有序运行,系统必须提供作业的同步和通信机制(第七章),并且要确保作业不会在死 锁发生时困住而永远处于相互等待状态(第八章)。 早在1960年就论证了分时思想,但那时构建分时系统不但困难而且昂贵,这种状况一直持续到70年 代早期。虽然批处理系统依然存在,但今天的大多数系统是分时系统。因此多道程序设计和分时技术是现 代操作系统的主题,也是本书的主题。 1.3 桌面系统 个人计算机在 70年代出现。在最初的十年中,个人计算机中的 CPU缺少保护操作系统不受用户程序 损伤的特性。个人计算机操作系统因此而不支持多用户和多任务处理。然而随着时间的推移,这种操作系 统的目标有所变化;取代对CPU和外围设备的最优化利用,用户的易用性和响应速度成为系统的主要设计 目标。这些系统包括运行Microsoft Windows和Apple Macintosh的个人计算机。微软的MS-DOS操作系 统被同样来自微软的多个产品取代,而 IBM则使用OS/2多任务处理系统替代了MS-DOS。Apple Macintosh 操作系统引入了更多的先进硬件,并且包含了新的特征,例如:虚拟内存和多任务处理。随着MacOS X的 发布,现代操作系统的内核为了可测量性、性能和特性而基于Mach和FreeBSD UNIX,但也保留了丰富多 彩的图形用户界面。Linux是一个用于个人计算机的类UNIX操作系统,最近也十分流行。 通过借鉴大型计算机操作系统的开发成果,个人计算机操作系统受益匪浅。微型计算机可以很快采用 为更大型的操作系统研发的一些技术。另一方面,微型计算机的硬件价格已经足够低了,个人可以单独的 使用计算机,CPU的利用率不再是主要问题。因此,大型计算机操作系统中的一些设计可能不适用于更小 型的系统。 其它的一些设计依然应用,例如:文件保护。最初,文件保护在个人计算机上不是必需的。然而,现 在这些计算机经常要与其它的计算机通过局域网或因特网连接在一起。当其他的计算机和其他的用户能够 访问一台个人计算机中的文件时,文件保护开始成为操作系统的一个重要特征。缺少了这种保护,恶意程 http://www.tulipsys.com - 6 - 序就可以轻易的破坏系统中的数据(如MS-DOS和Macintosh)。恶意程序可以自我复制,能够通过蠕虫或 病毒机制快速传播,并且可能会破坏公司或全世界的网络。仅仅依靠像内存保护和文件许可这样的高级分 时特征并不能令人满意。近来频繁出现的安全漏洞再次证明了这一点。这些内容将在第十八章和第十九章 中展开讨论。 1.4 多处理机系统 目前为止,大多数系统是单处理机系统;也就是说,他们仅仅拥有一个主 CPU。然而多处理机系统(通 常称之为并行系统或紧密耦合系统)的成长是非常重要的。这样的系统拥有多个密切通讯的处理器,这些 处理器共享计算机总线、时钟和外围处理机,有时也共享内存。 多处理机系统有以下三个主要优点: 1. 提高了系统的吞吐量。通过增加处理器的数目,我们希望能够在更短的时间内完成更多的工作。N 个处理器的加速比不是N;而是要小于N。当多个处理器协同处理一个任务时,保证所有部分正确 工作会导致一个固定的开销。这个开销,再加上对共享资源的竞争,降低了增加处理器所期望获 得的性能提高。相似的,N个程序员协同工作不会产生N倍的工作效率。 2. 节省投资。多处理机系统要比多个单处理机系统节省费用,因为它们可以共享外围处理机、存储 器和电源。如果几个程序对相同的数据进行操作,将数据存储在磁盘并由所有的处理器共享要比 使用多台计算机利用本地磁盘储存多个拷贝便宜。 3. 提高了系统的可靠性。如果能够将工作适当地跟配给多个处理器,那么当一个处理器出现故障时 就不会导致整个系统崩溃。如果我们有十个处理器,当一个出现故障时剩下的九个处理器必须要 得到有故障处理器所负责的工作的一部分。这样,整个系统的运行速度仅仅会降低 10%,而不会 全盘瘫痪。这种持续提供服务的能力被称为故障弱化,它与所剩硬件占整个系统的比例有关。这 种设计也被称为容错。 故障发生时的延续运行需要一个允许故障探测、 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 和纠错(在可能的情况下)的机制。Tandem系统 通过使用硬件和软件副本以确保在发生故障时可以继续运行。系统拥有两个同样的处理器,每个都有自己 的本机存储器。它们通过总线连接,一个处理器为主处理器,另一个作为后备。每个进程留有两个拷贝: 一个在主处理器中,另一个在后备处理器中。在系统执行的确定的检查点上,主处理器中每个作业的状态 信息(包括内存映象的拷贝)被拷贝到备份处理器中。如果探测到一个故障,就激活备份并从最近的检查 点重新开始。因为这种方案包含了相当可观的硬件副本,所以代价高昂。 今天的大多数通用多处理机系统采用了对称多处理(SMP)技术,每个处理器运行一个同样的操作系 统拷贝,而且这些拷贝在需要时相互通讯。有些系统采用了非对称多处理,每个处理器有着明确的任务。 一个主处理器控制着系统;其它的处理器照应主处理器或者有预定义的任务。这种方案定义了一种主从关 系。主处理器调度从处理器并为其分配工作。 SMP意味着同等对待所有的处理器;处理器之间没有主从关系。每个处理器并行的运行一份操作系统 拷贝。图1.4例举了一种典型的SMP体系结构。SMP系统的一个例子是为Multimax计算机设计的UNIX的 Encore版。这种计算机可以使用数十个处理器,它们都运行UNIX的拷贝。这种模型的优点是可以同时运 行多个进程,有N个处理器就可以运行 N个进程,而不会引起严重的性能恶化。然而,我们必须小心控制 输入输出,以保证处理器对数据的正确接收。而且,因为CPU是独立的,就可能当一个疲于应付时另一个 却无事可做,导致系统的低效。如果处理器共享确定的数据结构,那么就可以避免这种低效。这种形式的 多处理机系统将允许多个处理器共享进程和资源(如内存),并且能够降低处理器之间的差异。开发这种 系统必须要十分小心,这就像我们将在第七章中看到的那样。实际上所有的现代操作系统(包括Windows NT、 Solaris、 Digital UNIX、OS/2和Linux)都提供了对SMP的支持。 http://www.tulipsys.com - 7 - Figure 1.4 Symmetric multiprocessing architecture 对称多处理和非对称多处理的不同可能与硬件或软件有关。专用硬件能够区分多个处理器,或者可以 开发软件以允许一个主处理器和多个从处理器。例如,Sun的操作系统SunOS第4版提供了对非对称多处 理的支持,而基于同样硬件的第5版(Solaris 2)是对称多处理系统。 因为微处理器变得更便宜更强大,从处理器(后端处理器)中去掉了附加的操作系统功能。例如,添 加一个处理器并为其配备自己的存储器以控制磁盘系统是相当容易的。这个微处理器可以从主CPU接收请 求队列并实现自己的磁盘队列和调度算法。这种方案减轻了主CPU的磁盘调度开销。个人计算机在键盘中 包含了一个微处理器来将击键转换成编码并发送给 CPU。事实上,微处理器的这种应用变得如此广泛,以 至于我们不再考虑多处理技术了。 1.5 分布式系统 以一种最简单的术语来讲,网络就是两个或多个系统通讯的路径。分布式系统依靠网络来实现其功能。 通过通信,分布式系统能够共享计算任务,并且为用户提供了丰富的特性。 不同的网络采用的 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 、节点间距离和传输介质各不相同。虽然ATM和其它的一些协议应用广泛,但 是TCP/IP是最通用的网络协议。同样,操作系统对协议的支持也不尽相同。包括 Windows和UNIX在内的 大多数操作系统支持 TCP/IP协议。有些系统为了适应自己的需求而支持专有的协议。对一个操作系统来 说,网络协议仅仅需要一个简单的接口设备——网络适配器,如利用一个设备驱动程序对它进行管理,在 通信协议中利用软件将数据打包发送和解包接收。对这些概念的讨论贯穿全书。 网络的分类根据它们的节点间的距离。局域网(LAN)在一个房间、一个楼层或者是一个建筑物中。 广域网(WAN)通常在建筑物、城市或国家间。一个跨国公司可以有一个 WAN来连接世界范围内的办公室。 这些网络可以运行一个或多个协议。新技术的不断涌现带来了新的网络形式。例如,城域网(MAN)可以 连接一个城市的建筑。蓝牙设备在几步远的短距离内进行通信,这在本质上就构建了一个小范围网络。 网络介质同样各种各样。这包括铜线、光纤和在卫星、微波天线和无线电接收装备之间的无线传输。 甚至射程较短的红外线通讯也能够用来构建网络。未来,计算机可以随时随地的使用网络或者建立网络进 行通信。根据它们的性能和可靠性,这些网络也不尽相同。 1.5.1 客户端/服务器系统 因为个人计算机变得更快、更强,并且更便宜,设计者已不再将精力集中在系统结构上。现在,个人 计算机取代了连接到中心计算机的终端。相应的,原先由中心计算机直接控制的用户交互功能现在也越来 越多的交给 PC来处理。结果,中央计算机现在作为一个服务系统来满足客户系统发起的请求。图 1.5描 述了一个客户端/服务器系统的通用结构。 http://www.tulipsys.com - 8 - Figure 1.5 General structure of a client-server system 服务器系统可以概括性的分为计算服务器和文件服务器两类。 ·计算服务系统提供了一个客户端接口,客户端通过此接口发送要执行的操作,计算服务器执行这个 操作并将结果返回给客户端。 ·文件服务系统提供了一个文件系统接口,客户端可以在此创建、更新、读取和删除文件。 1.5.2 对等网络系统 计算机网络的成长,尤其是因特网和环球网(WWW),对最近的操作系统的发展产生了深远的影响。当 个人计算机在70年代引入时,它们的设计是为了“个人”应用并且通常作为独立的计算机。随着在 80年 代开始的电子邮件、ftp和gopher等因特网公共应用的普及,许多个人计算机连接到了计算机网络上。随 着90年代中期互联网的出现,网络连接成为计算机系统的必要组成部分。 实际上所有的现代个人计算机和工作站都具有运行一个网络浏览器以访问 Web上的超文本文档的能 力。目前的操作系统(如Windows、OS/2、MacOS和UNIX)也包含了系统软件(如TCP/IP和PPP),这些 软件可以使计算机通过局域网或电话线访问因特网。这包括了网页浏览器、远程登录和文件传输客户端和 服务器。 与在1.4节讨论的紧密耦合系统对比,在这些应用中使用的计算机网络由处理器集合组成,它们不共 享内存或时钟,而是每个处理器有它自己的内存。处理机之间通过各种各样的通信线路进行通信,比如: 高速总线或电话线。这些系统通常被称为松散耦合系统(或分布式系统)。 一些操作系统具备了网络和分布式系统的概念,而远不止提供网络连接。网络操作系统是一种操作系 统,它提供了像跨越网络的文件共享这样的特征,并且包含了一个允许不同计算机间的不同进程相互交换 信息的通讯方案。虽然一台运行网络操作系统的计算机注意到网络的存在并且能够与其它联网的计算机通 信,但它却独立于网络上其它的所有的计算机。分布式操作系统具有更低的独立性:不同的操作系统密切 联系,以至于让人感觉只有一个独立的操作系统在控制网络。我们将在第十五章和第十七章中讨论计算机 网络和分布式操作系统。 1.6 集群系统 与并行系统相似,集群系统也集中了多个CPU来完成计算工作。与并行系统不同,集群系统由两个或 更多独立的计算机连接在一起组成。对术语“集群”的定义并不具体;对于什么是集群系统和为什么一种 优于另一种,多个商业包互相竞争。通常公认的定义是集群计算机共享存取器,并且通过局域网紧密连接。 通常集群系统实现了对高可用性的支持。集群软件层运行在众多节点之上。每个节点能够(通过局域 网)监控一个或多个其它节点。如果被监控的机器出现故障,那么监控的机器能够获取被监控机器的存储 器,并重新开始运行被监控机器中所运行的应用程序。有故障的机器可以维持在这种故障状态,但是用户 和客户端应用程序仅仅会感受到一个简短的服务中断。 在非对称集群中,当其它的计算机运行应用程序时有一台计算机处于开机备用模式。备用主机除了监 控其它活动服务器外什么也不做。如果这个服务器出现故障,备用机就会成为活动服务器。在对称模式中, 两个或更多的主机同时运行应用程序并且相互监控。因为利用了所有可利用的硬件,这种模式显然更加高 效。它就需要多个可以运行的应用程序。 其它形式的集群包括并行集群和构建在广域网上的集群。并行集群允许多个主机通过共享存储器访问 http://www.tulipsys.com - 9 - 数据。因为大多数操作系统缺乏对多个主机同时访问数据的支持,所以并行集群通常由软件和应用程序的 特别版本实现。Oracle并行服务器是Oracle数据库的一个用于运行在并行集群系统上的版本。每个机器 有完全访问数据库中所有数据的权力。 尽管分布式系统已经取得了长足的进步,大多数系统并没有提供多方面的分布式文件系统。因此,大 多数集群系统不允许共享访问磁盘上的数据。为此,分布式文件系统必须提供对文件的访问控制和锁定, 以避免互相矛盾的操作。这种类型的服务通常被认为是分布式锁定管理(DLM)。针对分布式通用文件系统 的研发工作正在进行,像SUN这样的开发商已经宣布了在其操作系统中包含DLM。 集群技术发展迅速,其中包括了全球集群,在这种系统中,机器可以遍布全世界(或者是 WAN所能到 达的任何地方)。这样的工程依然是研究和发展的主题。 随着存储区域网络(SAN,在14.6.3节中详细描述)变得更为流行,集群系统的用途和特性将有更大 程度的扩展。SAN可以很容易的在多个主机和多个存储器单元之间建立连接。由于连接的复杂性,当前的 集群系统通常限制2到4台主机共享数据。 1.7 实时系统 另外一种具有特殊用途的操作系统是实时系统。如果对运算或数据流有严格的时间要求的话,就需要 使用实时系统;因此它经常作为控制设备出现在专门的应用中。传感器获取数据并发送给计算机。计算机 必须分析数据并在需要的情况下调整控制。实时系统在科学实验控制、医学成像、工业控制和某些显示系 统中应用广泛。有些汽车引擎燃油喷射控制系统、家用控制器和武器系统也是实时系统。 实时系统具有明确定义的、不变的时间约束。处理过程必须在规定的时间内完成,否则系统就失效了。 例如,实时系统必须在一个用于汽车制造的机器人手臂撞到(正在制造的)汽车之前停止它。一个实时系统 只有在规定的时间内返回正确的结果才算是能够正确工作。实时系统的这个要求跟分时系统和批处理系统 不同,在这点上注意跟分时系统和批处理系统对比,我们期望(不是强制的)分时系统能够快速响应,而 对批处理系统则根本就没有时间限制。 实时系统分为两种:硬实时系统和软实时系统。硬实时系统要保证按时完成关键性的任务。为此,需 要限制系统中所有的延迟,从数据检索到操作系统结束请求模式的时间需求。这样的时间约束限定了硬实 时系统的功能。辅助存储器通常十分有限或者没有使用,数据存储在短期存储器或只读存储器(ROM)中。 ROM是一种非易失性的存储设备,即使在掉电情况下它也可以保存数据;大多数其它类型的存储器是易失 性的。大多数的高级操作系统特性往往将用户和硬件分离,这样就会造成许多不确定的时间需求,因此它 们也不会出现在硬实时系统中。例如,在实时系统中几乎见不到虚拟内存技术(第十章)。因此硬实时系 统与分时系统是相互冲突的,并且二者不能混为一体。由于现有的操作系统都没有提供对硬实时的支持, 所以在本书中我们就没有涉及此方面内容。 软实时系统是一种限制较少的实时系统,其关键任务的优先权要高于其它任务,并保持拥有这个优先 权直到结束。在硬实时系统中,实时任务不能无休止的等待系统内核来执行它,因此需要限制操作系统的 内核延迟。软实时系统可以与其它类型的系统混为一体,这是可以实现的。然而软实时系统比硬实时系统 有着更多受限的应用。介于它们缺乏对操作时限的支持,在工业控制和机器人中应用软实时系统是比较危 险的。然而软实时系统通常在其它几个领域中应用广泛,这包括了多媒体、虚拟现实和高级科学项目(如 海底探险和行星探测)。这些系统需要一些硬实时系统无法支持的高级操作系统特性。由于软实时系统应 用的不断扩展,当前的大多数操作系统都包含了该技术,其中包括UNIX的主要版本。 我们将在第六章中涉及到在操作系统中实现软实时功能所需的调度机制;在第十章中描述软实时计算 中的内存管理。最后,在第二十一章中描述Windows 2000操作系统的实时部分。 1.8 手持系统 手持系统,包括像 PalmPilot这样的个人数字助理(PDA)或连接到某种网络(如因特网)的蜂窝电 话。手持系统和应用程序的开发者要面对许多挑战,其中大多来自于这种设备的体积限制。比如,典型的 PDA大约长5英寸,宽3英寸,重量不足0.5磅。由于受到尺寸的限制,大多数手持系统包含了一个小容 量存储器、一个低速处理器和一个小尺寸显示屏。我们将逐一讨论这些限制。 许多手持设备的内存容量在 512KB到 8MB之间。(与此相比,典型的个人计算机或工作站可能拥有几 百兆内存!)这样,操作系统和应用程序必须能够高效的管理内存,这包括在不再使用内存时将所持有的 http://www.tulipsys.com - 10 - 内存归还给内存管理程序。我们将在第十章中研究虚拟内存,这是一种允许开发者的程序好像运行在比物 理内存更多的系统之上的技术。目前,多数手持设备没有使用虚拟内存技术,这就迫使开发者受到物理内 存容量的限制。 手持系统开发者所关注另外一个的问题是处理器速度。大多数手持设备的处理器运行速度通常为个人 计算机处理器运行速度的几分之一。更快的处理器需要更强劲的电源。在手持设备中使用更快的处理器就 需要配备更大容量的电池,而且需要更频繁的更换电池(或者是充电)。为了尽可能减小手持设备的尺寸, 经常使用体积更小、速度更慢、能耗更低的处理器。为此,操作系统和应用程序就必须减轻处理器的负担。 手持设备程序的开发者所面临的最后一个问题是要面对所使用的小尺寸显示屏。家用计算机显示器的 尺寸可能会达到 21英寸,而手持系统的显示屏通常不足 3英寸。像阅读电子邮件和浏览网页这样的常见 的工作必须要精简到更小的显示屏中。显示网页内容的一种方法是网页裁剪技术,就是只将网页中的一小 部分内容传送并显示在手持设备上。 一些手持设备可以使用像BlueTooth(1.5节)这样的无线技术,允许远程访问电子邮件和浏览网页。 与 Internet连接的蜂窝电话也是这种类型。当前很多 PDA没有提供无线访问的支持。为了向这种设备中 下载数据,往往首先将数据下载到个人计算机或工作站,然后再传到PDA中。有些 PDA允许通过红外线相 互直接传输数据。通常,PDA的这些功能上的限制根据手持设备的易用性和便携性来折衷。随着网络连接越 来越广泛,手持系统的应用也日渐广泛,照相机和MP3等一些其它的设备不断发展也扩大了它们的应用。 1.9 特征迁移 总的来说,对大型计算机和微型计算机操作系统的比较显示:微型计算机已采用了过去大型计算机所 独有的特性。同样的概念适用于不同类型的计算机:大型计算机、小型计算机,微型计算机和手持计算机。 图1.6所描述的许多概念将在稍后介绍。然而,要开始理解现代操作系统,你需要了解特征迁移,并且认 识到许多操作系统特征的发展史。 Figure 1.6 Migration of operating-system concepts and features 一个典型的特征迁移的例子是多路复用信息与计算服务(MULTICS)操作系统。MULTICS是 MIT (Massachusetts Institute of Technology)在 1965年到 1970年间开发的一个计算工具。它运行在一 个大型的复杂的大型计算机(GE 645)上。许多为MULTICS开发的技术后来被贝尔实验室(一个开发MUTICS 的合作伙伴)用在了UNIX的设计上。UNIX操作系统大约在1970年为PDP-11小型计算机研制。大约在1980 http://www.tulipsys.com - 11 - 年,UNIX的许多特征成了用在微型计算机中的类UNIX操作系统的基础,这包括近来的许多操作系统,比 如:Microsoft Windows NT、IBM OS/2和Macintosh。如此,随着时间的推移,为大型计算机系统设计的 许多技术移植到了微型计算机上。 在大型操作系统的特性被按比例缩小以适应个人计算机的同时,更强、更快、更完善的硬件系统也在 发展。个人工作站是一种大型的个人计算机,比如:Sun SPARCstation、HP/Apollo、IBM RS/600和运行 Windows NT或UNIX派生系统的Intel Pentium系列。许多大学和企业拥有相当数量的工作站,这些工作 站又通过局域网紧密连接。当个人计算机拥有更完善的硬件和软件时,大型计算机和微型计算机的分类变 得模糊不清了。 1.10 计算环境 从最初的 hands-on系统到多道程序系统和时分系统,再到个人计算机和手持计算机,我们回顾了操 作系统的发展,那么现在就应该能够给出一个综述:这样的系统是怎样在多样化的计算环境中应用的。 1.10.1 传统计算 随着信息处理技术的成熟,传统计算环境的概念变得模糊了。考虑一下“典型的办公环境”。仅仅在数 年前,这个环境由连接到提供打印服务网络的个人计算机构成。远程访问并不好用,而膝上型计算机提供 了便携的工作环境。在许多公司中,连接到大型机的终端的应用也非常的普遍,它们的远程访问和便携能 力还要差一些。 当前的趋势向着提供更多的访问这些环境的能力发展。互联网技术扩展了传统计算。公司实现了通过 互联网访问他们内部服务器的入口。网络计算机是能够解释 Web计算的必要的终端。便携式计算机能够与 PC同步,这样就可以轻便的使用公司的数据。它们也能够连接到无线网络以利用公司的互联网入口(也有 其它无限的互联网资源)。 大多数用户在家里使用一台独立的计算机,利用慢速调制解调器连接到办公室、因特网或二者都有。 网络连接速度曾经非常昂贵,现在就便宜多了,这就允许在公司内部或通过互联网访问更多的数据。这些 快速的数据连接允许家用计算机充当 Web网页服务,并且包含了打印机、客户端 PC和服务器。有些家庭 甚至拥有防火墙来保护这些家庭环境免收侵害。这种防火墙在数年前价值数千美元,而十年前甚至还没有。 1.10.2 基于Web的计算 Web已经变得无处不在,于是人们通过各种各样的设备访问网络,这与我们在过去的几年中所梦想的 相比有过之而无不及。个人计算机依旧是最普遍的访问设备,工作站(高档的面向图形的 PC)、手持个人 数字助理,甚至蜂窝电话也提供了访问支持。 网络计算提高了网络连接的重要性。先前没有网络连接的设备现在拥有有线或无线访问能力。网络设 备现在有了更快的网络连接,这来自于提高网络技术、优化网络实现代码,或二者都有。 基于Web运算的实现促使了各种新型设备的出现,如负载均衡器,它在众多类似的服务器之间分配网 络连接。像 Windows 95这样的操作系统扮演着Web客户端的脚色,它已经发展到了 Windows ME和Windows 2000,Windows 2000不但可以作为客户端,还可以作为服务器。通常,Web提高了设备的复杂性,因为用 户需要它们能够连接到Web。 1.10.3 嵌入式计算 嵌入式计算机是现在最为流行的计算机形式,它们运行嵌入式实时操作系统。从汽车引擎和工业机器 人到录像机和微波炉,这些设备随处可见。嵌入式计算机往往有着特殊的任务。它们运行的系统通常很简 单并缺少一些高级特征,比如虚拟内存,甚至是磁盘。这样,操作系统仅仅提供了有限的特性。它们的用 户接口通常很小或者没有,而更多的是在监控和管理硬件设备,比如汽车引擎和机器人手臂。 作为一个例子,考虑前述的防火墙和负载均衡器。有些就是通用计算机,它们运行标准的操作系统(如 UNIX)和特殊用途的应用程序来实现它们的功能。其它的是一些使用特殊用途的嵌入式操作系统的硬件设 备,这些设备仅仅提供了所需的功能。 嵌入式系统的应用仍在不断扩展。这些设备,不管是作为独立的单元还是网络或Web成员,它们的能 力必定会不断提高。整个住宅能够实现计算机化,这样,不管是通用计算机还是嵌入式系统都可以控制供 热、照明、报警系统,甚至能够控制咖啡壶。家庭成员可以在回到家之前通过Web使室内升温。也许会有 一天,电冰箱在牛奶用光时会自动通知食品店。 http://www.tulipsys.com - 12 - 1.11 摘要 因为两个主要的原因,操作系统在过去的 45年中持续发展。首先,操作系统尝试调度计算活动,以 确保计算系统的优良性能。其次,它为程序的开发和运行提供了一个便利的环境。最初,通过前端控制台 使用计算机系统。汇编程序、装载程序、连接程序和编译程序等软件使程序设计更加便利,但是也需要很 多配制时间。为了减少配置时间,就要雇佣操作员,对相似的作业打包。 批处理系统允许常驻内存的操作系统对工作自动排序,大大提高了计算机的整体利用率。计算机就不 再需要等待人工操作了。然而,对于CPU来说,I/O设备的速度太慢了,所以CPU的利用率仍旧很低。脱 机操作使得单个CPU可以同时控制读卡机、磁带驱动器、打印机等多个低速设备。(Off-line operation of slow devices provides a means to use multiple reader-to-tape and tape-to-printer systems for one CPU.) 为了提高整个计算机的性能,引入了多道程序设计,可以在内存中同时保留多个作业。CPU在这些作 业之间来回转换,减少了执行作业的总时间。 多道程序技术也允许分时。而分时操作系统允许多个用户(从一个到几百个)同时交互式的使用计算 机。 个人计算机是微型计算机;它明显比大型机系统更小,更便宜。这种计算机的操作系统在多个方面受 益于大型机操作系统的发展。然而,因为个人单独的使用计算机,CPU利用率不再是首要问题。因此,大 型计算机操作系统中的一些设计就不适于这些更小的系统。由于个人计算机现在能够通过网络和Web连接 到其它的计算机和用户,这样,其它的一些设计则对小型系统和大型系统同样适用,如安全策略。 并行系统拥有多个密切通讯的 CPU;CPU共享计算机总线和外围处理机,有时也共享内存。这样的系 统提高了吞吐量并增强了可靠性。分布式系统允许在地理上分散的主机共享资源。集群系统允许多台机器 同时对共享数据进行运算,并且能够在某些子集群成员出现故障的情况下维持计算持续运行。 硬实时系统通常作为控制设备出现。硬实时操作系统具有明确定义的固定的时间限定。进程必须要在 限定的时间内完成,否则系统就失效了。软实时系统则具有较少的时间限制,而且不支持限期调度。 最近,出于 Internet和 WWW的影响,整合了网页浏览、网络连接和通讯软件的现代操作系统的开发 倍受鼓舞。 CPU的发展需要更高级的功能,通过这条主线我们讨论了操作系统的发展过程。随着硬件价格的进一 步降低,计算机的特性也有所改变,这个趋势可以通过现在PC的发展感受到。 词汇 并行系统:parallel system 操作系统:operating system 超文本:hypertext 城域网:metropolitan-area network, MAN 存储器:memory 存储区域网络:storage-area network, SAN 大型计算机:mainframe 大型计算机系统:mainframe computer system 对称多处理:symmetric multiprocessing, SMP 对等网络:Peer-to-Peer 对等网络系统:Peer-to-Peer system 多处理机系统:multiprocessor system 多道程序设计:multiprogramming 多路复用信息与计算服务:MULTIplexed Information and Computing Service, MULTICS 多任务处理:multitasking 非对称多处理:asymmetric multiprocessing 分布式锁定管理:distributed lock manager, DLM http://www.tulipsys.com - 13 - 分布式系统:distributed system 分时:time sharing 分时系统:time-shared system 辅助存储器(二级存储器):secondary storage 高可用性(高效率):high availability 个人工作站:personal workstation 个人计算机:personal computer, PC 个人数字助理:personal digital assistant, PDA 工作站:workstation 功能退化,故障弱化:graceful degradation 广域网:wide-area network,WAN 环球网:World Wide Web, WWW 集群系统:clustered system 计算服务系统:compute-server system 交互式计算机系统:interactive computer system 紧密耦合系统:tightly coupled system 进程:process 局域网:local-area networks,LAN 客户端/服务器系统:client-server system 控制程序:control program 蓝牙:BlueTooth 内核:kernel 批处理系统:batch system 容错:fault tolerant 入口:portal 软件:software 软实时系统:soft real-time system 实时系统:real-time system 手持系统:handheld system 输入输出设备:input/output (I/O) device 松散耦合系统:loosely coupled system 图形用户界面:graphic user interface, GUI 网络:network 网络操作系统:network operating system 网络计算机:network computer 文件服务系统:file-server system 物理内存(物理存储器):physical memory 响应时间:response time 小范围网络:small-area network 小型计算机:minicomputer 异步传输模式:Asynchronous Transmission Mode, ATM 因特网:Internet 硬件:hardware 硬实时系统:hard real-time system 中央处理单元:central processing unit, CPU 资源分配程序:resource allocator http://www.tulipsys.com - 14 - 资源利用:resource utilization 作业调度:job scheduling 作业调度程序:job scheduler tulipsys@sohu.com
本文档为【操作系统概念第一章 引论】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_662875
暂无简介~
格式:pdf
大小:431KB
软件:PDF阅读器
页数:0
分类:互联网
上传时间:2010-11-15
浏览量:17