第5部分操作系统.ppt

上传人:本田雅阁 文档编号:2607206 上传时间:2019-04-17 格式:PPT 页数:362 大小:1.90MB
返回 下载 相关 举报
第5部分操作系统.ppt_第1页
第1页 / 共362页
第5部分操作系统.ppt_第2页
第2页 / 共362页
第5部分操作系统.ppt_第3页
第3页 / 共362页
亲,该文档总共362页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第5部分操作系统.ppt》由会员分享,可在线阅读,更多相关《第5部分操作系统.ppt(362页珍藏版)》请在三一文库上搜索。

1、第5章 操 作 系 统,5.1 概 述 5.1.1 操作系统的作用与地位 5.1.2 操作系统的功能 5.1.3 操作系统的类型 5.1.4 操作系统的基本特征 5.2 进程管理 5.2.1 多道程序设计 5.2.2 进程 5.2.3 进程间的通信 5.2.4 进程控制 5.2.5 进程高度调度 5.2.6 进程死锁,5.3 存储管理 5.3.1 存储管理的功能 5.3.2 分区存储管理 5.3.3 页式存储管理 5.3.4 段式存储管理 5.3.5 段页式存储管理 5.3.6 虚拟存储管理 5.3.7 请求页式存储管理 5.4 设备管理 5.4.1 设备管理概述 5.4.2 I/O控制方式

2、5.4.3 设备分配 5.4.4 I/O传输控制 5.4.5 磁盘调度,5.5 文件管理 5.5.1 文件与文件系统 5.5.2 文件结构和存取方法 5.5.3 文件目录 5.5.4 文件存储空间的管理 5.5.5 文件存取控制 5.6 作业管理 5.6.1 操作系统与用户的接口 5.6.2 作业的基本概念 5.6.3 作业控制块和后备队列 5.6.4 作业调度与作业控制 5.6.5 UNIX/XENIX操作系统 简介 习题,5.1 概 述,5.1.1 操作系统的作用与地位 众所周知,计算机系统由硬件和软件组成。在众多的计算机软件中,操作系统占有特殊重要的地位。图5-1简明地显示了计算机系统的

3、基本构成。这一简图表明:,(1) 操作系统是最基本的系统软件,因为所有其它的系统软件(例如编译程序、数据库管理系统等语言处理器)和软件开发工具都是建立在操作系统的基础之上,它们的运行全都需要操作系统的支持。在计算机启动后,通常先把操作系统装入内存,然后才启动其它的程序。,(2) 操作系统是用户与计算机硬件之间的接口。用户及其应用程序是通过操作系统与计算机的硬件相联系的。如果没有操作系统作为中介,用户对计算机的操作和使用将变得非常低效和困难。 (3) 按照虚拟机(Virtual machine)的观点,操作系统+裸机=虚拟计算机,如图5-2所示。换句话说,一台纯粹由硬件组成的裸机在配置操作系统后

4、,将变成一台与原机器大相径庭的“虚拟”的计算机,无论在机器的功能或操作方面都将面目一新。,图5-1 计算机系统的基本构成,图5-2 裸机+操作系统=虚拟计算机,由此可见,硬件仅为人们提供了“原始的处理能力”。有了操作系统,才能使这一能力更有效、更方便地为人们使用。鉴于操作系统在计算机系统及软件开发环境中所处的重要地位,任何用户从系统程序员到一般的最终用户(end user)都需要不同程度地了解它。 所谓操作系统(OS,Operating System),它是由一些程序模块组成,用来控制和管理计算机系统内的所有资源,并且合理地组织计算机的工作流程,以便有效地利用这些资源,并为用户提供一个功能强、

5、使用方便的工作环境。,操作系统有两个重要的作用: (1) 管理计算机系统中的各种资源。 我们知道,任何一个计算机系统,不论是大型机、小型机,还是微机,都具有两种资源:硬件资源和软件资源。硬件资源是指计算机系统的物理设备,包括中央处理机、存储器和I/O设备;软件资源是指由计算机硬件执行的、用以完成一定任务的所有程序及数据的集合,它包括系统软件和应用软件。操作系统就是最基本的系统软件,它既是计算机系统的一部分,又反过来组织和管理整个计算机系统,充分利用这些软、硬件资源,使计算机协调一致并高效地完成各种复杂的任务。,(2) 为用户提供良好的界面。 从用户的角度看,操作系统不仅要对系统资源进行合理的管

6、理,还应为用户提供良好的操作界面,便于用户简便、高效地使用系统资源。这里的用户包括计算机系统管理员、应用软件的设计人员等。 “管家婆”兼“服务员”,就是操作系统所扮演的一身二任的角色。,5.1.2 操作系统的功能 操作系统的基本功能就是合理地、高效地管理计算机系统的各种软硬件资源。在单用户系统中,资源管理相对简单一些,而在多用户共用的系统中,资源管理的任务就比较复杂。由于多用户要共享系统资源,就带来了一些新的问题。如多个用户如何抢占CPU时间,有限的存储空间特别是宝贵的内存空间如何分配,如何竞争输入输出设备及软件资源等。,这就要求操作系统必须有相应的功能,来决定资源共享的策略和有效地解决问题的

7、方法,最大限度地发挥计算机的效率,提高计算机在单位时间内处理工作的能力(称为“吞吐量”,through out)。因此,操作系统应具有的基本功能有:中央处理器管理、存储管理、设备管理、文件管理及作业管理。,1中央处理器管理 中央处理器即CPU,是计算机系统中最宝贵的硬件资源。CPU管理指操作系统根据一定的调度算法对处理器进行分配,并对其运行进行有效的控制和管理。为了提高CPU的利用率,采用了多道程序技术。如果一个程序因等待某一条件而不能继续运行时,就把处理器占用权转交给另一个可运行程序;或者,当出现了一个比当前运行的程序更重要的可运行的程序时,后者应能抢占CPU。为了描述多道程序的并发执行,就

8、要引入进程的概念,通过进程管理协调多道程序之间的关系,解决对处理器分配调度策略、分配实施和回收等问题,以使CPU资源得到最充分的利用。,正是由于操作系统对处理器管理策略的不同,其提供的作业处理方式也就不同。例如批处理方式、分时处理方式和实时处理方式,从而呈现在用户面前的就是具有不同性质的操作系统。,2存储管理 存储管理指分配、回收与保护存储单元。其目的是为多个程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率,以及能从逻辑上来扩充内存。,存储管理主要是指内存管理,虽然RAM芯片的集成度不断地提高,但受CPU寻址能力的限制,内存的容量仍有限。因此,当多个程序共享有限的内存资源时,要

9、解决的问题是如何为它们分配内存空间,同时,既使用户存放在内存中的程序和数据彼此隔离、互不侵扰,又能保证在一定条件下共享,尤其是当内存不够用时,解决内存扩充问题(即将内存和外存结合起来管理),为用户提供一个容量比实际内存大得多的虚拟存储器。操作系统的这一部分功能与硬件存储器的组织结构密切相关。,3设备管理 设备管理主要是对设备进行分配、回收与控制。这里所说的设备是指计算机系统中除了CPU和内存以外的所有输入、输出设备,除了完成实际I/O操作的设备外,还包括诸如控制器、通道等支持设备。外部设备的种类繁多、功能差异很大。设备管理负责外部设备的分配、启动和故障处理,用户不必详细了解设备及接口的技术细节

10、,就可以方便地对设备进行操作。,为了提高设备的利用效率和整个系统的运行速度,可采用中断技术、通道技术、虚拟设备技术和缓冲技术,尽可能发挥设备和主机的并行工作能力。此外,设备管理应为用户提供一个良好的界面,使用户不必涉及具体设备的物理特性即可方便灵活地使用这些设备。,4文件管理 计算机系统中的软件资源(如程序和数据)是以文件的形式存放在外存储器(如磁盘、磁带)上的,需要时再把它们装入内存。文件管理的任务是有效地支持文件的存储、检索和修改等操作,解决文件的共享、保密和保护问题,以使用户方便、安全地访问文件。操作系统一般都提供功能很强的文件系统。,5作业管理 除了上述4项功能之外,操作系统还应该向用

11、户提供使用它自己的手段,这就是操作系统的作业管理功能,作业管理是操作系统提供给用户的最直接的服务。按照用户观点,操作系统是用户与计算机系统之间的接口,因此,作业管理的任务是为用户提供一个使用系统的良好环境,使用户能有效的组织自己的工作流程,并使整个系统能高效地运行。 操作系统的各功能之间并非是完全独立的,它们之间存在着相互依赖的关系。,5.1.3 操作系统的类型 操作系统有多种。翻开操作系统的发展史,操作系统经历了手工操作阶段、单道(程序)批处理阶段、多道(程序)批处理阶段、分时系统、实时系统。随着硬件技术的飞速发展,微处理机的出现和发展,操作系统又向个人计算机、计算机网络、分布式处理和智能化

12、方向发展,随着计算机技术和软件技术的发展,目前已经形成了各种类型的操作系统,以满足不同的应用要求。 在以下的描述中用到作业的概念,所谓作业就是用户要求计算机处理的一项工作,是用户程序及所需数据和命令的集合。,1批处理操作系统 所谓批处理操作系统,就是用户将要机器做的工作有序地排在一起,成批地交给计算机系统,计算机系统就能自动地、顺序地完成这些作业,用户与作业之间没有交互作用,不能直接控制作业的运行。有时也称批处理为“脱机操作”。,在批处理系统中,用户一般不直接操纵计算机,而是将作业提交给系统操作员。操作人员将作业成批地装入计算机,由操作系统将作业按规定的格式组织好存入磁盘的某个区域,然后按照某

13、种调度策略依次将作业调入内存加以处理,处理的步骤事先由用户设定,输出的作业处理结果通常也由操作系统组织存入磁盘某个区域,然后统一加以输出,最后,由操作员将作业运行结果交给用户。,在批处理系统中,又有单道批处理和多道批处理两种。在单道批处理的情况下,一次只调一个作业进入内存,CPU只为一道作业服务。但是在这个作业运行期间,输入和输出操作是难免的,而实际中I/O的速度要比CPU慢得多,这样就造成了CPU大部分时间在空闲等待。为了解决这一问题,又产生了多道批处理系统。它一次将几个作业放入内存,宏观上看,同时有多个作业在系统中运行,而实际上这些作业是分时串行地在一台计算机上运行。,也就是说,CPU先处

14、理第一个作业,如果这个作业由于I/O或其它原因而不能继续进行,就从可运行的作业中挑选另一个作业去运行,从表面上看,好象两个作业同时运行。这样做,显然提高了CPU的利用率,改善了主机和I/O设备的使用情况。 多道批处理系统追求的目标是提高系统资源的利用率和大的作业吞吐量以及作业流程的自动化。这类操作系统一般用于计算中心等较大的计算机系统中,要求系统对资源的分配及作业的调度策略有精心的设计,管理功能要求既全又强。,2分时操作系统 多道批处理系统虽然能提高机器的资源利用率,但却存在一个重要的缺点。由于一次要处理一批作业,在作业的处理过程中,任何用户都不能和计算机进行交互。即使发现了某个作业有程序错误

15、,也要等一批作业全部结束后脱机进行纠错。这对于软件开发人员来说,是严重的缺陷。正是这一矛盾,导致了分时操作系统应运而生。,分时操作系统允许多个用户同时联机与系统进行交互通信,一台分时计算机系统连有若干台终端,多个用户可以在各自的终端上向系统发出服务请求,等待计算机的处理结果并决定下一步的处理。操作系统接收每个用户的命令,采用时间片轮转的方式处理用户的服务请求,即按照某个轮转次序给每个用户分配一段CPU时间,进行各自的处理。这样,对每个用户而言,都仿佛“独占”了整个计算机系统。具有这种特点的计算机系统称为分时系统。,例如一个带20个终端的分时系统,若每个用户分配一个50 ms的时间片,每隔1 s

16、(50 ms20)即可为所有用户服务一遍。如此周而复始,循环不已。因此,尽管各个终端上的作业是断续地运行,但由于操作系统每次都能对用户程序作出及时的响应(例如上述的1 s),在用户的感觉上,似乎整个系统归他一人占有。分时系统的这一特性称为“独占性”。,由上所述,分时操作系统具有以下几个方面的特点。 (1) 多路性。允许在一台主机上同时联接多台联机终端,系统按分时原则为每个用户服务。在微观上,是每个用户作业轮流运行一个时间片;而在宏观上,则是多个用户同时工作,共享系统资源。多路性亦称同时性,它提高了资源利用率。,(2) 独立性。又称独占性。每个用户各占一个终端,彼此独立操作,互不干扰。因此,用户

17、会感觉到就像他一人独占主机。 (3) 及时性。系统对用户的输入能及时地做出响应,此时间间隔是以人们所能接受的等待时间来确定的,通常为12 s。分时操作系统性能的主要指标之一是响应时间,即从终端发出命令到系统予以应答所需的时间。 (4) 交互性。用户可通过终端与系统进行广泛的人机对话。分时系统的主要目标是对用户响应的及时性,即不使用户等待每一条命令的处理时间过长。,3实时操作系统 实时操作系统是随着计算机应用领域的日益广泛而出现的,具体含义是指系统能够及时响应随机发生的外部事件,并在严格的时间范围内完成对该事件的处理。实时系统可分为两类: (1) 实时控制系统。实时控制系统实质上是过程控制系统,

18、通过模-数转换装置,将描述物理设备状态的某些物理量转换成数字信号传送给计算机,计算机分析接收来的数据、记录结果,并通过数-模转换装置向物理设备发送控制信号,来调整物理设备的状态。,例如把计算机用于飞机飞行、导弹发射等自动控制时,要求计算机能尽快处理测量系统测得的数据,及时地对飞机或导弹进行控制,或将有关信息通过显示终端提供给决策人员。同样,把计算机用于轧钢、石化、机械加工等工业生产过程控制时,也要求计算机能及时处理由各类传感器送来的数据,然后控制相应的执行机构。,(2) 实时信息处理系统。实时信息处理系统主要是指对信息进行及时地处理。例如利用计算机预订飞机票、火车票或轮船票,查询有关航班、票价

19、等事宜时,或把计算机用于银行系统、情报检索系统时,都要求计算机能对终端设备发来的服务请求及时予以正确的回答。这个过程中,实时的重要性在于防止数据的丢失。,实时操作系统的一个主要特点是及时响应,即每一个信息接收、分析处理和发送的过程必须在严格的时间限制内完成;其另一个主要特点是要有高可靠性,因为实时系统控制、处理的对象往往是重要的军事、经济目标,任何故障都会导致巨大的损失,所以重要的实时系统往往采用双机系统以保证绝对可靠。,实时操作系统有别于批处理系统,因为它认为保证可靠操作远比让所有资源经常处于“忙碌”状态更重要;它也不同于分时操作系统,因为它要求的实时响应时间随系统而变化,例如定票和检索系统

20、一般要求在数秒内响应,而导弹系统的响应时间可能短达微秒量级,不像分时操作系统的响应时间总是保持在一定的范围内(例如12 s)。正是由于这些特点,许多实时操作系统都属于专用操作系统,以便按照实际的需要来设计。,4个人计算机操作系统 个人计算机上的操作系统是一种联机交互的单用户操作系统,它提供的联机交互功能与通用分时系统所提供的功能很相似。由于是个人专用,因此一些功能将会简单的多。然而,由于个人计算机的应用普及,要求个人计算机操作系统提供更方便友好的用户接口和功能丰富的文件系统。 单用户单任务的操作系统MS-DOS和单用户多任务的操作系统OS/2及Windows等都是个人计算机上的操作系统。,5网

21、络操作系统 网络操作系统是为计算机网络而配置的。计算机网络是把不同地点上分布的计算机通过通信机构连接起来,实现资源共享。网络操作系统就是网络用户与计算机网络之间的接口,它除了具有通常操作系统的各种功能外,还应具有网络管理的功能,例如,网络通信、网络服务等。,6分布式操作系统 分布式操作系统是为分布式计算机系统配置的,它将物理上分布的具有自治功能的数据处理系统或计算机系统互连起来,实现信息交换和资源共享,协作完成任务。分布式操作系统管理分布式系统中的所有资源,它负责全系统的资源分配和调度、任务划分、信息传输控制协调工作,并为用户提供一个统一的界面,用户通过这一界面实现所需要的操作并使用系统资源,

22、至于操作定在哪一台计算机上执行或使用哪台计算机的资源则是操作系统完成的,用户不必知道。,此外,由于分布式系统更强调分布式计算和处理,因此对于多机合作和系统重构、健壮性和容错能力有更高的要求。,5.1.4 操作系统的基本特征 操作系统是一个十分复杂的系统软件,考察操作系统的基本特征,能帮助人们从更深的层次上认识操作系统。前面介绍的各种类型的操作系统,虽然它们各有自己的特征,但它们都具有以下四个基本特征。,1并发(Concurrence) 并发性是指在计算机系统中同时存在着若干个正在运行的程序,这些程序同时或交替地运行。从宏观上看,这些程序是同时向前推进的,但在单处理机的环境下,每一时刻仅能执行一

23、道程序,故在微观上,这些并发执行的程序是交替地在CPU上运行。程序的并发性具体体现在如下两个方面:用户程序与用户程序之间并发执行;用户程序与操作系统程序之间并发执行。,2共享(Sharing) 并发性必然要求系统资源共享。所谓共享是指系统中的资源可供内存中多个并发执行的进程共同使用,即操作系统程序与多个用户程序共享系统中的各种软、硬件资源。例如,多道程序共占内存,若干个任务分享CPU,多个用户共享一个程序副本,共享同一数据库等,都是共享的表现。共享的好处是可以减少资源浪费,避免软件的重复开发,但随之而来的问题有: 如何处理资源竞争问题,进行合理的资源分配; 当程序同时执行,数据共同存取时,如何

24、保护它们不因受到破坏而引起混乱。,3虚拟(Virtual) 在操作系统中的所谓“虚拟”,是指通过某种技术把一个物理实体变成逻辑上的多个。物理实体(前者)是实的,即实际存在的,而后者是虚的,是用户感觉上的东西。例如,在多道分时系统中,虽然只有一个CPU,但每个终端用户却都认为是有一个CPU在专门为他服务,亦即,利用多道程序技术可以把一台物理上的CPU虚拟为多台逻辑上的CPU,也称为虚处理机。类似地,也可以把一台物理I/O设备虚拟为多台逻辑上的I/O设备。,此外,也可以把一条物理信道虚拟为多条逻辑信道(虚信道)。在操作系统中虚拟的实现,主要是通过分时使用的方法。显然,如果n是某一物理设备所对应的虚

25、拟的逻辑设备数,则虚拟设备的速度必然是物理设备速度的1/n。,4异步性(Asynchronism) 也称为不确定性。不是说操作系统本身的功能不确定,也不是说在操作系统控制下运行的用户程序的结果不确定(即同一程序对相同的输入数据在两次或两次以上运行中有不同的结果),而是说在操作系统控制下的多个作业的运行顺序和每个作业的运行时间是不确定的。在多道程序环境下,允许多个程序同时执行,但由于资源等因素的限制,通常程序的执行并非“一气呵成”,而是以“走走停停”的方式运行。内存中的每个进程在何时执行,何时暂停,以怎样的速度向前推进,每道程序总共需多少时间才能完成,都是不可预知的。,很可能是先进入内存的作业后

26、完成,而后进入内存的作业先完成。或者说,进程是以异步的方式运行。例如,有三个作业J1、J2、J3,两次或多次运行的顺序可能是不相同的,而且同一个作业(如J1)这次运行需要1 s,下次运行却需要4 s等。尽管如此,但只要运行环境相同,作业经多次运行,都会获得完全相同的结果,因此,异步运行方式是允许的。,5.2 进 程 管 理,5.2.1 多道程序设计 1程序的顺序执行 自从计算机问世以来,人们广泛地使用“程序”这一概念。程序是一个在时间上按严格次序前后相继执行的操作序列。在多道程序设计出现以前,程序的最大特征是“顺序性”,即顺序执行。下面用一个简单的例子来说明程序顺序执行的特点。,图5-3 程序

27、的顺序执行,假设有n个作业,而每个作业Ji由三个程序段Ii,Ci,Pi组成。其中,Ii表示从输入机上读入第i个作业的信息;Ci表示执行第i个作业的计算;Pi表示在打印机上打印出第i个作业的计算结果。在早期的计算机中,每一作业的这三个程序只能是一个接一个地顺序执行。也就是输入,计算和打印三者串行工作,并且前一个作业结束后,才能执行下一个作业,如图5-3所示。 显然,程序的顺序执行具有如下特点。,(1) 顺序性。程序所规定的动作在机器上严格地按顺序执行,每个动作的执行都以前一个动作的结束为前提条件,即程序和机器执行它的活动严格一一对应。 (2) 封闭性。程序一旦开始运行,其计算结果只取决于程序本身

28、,不受外界因素的影响,即只有程序本身的动作才能改变程序的运行环境。 (3) 可再现性。程序的执行结果与其执行速度无关。只要输入的初始条件相同,则无论何时重复执行该程序都会得到相同的结果,且处理机在执行程序的两个动作之间如有停顿也不会影响程序的执行结果。,2. 程序的并发执行 为增强计算机系统的处理能力和提高各种资源的利用率,往往要求计算机系统能够同时处理多个具有独立功能的程序。通常采用并行操作技术,使系统中的各种硬件资源尽量做到并行工作。,所谓程序的并发执行是指两个或两个以上的程序在执行时间上是重叠的。系统中各个部分不再以单纯的串行方式工作。换句话说,在任一时刻,系统中不再只有一个活动,而存在

29、着许多并行的活动。从硬件方面看,处理机,各种外设,存储部件常常并行地工作着;从程序活动方面看,则可能有若干程序同时或者相互穿插地在系统中被执行。程序的并发执行已成为现代操作系统的一个基本特征。,程序的并发执行虽然卓有成效地增加了系统的处理能力和提高了系统资源的利用率,但它带来了一些新的问题,也就是产生了与顺序程序不同的新特性,这些新特性是: (1) 失去了程序的封闭性。如前所述,程序的顺序执行具有程序的封闭性和由之而来的可再现性,而并发执行是否还保持这种封闭性呢?先来看一个例子。,设有观察者和报告者并行工作。在一条单向行驶的公路上经常有卡车通过。观察者不断对通过的卡车计数。报告者定时地将观察者

30、的计数值打印出来,然后将计数器重新清“0”。此时可以写出如下程序,其中Cobegin和Coend表示它们之间的程序可以并发执行。,Begin Count:integer; Count:=0 Cobegin Observer Begin L1: Observe next car; Count:=Count +1; Goto L1 End;,Reporter Begin L2: Print Count; Count:=0; Goto L2 End Coend End,由于观察者和报告者各自独立地并行工作,其中,Count:=Count+1的操作,既可以在报告者的Print Count和Count:

31、=0操作之前,也可以在其后,还可以在Print Count和Count:=0之间。既可能出现以下三种执行序列: Count :=Count+1; Print Count; Count:=0; Print Count; Count:=0; Count:=Count+1; Print Count; Count:=Count+1; Count:=0。 假设在开始某个循环之前,Count的值为n,则在完成一个循环后,对上述三个执行序列打印机打印的Count值和执行后的Count值如下表所示:,由上表可见,由于观察者和报告者的程序执行速度不同,导致了计算结果的不同。这就是说,程序并发执行已丧失了顺序执行

32、所保持的封闭性和可再现性。 (2) 程序与计算不再一一对应。程序和机器执行程序的活动是两个概念。程序是指令的有序集合,是静态的概念;而机器执行程序的活动是指处理机按照程序执行指令序列的过程。通常把机器执行程序的活动,称为“计算”。显然,“计算”是一个动态的概念。,在并发执行中,允许多个用户作业调用一个共享程序段,从而形成了多个“计算”。例如,在分时系统中,一个编译程序往往同时为几个用户服务,该编译程序便对应了几个“计算”。,(3) 间断性。即并发程序在执行期间具有相互制约关系。程序在并发执行时,总是伴随着资源的共享和竞争,从而制约了各个程序的执行速度,使本来并无逻辑关系的程序之间产生了相互制约

33、的关系,各个程序活动的工作状态与它所处的环境有密切关系。它随着外界变化而不停地变化,并且它不像单道程序系统中顺序执行那样,而是走走停停,具有执行暂停执行的活动规律。,3多道程序设计 所谓多道程序设计,就是允许多个程序同时进入内存并运行。多道程序设计是操作系统所采用的最基本、最重要的技术,其根本目的是提高整个系统的效率。 衡量系统效率的尺度是系统吞吐量。所谓吞吐量是指单位时间内系统所处理作业(程序)的道数(数量)。如果系统的资源利用率高,则单位时间内所完成的有效工作多,吞吐量大。引入多道程序设计后,提高了设备资源利用率,使系统中各种设备经常处于忙碌状态,最终提高系统吞吐量。,多道程序设计改善了各

34、种资源的使用情况,从而增加了吞吐量,提高了系统效率,但也带来了资源竞争。因此,在实现多道程序设计时,必须协调好资源使用者与被使用资源之间的关系,即对处理机资源加以管理,以实现处理机在各个可运行程序之间的分配与调度;对内存资源加以管理,将内存分配给各个运行程序,还要解决程序在内存中的定位问题,并防止内存中各个程序之间互相干扰或对操作系统的干扰;对设备资源进行管理,使各个程序在使用设备时不发生冲突。,5.2.2 进程 1进程的概念 在多道程序的环境下,程序的并发执行代替了程序的顺序执行。程序活动不再处于一个封闭系统中,而出现了许多新的特征,即独立性,并发性,动态性以及它们之间的相互制约性。在这种情

35、况下,程序这个静态概念已经不能如实地反映程序活动的这些特征。为了能更好地描述程序的并发执行,引入“进程”的概念来描述系统和用户的程序活动。,进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。 从操作系统角度来看,可将进程分为系统进程和用户进程两类。系统进程执行操作系统程序,完成操作系统的某些功能。用户进程运行用户程序,直接为用户服务。系统进程的优先级通常高于一般用户进程的优先级。,2进程的特性 (1) 进程与程序的联系和区别。 进程与程序既有联系又有区别。 联系:程序是构成进程的组成部分之一,一个进程的运行目标是执行它所对应的程序,如果没

36、有程序,进程就失去了其存在的意义。从静态的角度看,进程是由程序、数据和进程控制块(PCB)三部分组成的。, 区别:程序是静态的,而进程是动态的。 进程是程序的执行过程,因而进程是有生命周期的,有诞生,也有消亡。因此,程序的存在是永久的,而进程的存在是暂时的,它动态地产生和消亡。一个进程可以执行一个或几个程序,一个程序亦可以构成多个进程。例如,一个编译进程在运行时,要执行词法分析、语法分析、代码生成和优化等几个程序,或者一个编译程序可以同时生成几个编译进程,为几个用户服务。进程具有创建其它进程的功能,被创建的进程称为子进程,创建者称为父进程,从而构成进程家族。,2) 进程的特性。 进程的概念能很

37、好地描述程序的并发执行,并且能够揭示操作系统的内部特性。事实上,操作系统的并发性和共享性正是通过进程的活动体现出来的。 进程具有以下特性: 动态性。进程是程序的执行过程,“执行”本身就是动态的。因此进程由“创建”而产生,由“撤消”而消亡,因拥有处理机而得到运行。, 并发性。进程是为了实现系统内并发执行而引入的概念,所以并发性是进程与生俱来的特性。 独立性。一个进程是一个相对完整的调度单位,它可以获得处理机并参与并发执行。 异步性。每个进程按照各自独立的、不可预知的速度向前推进。,3进程的状态及其状态转换 根据进程在执行过程中的不同情况,通常可以将进程分成三种不同的状态。 (1) 运行状态。是指

38、进程已获得CPU,并且在CPU上执行的状态。显然,这种状态的进程数目不能大于CPU的数目,在单CPU情况下,处于运行状态的进程只能有一个。 (2) 就绪状态。这种状态是指进程原则上是可以运行的,只是因为缺少CPU而不能运行,一旦把CPU 分配给它,它就可以立即投入运行。处于就绪状态的进程可以有多个。,图5-4 进程状态转换图,(3) 等待状态。也称阻塞状态或睡眠状态。进程在前进的过程中,由于等待某种条件(例如当前外设资源不够,等待其它进程来的信息等)而不能运行时所处的状态。在这种情况下,既使CPU空闲,这种进程也不能占据CPU而运行。引起等待的原因一旦消失,进程便转为就绪状态,以便在适当的时候

39、投入运行。处于等待状态的进程可以有多个。,在任何时刻,任何进程都处于且仅处于以上3种状态之一。进程在运行过程中,由于它自身的进展情况和外界环境条件的变化,3种基本状态可以互相转换。这种转换由操作系统完成,对用户是透明的,它也体现了进程的动态性。图5-4表示了3种基本状态之间的转换及其典型的转换原因。,4进程控制块 为了便于系统控制和描述进程的基本情况以及进程的活动过程,在操作系统中为进程定义了一个专门的数据结构,称为进程控制块(PCB,Process Control Block)。系统为每一个进程设置一个PCB,PCB是进程存在与否的惟一标志。当系统创建一个进程时,系统为其建立一个PCB;然后

40、利用PCB对进程进行控制和管理;当进程被撤消时,系统收回它的PCB,随之该进程也就消亡了。,进程由程序、数据和进程控制块三部分组成。PCB是进程的“灵魂”,程序和数据是进程的“躯体”,由于现代操作系统提供程序共享的功能,这就要求程序是可再入程序,且与数据分离。所谓可再入程序是指“纯”代码的程序,即在运行过程中不修改自身。 在通常的操作系统中,PCB应包含如下一些信息:,(1) 进程标识名或标识数。为了标识系统中的各个进程,每个进程必须有一个而且是惟一的标识名或标识数。进程标识名通常用字母或数字组成的串表示,进程标识数则是在一定数值范围内的进程编号。有的系统用进程标识名作为进程的外部标识,它通常

41、由创建者给出;用进程标识数作为进程的内部标识,通常由系统给出。,(2) 位置信息。它指出进程的程序和数据在内存或外存中的物理位置。 (3) 状态信息。它指出进程当前所处的状态,作为进程调度,分配处理机的依据。 (4) 进程的优先级。一般根据进程的轻重缓急程度为进程指定一个优先级,优先级用优先数表示。进程调度程序根据优先数的大小,确定优先级的高低,并把CPU控制交给优先级最高的进程。,(5) 进程现场保护区。当进程状态变化时,例如一个进程放弃使用处理机,它需要将当时的CPU 现场保护到内存中,以便再次占用处理机时恢复正常运行,有的系统把要保护的CPU现场放在进程的工作区中,而PCB中仅给出CPU

42、现场保护区起始地位。 (6) 资源清单。每个进程在运行时,除了需要内存外,还需要其它资源,如I/O设备、外存、数据区等。这一部分指出资源需求、分配和控制信息。 (7) 队列指针或链接字。它用于将处于同一状态的进程链接成一个队列,在该单元中存放下一进程PCB首址。,(8) 其它。 由于在内存中同时存在多个进程,为了实现对进程的管理,系统将所有进程的PCB排成若干个队列。通常,系统中进程队列分成如下3类: (1) 就绪队列。整个系统一个,所有处于就绪状态的进程的PCB都按照某种原则排在该队列中。进程入队和出队的次序与处理机调度算法有关。在有些系统中,就绪队列可能有多个。,(2) 等待队列。每一个等

43、待事件一个队列,当进程等待某一事件时,其PCB就进入与该事件相应的等待队列。当某事件发生时,与该事件相关的一个或多个进程的PCB离开相应的等待队列,进入就绪队列。 (3) 运行队列。在单机系统中整个系统一个队列。实际上,一个运行队列中只有一个进程,可用一个指针指向该进程的PCB。 三种不同进程队列的PCB链接方式如图5-5所示。,图5-5 三种不同进程队列的PCB链接方式,5进程间的相互作用 (1) 相关进程和无关进程。 多道程序系统中同时运行的并发进程通常有多个。在逻辑上具有某种联系的进程称为相关进程,在逻辑上没有任何联系的进程称为无关进程。,(2) 进程间的相互作用。 多道程序系统中并发运

44、行的进程之间存在着相互制约关系,这种相互制约的关系称做进程间的相互作用。进程之间相互作用有两种方式:直接相互作用和间接相互作用。直接相互作用只发生在相关进程之间;间接相互作用可发生在相关进程之间,也可发生在无关进程之间。,5.2.3 进程间的通信 进程是操作系统中可以独立运行的单位,但是由于处于同一个系统之中,进程之间不可避免地会产生某种联系,例如,竞争使用共享资源,而且有些进程本来就是为了完成同一个作业而运行的。因此,进程之间必须互相协调,彼此之间交换信息,这就是进程之间的通信。,1进程的同步与互斥 1) 进程的同步 系统中的各进程可以并发共享资源,从而使系统资源得到充分利用,但是共享资源往

45、往使并发进程产生某种与时间有关的错误,或者说与速度有关的错误。例如,有A、B两个进程,A进程负责从键盘读数据到缓冲区,B进程负责从缓冲区读数据进行计算。要完成取数据并计算的工作,A进程和B进程要协同工作,即B进程只有等待A进程把数据送到缓冲区后才能进行计算,,A进程只有等待B进程发出已把缓冲区数据取走的信号之后才能从键盘向缓冲区中送数据,否则就会出现错误。这是一个进程同步的问题,如图5-6所示。 进程同步是指进程之间一种直接的协同工作关系,这些进程相互合作,共同完成一项任务。进程间的直接相互作用构成进程的同步。,图5-6 进程同步示意图,2) 进程的互斥 进程互斥。在系统中,许多进程常常需要共

46、享资源,而这些资源往往要求排它地使用,即一次只能为一个进程服务。因此,各进程间互斥使用这些资源,进程间的这种关系是进程的互斥。进程间的间接相互作用构成进程互斥,例如,多个进程在竞争使用打印机、一些变量、表格等资源时,表现为互斥关系。, 临界区。系统中一些资源一次只允许一个进程使用,这类资源称为临界资源。而在进程中访问临界资源的那一段程序称为临界区,要求进入临界区的进程之间就构成了互斥关系。为了保证系统中各并发进程顺利运行,对两个以上欲进入临界区的进程,必须实行互斥,为此,系统采取了一些调度协调措施。 系统对临界区的调度原则归纳为当没有进程在临界区时,允许一进程立即进入临界区;若有一个进程已在临

47、界区时,其它要求进入临界区的进程必须等待;进程进入临界区的要求必须在有限的时间内得到满足。,3) 信号量和P、V操作 用常规的程序来实现进程之间同步、互斥关系需要复杂的算法,而且会造成“忙等待”,浪费CPU资源,为此引入信号量的概念。信号量是一种特殊的变量,它的表面形式是一个整型变量附加一个队列,而且,它只能被特殊的操作(即P操作和V操作)使用。 P操作和V操作都是原语。所谓原语是由若干条机器指令构成的一段程序,用以完成特定功能。原语在执行期间是不可分割的,即原语一旦开始执行,直到执行完毕之前,不允许中断。,设信号量为S,S可以取不同的整数值,可以利用信号量S的取值表示共享资源的使用情况,或用

48、它来指示协作进程之间交换的信息。在具体使用时,把信号量S放在进程运行的环境中,赋予其不同的初值,并在其上实施P操作和V操作,以实现进程间的同步与互斥。 P操作和V操作定义如下: P(S): (1) S := S - 1; (2) 若S0,则该进程进入S信号量的队列等待。 V(S): (1) S := S + 1;,(2) 若S0,则释放S信号量队列上的一个等待进程,使之进入就绪队列。 通常,信号量的取值可以解释为S值的大小表示某类资源的数量。当S0时,表示还有资源可以分配;当S0时,其绝对值表示S信号量等待队列中进程的数目。每执行一次P操作,意味着要求分配一个资源;每执行一次V操作,意味着释放

49、一个资源。,4) 用P、V操作实现进程间的互斥 令S初值为1,进程A、B竞争进入临界区的程序可以写成: 进程A 进程B P(S); P(S); 临界区 临界区 V(S); V(S);,5) 用P、V操作实现进程间的同步 如图5-6所示同步关系,设两个信号量S1和S2,且赋予它们的初值S1为1,S2为0,S1表示缓冲区中是否装满信息,S2表示缓冲区中的信息是否取走,程序可写成: 进程A 进程B P(S2); P(S1); 把信息送入缓冲区; 把信息从缓冲区取走; V(S1); V(S2);,2进程的通信 并发进程在运行过程中,需要进行信息交换。交换的信息量可多可少,少的只是交换一些已定义的状态值或数值,例如利用信号量和P、V操作;多的则可交换大量信息,而P、V操作只是低级通信原语,因此要引入高级通信原语,解决大量信息交换问题。 高级通信原语不仅保证相互制约的进程之间的正确关系,还同时实现了进程之间的信息交换。目前常用的高级通信机制有消息缓冲通信、管道通信和信箱通信。,1) 消息缓冲通信 基本思想是系统管理若干消息缓冲区,用以存放消息。每当一个进程(发送进程)向另一个进程(接收进程)发送消息时,便申请一个消息缓冲区,并把已准备

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1