计算机操作系统原理与实例分析PPT课件(完整版-全)_第1页
计算机操作系统原理与实例分析PPT课件(完整版-全)_第2页
计算机操作系统原理与实例分析PPT课件(完整版-全)_第3页
计算机操作系统原理与实例分析PPT课件(完整版-全)_第4页
计算机操作系统原理与实例分析PPT课件(完整版-全)_第5页
已阅读5页,还剩590页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操作系统原理和案例分析目 录 第一章 操作系统概述 第二章 进程管理 第三章 存储器管理 第四章 设备管理 第五章 文件管理 引例1: 在Window或DOS下用汇编语言编程时,如何打印5个字符?有两种方法: 一种是用INT指令调用Window/DOS的功能来完成; 另一种是不调用Window/DOS功能,而用IN/OUT机器指令直接读写打印机的接口寄存器。这两种方法所对应的程序段如下: 程序段1:使用INT语句打印 MOV AH,O5H MOV DL,Char INT 21H Char DB 1程序段2:使用IN/OUT语句打印 MOV I,0 ;本段程序打印12345 ;这5个字符 L1:

2、MOV I,I+1 CMP I,5 JNC L3 ;打完5个字符 MOV A,I L2:IN ADDR1,B ; ADDR1为状态寄 ;存器地址 OR B,BS ; BS为状态位选择码 JNC L2 ;未准备好 OUT ADDR2,A ;输出字符, ADDR1为状态 ;寄存器地址 JMP L1 L3:RET 两种方法的分析比较: 方法2中使用IN/OUT机器指令来完成打印过程需要涉及到打印机接口寄存器,包括打印机的数据接口寄存器、状态与控制接口寄存器。访问其它设备的输入、输出过程也是类似的。 方法1中使用INT的程序很简单,程序员不再需要与接口寄存器打交道,只需要一个简单的调用即可。实际的打印

3、工作就通过INT命令调用交给Window/DOS操作系统来完成,即由Window/DOS来实际读写打印机接口寄存器,也就是说, Window/DOS中包含着程序段2。 第一章 操作系统概述内容提要: *计算机系统资源 *什么是操作系统 *操作系统的形成和发展 *操作系统的功能 *现代操作系统的特征及基本概念 *操作系统的分类 *现代主流操作系统简介 一、计算机系统资源 计算机系统组成:硬件+软件硬件:计算机物理装置。指计算机系统中那些 “硬的” 物理设施,即各种处理机,存储器,输入输出设备和通信设备等。软件:指由计算机硬件执行以完成一定任务的所有程序及数据。计算机硬件组织微 型 机: 处理机+

4、存储器+输入/输出设备。 总线结构(各部分通过总线交换信息)。 大,小型机: 中央处理机,I/O处理机(通道),存储器,I/O设备。 非总线结构(存储器成为其中心部分)计算机软件组织计算机软件包括系统软件和应用软件系统软件:操作系统,语言处理系统, 和常用的例行服务程序。应用软件:指那些为了某一类的应用需 要而设计的程序,或用户为 解决某的特定的问题而编制 的程序或程序系统,如航空 定票系统。计算机系统层次关系二、什么是操作系统 对于现代操作系统中,人们常用四种观点来描述操作系统:*用户环境的观点 计算机用户分为三类: 终端用户 程序员 系统设计者 操作系统为计算机用户提供了两种接口: 用户接

5、口(User Interface) 编程接口 (Application Programming Interface,简称API) 通过操作系统为计算机用户提供了两种接口,用户可以通过三种方式使用操作系统: 使用键盘命令或Shell命令语言 利用鼠标器等点击窗口中的图标 调用操作系统内部功能模块,即系统调用接口 操作系统为计算机用户提供了两种的接口的发展方向: 简单 友好 使用方便*虚拟机的观点 软件与硬件的关系:软件是在硬件基础上对硬件的性能加以扩充和完善。 软件之间的关系:一部分软件运行要以另一部分软件的存在并为其提供一定的运行条件为基础;新添加的软件可以看作是在原来那部分软件基础上的扩充与

6、完善。 “虚拟机”:一个裸机在每加上一层软件后,就变成了一个功能更强的机器,把这“新的更强功能的机器”称作虚拟机。 OS的地位:紧挨硬件层的第一层软件,对硬件进行首次扩充,同时又是其他软件运行的基础。*资源管理的观点 资源管理的观点是目前对操作系统描述的主要观点,操作系统资源管理的主要功能如下: 跟踪资源状态 (2) 分配资源 (3) 回收资源 (4) 保护资源。*作业组织的观点 在个人计算机上,作业这个概念已经不存在,主要存在于巨型和大型机,引入作业是为了有效利用高性能强大的主机资源作业:是用户在一次解题或一个事务处理过程中要求计算机系统所做工作的集合。它包括用户程序、所需要的数据及控制命令

7、等。作业是由一系列有序的作业步组成的。 综上所述,我们可以得出操作系统的概念: 操作系统是计算机系统中的一个系统软件,管理和控制计算机系统中的硬件和软件资源,合理地组织计算机的工作流程,以便有效利用这些资源为用户提供一个功能强大、使用方便的工作环境,从而在计算机与用户之间起接口的作用二、操作系统的形成和发展 *推动操作系统发展的关键因素 计算机硬件升级和新硬件的出现 提供新的服务、方便用户使用 提高计算机资源利用率 更正软件错误 计算机体系结构的发展*操作系统发展历程手工操作阶段早期批处理多道程序系统分时系统实时操作系统操作系统的进一步发展*手工操作阶段 没有操作系统程序员编程准备程序带程序员

8、预约机时程序员将程序(带或卡片)与数据装入输入装置(带机或卡机)按下控制台面板上的装入按钮程序装入内存面板指示灯亮按下启动按钮程序开始运行程序执行完后,面板指示灯亮,控制台终端打印或输出结果在控制台上修改程序卸带卸带(程序和数据(输入和结果)正确否预约时间到否结束汇编语言出现后手工交互阶段编程、穿孔、预约安装汇编带或汇编源程序带装入与启动汇编程序汇编程序运行完产生目标程序带卸下汇编、源程序、目标程序带成功否安装连接带产生、卸下连接、目标、可执行汇编目标程序带卸下汇编、源程序、目标程序带成功否安装用户可执行目标程序和数据带安装启动该用户程序运行完毕、产生结果数据卸下程序、数据、结果带下机联机或下

9、机修改成功否下机修改源程序手工批处理阶段编程、并输入到纸带、卡式磁带上准备关于运行步骤与各步程序带、输入数据带输出数据带的说明,运行步骤还包括运行不成功处理,运行次数将作业申请(带及说明)提交给系统操作员操作员分批。系统操作员待接到一批作业申请后进行分批:将运行同一程序的放在一起,例如把要需要汇编的源程序带放在一起程序员取结果装入与运行。凡是运行同一程序的都尽可能一次装入与多次运行,每次运行都需要系统操作员判断结果与手工装卸数据带成功了吗修改程序结束*第一代操作系统:单道批处理系统 第一个操作系统就是一个监控程序单道批处理系统的操作过程硬件自动装入监控程序,进入内存约定地址并运行结束开机程序员

10、取结果关机卸带运行装带操作员分批(方法同手工批处理)程序员编程、输入、提交(卡片叠)成功否FMS 的JOB结构监控程序工作过程开机自举运行完毕回到监控程序(用户程序的最后一条指令为返回监控程序)作业结束处理作业结束卡读卡启动内存指定其始地址的程序开始运行读入内存当前地址控制卡哪一种作业开始卡运行程序卡作业启动处理单任务自动批处理阶段的内存分配情况装入程序作业自动转换程序控制卡解释程序用户程序区监控程序*多道批处理系统 引入多道批处理系统是为了提高系统资源利用率和系统吞吐量 多道程序系统内存中的三个作业( job)*分时系统和实时系统 分时操作系统分时操作系统的特点:1. 多路调制性:即众多联机

11、用户可以同时使用同一台计算机;2. 独占性:各终端用户感觉到自己独占了计算机;3. 交互性:用户与计算机之间可进行“会话”。实时操作系统 到了60年代初,计算机开始应用到生产过程控制、工业控制、防空系统、信息处理等,在这些应用中不但要解决计算间题,还要求在规定的时间内完成计算,即实时处理。在实时处理中的一个核心的问题就是响应时间问题。响应时间: 指用户发出命令,到系统完成用户命令所需的时间。批处理操作系统 没有分时操作系统 秒级(一般情况)实时操作系统 微秒级 甚至更小(经典说法)系统满足用户时限(deadline)的要求 (现代)实时: 指计算机对于用户请求能足够快地进行处理,并做出反映。要

12、求毫秒、微秒级。实时操作系统特点:1、系统对外部的信号必须能及时响应,(在规定的时间内(deadline);2、要求高可靠性和安全性,效率则放在第二位;3、系统整体性强;4、不要求很强的“会话”能力。实时操作系统的应用:实时控制: 工业过程控制、防空系统等等实时信息处理: 情报检索和查询、飞机订票系统、银行信用卡系统等等。*操作系统的进一步发展 随着计算机网络的发展,网络操作系统和分布市操作系统得到了广泛的应用网络操作系统: 在通常的操作系统中增加了实现网络低层协议(一般到传送层)功能和网络设备管理功能的操作系统。如UNIX、LINUX, WINDOWS NT都是网络操作系统。分布式操作系统

13、在各处理机之间采用无主从关系来设计的操作系统,除了最低级的输入输出支援外,所有的系统任务可以在系统中任何处理机上运行。系统有高度的并行性和有效的同步方法。*操作系统的功能功能示意图*接口功能 操作系统为用户提供的人机交互界面,称为接口。 计算机为用户提供了三类接口。1、命令接口 命令接口通过在用户和操作系统之间提供高级通信控制程序运行,用户通过输入设备(键盘、鼠标、触摸屏等)发出一系列命令告诉操作系统执行所需功能。命令分为两类:联机命令 联机命令接口有一组键盘命令及命令解释器组成。脱机命令 脱机命令又称批处理用户接口,由一组作业控制语言JCL组成,控制批处理作业的运行。2、程序接口 程序接口也

14、称为系统调用,是操作系统对运行程序提供服务并与之通信的一种机构。3、图形用户接口 图形用户接口产生的背景是联机命令用户接口提供的各种命令的名字和格式,并严格按照规定的格式输入命令,难于记忆,使用不方便,效率很低,所以出现了图形用户接口。 操作系统提供的界面的友好性和易用性成为操作系统中的重要部分,用户在相当的程度上以这两个标准来判断一个系统的优劣。*处理机管理 处理机管理主要包括进程控制、进程同步、进程通信和进程调度。1、进程控制 进程控制的基本功能是创建和撤消进程以及控制进程的状态转换。2、进程同步 进程同步是指系统对并发执行的进程进行协调 包括一互斥的方式访问临界资源和对合作进程之间进行的

15、协调。3、进程通信 我们把进程间所进行的信息交换成为进程通信。4、进程调度 进程调度是指按照一定的调度算法,例如:先来先服务的算法,从进程的就绪队列中选出一个进程,把处理机分配给它,为该进程设置运行现场,并运行之。*存储器管理 存储器管理的主要任务有:1、为多道程序的并发执行提供良好的环境。2、便于用户使用存储器3、提高存储器的利用率。4、为尽量多的用户提供足够大的存储空间。 为实现上述任务,存储器管理应具有以下4中功能:1、内存分配 多道程序能并发运行的基本条件是,各个程序都要有自己的内存空间,因此,内存分配是存储管理的基本功能。 对内存的分配可按照两种方式进行: 一种是静态分配。 另一种是

16、动态分配。2、内存保护 为保证各道程序都能在自己的内存空间运行而互不干扰,要求每道程序在执行时能随时检查对内存的所有访问是否合法。因此,需要内存保护功能。3、地址映射 逻辑地址:是指由目标程序所限定的地址范围称为该程序的地址空间,该地址空间中的地址成为逻辑地址。 物理地址:是指描述内存空间的地址。 地址映射:程序要装载到内存空间中才能运行,因此,必须将逻辑地址映射到内存的物理地址。将逻辑地址映射成物理地址称为地址映射。4、内存扩充 由于物理内存的大小可能不能满足大型作业或多个作业的并发运行(超出了物理内存的大小),为了满足用户的要求并改善系统的性能,必须对内存加以扩充。 这种扩充是利用虚拟存储

17、技术。 *设备管理 设备器管理的主要任务有:1、为用户程序分配I/O设备;2、完成用户程序的I/O请求;3、提高处理机和I/O设备的利 用率;4、改善人机界面。 为实现上述任务,设备管理应具有以下4中功能:1、缓冲管理 由于外围设备和处理机交换信息时,会出现速度不匹配的矛盾,为了提高处理机和外设的利用率,引入了缓冲管理。2、设备分配 操作系统根据用户所请求的设备类型和所采用的分配算法对设备进行分配,并将为获得所需设备的进程放进相应设备的等待队列。3、设备处理 启动指定的I/O设备,完成用户规定的I/O操作,并对由设备发来的中断请求进行及时响应,根据中断类型进行相应的处理。4、虚拟设备功能 独占

18、设备:一次仅允许一个进程使用的设备称为独占设备。 为了提高设备利用率及其加快程序的执行过程,让用户感觉到自己独占设备,采用了将设备虚拟化,虚拟化后的设备叫虚拟设备或逻辑设备。 一台物理设备虚拟成多台虚拟设备。*文件管理 计算机必须永久化数据,操作系统永久化数据是将数据放在文件里面,存储在可以永久化的设备上。 为了对文件进行管理,引入了文件系统。其主要功能包括:1、文件目录管理 文件目录是联系用户和外存中文件数据之间的纽带,使文件系统向用户提供按名存取 的功能。使用户不关心文件存储的细节,从而方便用户使用文件。 2、文件的逻辑组织与文件访 问方式 文件的逻辑组织结构决定了文件的访问方式,典型的结

19、构有: 堆文件 顺序文件 索引顺序文件 索引文件 直接访问文件(哈希文件)3、文件存储空间的管理 文件存储空间的管理的功能有如何组织管理磁盘上的大量文件和空闲空间、有效利用磁盘空间和如何快速检索磁盘上的文件等等。4、文件共享与安全 资源共享是不可以避开的功能,这样才能使资源充分利用。 共享带来了一个副作用,就是安全问题,比如数据丢失、非法侵入。因此,文件安全也是文件系统的重要功能。*现代操作系统的特征及基本概念*现代操作系统的特征 现代操作系统一般都具有四个基本特征: 1、任务共行性 任务共行有两层含义: 从宏观上看,任务共行是指系统中有多个任务同时运行。 从微观上看,任务共行是指但处理机系统

20、中的任务并发,即多个任务在单个处理机上交替运行,或多处理机系统中的任务并行,即多个任务在多个处理机上同时运行。2、资源共享性 资源共享性有两层含义: 从宏观上看,资源共享性是指系统中有多个任务可以同时使用系统中的软硬件资源。 从微观上看,资源共享性是指多个任务可以交替互斥地使用系统的中某个资源。资源共享:系统资源被多个并发执行的进 程共同使用。资源共享的两种方式: *互斥共享 指多个进程使用资源时,在一段时间内只允许一个进程访问。比如:打印机、绘图仪等等 *同时共享 指系统资源允许在一段时间内由多个进程同时访问。这里的同时是宏观的,微观上还是交替访问系统资源,比如:硬盘等 资源共享与并发的关系

21、: 资源共享是以并发执行为条件,即:没有并发就不存在共享。 资源共享也影响程序的并发执行,若资源共享不当,并发会减弱,甚至无法实现。 资源共享和并发互为存在条件,是操作系统的两个最基本的特征3、虚拟性 虚拟是指将一个物理上的实体变为(映射为)若干个逻辑上的对应物。 前者是实际存在的,后者是虚拟的,是一种感觉性的存在。4、不确定性 操作系统中不确定性有两层含义: * 程序执行结果的不确定性,程序不可再现(不允许出现这种情形)。 * 多道程序环境下进程以异步方式执行,每个进程的开始执行时间、进程的执行顺序、运行所需时间都是不可预知的。*基本概念1、多道程序设计技术 多道程序设计技术是指系统中允许多

22、道程序同时准备运行,当正在运行的那道程序因为某种原因(比如:等待从磁盘输入数据等等)暂时不能继续运行时,系统将自动地启动另一道程序运行;一旦原因消除(比如:数据已经从磁盘里输入到了内存),暂时停止运行的那道程序在将来某个时候还可以被系统继续运行。 多道程序设计技术是现代操作系统的关键技术,是现代操作系统的最重要的特征之一,它将现代操作系统和早期操作系统区别开来。 多道程序设计技术给操作系统带来巨大变化的同时,也伴随着操作系统设计的复杂性。由此,给操作系统带来了如下一些必须解决的问题:* 多个用户作业共享处理机和输入/输出设备,协调因争夺处理机或输入/输出设备而产生的冲突,解决个道程序之间的同步

23、互斥和进程的死锁问题,有效地分配这些资源。* 既要有较大容量的存储器,以便装入尽可能多的用户作业,有必须采取措施防止各道程序之间的交叉冲突,防止作业被有意或无意地破坏。* 必须建立高效、可靠和方便的文件系统,有效地管理和存取系统中的软件资源和辅助空间2、进程和线程 进程是操作系统的核心概念: 按照一些观点,将进程描述为: 进程是“执行中的程序”或者“程序的一次执行”。 线程是操作系统内部机制在发展过程中,对进程的有效细化,目的是为了减少对进程处理的开销,将进程的执行环境减少至最少。 3 、作业 作业是指用户要求计算机系统所做的工作的集合。 作业的构成:程序、数据和作业说明书。 4、任务 任务和

24、进程在经典的多任务操作系统环境下,没有什么区别。 任务是从系统资源分配的角度描述程序在系统中的运行。 进程是从处理器利用和工作流程控制的角度描述程序的执行。5、系统调用 系统调用就是操作系统提供的最基本的一级服务,供用户程序使用。6、接口 接口多用于描述系统硬件之间的连接关系,以及软件和程序模块间的调用关系。7、虚拟内存 引入虚拟内存的原因: * 解决有限的内存空间无法装入尺寸超过其大小的程序; * 解决驻留内存的进程数受到物理内存空间的限制。 虚拟内存:就是将磁盘空间虚拟为逻辑内存,使用户感觉到一个比物理内存空间大得多的逻辑内存空间,即实际物理内存空间与虚拟的那部分逻辑内存空间的总和,统称为

25、虚拟内存空间。8、文件 文件就是命名了的字节流,它是现代操作系统对计算机系统中种类繁多的外围设备进行高度抽象的结果。*操作系统分类 操作系统分类的原则: 按照硬件平台系统结构的不同可分为单机操作系统、嵌入式操作系统和多机操作系统。 按照操作系统在用户界面的使用环境和功能特征的不同,可分为批处理操作系统、分时操作系统和实时操作系统。 现代操作系统通常兼有分时和批处理功能。1、批处理操作系统 批处理操作系统的工作方式: 一批用户作业提交后首先在外存上排成一个队列;然后由作业调度程序负责从该队列中选取一个或多个作业进入内存,并分别为它们建立进程,使若干进程共享包括处理机、内存空间在内的系统资源,以提

26、高资源利用率和系统吞吐量。 批处理操作系统的优点: * 多道程序由操作系统自动调度执行,大大降低了人工干预对系统性能的影响; * 资源利用率高; *系统吞吐量大。批处理操作系统的优点: * 系统交互性差,修改和调试程序及其困难; * 增加了作业的平均周转时间。 周转时间:作业从进入系统到执行完成退出系统所经历的时间。2、分时操作系统 分时操作系统的工作方式: 一台主机连接若干台终端,每台终端供一个用户使用,用户交互地向系统提出联机命令请求,系统接受所有用户的命令,采用分式原则处理服务请求,在通过交互终端显示执行结果。3、实时操作系统 实时操作系统的工作方式: 及时响应外部事件的请求,在规定的时

27、间内完成对该事件的处理,并控制所有实时任务协调一致地运行的操作系统。 实时操作系统设计的目标: 对外部请求必须及时响应,在规定的时间内完成某事件,要求系统具有极高的可靠性和完整性。4、网络操作系统 计算机网络:指利用通信线路将位于不同地点、不同类型的计算机连接起来,使各台计算机之间可以共享资源,计算机用户之间可以相互通信、共同合作的一种计算机系统。 网络操作系统:指在计算机网络环境中提供网络管理、通信、安全、资源共享和各种网络应用等功能的操作系统。 网络操作系统目标:实现网络中各计算机之间的通信和网络资源共享,提高网络资源的利用率和网络的吞吐量。5、分布式操作系统 分布式系统:指多个处理器通过

28、通信线路互连而构成的系统,系统的处理和控制功能分布在各个处理机上。 分布式操作系统:指配置在分布式系统上的操作系统。 分布式系统和计算机网络的区别: 分布式系统的所有资源是共享的,由分布式操作系统进行集中、统一管理。整个系统对用户是透明的。 计算机网络中允许每台计算机配置自己的操作系统,通过网络协议实现网络资源的统一管理。网络操作系统不要求对网络资源进行透明访问。 总之,分布式系统和计算机网络的硬件结构非常相似,但各自配置的操作系统却完全不同,分布式系统具有高度的整体性和透明性。6、嵌入式操作系统 嵌入式操作系统:运行在嵌入式系统环境中,对整个嵌入式系统以及它所操作、控制的各种部件装置进行协调

29、、调度、指挥和控制的系统软件。*现代主流操作系统简介1、Linux操作系统 Linux操作系统特点: * 免费、源代码开放; * 具有出色的稳定性和速度性能; * 功能完善,具有丰富的网络功 能; * 应用程序兼容性好。第二章 进程管理2.1 进程的引入2.1.1 程序顺序执行与并发执行程序的执行顺序1程序的顺序执行 例子: S1:a: x+y; S2:b: a-5; S3:c: b+1; 2程序顺序执行时的特征(1)顺序性:处理机的操作严格按照程序所规定的顺序执行。(2)封闭性:程序运行时独占全机资源,程序一旦开始执行,其执行结果不受外界因素影响。(3)可再现性:只要程序执行时的环境和初始条

30、件相同,都将获得相同的结果。(不论它是从头到尾不停顿地执行,还是“停停走走”地执行)3. 程序的并发执行 4. 程序并发执行时的特征 1)间断性:由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的程序之间,形成了相互制约的关系。相互制约将导致并发程序具有“执行暂停执行”这种间断性的活动规律。2)失去封闭性: 是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行已失去了封闭性。 3)不可再现性: 程序在并发执行时,由于失去了封闭性,导致不可再现性 。例如,有两个循环程序A和已它们共享一个变量N。程序A每执行一次时,都要做N:=N1操作;程序

31、B每执行一次时,都要执行Print(N)操作,然后再将N置成“0”。程序A和B以不同的速度运行。这样,可能出现其计算结果不可再现性,亦即,程序经过多次执行后,虽然它们执行时的环境和初始条件相同,但得到的结果却各不相同。例子:变量X为共享变量,程序1和程序2都要对X进行访问,当两个程序执行的速度变化时可得到不同的结果。执行顺序1:程序1程序2 结果为:X增加2。执行顺序2: R1=X; R2=X; R1=R1+1; R2=R2+1; X=R1; X=R2 结果为: X 增加1。 还可有许多其它组合程序2 R2=XR2=R2+1X=R2 程序1 R1=XR1=R1+1X=R1 目 标 程 序并发执

32、行的条件:达到封闭性和可再现性 并发执行失去封闭性的原因是共享资源的影响,去掉这种影响就行了。1966年,由Bernstein给出并发执行的条件。程序 P(i) 针对共享变量的读集和写集 R(i)和W(i)条件:任意两个程序P(i)和P(j),有:R(i)W(j)=; W(i)R(j)=; W(i)W(j)=;前两条保证一个程序的两次读之间数据不变化;最后一条保证写的结果不丢掉。现在的问题是这个条件不好检查。并发和并行区别 并发是指在某一时间间隔内计算机系统中存在着多个程序活动。 并行是指在同一时刻计算机内有多个程序都在执行,这只有在多CPU的系统中才能实现。在单CPU的计算机系统中,多个程序

33、是不可能同时执行的。并发是从宏观上(这种“宏观”也许不到一秒的时间)看多个程序的运行活动,这些程序在串行的、交错的运行,由操作系统负责这些程序之间的运行切换,人们从外部宏观上观察,有多个程序都在系统中运行。2.1.2 进程的概念和特征1、进程的定义 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度的基本单位。进程与程序的区别和相互关系程序 进程静态的指令序列 动态的程序执行过程一程序可对应 一个进程对应至少有多个进程 一个程序在工作永久性软件资源 暂存资源, 动态产生过程 资源分配和调度的单位2、进程的特征动态性:进程是程序在并发系统内的一次执行,一个进

34、程有一个从产生到消失的生命期,是进程的最基本的特征;并发性:正是为了描述程序在并发系统内执行的动态特性才引入了进程,没有并发就没有进程,是进程的最重要的特征,正是因为并发性,才提高了系统资源的利用率和系统的吞吐量;独立性:每个进程的程序都是相对独立的顺序程序,可以按照自己的方向和速度独立地向前推进;异步性:指进程的执行进度,或推进速度不可预测,而与同时驻留在内存的其它进程有关;制约性:进程之间的相互制约,主要表现在互斥地使用资源和相关进程之间必要的同步和通讯;结构性:进程 = PCB + 程序 + 数据集合3、引入进程后需要解决的问题 *增加了空间开销 *额外的时间开销 *更难控制 *处理机的

35、竞争尤为突出2.1.3 进程的结构 为了刻画进程的动态变化,通常把进程表示为由程序段、私有数据块和进程控制块(PCB)组成。进程控制块是操作系统感知进程存在的唯一标志。 程序部分描述进程本身所要完成的功能,而“私有数据块”是接受程序规定操作的一组存储单元的内容,是操作的对象。进程控制块是在进程创建时产生的,当进程存在于系统时(运行),进程控制块就标识了这个进程。PCB包含了进程的描述信息和控制信息,通常有如下项目:(1) 标识符(2) 存贮信息(3) 现场状态(4) 优先数(5) 现场信息(6) 链接字(或称队列指针)(7) 族系关系(8) 资源清单(9) 其他 * 标识符 分为外部标识符和内

36、部标识符。外部标识符由创建进程者提供,通常由字母、数字等组成,在用户或其它进程访问该进程时使用。内部标识符是一个整数。在操作系统的PCB表区中,有多个PCB表,每个PCB表有一个序号,通常将这个序号做为内部标识符,以方便系统使用。* 程序地址 进程的程序部分在内存及外存的地址,或描述程序地址信息的段表地址、页表地址等。* 数据地址 进程的数据部分在内存及外存的地址,或描述数据地址信息的段表地址、页表地址等。* 状态 进程当前所处的状态,即就绪状态、执行状态及阻塞状态,已经被创建的进程的状态必为此三者之一。* CPU状态保护区 CPU状态信息主要由通用寄存器、程序计数器PC、程序状态字PSW以及

37、用户栈指针等组成,也称为中断点现场信息。CPU状态保护区用以保护进程被中断而暂停执行时CPU的状态信息,以便进程重新获得CPU时能够重布现场,从上次被中断处继续执行。* 进程优先级 进程优先级是用以描述进程使用处理机的优先级别的整数,是优先级调度算法中调度的依据。通常数值越小,优先级别越高。优先级可以处理成不变的,称为静态优先级,也可以处理成可变的,称为动态优先级。* 通信信息 进程通信时需要使用的信息,包括标志位、信号或信号量、消息队列信息等。如消息缓冲通信机制中,在进程的PCB表中,需要有消息队列队首指针、消息个数及互斥使用消息队列的信号量等。* 资源信息 进程对资源的需求及已经分配资源的

38、清单。* 队列指针 除了执行状态的进程外,其余的进程PCB表都处于某一就绪队列或某一阻塞队列中。队列指针用于指向进程所在队列中下一个PCB表的首地址。* 家族指针 进程在运行过程中可以创建新进程来协同完成同一任务。创建者称为父进程,被创建者称为子进程。父进程PCB表中有指向子进程的PCB表的指针,子进程的PCB表中有指向父进程的PCB表的指针,这就是家族指针,它可以将一个家族的进程联系起来,形成进程家族树。进程控制块的组织 为了便于管理,系统把所有的PCB用适当方式组织起来。一般说来,大致有以下三种组织方式: (1) 线性表方式 (2) 索引方式 (3) 链接方式2.2 进程的状态2.2.1

39、进程执行轨迹例 假设内存中有3个进程A、B、C,他们的程序代码已全部装入内存。若A、C两进程需要执行12条指令,B进程需要执行4条指令,且B进程执行到第4条指令处必须等待I/O2.2.2 两状态进程模型 在两状态模型中进程可能处于如下两种状态中:执行 (Running )非执行( Not-running )两状态队列模型进程的创建事 件说 明新的批作业通常位于磁带或磁盘中的批作业控制流被提供给操作系统。当操作系统准备接纳新工作时。它将读取下一个作业控制命令交互登录 终端用户登录到系统操作系统因为提供一项服务而创建操作系统可以创建一个进程,代表用户程序执行一个功能,使用户无需等待(如控制打印的进

40、程)由现有的进程生成基于模块化的考虑,或者为了开发并行性,用户程序可以规定许多进程的创建进程的终止 事件说明正常完成进程自行执行一个操作系统服务调用,表示它已经结束运行超过时限进程运行时间超过规定的时限。可以测量很多种类型的时间,包括总的运行时间(“挂钟时间”)。花费在执行上的时间以及对于交互进程从上一次用户输入到当前时刻的时间总量无可用存储器系统无法满足进程需要的存储器空间越界 进程试图访问不允许访问的存储器单元保护错误进程试图使用不允许使用的资源或文件,或者试图以一种不正确的方式使用,如往只读文件中写算术错误进程试图进行被禁止的计算,如除以零或者存储器大于硬件可以接纳的数字 接上表事件说明

41、时间超出进程等待某一事件发生的时间超过了规定的最大值I/O失败在输入或输出期间发生错误,如找不到文件、在超过规定的最多努力次数后仍然读写失败(例如当遇到了磁带上的一个坏区时)或者无效操作(如从行式打印机中读)无效指令进程试图执行一个不存在的指令(通常是由于转移到了数据区并企图执行数据)特权指令进程试图使用为操作系统保留的指令数据误用错误类型或未初始化的一块数据操作员或操作系统干涉由于某些原因,操作员或操作系统终止进程(例如,如果存在死锁)父进程终止当父进程终止时,操作系统可能会自动终止该进程的所有后代进程父进程请求父进程通常具有终止其任何后代进程的权力导致进程状态转换的事件2.2.3 五状态进

42、程模型Running:占用处理机(单处理机环境中,某一时刻仅一个进程占用处理机)Ready:准备执行Blocked:等待某事件发生才能执行,如等待I/O完成等New:进程已经创建,但未被OS接纳为可执行进程,并且程序还在辅存,PCB在内存Exit:因停止或取消,被OS从执行状态释放 Null New:新创建进程首先处于新状态事 件说 明新的批作业通常位于磁带或磁盘中的批作业控制流被提供给操作系统。当操作系统准备接纳新工作时。它将读取下一个作业控制命令交互登录 终端用户登录到系统操作系统因为提供一项服务而创建操作系统可以创建一个进程,代表用户程序执行一个功能,使用户无需等待(如控制打印的进程)由

43、现有的进程生成基于模块化的考虑,或者为了开发并行性,用户程序可以规定许多进程的创建NewReady:OS接纳新状态进程为就绪进程Ready Running:OS只能从就绪进程中选一个进程执行Running Exit:执行状态的进程执行完毕,或被取消,则转换为退出状态RunningReady:分时系统中,时间片用完,或优先级高的进程到来,将终止优先级低的进程的执行Running Blocked:执行进程需要等待某事件发生。通常因进程需要的系统调用不能立即完成,而阻塞Blocked Ready:当阻塞进程等待的事件发生,就转换为就绪状态Ready Exit:某些系统允许父进程在任何情况下终止其子进

44、程。若一个父进程终止,其子孙进程都必须终止。Blocked Exit:因为它自身退出了,或者是因为某种原因被取消。 Using Two Queues2.2.4 进程的挂起状态这个问题的出现是由于进程优先级的引入,一些低优先级进程可能等待较长时间,从而被对换至外存。这样做的目的是:提高处理机效率:就绪进程表为空时,要提交新进程,以提高处理机效率;为运行进程提供足够内存:资源紧张时,暂停某些进程,如:CPU繁忙(或实时任务执行),内存紧张;被挂起进程的原因用于调试:在调试时,挂起被调试进程(从而对其地址空间进行读写);操作系统的需要:操作系统可能挂起后台进程或一些服务进程,或某些可能导致系统故障的

45、进程;父进程的需求:父进程可能挂起子进程。被挂起进程的特征不能被调度执行。可能是等待某事件发生,若是,则阻塞条件独立于挂起条件,即使阻塞事件发生,该进程也不能执行。为了阻止进程执行,可以通过代理使进程挂起。代理可以是进程自身或父进程、或OS。只有实施挂起操作的进程才能使之由挂起状态转换为其他状态。One Suspend State一个挂起Two Suspend States具有挂起状态的进程状态转换BlockedBlocked/Suspend :OS通常将阻塞进程换出,以腾出内存空间Blocked/SuspendReady/Suspend: 当Blocked/Suspend进程等待的事件发生时

46、,可以将其转换为Ready/suspendReady/SuspendReady:OS需要调入一个进程执行时ReadyReady/Suspend :挂起就绪进程,释放足够的内存空间New Ready/suspend(NewReady): 新进程创建后,可以插入到就绪队列或Ready/suspend队列。若无足够的内存分配给新进程,则需要New Ready/Suspend 具有挂起状态的进程状态转换(续)Blocked/SuspendBlocked:当Blocked/Suspend队列中有一个进程的阻塞事件可能会很快发生,则可将一个Blocked/Suspend进程换入内存,变为BlockedRu

47、nningReady/Suspend :当执行进程的时间片用完时,会转换为Ready。或,一个高优先级的Blocked/Suspend进程正好变为非阻塞状态,OS可以将执行进程转换为Ready/Suspend状态AllExit:通常,Running Exit。但某些OS中,父进程可以终止其子进程,使任何状态的进程都可转换为退出状态2.3 进程的控制 2.3.1 执行模式 处理机有核心态和用户态两种执行状态 核心态:由设备中断、异常、自陷、信号(即软中断)等进入,这种状态具有较高的特权,允许使用全部机器资源与机器指令,是操作系统程序执行时的状态。 用户态:处理机在这种状态下只能使用指定的机器指令

48、,不能使用如I/O、改变机器状态、修改存储保护等指令,并且只允许访问用户自己的存储区,是用户程序执行时的状态。2.3.2 操作系统内核 没有配置任何软件的计算机称为裸机,操作系统是在裸机上添加多层软件形成的。通常将与硬件紧密相关的部分,如中断处理程序、设备驱动程序及进程从创建到撤消包括进程状态变迁中用到的公共操作等集中在一起,常驻内存,作为裸机上添加的第一层软件,叫做内核。操作系统内核的功能 运行频率高的功能模块大都放在操作系统的内核来实现。1、资源管理的功能 * 进程管理 进程的创建和终止、进程调度、进程状态转换、进程之间的同步和通信、以及PCB管理等等。 * 存储管理 为进程分配空间、实现

49、内存保护和对换功能、对内存进行分段和分页管理的等等。 * I/O设备管理 I/O缓冲区管理、为进程分配I/O通道和设备等等2、支持功能 * I/O中断处理 中断 处理功能既是内核的最基本功能,也是整个操作系统赖以活动的基础,即操作系统的一切重要活动都最终依赖于中断。 * 原语操作 操作系统内核的功能大都通过执行各种原语来实现的。 原语:是机器指令的延伸,是由若干条机器指令构成的、完成特定功能的一个过程。 原子操作:指一个操作中的所有动作,要么全做,要么全不做,即原子操作是一个不可分割的操作。 在单处理机中,操作的原子性可以通过屏蔽中断来实现。时钟管理 时钟就是操作系统运行的脉搏。2.3.3 进

50、程控制1、进程的创建和撤消 进程的创建 进程的撤消2、进程的阻塞和唤醒 阻塞是进程自己通过调用阻塞原语自己阻塞自己,而唤醒操作则由操作系统或其它相关进程调用唤醒原语来唤醒,进程自己无法自己唤醒自己。 进程阻塞的原因: * 进程请求I/O服务,无论获得I/O服务与否,通常都要暂时放弃CPU; * 某些原语操作,如P操作等可能引起进程阻塞; * 某些系统进程工作时占用CPU,无事可做时,则调用阻塞原语将自己阻塞。 进程的阻塞进程唤醒的原因: * 进程请求的I/O操作完成; * 某些原语操作,如V操作等可以解封阻塞进程; * 某些系统进程有事可做时,用唤醒原语将其唤醒。 进程的唤醒3、进程的挂起与激

51、活 根据进程所处状态,挂起原语可以有三种处理: * 完成进程从活动就绪状态到静止就绪状态的转变; * 完成进程从活动阻塞状态到静止阻塞状态的转变; * 若进程是执行状态,则转变为静止就绪状态。挂起对象: * 进程请求挂起自身; * 父进程挂起子进程。挂起方式如下: * 挂起一个具有指定标识符的进程; * 挂起某个进程及其所有子孙进程。采用这种挂起方式可以避免进程被挂起而其子孙进程仍在活动而带来的问题。 进程挂起 进程的激活4、进程切换进程切换的大致的两个步骤: * 保护被切换进程的现场; * 恢复投入运行的现场。2.4 进程调度2.4.1 进程调度的目标、原则和方式 1. 交通控制程序 交通控

52、制程序(Traffic Controller)是J.H.Saltzer于 1966 年起的名字。他把操作系统中指挥各个进程的工作比作一个交通警察, 而把各个进程比作车辆。 它们之间有时要竞争,有时要合作, 交通警察就要保证它们协调一致,互不冲突。在操作系统中,交通控制程序的主要职能是管理进程状态之间的转变和协调进程间的通讯。2. 进程调度程序 在进程状态的变化中,从就绪到运行的转变是由一个专门的程序来完成的,该程序称为进程调度程序。进程调度称为“低级”调度,是相对作业调度而言的。进程调度程序所要完成的是把一台物理的CPU转变为多台虚拟的CPU或者多台逻辑的CPU。 3. 引起进程调度的原因 *

53、 现运行进程运行结束或者因任务完成而正常结束,或者因出现错误而异常结束。 * 现运行进程因某种原因,比如I/O请求,从运行进入阻塞状态。 * 现运行进程执行某种原语操作,如P操作、阻塞原语等,进入阻塞状态。 * 一个具有更高优先级的进程要求使用处理机,即进入就绪队列。 * 分配给该进程运行的时间片已用完。4. 进程调度程序的功能 * 记住系统中所有进程的状态、 优先数和资源需求情况。 对于动态优先数,还须按一定算法定期地对它进行计算。 * 确定调度算法,决定把处理机分配给哪个进程和分配多长时间。 某个进程正在运行时,如果有优先级更高的进程进入就绪队列,是继续运行原进程还是分配处理机给优先级更高

54、的进程,由调度方式确定。 * 分配处理机给进程。5. 进程调度方式 所谓进程调度方式,是指当一个进程正在处理机上运行时,若有某个更为紧迫或更为重要的进程需要进行处理,或者说,如果有更高优先级的进程进入就绪队列时,如何分配处理机。 通常有两种进程调度方式: 通常有两种进程调度方式: * 非剥夺方式 进程一旦获得CPU就一直执行,直到完成或发生某事件(如请求I/O服务、P操作等)而阻塞,其它的进程方可运行。这种调度方式简单,容易实现,但是一个进程的运行往往可能导致多数进程长期得不到服务,所以非抢占方式不适宜有多个竞争用户的通用系统。 * 剥夺方式 允许在逻辑上可执行的进程暂时放弃CPU。抢占方式的

55、调度策略(如时间片轮转、优先级等)允许非执行进程在满足某种条件时抢占执行进程所占用的CPU。6. 进程调度的目标 进程调度要满足两个方面的目标: * 满足用户的需求 -交互式用户对响应时间的要求; -批处理系统用户对作业周转时间的要求; -实时系统对任务截止时间的要求。 * 满足系统的需求 -系统吞吐量; -处理机利用率; -各类资源的平衡使用; -公平性; -优先级。 7. 进程调度原则 A .面向用户的原则 * 响应时间 响应时间:是指从用户通过键盘提交一个请求开始,直到系统首次产生响应为止的时间。常用于评价分时系统的性能。 响应时间包括3个部分时间的总和: (1)从键盘输入的请求信息传送

56、到处理机的时间; (2)处理机对请求信息进行处理的时间; (3)将响应结果发送到输出终端的时间。 * 周转时间 周转时间:指从作业提交给系统开始,到作业完成为止的这段时间间隔,也叫作业周转时间。常用于批处理系统的性能。 周转时间包括4个部分时间的总和: (1)作业在外存排队等待调度的时间; (2)进程在就绪队列中等待调度的时间(可能多次等待); (3)进程被处理机执行的时间。 (4)等待I/O操作完成的时间。* 截止时间 截止时间:指实时系统中,某任务必须开始执行的最迟时间,或必须完成的最迟时间。常用于评价实时系统的性能。B .面向系统的原则 * 系统吞吐量 系统吞吐量:指单位时间内系统所完成

57、的作业数。常用于评价批处理系统的性能。 * 处理机利用率 处理机利用率:指处理机被使用的频率。对于衡量大中型机的多用户系统是一个重要的指标。对于但用户微机或某些实时系统,则并非很重要。* 各种资源的平衡使用 多道程序系统的目标之一就是提高系统资源的利用率,因此,调度算法有责任是系统中的各种资源都尽量处于忙碌状态。该原则同时适合中级调度和高级调度。* 公平性 调度算法应该对所有进程公平,而不偏袒任何进程。* 优先权 优先权是调度算法需要考虑的一个重要因素。优先权高的进程应该优先调度。 确定优先权的高低的方式: * 静态优先权 * 动态优先权2.4.2 进程调度的类型 按照算法所运行的系统类型,可

58、以分为: * 批处理调度 * 分时调度 * 实时调度 * 多处理机调度按照调度的层次,可以分为: * 高级调度(长程调度) * 低级调度(短程调度) * 中级调度(中程调度) * 高级调度 即作业调度或宏观调度。其任务是对那些提交给系统后被收容的作业, 按照一定策略选择出某些作业, 为其分配内存等必要的资源, 建立与之对应的进程, 并将进程的PCB表放入就绪队列中, 使其具备参与竞争使用CPU的权利。作业调度高级调度要考虑的两个问题: * 选择多少个作业进入内存,为之创建进程, 这取决于多道程序度。 * 选择哪些作业,这取决于高级调度算法。 可用的高级调度算法有: -先来先服务 -短作业优先

59、-基于优先级调度 -响应比高者优先 注意:如果系统不支持作业处理功能,也就 不会有高级调度。 *低级调度 即进程调度或微观调度。其任务是在进入内存并处于就绪队列的进程中, 确定哪个进程真正获得CPU及其使用CPU的时间。用执行指针指向选中进程的PCB表,将它从就绪队列移出并重布现场,使其运行。现代操作系统都支持低级调度。进程调度 *中级调度 将就绪状态细化为内存就绪和外存就绪状态,阻塞状态细化为内存阻塞和外存阻塞状态后,中级调度完成进程在内存与外存之间的对换。其任务是周期性地将那些在内存中暂时不用的进程换出并放到外存,而将那些在外存上需要运行的进程换入到内存。中级调度处理机的三级调度2.4.3

60、 进程调度算法 下面是几项主要的评估标准: () 平均周转时间 作业从提交时刻is到完成时刻ic所经历的时间称为该作业的周转时间,即icis;进程从进入就绪队列的时刻ir到执行完本次周期的时刻ic称为该进程的周转时间i,即iicir。于是,个作业的平均周转时间或个进程的平均周转时间为: () 平均带权周转时间 作业的周转时间Ti与其实际运行时间i之比 称为该作业的带权周转时间,即 ,同样,进程的周转时间与其本次周期的时值之比 称为该进程的带权周转时间。于是,个作业或个进程的平均带权周转时间为: ()平均等待时间 进程从进入就绪队列那一时刻ir到获得的那一时刻ip所经历的时间称为它的等待时间i,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论