操作系统 年级:2003春 专业:计算机应用专业
第一章 操作系统引论 一、操作系统的形成和发展 (一)、什么是操作系统 定义:操作系统是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。 (二)、操作系统的主要功能 1、存储管理功能 (1)、内存分配 (2)、地址映射 (3)、内存保护 (4)、内存扩充
2、处理机管理 作业:用户的计算任务 进程:程序的执行过程(分配处理机的基本单位) 处理机管理主要包括: (1)、作业和 进程调度(两级调度) (2)、进程控制 (3)、进程通信(同步方式和互斥方式)
3、设备管理功能 (1)、缓冲区管理 (2)、设备分配 (3)、设备驱动 (4)、设备无关性(设备独立性) 4、文件管理功能 (1)、文件存储空间管理 (2)、文件操作的一般管理 (3)、目录管理 (4)、文件的读写管理和存取控制 5、用户借口 一般向用户提供三种类型的界面:命令界面、程序界面、图形界面。
(三)、操作系统的地位 计算机系统由硬件和软件组成,二者缺一不可,软件分为三类,具体的层次结构见课本图1—1所示。 操作系统是裸机之上的第一层软件,与硬件关系尤为紧密。 (几个概念:硬件平台、虚拟机、软件平台) (四)、操作系统的发展历程 1、手工操作阶段 2、早期的批处理阶段 监督程序(操作系统的雏形):完成作业的自动转换工作的程序。
分类(1)、早期联机批处理(2)、早期脱机批处理 3、多道批处理系统 基本思想:在内存中同时存放多道程序,在管理程序的控制下交替的执行(并发执行)。 4、操作系统的发展:分时系统和实时系统 二、操作系统的特征和体系结构: 1、操作系统的特征(并发、共享、异步) (1)、并发性:两个或多个活动在同一给定的时间间隔中进行 (2)、共享:计算机中的资源被多个任务共用 (3)、异步性:走走停停
2、操作系统的体系结构 操作系统由很多程序模块组成,他们之间的集合方式分为:单块结构、层次结构、微内核结构三种。 (1)、单块式结构 早期一般都采用这种结构,它其实没有结构,各组成单位紧密联系,好似“铁板一块”。不便于修改,可靠性低等危险。 模块:完成一定功能的子程序,是构成软件的基本单位。 (2)、层次结构: 设计思想:按照各模块的功能和相互依存关系,把系统中的模块分成若干层,任意一层模块(除底层模块外)都建立在它的下一层的基础上。UNIX系统就采用此结构。现在的操作系统一般都采用此结构。
(3)、微内核结构 基本思想:把所有操作系统基本上都具有的那些操作放在内核中,而操作系统的其他功能由内核之外的服务器实现。 三、操作系统的类型和主要产品 (一)、多道批处理系统 早期的计算机系统多数采用它,用户的计算任务按作业进行管理。 作业:由用户定义、由计算机完成的工作单位,包括一组计算机程序、文件和对操作系统的控制语句。作业控制语句明确标识的计算机程序的执行过称为作业不。 工作流程如图1—6所示。
两个特点:多道、成批 优点:系统资源利用率高、吞吐量大 缺点:作业等待时间长、没有交互能力 (二)、分时系统 1、分时概念和分时系统的实现方法 分时:就是对时间的共享。 (多道环境中)分时:指若干并发程序对CPU时间的共享。 2、分时系统的特征和优点 特征:同时性、交互性、独立性、及时性 优点:友好的接口、促进了普及、资源共享和交换信息
(三)、实时系统 1、实时系统的引如 三种典型的应用形式:过程控制系统、信息查询系统、事务处理系统 2、实时系统与分时系统的区别: (三点) (四)、个人机系统 主要有两类:单用户操作系统和多用户操作系统 (五)、网络操作系统 计算机网络:将分布在各处的计算机和终端设备通过数据通信系统连接在一起的系统。 特征:分布性、自治性、互连性、可见性
网络操作系统对整个网络进行管理,为用户提供统一的、方便的网络接口,功能是实现网络通信、资源共享和保护,以及提供网络服务和网络接口等。 (六)、分布式操作系统 分布式操作系统:把大量的计算机组织在一起,彼此通过高速网络进行连接。 特征:分布式处理、模块化结构、利用信息通信、实施整体控制 特点:透明性、灵活性、可靠性、高性能、可扩充性 (七)、操作系统的主要产品系列 1、DOS 2、Windows 3、OS/2 4、UNIX
四、操作系统的用户界面 三种:命令界面、图形界面、系统调用界面 (自己看)
第二章 进程管理 进程是操作系统中最重要的概念之一,它不仅是最基本的并发执行的单位,而且是资源分配的基本单位。 一、进程的概念 (一)、程序的顺序执行 程序在执行时从前到后一步一步的执行,这种程序设计方式为顺序程序设计。 在早期的单道程序工作环境中,内存中只有一个作业的程序,因此在执行时严格按照顺序方式进行。 主要特点包括: (1)、严格的按照顺序执行
(2)、只有程序本身的动作可以改变程序的环境。 (3)、程序的执行结果与程序运行的速度无关。 概括起来就是程序的封闭性和可再现性。 (二)、多道程序设计 多道程序设计是在一台计算机上同时运行两个或更多的程序。 每一个时刻真正在CPU上执行的程序只有一个,从宏观上看,系统中的多个程序都得到执行,即就是并法执行的。 优点:提高系统资源利用率和增加作业吞吐量。 (三)、程序并发执行时的特征 1、失去了封闭性
2、程序与计算不再一一对应 程序是静态的,计算是动态的。 3、并发程序在执行期间可以相互制约:执行—暂停—执行 (四)、进程的定义 1、进程概念的引入 程序的并发执行以及程序执行的动态性,表现为“走走停停”,因此,用程序这个静态的概念不能反映程序并发执行中的特性,故而引入进程。 2、进程的定义 进程:程序在并发环境中的执行过程。 进程和程序的主要区别是:
(1)、程序是静态的,而进程是动态的 (2)、进程是一个能独立运行的单位 (3)、程序和进程无一一对应关系 (4)、进程在并发执行过程会产生相互制约关系 3、进程的特征 (1)、动态性 (2)、并发性 (3)、调度性 (4)、异步性 (5)、结构性 二、进程的状态和组成 (一)、进程的状态及其转换
1、进程的基本状态 三种基本状态(进程控制状态):进行态、就绪态和阻塞态(等待态)。 (1)、运行态:分配到CPU,正在处理机上执行的状态,数目不能大于CPU的数目 (2)、就绪态:已具备运行状态,等待分配CPU的状态。 (3)、阻塞态:等待某种时间发生而暂时不能运行的状态。 注意看图2—6 2、进程状态的转换 (1)、就绪—>运行 (2)、运行—>阻塞 (3)、阻塞—>就绪 (4)、运行—>就绪
(二)、进程的组成 1、进程的组成:程序、数据集合和PCB(进程控制块)三部分组成。见图2—7。也称为“进程映象”。 2、进程控制块的组成:也称为进程描述块,包含进程的描述信息和控制信息,在不同的系统中,PCB的具体组成成分是不同的。 3、进程控制块的作用 每个进程有唯一的进程控制块,是进程存在的唯一标志,是进程动态、并发的表现所在,操作系统根据PCB对进程实施控制和管理。 (三)、进程队列 方式有三种:线形方式、链接方式和索引方式
三、进程管理和有关命令 (一)、进程的管理 1、进程族系:由父进程创建子进程,子进程创建子进程,从而构成一棵树型的进程族系。 2、原语操作(原子操作) 原语:是机器指令的延伸,往往是为了完成某些特定的功能而编制的一段系统程序。 3、进程创建 4、进程终止 5、进程阻塞 6、进程唤醒
7、进程映象的更换 (二)、进程管理命令(自己看) 四、进程的相互作用和通信 进程之间的相互关系分为同步关系和互斥关系。 (一)、进程的同步与互斥 1、同步 同步:是进程间共同完成一项任务时发生的相互作用的关系。这些进程在执行时间次序上必须遵循确定的规律。 2、互斥 互斥:进程在逻辑上完全独立,由于竞争同一物理资源而相互制约。
3、临界资源和临界区 临界资源:一次仅允许一个进程使用的共享资源。 临界区:每个进程中访问临界资源的那段程序。 进入临界区的若干进程应该满足的关系:课本P59 (二)、同步机制及其应用 1、用锁操作原语实现互斥 为每个临界资源设置一把锁,有关闭和打开两种状态,一般用布尔变量来表示,称为软件锁。 进程进入临界区执行的操作有:关锁、执行临界区程序、开锁。 开锁和关锁的原语描述为:课本P59
用软件锁解决互斥问题有比较的局限性,因此目前已经很少使用。 2、信号量及P、V操作原语 信号量:也叫信号灯,一般由两个成员组成的数据结构,其中一个成员是整型变量表示信号量的值,另一个是指向PCB的指针。 信号量的值与相应资源的使用情况有关,信号量的值大于零,说明可用资源数量,小于零其绝对值为等待使用这种资源的进程个数;而PCB指针则是多个等待同一信号量的进程队列。 信号量的值可以变,但仅由P、V操作来实现。
P操作(设信号量为S): ①信号量的值减1,即S=S-1 ②如果S>=0,则该进程继续执行 V操作: ①信号量的值加1,即S=S+1 ②如果S>0,则该进程继续执行 3、用P、V原语实现互斥 例子以及模型见课本P62—63 注意: ①在每个程序中实现互斥的P、V必须成对出现,先是P后是V ②信号量的初值一般为1
4、用P、V原语实现简单同步 供者进程和用者进程,缓冲区有两种状态:空和满,设置两个信号量S1和S2 实现方法见课本P63 注意:①分析进程间的制约关系,确定信号量的种类 ②确定信号量的初值 ③同一信号量的P、V操作要成对出现 5、生产者—消费者问题 生产者—消费者问题是同步问题的一种抽象,是进程同步、互斥关系方面的一个典型例子。 自己下去看
(三)、进程间的通信 进程通信:指进程间的信息交换。 使用P、V操作可以进行通信,它交换的信息量少,称为低级通信,我们这里介绍高级通信。 高级通信的种类:共享存储器、消息传递和管道文件 1、共存储器 2、管道文件 3、消息传递方式:分为直接通信方式和间接通信方式 自己看
第三章 处理机管理 处理机管理是操作系统的主要功能之一,直接影响系统的性能。从调度实现的功能来分,处理机调度分为三级:作业调度(高级调度)、进程挂起与对换(中级调度)和进程调度(低级调度)。 一、作业调度 (一)、调度级别 调度:选出待分配的作业或进程。 处理机的调度主要目的就是为了分配处理机。 一个作业从进入系统到最后完成,可能要经过三级调度:高级调度、中级调度和低级调度。
(1)、高级调度(作业调度):从一批作业中选出若干作业 (2)、中级调度:在内存使用紧张的情况下将一些暂时不能运行的进程从内存对换到外存 (3)、低级调度(进程调度):按一定的算法将CPU分派给就绪队列当中的一个进程。执行低级调度的功能的程序称为进程调度程序。 (二)、作业状态 分为:提交、后备、执行和完成。 作业状态的变迁:提交—> 后备—>执行 —>完成 (三)、作业调度
1、作业控制块PCB 系统为每一个作业设置了一个作业控制块JCB,它是作业在系统中存在的唯一标志,记录作业的有关信息。图3—1为作业控制块的主要内容。 在系统中有不同的后备作业队列,有作业调度从中挑选作业,放入内存,予以执行。 2、作业调度的功能 作业调度的主要任务:完成作业从后备状态到执行状态和从执行状态到完成状态的转换。 (1)、记录系统中各作业的情况 (2)、按照某种调度算法从后备作业队列中挑选作业 (3)、为选中的作业分配内存和外设等资源
(4)、为选中的作业建立相应的进程 (5)、作业结束后进行善后处理工作 二、进程调度 (一)、进程调度的功能和时机 进程调度(低级调度)实现一个就绪进程获得CPU的控制权,即就是完成进程状态从就绪态到运行态的转化。完成进程调度功能的程序为进程调度程序(低级调度程序)。 (1)、主要功能:①保护现场(处于运行态的进程现场) ②挑选进程(从就绪队列当中选一个) ③恢复现场(为选中的进程恢复现场,以便从上次间断处继续运行)
(2)、进程调度的时机 ①完成任务 ②等待资源 ③运行到时 ④发现标志 (二)、两级调度模型 两级调度:作业调度和进程调度(见图3—2) 作业调度是宏观调度,进程调度是微观调度;二者的执行频率不同;作业调度次数少,间隔长;有些系统中没有作业调度,或者即使有也很少。 三、调度性能的评价 (一)、选择调度算法时应考虑的主要因素 (1)、应保证实现系统的设计目标 (2)、对每个作业或进程公平对待,使每个进程能共平的共享CPU
(3)、均衡使用资源,提高资源利用率 (4)、兼顾响应时间和资源利用率 (5)、基于相对优先级,但避免无限延期 (6)、系统开销不应太大 (二)、调度性能的评价准则 1、CPU利用率 2、吞吐量:单位时间内CPU完成的作业数量 3、周转时间:从作业提交到作业完成的时间间隔 平均周转时间 带权周转时间 平均带权周转时间 4、就绪等待时间:在就绪队列中所花费的时间数量
5、响应时间:从提交第一个请求到产生一个响应所用的时间 四、常用的调度算法 (一)、先来先服务法(FCFS) 不论是作业调度还是进程调度都采用谁先到先选谁。 例子见课本P82页 优点:容易实现 缺点:效率很低 (二)、时间片轮转法 主要用于分时系统中的进程调度。 基本思想:把所有的就绪进程按先入先出排成一个队列,一个进程只能在CPU上运行一个时间片,时间片用完后让出CPU
例子见课本P83页 时间片大小对轮转法的影响: ①时间片太长,退化为先来先服务法 ②时间片太短,切换工作频繁,系统开销增大 时间片长短由以下几个因素决定: ① 系统的响应时间 ②就绪队列进程数目 ③进程的转换时间 ④CPU运行指令速度
(三)、优先级法 优先级法就是从就绪队列当中选出优先级最高的进程,把CPU分给它使用。在系统中经常采用优先级法作为作业调度和进程调度的算法。 如果一个进程在运行中就绪队列中出现了比它优先级更高的进程时,有两种方法: (1)、非抢占式优先级法 (2)、抢占式优先级法 进程优先级指定方法:内部决定或外部指定 进程优先级确定方式:静态方式和动态方式 (1)、静态优先级:进程创建时就确定下来优先级,在整个运行期间保持不变。
优先级的表示:一般用某个范围内的一个整数表示,这个整数称为优先数。 优点:易于实现,系统开销小 缺点:某些低优先级的进程无限等待 (2)、动态优先级:优先级随着进程的推进不断改变 (四)、其它调度算法 1、短作业优先法 2、最短剩余时间优先法 3、多级队列法 4、多级反馈队列法
五、UNIX常用调度命令执行过程 (一)、UNIX系统中的进程调度 采用多级反馈队列轮转法(既有轮转法又有优先级法) 1、调度时机:有四种情况 ①进程调用sleep程序 ②进程终止 ③进程从系统调用态返回用户态 ④核心处理完中断后,进程回到用户态,但存在比它更适宜运行的进程 2、调度算法
进程调度由进程调度程序swtch程序实现的。 swtch程序执行过程分为三个阶段,属于三个进程:第一阶段属于当前进程;第二阶段属于0﹟进程部分;第三阶段属于被选中的进程。 具体算法见课本P88 UNIX S—5中优先级分为两类:用户优先级类和核心优先级类。如图3—5。 进程的优先级是动态改变的,采用的方法有两种:对核心态进程设置优先数,对用户态进程计算优先数。 (二)、UNIX常用的调度命令 1、nohup命令 2、at命令 3、batch命令 4、jobs命令 5、fg命令 6、bg命令
(三)、shell命令执行过程
第四章 存储器管理 一、存储器管理引言 内存(主存):CPU可以直接存取指令和数据的存储器。内存是计算机系统进行操作的中心,它由非常多的单元组成,每个单元都有自己的地址,对内存的访问就是通过一系列对指定单元格的读或写来实现的。 (一)、存储器的层次(分三层) 内存、外存和高速缓冲存储器 (二)、用户程序的主要处理阶段 源程序:用高级语言或汇编语言编写的程序。 1、编辑阶段:源文件
2、编译阶段 源程序目标代码(处理机能识别的二进制代码,存放的文件叫目标文件) 3、连接阶段 连接:将编译或汇编得到的一组目标模块以及它们所需的库函数装配成一个完整的装入模块的过程。(把模块连接成一个整体) 经过连接产生一个可执行文件。 4、装入阶段 用户程序的处理过程见课本P100 图4—4
1、什么是操作系统 定义:操作系统是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。