1、第 1 章 操作系统概述1) 一个完整的计算机系统是由硬件系统和软件系统两大部分组成2) 计算机软件是指程序和与程序相关的文档的集合3) 按功能可把软件分为“系统软件 ”和“应用软件”两部分系统软件:操作系统语言处理程序,数据库管理系统应用软件:各种管理软件,用于工程计算的软件包,辅助设计软件4) 通常把未配置任何软件的计算机称为“裸机”5) 操作系统可以被看作是计算机系统的核心,统管整个系统资源,制定各种资源的分配策略,调度系统中运行的用户程序,协调它们对资源的需求,从而使整个系统在高效、有序的环境里工作。6) 发展的动力:(1) 提高计算机资源的利用率的需要(2) 方便用户使用计算机的需要
2、(3) 硬件技术不断发展的需要(4) 计算机体系结构发展的需要7) 操作系统是在“裸机”上加载的第一层软件,是对计算机硬件系统功能的首次扩充8) 操作系统的定义:操作系统是控制和管理计算机硬件和软件资源,合理地组织计算机工作流程,以及方便用户使用计算机的一个大型程序9) 操作系统的功能: 处理机管理:进程控制,进程同步,进程通信、调度、实施 CPU 分配 存储器管理:内存分配,内存保护,地址映射,内存扩充 设备管理:缓冲管理,设备分配,设备管理 文件管理:存储空间管理,目录管理,读写管理和保护 与用户有关的接口:用户接口,程序接口,人机交互10) 操作系统另一种定义:操作系统是一组能有效地组织
3、和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合操作系统的种类:1) 单道批处理系统特点:单路性、独占性、自动性、封闭性、顺序性缺点:系统的资源得不到充分的利用2) 多道批处理系统特点:多路性、共享性、自动型、封闭性、无序性、调度性好处: 提高 CPU 的利用率 提高内存和 I/O 设备的利用率 增加系统吞吐量缺点:平均周转时间长,无交互能力3) 分时系统分时系统是指在一台主机上连接了多个配有显示器和键盘的终端,由此所组成的系统,该系统允许多个用户同时通过自己的终端,以交互方式使用计算机,共享主机中的资源。采用了“时间片轮转”的处理机调度策略4) 实时系统实时
4、系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行第 2 章 处理机管理1) 进程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令,数据和堆栈等组成的,是一个能独立运行的活动实体,多个进程可以并发执行和交换信息2) 程序是一个在时间上严格有序的指令集合3) 在单道程序设计下,系统具有的特点a. 资源的独占性b. 执行的顺序性c. 结果的再现性在多道程序设计环境下,系统具有:a. 执行的并发性b. 相互的制约性c. 状态的多变性(不可再现性)5) 并发、并行、串行a. 从宏观上看是并行,同时在内存的多个程序都在执行着,互不影
5、响b. 从微观上看是串行,由于 CPU 在任何时刻只能执行一个程序,因此这些程序轮流占用 CPU,交替执行着c. 我们把“逻辑上相互独立的程序,在执行时间上相互重叠,一个程序的执行还没有结束,另一个程序的执行已经开始”的这种特性称为程序执行的并发性6) 对进程的描述a. 进程是程序的一次执行过程b. 进程的运行活动是建立在某个数据集合上的c. 进程是在获得资源的基础上从事自己的运行活动7) 进程的特征结构特征、动态性、并发性、独立性、异步性进程是一个动态的概念不同进程可以执行同一个程序每一个进程都有自己的生命周期进程之间具有并发性,进程间会相互制约8) 程序和进程的区别a. 程序是指令的有序集
6、合,是静态的,进程是程序在处理机上的一次执行过程,是动态的。程序的存在时永久的,而进程是有生命周期的,它因创建而产生,因调度而运行,因撤销而消亡b. 进程是程序的一次执行过程,程序是进程赖以存在的基础c. 进程具有并发性,而程序并发执行会失去可再现性d. 进程是系统分配和调度的独立单位,进程由程序、数据集合和进程控制块组成9) 系统进程的使用级别高于用户进程10) 进程的状态创建、就绪、运行、阻塞a. 一个进程从运行状态变为就绪状态,一定会引起另一个进程从就绪变为运行b. 一个进程从运行状态变为阻塞状态,一定会引起另一个进程从运行状态变为就绪状态;这种因果变迁绝对不可能发生,因为一个 CPU
7、不可能真正同时运行两个进程c. 一个进程从阻塞状态变为就绪状态,不一定会引起另一个进程从就绪状态变为运行状态11) 进程的三个组成部分:程序、数据集合、进程控制块(PCB)12) 进程控制块是进程存在的唯一标示a. 作用:通过 PCB,是原来不能独立运行的程序,成为一个可以独立运行的基本单位,一个能够并发执行的进程b. 其中的信息:进程标识符、处理机状态、进程调度信息、进程控制信息13) 操作系统中把做出“决定把 CPU 分配给谁用”的程序称为“进程调度程序”14) 常用的进程调度算法:a. 先来先服务调度算法b. 时间片轮转调度算法:为就绪队列中的每一个进程分配一个称为“时间片”的时间段,它
8、是允许该进程占用 CPU 的最长时间长度c. 优先数调度算法:优先数高的先调度,若相同则先来先服务d. 多级队列调度算法:时间片调度和优先数调度算法的结合15) 进程调度程序的主要功能a. 记录系统中所有进程的有关情况,比如进程的当前状态,优先数等b. 确定分配处理机的算法c. 完成处理机的分配d. 完成处理机的回收16) 把处理剂分配给进程后,还有一个允许它占用多长时间的问题,有两种处理方式,一种是不可剥夺方式,另一种是剥夺方式17) 为了对进程进行有效的管理和控制,操作系统要提供若干基本的操作以便能创建进程、撤销进程、阻塞进程、唤醒进程,把具有这种特性的程序称为“原语”,原语的不可分割性,
9、通常利用屏蔽中断的方法18) 程序接口:操作系统在程序一级给予用户的支持命令接口:操作系统在控制一级给予用户的支持19) CPU 指令系统中的指令分为两类a. 操作系统和用户都能使用的指令,非特权指令b. 只能由操作系统使用的指令,特权指令20) CPU 的两种工作状态:管态、目态a. 当 CPU 处于管态时,可以执行包括特权指令在内的一切机器指令b. 当 CPU 处于目态时,禁止使用特权指令21) 访管指令系统调用命令的程序属于操作系统,它应该在管态下执行用户程序只有通过计算机系统提供的访管指令才能实现由目态转为管态,进而调用这些功能程序的目的访管指令属于非特权指令,功能是执行它就会产生一个
10、软中断,促使中央处理机由目态转为管态,进入操作系统并处理该中断22) 从功能上看,可以把系统调用命令分为五大类:a. 一是关于进程管理和控制的b. 二是关于外部设备输入/输出的c. 三是关于磁盘文件管理的d. 四是关于访问系统信息的e. 五是关于存储申请与释放的23) 从形式上看,操作系统提供的系统调用与一般的过程调用(子程序调用)相似,但它们有着明显 的区别作业管理:1) 把一个作业提交给系统时,系统要开辟一个作业控制块 JCB,以便随时记录作业的信息2) 被系统接纳的作业,在没有投入运行之前,称为后备作业。这些作业存放在辅助存储器中,并由他们的 JCB 连接在一起,形成所谓的后备作业队列3
11、) 作业调度:按照某种规则,从后备作业队列中挑选作业进入内存,参与处理机的竞争,这个过程称为作业调度4) 作业的状态:a. 提交状态:进入辅助存储器,作业的信息还没有全部进入系统,系统也没有为它建立 JCB,感知不到它的存在b. 后备状态:建立起了 JCB,并将 JCB 排到后备作业队列中c. 运行状态:(阻塞、运行、就绪)都属于运行状态d. 完成状态:也是一个暂时性的状态5) 作业的调度算法:a. 先来先服务:以作业进入后备作业队列的先后次序周转时间=完成时间 -到达时间注:若分配一定的内存,且不允许作业在内存中移动时,要考虑所占内存大小b. 短作业优先:从后备作业队列中挑选所需 CPU 时
12、间最少且资源能够得到满足的作业注:如果所有作业“同时”到达后备作业队列,那么采用短作业优先的作业调度算法总会获得最小的平均周转时间c. 响应比高着优先:先调度响应比高着 响应比=已等待时间 /所需 CPU 时间6) 在确定作业调度算法时应注意的问题:a. 公平对待后备作业队列中的每一个作业,避免无故或无限期的延迟一个作业的执行,使各类用户感到满意b. 使进入内存的多个作业,能均衡地使用系统中的资源,避免出现有的资源没有作业使用,有的资源却被多个作业争抢的“忙闲”不均的情况c. 力争在单位时间内为尽可能多的作业提供服务,提高整个系统的吞吐能力第 3 章 存储管理1) 计算机操作系统的存储器:CP
13、U 寄存器,主存,辅存2) 在考虑计算机存储器的设计时,必须顾及a. 价格、容量、访问时间b. 存取时间越快,价格越高,容量越小3) 高速缓存:介于寄存器和存储器之间的存储器,主要用于备份主存中较常用的数据,以减少处理机对主存储器的访问次数,提高程序执行速度高速缓存容量远大于寄存器,比内存约小两到三个数量级左右为了缓和内存与处理机(CPU)速度的不匹配4) 字(字长):一次传送数据的长度16、32、64依系统而定(主)内存储器和高速缓存之间是以“块”为单位传递数据的高速缓存与 CPU 之间则以“ 字”为单位传递数据5) 存储器管理的功能:a. 内存的分配与回收b. 存储的保护和共享c. 地址定
14、位d. 存储扩充6) 内存储器由一个个存储单元组成,一个存储单元可存放若干个二进制的位(bit),8 个二进制位被称为一个字节(byte)7) 在操作系统中,把用户程序指令中的相对地址变为所在绝对地址空间中的绝对地址的这个过程,称为地址重定位8) 地址的定位方式:a. 绝对定位方式:是在程序装入内存之前,程序指令中的地址就已经是绝对地址,已经正确地反映了它将要进入的存储区的位置,不适用于多道程序设计环境b. 静态重定位(多道程序环境下)根据内存的具体情况将装入模块装入到内存的适当位置,会使装入模块中的所有逻辑地址与实际装入内存后的物理地址不同。这种地址重定位是在程序执行前完成的c. 动态重定位
15、将地址重定位的时间推迟到程序执行时再进行所以装入内存的所有地址都仍是逻辑地址连续分配存储方式 :1) 单一连续分配(静态重定位)a. 单道程序环境下,总体上把内存储器分为两个分区:系统区和用户区b. 系统总是把整个用户区分配给一个用户使用,把分配给了用户但未被使用的区域称为“内部碎片”c. 单一连续分区存储管理的缺点:a) 由于每次只能有一个进入内存,故它不适用于多道程序设计,工作效率不高,资源利用率低b) 只要作业比用户区小,在用户区里就会形成碎片,造成资源浪费c) 大作业无法在小内存中运行d. 为缓解大作业小内存的情况提出覆盖技术和对换技术a) 覆盖技术:允许一个作业的若干个程序段使用同一
16、个存储区b) 对换技术:以辅助存储器作为内存的后援(硬盘)2) 固定分区存储管理(静态):分区数目、大小固定a. 预先把内存储器中可供分配的用户区划分成若干个连续分区,每个分区的尺寸可以相同,可以不同。每个分区中只允许装入一个作业运行,系统可以为每一个分区设置一个后备作业队列,一个作业到达时,总是进入到“能容纳该作业的最小分区”的那个后备队列中去排队b. 分区的分配与释放方案:a) 在队列中挑选出第一个可容纳的作业进入i. 优点:选择效率高ii. 缺点:小作业-大内存b) 在这个队列中进行搜索,找到这个分区能够容纳的最大的那个作业,让它进入运行i. 优点:存储空间利用率高,产生内部碎片尽可能的
17、小ii. 缺点:选择效率低c) 在系统中至少保留一个小的分区,以避免因为运行小作业而被迫分配打分去的发生d) 为具体管理各个分区,并建立一个“分区分配表”,其中包括每个分区的起始位置大小及状态c. 特点a) 它是最简单的,具有“多道”色彩的存储管理方案,提高资源利用率b) 当把一个分区分配给某个作业时,该作业的程序将一次性的全部装入到分配给他的连续分区里c) 静态重定位,在分区内的程序不能随意移动d. 缺点a) 进入分区的作业尺寸不见得与分区的长度相吻合,势必产生内部碎片,引起资源的浪费b) 如果到达作业的尺寸比任何一个分区的长度都大,它就无法运行3) 可变分区存储管理:分区的边界划分随作业的
18、需求可变,分区的数目随着进入作业的多少可变,消灭了内部碎片(可能会产生内部碎片)。外部碎片是指无法分配给用户使用的存储区a. 基本思想:在作业要求装入内存储器时,如果当时内存储器中有足够的存储空间满足该作业的需求,就划分出一个与作业相对地址空间同样大小的分区,并分配给它b. 要解决的问题a) 采用一种新的地址重定位技术,动态地址重定位,以便程序能够在内存储器中随意移动,为空闲区的合并提供保证b) 记住系统中各个分区的使用情况c) 给出分区分配算法c. 地址动态重定位过程(在程序执行时动态完成)a) 为实施地址动态重定位,硬件要增加一个地址转换机构,这个机构一般由地址转换线路和一个定位寄存器(基
19、址寄存器)组成b) 地址的静态重定位和动态重定位的比较i. 地址转换时刻:静态重定位是在程序运行之前完成地址转换的,而动态重定位是在程序执行时完成ii. 谁来完成任务:静态重定位是由软件完成地址转换工作的,而动态重定位则是由一套硬件提供的地址转换机构来完成iii. 完成的形式:静态重定位是在装入时一次性集中地把程序指令中所有要转换的地址加以转换;而动态重定位则是每执行一条执行时,就对其地址加以转换iv. 完成的结果:实施静态重定位,原来的指令地址部分被修改了,而动态重定位只是按照所形成的地址去执行这条指令,并不对指令本身做任何修改d. 空闲区的合并e. 分区的管理a) 表格法:一张已分配表,一
20、张空闲表(分区号,分区大小,分区起始地址、状态)b) 单链表法:一个存放该分区的长度,另一个存放它下一个空闲分区的起始地址c) 双链表法:还存放上一个空闲区起始地址f. 空闲分区的分配算法a) 最先适应算法:要求空闲分区链以地址递增的次序链接(对大作业不利)b) 最佳适应算法:每次为作业分配内存时,总是把能满足要求,又是最小的空闲分区分配给作业,避免“大材小用” 按其容量c) 最坏适应算法:挑选一个最大的空闲区,从中分割一部分存储空间给作者使用,以至于存储器中缺乏大的空闲分区,照顾中小作业的需求d) 循环首次适应算法:从上次分配的位置之后开始查找g. 可变分区存储管理的特点a) 作业一次性的全
21、部装入到一个连续的存储分区中b) 分区是按照作业对存储的需求划分的,所以不会出现内部碎片c) 为了确保作业能够在内存中移动,要有硬件的支持,实行指令地址的动态重定位h. 缺点:a) 仍然没有解决小内存裕兴大作业的问题,只要作业的存储需求大于系统提供的整个用户区,该作业就无法投入运行b) 虽然避免了内部碎片,但有可能出现极小的翻去暂时分配不出去的情形,引起了外部碎片,c) 为了形成大的分区,可变分区存储管理通过移动程序来达到分区合并的目的,然而程序的移动是很花费时间的,增加了系统在这方面的投入与开销4) 分页式存储管理:需要两次访问内存,目的是提高内存利用率a. 分页式储存管理是将固定分区方法与
22、动态重定位技术结合在一起,需要硬件支持基本思想:首先把整个内存储器划分成大小相等的许多分区,每个分区称为“一块”b. 在分页式存储管理中,块是存储分配的单位a) 用户作业仍然是相对于“0”进行编址,形成一个连续的相对地址空间b) 用户程序相对地址空间中的每一个分区被称为“页”,用户相对地址空间中的每一个相对地址,都可以用(页号,页内位移)这样的数对来表示i. 物理地址=页的大小*页号+页内位移ii. 页号=相对地址 /块尺寸iii. 页内位移= 相对地址% 块尺寸c. 页与块对应关系表称为“页表”a) 快速寄存器组单独起名为“相联寄存器”,简称“快表”b) 快表与页表联合工作,先查找快表,若无
23、再查找页表并把数据写入快表c) (访问页表时间+ 访问一次内存时间)* 命中率+访问快表时间* 命中率=平均内存存取时间d) 页面尺寸大多选在 512byte 到 64kb 之间d. 特点:a) 内存储器实现被划分成相等尺寸的块,它是进行存储分配的单元b) 用户作业的相对地址空间按照块的尺寸划分成页,这是在系统内部进行的,用户感觉不到c) 相对地址空间中的页可以进入内存中的任何一个空闲块,并且分页式存储管理实行的是动态重定位,因此它打破了一个作业必须占据连续的存储空间的限制,作业在不连续的存储区里,也能够得到正确的运行e. 缺点:a) 平均每一个作业要浪费半页大小的存储块,会产生内部碎片b)
24、作业虽然可以不占据连续的存储区,但是每次仍然要求一次全部进入内存。因此,如果作业很大,其存储需求大于内存,仍然存在小内存不能运行大作业的问题5) 分段式存储管理:a. 目的:方便用户使用编程,存储共享,存储保护,动态增长,动态链接b. 要求用户将自己的整个作业程序以多个相互独立的称为“段”的地址空间提交给系统,每个段都是一个从“0”开始的一维地址空间,长度不一,操作系统按照段长为作业分配内存空间c. 段表:段号、段长、该段在内存的基址(起始地址)段号,段内位移a) 物理地址=段的起始地址+段内地址b) 逻辑地址=段号+段内地址d. 分段与分页的区别:a) 页是信息的物理单位,段是信息的逻辑单位
25、i. 分页提高内存的利用率,仅仅是系统管理上的需要,用户不可见。段是信息的逻辑单位,它通常包括的是一组意义相对完整的信息,分段段的目的主要在于能更好地满足用户的需要b) 页的尺寸由系统决定,段的尺寸因段而异i. 段的长度取决于用户编写的程序,通常由编译程序在对源程序进行编译时根据信息的性质来划分c) 页的地址空间是一维的,段的地址空间是二维的i. 分页:用户必须通过链接编辑程序,把各程序段链接成一个相对于 0 编址的线性空间,程序中是通过地址编号来确定空间中的位置的。因此用户向系统提供的是一个一维的逻辑地址空间。ii. 分段:用户不把各程序段链接成一个相对于 0 进行编制的一维线性空间,各程序
26、段之间是通过段号,段内位移进行访问的。因此,用户向系统提供的是一个二维的逻辑地址空间6) 段页式存储管理:(三次访问内存)a. 基本原理:分段和分页原理的结合,即先将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。a) 作业地址空间结构:主程序段,子程序段,数据段b) 地址结构:段号,段内页号,页内地址b. 系统设置了位示图、段表和页表,记录主存的使用情况和作业分配情况a) 逻辑地址=段号+页号+ 页内位置b) 块号*块长+页内地址c. 虚拟存储器:是具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统,其逻辑容量由内存容量和外存容量之和所决定,其运
27、行速度接近于内存速度。a) 特征:多次性、对换性、虚拟性、离散性d. 请求分页式存储管理(需要硬件支持)a) 是基于分页式存储管理的一种虚拟存储器“请求分页式”是指当程序运行中需要某一页时,再把它从辅助存储器里调入内存使用,解决了小内存与大作业的矛盾,但会产生内部碎片b) 缺页中断是指在指令执行期间,若发现所要访问的指令或数据不在内存时,便立即产生和处理缺页中断信号,以便能及时将所缺之页面调入内存e. 缺页中断与一般中断的区别 缺页中断率=缺页次数/页面总数a) 缺页中断是在执行一条指令中间时产生的中断,并立即去处理,一般中断则是一条指令执行完毕后,当发现有中断请求时,才去响应和处理b) 缺页
28、中断处理完成后,仍返回到原指令去执行,因为那条指令并未执行;而一般中断则是到下一条指令去执行,因为上一条指令已经执行完毕了f. 影响缺页中断次数的因素:a) 分配给作业的内存块数b) 页面尺寸c) 程序的实现7) 页面淘汰(置换)算法:页面淘汰是由缺页中断引起的,但缺页中断不见得一定引起页面淘汰a. 先进先出页面淘汰(置换)算法(FIFO )淘汰最先进入内存的页面 (3 个内存块都为空,3 次缺页中断)b. 最近最久未用页面淘汰(置换)算法(LRU)总是把最长时间未被访问过的页面淘汰出去 (需要寄存器和栈)c. 最近最少用页面淘汰(置换)算法(LFU)总是把当前使用的最少的页面淘汰出去为每个内
29、存中的页面设置一个计数器(移位寄存器) 加 1d. 最优(最佳)页面淘汰(置换)算法(OPT )把以后不再使用的或最长时间内不会用到的页面淘汰出去(理论上,不会实现)注:对于 FIFO 页面淘汰算法,有时增加分配给作业的可用内存块数,它的缺页次数反而上升,通常称为异常现象第 4 章 设备管理1 “设备”泛指计算机系统中的各种外部设备,外设(即主机以外的其他所有设备)在众多的 I/O 设备中,并不是所有的设备都是可以共享的,可以借助于磁盘,把只能独享的设备变为共享,这就是所谓的“虚拟设备” SPOOLing 技术2 设备是指计算机中用以在机器之间进行传送和接收信息,完成用户输入/ 输出(I/O)
30、操作的那些部件。比如磁盘、磁带、打印机、显示器、鼠标、键盘3 计算机 I/O 系统的组织结构:(1 ) 底层是具体的设备和硬件接口(2 ) 中间是系统软件(与设备相关软件、与设备无关软件)(3 ) 用户程序4 I/O 设备一般是由执行 I/O 操作的机械部分和执行控制 I/O 的电子部件组成(1 ) 执行 I/O 操作的机械部分就是一般的 I/O 设备(2 ) 执行控制 I/O 的电子部件称为设备控制器或适配器1 为了能够使 CPU 设备控制器中的各个寄存器进行通信,通常采用“单独的 I/O 空间”和“内存映射 I/O”两种方法2 设备控制器是 CPU 与外围设备之间的接口,是一个可编址设备,
31、每一个地址对应一个设备功能: 接收和识别命令 数据交换 标识和报告设备的状态 地址识别 数据缓冲区 差错控制组成: 设备控制器与处理机(CPU)的接口 设备控制器与设备的接口 I/O 逻辑:用于实现对设备的控制5 设备驱动程序:6 设备处理方式:(1 ) 为每一类设备设置一个进程,专门用于执行这类设备的 I/O 操作(2 ) 在整个系统中设置一个 I/O 进程,专门用于执行系统中所有各类设备的 I/O 操作(3 ) 不设置专门的设备处理进程,而只为各类设置相应的设备驱动程序,供用户或系统进程调用7 设备驱动程序的处理过程(1 ) 将抽象要求转换为具体要求(2 ) 对服务请求进行校验,即检查 I
32、/O 请求的合法性(3 ) 检查设备的状态(4 ) 传送必要的参数(5 ) 启动 I/O 设备(6 ) 工作方式的设置I/O 接口程序:是操作系统中与设备无关的软件,它从上层接收用户对设备提出的I/O 请求,然后负责吧 I/O 请求转变成所需要的 I/O 命令,调用具体的设备驱动程序去执行系统都是用主设备号和次设备号组成“逻辑设备名”操作系统提供的设备无关性的优点: 方便用户 提高设备的利用率8 计算机设备的分类(1 ) 基于设备的从属关系a. 系统设备(键盘、显示器、打印机、磁盘驱动)b. 用户设备(2 ) 基于设备的分配特性a. 独享设备(打印机)b. 共享设备c. 虚拟设备(SPOOLi
33、ng 技术)(3 ) 基于设备的工作特性a. 输入/输出设备(字符设备)b. 存储设备(块设备) 磁盘、磁带(4 ) 按信息交换的单位a. 块设备:用于存储信息,属于结构设备。磁盘、磁带(以块为单位传送信息)b. 字符设备:以单个字符为单位来传送信息。 键盘9 设备管理的目标a. 提高外部设备的利用率b. 为用户提供便利、统一的使用界面10 设备管理的功能a. 提供一组 I/O 命令b. 进行设备的分配和回收c. 对缓冲区进行管理d. 实现真正的 I/O 操作11 输入输出管理步骤(1 ) 用户在程序中使用系统提供的输入/输出命令发出 I/O 请求(2 ) 输入输出管理程序接受这个请求(3 )
34、 “设备驱动程序”来具体完成所要求的的 I/O 操作(4 ) 实现设备中断处理程序来处理这个请求设备的输入输出管理程序由 3 块内容组成:接受用户的 I/O 请求,组织管理输入输出进行,输入输出的善后处理设备控制:1) 设备控制块 DCB 中存放的是一台具体设备的有关信息,找到一个设备的 DCB,就得到了该设备的特性,各种参数,使用情况等,所以 DCB 是设备管理中最重要的一条数据结构2) 独享设备中具有排他性,只能采取“静态分配”的策略a. 静态分配:用户作业开始之前,由系统一次分配给该作业所需的设备,控制器和通道,不会发生死锁b. 动态分配:在进程执行过程中进行的设备分配,可能造成死锁对独
35、享设备采用的分配算法: 先来先服务 优先级高者先服务3) 共享磁盘的调度磁盘是一种典型的共享存储设备,允许多个作业进程同时使用,而不是让一个作业在整个运行期间独占。“同时使用”是指当一个作业进程暂时不用时,其他作业进程就可以使用。每一个时刻只有一个作业用4) 调度算法a. “先来先服务”调度算法(并不理想)(移臂调度,减少查找时间)以 I/O 请求到达的先后次序作为磁盘调度的顺序b. “最短查找时间”调度算法把距离磁头当前位置最近的 I/O 请求作为下一次调度的对象c. “电梯”调度算法(SCAN)总是沿着此案移动臂的移动方向选择距离磁头当前位置最近的 I/O 请求,作为下一次调度的对象d.
36、“单向扫描”调度算法(循环扫描 CSCAN)总是从 0 号柱面开始往里移动移动臂,遇到有 I/O 请求就进行处理,直到到达最后一个请求柱面,然后移动臂立即带动磁头不做任何服务地快速返回到0 号柱面,开始下一次扫描对 I/O 设备的控制方式(数据传输方式)1) 程序循环测试方式(程序查询式)是指用户进程使用 start 指令启动设备后,不断地执行 test 指令,去测试所启动设备的状态寄存器。只有在状态寄存器出现了所需要的状态后,才停止测试工作,完成输入/ 输出。数据寄存器:用来存放传输的数据状态寄存器:用来记录设备当前所处状态2) 中断方式所谓“中断”是一种使 CPU 暂时中止正在执行的程序而
37、转去处理特殊时间的操作。引起中断的时间称为中断源。程序中产生的中断,由 CPU 的某些错误结果(如,计算机溢出)产生的中断称为“内中断”,由外部设备控制器引起的中断称为“外中断”3) 直接存储器存取方式(DMA 方式)特点:能使 I/O 设备直接和内存储器进行成批数据的快速传输。(单位:块数据)DMA 控制器包括四个寄存器:数据寄存器,状态寄存器,地址寄存器,字节计数器DMA 控制器的组成:主机与 DMA 控制器的接口;DMA 控制器与块设备的接口;I/O 控制逻辑4) 通道方式通道方式能够使 CPU 彻底从 I/O 中解放出来。CPU 进行善后处理和启动。通道是一个独立于 CPU 的,专门用
38、来管理输入 /输出操作的处理机。通道是通过执行通道程序并与设备控制器共同实现对 I/O 设备的控制的。它规定了设备应该执行的各种操作的顺序。由一系列通道指令所构成,CPU 对 I/O请求只去做启动和善后处理工作,输入/输出的管理以及数据传输等事宜,全部由通道独立完成。缓冲:1) 原因:a. 缓和 CPU 与 I/O 设备间速度不匹配的矛盾b. 减少对 CPU 的中断频率,放宽对 CPU 中断响应时间的限制c. 解决数据粒度不匹配的问题d. 提高 CPU 和 I/O 设备之间的并行性2) 缓冲的实现a. 采用专门的硬件寄存器,比如设备控制器里的数据寄存器,“硬件缓冲”b. 在内存储器中开辟出 n
39、 个单元,作为专用的 I/O 缓冲区,以便存放输入/输出的数据,这种缓冲区就是“软件缓冲”c. 根据缓冲区的个数:单缓冲区、双缓冲区、多缓冲区、缓冲池3) 虚拟设备a. 通过多道程序技术可将一台物理 CPU 虚拟为多台逻辑 CPU,需要硬件的支持。作为后援的硬盘(大容量),具有设备与 CPU 并行工作的能力4) SPOOLing 技术a. 在主机的直接控制下,实现以前的脱机输入/ 输出功能,此时的外围操作与CPU 对数据的处理同时进行,我们把这种在联机情况下实现的同时外围操作的技术称为 SPOOLing 技术,或假脱机技术b. SPOOLing 技术是对脱机输入/ 输出系统的模拟。SPOOLi
40、ng 系统建立在通道技术和多道程序技术的基础上,以高速随机外存(通常为磁盘)为后援存储器5) 设备无关性:应用程序中所用的设备,不局限于使用某个具体的物理设备。为每个设备所配置的设备驱动程序是与硬件紧密相关的软件。为了实现设备独立性,必须再在设备驱动程序上设置一层软件,称为与设备无关的 I/O 软件或设备独立性软件6) 操作系统中实现虚拟设备的软件功能模块由 3 部分组成a. 预输入程序b. 缓输出程序c. 井管理程序7) SPOOLing 系统由四部分组成a. 输入井和输出井在磁盘上开辟出来的两个存储区域,输入数据,输出数据b. 输入缓冲区和输出缓冲区在内存中开辟的两个缓冲区c. 输入进程和
41、输出进程模拟外围控制机d. 井管理程序特点: 提高了 I/O 的速度 将独占设备改造为共享设备 实现了虚拟设备的功能第 5 章 文件管理1) 目标:提高外存储空间的利用率主要任务:对用户文件和系统文件进行管理,方便用户使用,并保证文件的安全性文件存储设备是以块为单位进行管理的2) 所谓“文件”是指具有完整逻辑意义的一组相关信息的集合,它是在磁盘上保存信息,而且能方便以后读取的方法,文件用符号名加以标识,这个符号名就被称为“文件名”3) 文件是指由创建者所定义的,具有文件名的一组相关元素的集合,可分为有结构文件和无结构文件两种。在有结构的文件中,文件由若干个相关记录组成而无结构文件则被看成是一个
42、字符流。文件在文件系统中是一个最大的数据单位,它描述了对象集文件属性:文件类型、文件长度、文件的物理位置、文件的建立时间(最后一次的修改时间)4) 文件名:在不同的系统之间,对文件名的规定是不同的。一个文件名是在创建该文件时由用户给出的,操作系统将向用户提供组成文件名的命名规则5) 很多操作系统采用句点.隔开成两部分的文件名形式,句点之前的部分称为文件名,句点后面的部分称为文件的“扩展名”。又称后缀名,用于指示文件的类型.bak 备份文件 .bas ABSIC 源程序 .bin 可执行的二进制文件.c C 源程序 .dat 数据文件 .doc 文档文件.hlp 帮助文件 .obj 目标文件 .
43、pas Pascal 文件.txt 一般文本文件 .tmp临时文件1) 文件被存在大容量的辅助存储器(外存)中,当用户需要使用时,就通过文件名把相应的文件读到内存2) “文件系统”是指操作系统中与文件管理有关的那部分软件,被管理的文件,以及管理文件所需要的数据结构(目录、索引表)的总体3) 对文件的分类a. 按文件的性质和用途:系统文件、用户文件、库文件b. 按文件中数据的形式:源文件、目标文件、可执行文件c. 按存取控制属性分类:只执行文件、只读文件、读写文件d. 按文件的保护性质:只读文件、读写文件、可执行文件、不保护文件e. 按文件的保护期限:临时文件、档案文件、永久文件f. 按文件的存
44、取方式:顺序存取文件、随机存取文件g. 按设备的类型:磁盘文件、磁带文件、打印文件h. 按文件的物理结构:连续文件、链接文件、索引文件i. 按文件的内容(组织形式和处理方式):普通文件、目录文件、特殊文件j. 按文件的逻辑结构:流式文件、记录式文件4) 文件的逻辑结构a. 从用户使用的角度出发组织的文件,被称为是文件的逻辑结构,一类是有结构的文件,这是指由一个以上的记录构成的文件,故又称为记录式文件b. 从文件的组织方式来分,可以分为顺序文件,索引文件,索引顺序文件c. UNIX 操作系统总是以流失作为文件的逻辑结构5) 文件的物理结构a. 文件按不同的组织方式在辅存上存放,就会得到不同的物理
45、结构,文件的物理结构有时也称为文件的“存储结构”b. 文件在辅存(外存)上可以有 3 种不同的存放方式:连续存放、链接块存放以及索引表存放c. 对应地文件就有 3 种物理结构,分别叫做顺序结构,链接结构和索引结构,也叫作连续文件,串联文件,索引文件6) 存放方式a. 连续存放连续文件不足之处: 必须预先知道文件的最大长度 会造成磁盘碎片b. 链接块存放串联文件不会因为磁盘碎片而浪费存储空间,但使用的指针要占去一些字节,每个磁盘块存储数据的字节数不再是 2 的幂,从而降低了系统的运行效率c. 索引表存放索引文件7) 文件的存取a. 顺序存取b. 随机存取8) 磁盘空间的管理a. 磁盘是以块为单位进行分配的b. 磁盘与内存之间是以磁盘块为信息传输的单位c. 选定了块的大小,还要对它们进行管理,即要记住哪些已经分配,哪些仍然空闲。d. 常采用的磁盘存储空间管理方案有:位示图,空闲块表,空闲块链