目录
1.操作系统的定义及特征
操作系统是计算机系统中的一个系统软件,它是这样一些程序模块的集合——它们有效地组织和管理计算机系统中的硬件及软件资源,合理地组织计算机工作流程,控制程序的执行,并向用户提供各种服务,使得用户能够灵活、方便、有效地使用计算机,并使整个计算机系统能高效地运行。
1)操作系统是大型软件程序,是具有功能的、大量程序模块的集合。
2)操作系统的任务之一是组织计算机系统中的硬件资源和软件资源。
●“有效”是指操作系统在管理计算机资源时要考虑系统运行的效率和资源的利用率。
●“合理”是指操作系统要”公平”对待不同的用户程序 ,保证系统不发生“死锁”和“饥饿”现象。
3)操作系统的任务另一项任务是向用户提供各种服务功能。
●方便:提供了用户使用界面和编程接口,易用、易学、易维护。
操作系统的特征
1)并发性:在计算机系统中同时存在着若干个运行着的程序。
●并行性:微观概念 两个或多个事件在同一时刻发生。
●并发性:宏观概念 两个或多个事件在同一时间间隔内发生。
●并行的若干事件一定是并发的,反之不真。
2)共享性操作系统程序与多个用户程序系统共用系统的各种资源。
主要共享的资源:
●中央处理器
●外存储器
●外部设备
资源共享的形式
●互斥共享:在一段特定的时间内只能由某一用户程序使用。
●同时共享:在同一段时间内可以被多个程序同时访问。
3)随机性:操作系统不能对所运行的程序的行为以及硬件设备的情况做出任何事先假定。
●强调在进行操作系统设计时要充分考虑各种各样的可能性。
2.操作系统的功能
1.进程管理:实质是处理器的管理
(1)提高处理器的利用率:引入多道程序技术→程序并发→引入进程
(2)操作系统对作业的处理方式:批处理、分时处理、实时处理….
(3)进程的管理:进程控制、进程同步、进程间通讯、调度
①进程控制
●进程是操作系统进行资源分配的单位
●主要任务:创建进程、撤销进程、进程状态的转换
②进程同步
●互斥 多个进程对临界资源访问时采用的形式
●同步 相互协作共同完成任务的进程之间协调进程的执行顺序
③进程间通信
●协作进程间的交换数据和信息
●线程:处理器时间分配的基本单位,代表一个指令流及执行的上下文环境
●实例 :在线流式媒体播放
▲流式媒体源获取线程
▲流媒体播放线程
▲渲染线程
④调度:线程调度、进程调度、作业调度
2.存储管理
(1)内存的分配与回收
(2)存储保护
(3)内存扩充
3.文件管理
(1)信息资源以文件形式存储在外存储器上
(2)文件管理的任务 :支持文件存储、检索和修改、文件共享、保密和保护
(3)文件管理的功能
①文件存储空间的管理
②目录管理
③文件系统的安全
4.设备管理
(1)指计算机系统中除了处理器和内存以外的所有输入、输出设备的管理。
(2)设备管理的功能
设备的分配 、启动和故障处理
(3)提高设备使用效率的方式 :中断技术、通道技术、虚拟设备技术和缓冲技术
5.用户接口:为用户提供使用系统的环境
3.Windows操作系统的体系结构
1.内核:执行Windows操作系统最基本的操作
提供的功能
●线程调度
●陷入处理和异常调度
●中断处理和调度
●多处理器同步
2.硬件抽象层 (HAL):HAL是一个可加载的核心态模块HAL.dll
●为硬件平台提供低级接口
●可隐藏各种与硬件有关的细节
3.执行体:是NTOSKRNL.EXE的上层;可以从用户态导出并且可以调用函数
4.系统进程和系统线程
(1)系统进程
●只运行在核心态的“系统线程”宿主
● 系统进程与用户进程的区别
①仅运行在核心态
② 必须从系统内存堆中分配动态存储区
③执行加载于系统空间中的代码
(2)系统线程
●只能从内核态调用
●可在系统初始化时创建
4.UNIX操作系统的系统结构
1.内核层
(1)资源管理的功能
●进程管理
●存储器管理
●设备管理
●文件管理。
(2)两个接口
●内核与硬件接口
●内核与Shell的接口
(3)系统模块
①进程控制系统
●管理处理器和存储器管理
●功能:进程控制、进程通信 、存储器管理和进程调度
②文件子系统
●管理系统中的设备和文件
●功能:文件管理、高速缓存机制和设备驱动
2.系统调用层
●位于内核层和应用层之间
3.应用层
(1)包括各种开发工具、高级语言编译器、网络通讯处理程序等
(2)在Shell(命令语言解释程序)的管理控制下为用户服务
5.Linux操作系统的系统结构
1. Linux内核
(1)是操作系统的核心
(2)功能
●负责管理系统的进程 、内存、设备驱动程序、文件和网络系统
(3)组成
●系统调用
●内存管理
●进程管理
●设备驱动程序
●文件系统和网络管理等
2. Linux Shell
(1)是系统的用户界面
(2)是一个命令解释器
(3)具有普通编程语言的特点
3. Linux 文件系统
(1)文件系统是文件存储在磁盘等存储设备的组织方法。
(2)支持的文件系统
●EXT2 、EXT3、FAT、FAT32、VFAT、ISO9660
4.Linux应用程序
●包括文本编辑器、编程语言、X Window、办公套件、Internet工具和数据库等
6.Android操作系统的体系结构
1.Android应用程序
●包括客户端 、SMS短消息程序 、日历、地图、浏览器、联系人管理程序等。
2. Android应用框架
●为应用程序开发者提供用以访问核心功能的API框架
●提供各种服务和管理工具
●实现界面管理、数据访问、应用层的消息传递、应用包的管理、电话管理、位置管理等功能
3.C、C++本地库和Android运行时环境
(1) C、C++本地库能被Android系统中不同组件使用
(2) Android运行时环境提供了核心链接库(Core Libraries)和Dalvik虚拟系统
4.Linux内核
●包括系统层安全机制、内存管理、进程管理、网络堆栈以及一些驱动模块
●位于硬件和其他软件层之间
7.操作系统分类
按用户的使用环境和功能特征不同,一般可以将操作系统分为:批处理系统、分时系统、实时系统。
一、批处理操作系统
1.基本工作方式
(1)用户将作业交给系统操作员。
(2)系统操作员收到一批作业后输入到计算机。
(3)计算机自动、依次执行作业。
(4)系统操作员将作业执行结果提交给用户。
2.特点与分类
(1)特点 成批处理
(2)目标 资源利用率高,作业吞吐率高。
(3)作业吞吐率是指单位时间内计算机系统处理作业的个数。
(4)分类:简单批处理系统、多道批处理系统
3.设计思想
(1)将若干作业合并安装在输入设备上。
(2)监控程序自动控制作业执行:选择作业→放入内存→执行
4.作业控制说明书:用作业控制语言编写的一段程序,通常被存储在被处理作业的前面。
二、分时系统
1.基本工作方式
(1)一台计算机连接了多个终端。
(2)每个终端交互式地向系统提出命令请求。
(3)系统采用时间片轮转法处理服务请求。
(4)终端显示处理结果。
2.设计思想
(1)时间片 分时操作系统将处理器的运行时间划分成若干个小片段。
(2)操作系统以时间片为单位,轮流为每个终端用户服务。
3.特点
(1)多路性 多个用同时使用一台计算机。
(2)交互性 用户根据系统响应的结果提出下一个请求。
(3)“独占”性 每个用户感觉不到计算机为其他人服务,就好象为他个人所独占。
(4)及时性 系统能根据用户的提出的请求及时给予响应。
4.分时操作系统追求的目标是及时响应用户输入的交互命令。
●衡量指标 响应时间
●响应时间的定义 系统对于一个输入的反应时间。
5.一般通用操作系统结合了分时系统与批处理系统两种系统的特点。
(1)对于分时与批处理的处理原则:分时优先,批处理在后
(2)一般把系统的分时处理和批处理运行状态称为前台和后台。
●分时作业称为前台作业
●批量处理的作业称为后台作业
(3)实例 UNIX操作系统
三、实时操作系统
1.定义
实时操作系统(Real Time Operating System,RTOS)是指使计算机能在规定的时间内,及时响应外部事件的请求,同时完成对该事件的处理,并能够控制所有实时设备和实时任务协调一致地工作的操作系统。
2.实时操作系统主要目标
在严格时间范围内,对外部请求做出反应,系统具有高度可靠性。(实时任务进行实时处理)
3.分类
(1)硬实时系统
●对关键外部事件的响应时间有着极严格的要求。
●不响应会有严重的后果。
(2)软件实时系统
●对事件的响应和处理有一定的时间范围要求。
●不能满足要求会影响系统的服务质量,但不会产生灾难性后果。
3.应具备的能力
(1)基本能力 多道程序系统
(2)实时时钟管理
(3)过载防护
(4)高可靠性
四、嵌入式操作系统
1.定义
嵌入式操作系统(Embeded Operating System)就是运行在嵌入式芯片环境中,对整个芯片以及它所操作、控制的各种部件装置等资源进行统一协调、调度、指挥和控制的系统软件。
2.特点
(1)具有高可靠性、实时性、占有资源少、智能化能源管理、易于连接、低成本等优点。
(2)嵌入式操作系统的功能可针对需求进行裁剪、调整和生成,以便满足最终产品的设计要求。
3.嵌入式操作系统通常配有对应的嵌入式操作系统开发环境。
4.嵌入式操作系统是嵌入式系统(Embeded System)的控制中心。
5.嵌入式操作系统在工业监控、智能化生活空间(信息家电、智能大厦等)、通信系统、导航系统等领域中的应用非常广泛。
五、个人计算机操作系统
1.个人计算机操作系统(Personal Computer Operating System)是一种单用户多任务的操作系统。
2.主要特点
(1)某一时间内为单个用户服务。
(2)采用图形界面人机交互的工作方式,界面友好。
(3)使用方便,无需具备专门知识。
六、网络操作系统
1.网络操作系统(Network Operating System)是基于计算机网络的、在各种计算机操作系统之上的网络体系结构协议标准设计开发的软件,它包括网络管理、通信、安全、资源共享的各种网络应用。
2.目标
连接计算机,实现资源共享和信息交换。
3.模式
集中式:运算处理在主机方式
分布式:每台计算机都具有处理能力
七、分布式操作系统
1.为分布式系统配置的操作系统称为分布式操作系统。(Distributed Operating System)。
2.特征
(1)保持网络操作系统的各种功能。
(2)是一个统一的操作系统。
(3)实现资源深度共享。
(4)透明性。
(5)自治性。
3.分布式操作系统可以使系统中计算机共同协作,共同完成一个大型任务。
(1)分布式系统把系统中所有计算机构成一个完整的、功能更强大的计算机系统。
(2)分布式系统的优点 分布式
(3)机群是分布式系统的一种。
4.分布式操作系统与网络操作系统概念的差别
(1)网络操作系统可以构架在不同的操作系统之上,通过网络协议实现网络资源配置,本地资源和异地资源区别对待。
(2)分布式操作系统强调单一操作系统对整个分布式系统的管理、调度,本地资源和异地资源用同一方式管理和访问。
8.操作系统的设计过程及设计目标
一、操作系统设计面临的主要困难:
1.设计复杂程度高
2.正确性难以保证
3.研制周期长
二、操作系统的设计过程
1.功能设计:确定操作系统应具备的功能以及操作系统的类型。
2.算法设计:根据性能和操作系统的功能,来选择和设计满足功能的算法和策略,并分析估算其效能。
3.结构设计:根据操作系统的功能和特性要求,选择合适的结构。
三、操作系统的设计目标
1.可靠性
包含正确性和健壮性两方面含义。
(1)正确性
影响正确性的因素:并发、共享以及随之带来的不确定性。
(2)健壮性
在发生故障或某些意外情况下,操作系统仍然做出适当的处理。
2.高效性
各种资源的利用率高。
3.易维护性
包括易读性、易扩充性、易剪裁性、易修改性等。
4.可移植性
(1)定义: 把一个程序系统从一个计算机系统环境移到另一个计算机系统环境中并能正常运行的特性。
(2)影响因素:系统和计算机硬件有关部分的处理。
5.安全性
(1)定义 为保护用户的程序 和数据提供的最基本的安全机制。
6.简明性
9.操作系统的结构
常见的操作系统结构有整体式结构、层次式结构、微内核结构:
1.整体式结构
(1)早期采用 亦称模块组合法
(2)思想:自顶向下,逐步求精,通过接口将所有模块连接起来形成一个整体
(3)模块组合法关键在于“接口”
(4)模块组合法缺点
●模块间转接随便,各模块互相牵连,独立性差,系统结构不清晰。
●数据基本上作为全程量处理,系统内所有模块的任一程序均可对其进行存取和修改,使各模块间有着更为隐蔽的关系。
●采用全局中断办法,限制了系统的并发性。
2.层次式结构
(1)定义:把操作系统的所有功能模块,按功能流图的调用次序,分别将这些模块排列成若干层,各层之间的模块只能是单向依赖或单向调用关系(只允许上层或是处层模块调用下层或内层模块)。
(2)层次结构法的优点
● 把整体问题局部化。
●各模块之间的组织结构和依赖关系清晰明了。
●很容易对操作系统增加或替换掉一层而不影响其他层次。
(3)层次式结构的分层原则
依据总体功能设计和结构设计的功能流图和数据流图进行分层。
①为了增加可适应性和可移植性,必须把与机器特点紧密相关的软件放在紧靠硬件的最低层。
②计算机系统具有多种操作方式,为了便于操作系统从一种操作方式转变到另一种操作方式 ,通常把操作方式共同要使用的基本部分放在内层,把随不同操作方式改变的部分放在外层。
③当前操作系统的设计都是基于进程的概念,必须要有一部分软件——系统调用的各种功能来为进程服务,构成内核。
(4)在操作系统的层次式结构研究和应用中,还演化出几种不同的层次式结构,如进程分层结构、层次管程结构、虚拟结构等等 。
3.微内核(客户/服务器)结构
(1)共同特点
① 运行在核心态的内核
②运行在用户态的并以客户/服务器方式运行的进程层。
(2)实现方式
将操作系统分成若干小的并且自包含的分支(服务进程),分支运行在独立的用户进程,通过规范一致的方式接收发送消息联系。
(3)模式的优点
①可靠
②灵活
③)适宜分布式处理的计算环境
(4)缺点 系统效率可能降低。
10.处理器构成与基本工作方式
处理器一般由运算器、一系列的寄存器和高速缓存构成。
●运算器实现指令中的算术运算和逻辑运算。
●控制器负责控制程序运行的流程。
●寄存器存储处理器执行指令过程中暂存数据。
1.处理器中的寄存器:用户可见寄存器、控制和状态寄存器两类
(1)用户可见寄存器
●所有程序都可用,由机器语言直接引用
●种类:数据寄存器(存储数据)、地址寄存器(存储地址)、条件码寄存器(处理器操作结果的各种标志位)
(2)控制和状态寄存器
●可以在某种特权状态下访问,由操作系统使用
●种类:程序计数器(PC:记录要取出的下一条指令地址)、指令寄存器(存放最近取出的指令)、程序状态字(存放处理器的运行模式信息)
2.指令执行的基本过程
(1)指令执行的步骤
●取指 存储器取指令,PC+1
●执行指令 存储器解释并执行指令
(2)指令的分类
●访问存储器指令 负责存储器和处理器之间指令传送。
● I/O指令 负责存储器和I/O之间的数据、命令传送。
●算术逻辑指令 执行算术运算和逻辑运算。
●控制转移指令 指定指令的执行起点。
●处理器控制指令 改变处理器的工作方式。
11.I/O 处理技术
1.I/O结构
(1)在每台外部设备中都配有各自的I/O设备控制器,由I/O设备控制器分别控制各台外部设备的运行。
(2)早期I/O设备控制器与处理器之间的I/O硬件结构的方案
外部设备的控制器通过I/O硬件结构与CPU连接,直接控制I/O设备,CPU 轮询I/O设备控制器状态,须理由CPU直接控制直至完成。
(3)特点:简单但效率低。
2.通道技术
(1)定义是独立于中央处理器的,专门负责数据1/0 传输工作的处理单元。
(2) 连接方式:外设连接设备控制器,控制器连接通道,通道连接总线。
(3)通道工作的原理
CPU执行指令,执行“启动外设”指令时,按指令中给定的参数启动指定的设备。
设备启动后,设备控制权交给通道 ,处理有关操作。
CPU处理后续指令。外部设备与内存储器之间信息传送由通道控制。
(4)优点:实现CPU与外设并行工作,提高系统效率。
(5)通道技术一般用于大型计算机系统和对I/O处理能力要求比较严格的系统。
3.DMA技术
(1)定义 直接存储器访问(Direct Memory Access,DMA)技术通过系统总线中的一个独立控制单元DMA控制器,自动地控制成块数据在内存和I/O单元传送。
(2)工作原理
当处理器需要读写一整块数据时,CPU发出控制指令,包含I/O设备的编址、读或写内存编址、传送数据的长度、是否一次读或写信息。处理器处理其他指令。DMA控制器自动管理数据块传送,结束后发给CPU处理完成 的中断。
(3)特点 提高传送数据的效率,但引起总线竞争。
4.缓冲技术
(1)缓冲技术是用在外部设备与其他硬件部件之间的数据暂存技术。
(2)实现方式 在外部设备设置数据的存储区域,即缓冲区。
(3)缓冲区的用途
● 外设之间的通信
●外设与处理器的通信
(4)采用缓冲技术的原因 处理处理器与外部设备速度不匹配的问题。
(5)实现方式:单缓冲区、双缓冲区、多缓冲区。
12.中断相关概念
一、中断的概念
中断是处理器对系统中或系统外发生的异步事件的响应。中断能充分发挥处理器的使用效率,提高系统的实时能力。中断与异常的差别:中断由外部事件引发,异常由正在执行的指令引发。
二、中断系统
■中断系统由硬件和软件相互配合、相互渗透使计算机系统得以充分发挥能力的计算模式。
■中断系统组成:硬件中断装置和软件处理程序。
1.中断请求的接收
中断逻辑线路用于接收中断信号,并存储在触发器(中断位)中,1表示收到中断信号 ,0表示无。触发器的全体称为中断寄存器。
2.中断响应
①处理器接收中断信号;
②保护现场,将中断断点的程序状态字PSW和程序计数器PC值存入系统堆栈;
③分析中断向量,取得中断程序程序的入口地址;
④将处理器的PC值 置为中断处理程序的入口地址;
⑤调用中断处理程序 。
3.中断处理
(1)接收和响应中断
(2)保护中断断点现场 ,包括程序状态字PSW 、指令计数器PC以及寄存器信息等。
(3)分析中断向量。
(4)调用中断处理程序。
(5)中断处理结束恢复现场,原有程序继续执行。
三、中断屏蔽
(1)含义:在整个中断系统中可以允许或禁止中断对某些类别中断的响应。
(2)实现:在程序状态字PSW设置中断屏蔽位。
(3)对于被屏蔽的中断信号,通常仍然保存在中断寄存器中,有些可以在以后继续响应,而有些将被简单地丢弃。
(4)中断屏蔽后中断优先级可能会改变。
(5)不可屏蔽中断 属于机器硬件故障,如内存奇偶校验 出错,计算机要立即响应。
13.系统调用
■所谓系统调用(System Call),就是用户在程序中调用操作系统所提供的一些子功能。
■系统调用通常是由特殊的机器指令实现,并将系统转入特权方式(管态)。
■系统调用程序是低级的过程,只能由汇编语言直接访问 。
■系统调用是操作系统提供给编程人员的唯一接口。
■用户必须使用系统调用从操作系统中获得服务,从目态切换到管态,处理完后从管态切换到目态。
1.系统调用与函数调用的区别
(1)运行在不同的系统状态。
函数调用:在同一系统状态中,管态或目态
系统调用:在不同系统状态转换,调用程序在管态,被调用程序在目态。
(2)状态转换
函数调用:不涉及状态转换。
系统调用:目态到管态,调用相应的处理子程序,结束后从管态转到目态。
(3)返回问题
一般的函数调用在被调用过程执行完后,将返回到调用过程继续执行。在抢占式调度方式下,设置不同进程级别,高的进程先执行,当前运行的进程级别最高继续执行,否则引起进程调度,当前进程进入就绪队列。
(4)嵌套调用
二者皆可。每个系统对嵌套的深度有限制。
2.系统调用与库函数、API、内核函数的关系
(1)库函数——C语言中所有匹配标准的头文件的集合,以及常用的函数库实现程序。
(2)应用程序接口(Application Programming Interface, API)——软件系统不同组成部分衔接的约定,是提供给应用程序调用使用的代码。
(3)库函数与API的主要目的是让应用程序开发人员得以调用一组例程功能 ,不需要考虑实现细节。
(4)应用程序使用API在用户空间实现,用户使用库函数和API来完成系统调用的执行,相当于是系统调用封装。系统调用 是操作系统提供给用户程序调用的一组特殊接口,用户程序可以通过它获得操作系统内核提供的服务。
14.程序的顺序执行与并发执行
一、程序的顺序执行
■程序是一个在时间上按严格次序前后执行相继的操作序列。
■程序顺序执行的特点
1.顺序性
2.封闭性
3.程序执行结果的确定性
4.程序执行结果的可再现性
二、程序的并发执行
■程序并发执行是指两个或两个以上程序在计算机系统中,同时处于已开始执行且尚未结束的状态。
■能够参与并发执行的程序称为并发程序。
■程序并发执行的特征
1.在执行期间并哪程序相互制约
(1)制约各道程序的执行速度。
(2)出现“执行——暂停——执行”的活动现象。
2.程序与计算不再一一对应
●多个用户调用一个共享程序段 ,形成多个计算。
3.并发程序执行结果不可再现
●执行结果不确定
4.程序的并行执行与程序的并发执行
(1)并发执行是指在宏观上,即在某一段时间内是同时进行的。
(2)在单处理器系统中,程序是顺序执行。
(3)程序并行执行与并发执行的区别
●并行是指不论从宏观的时间周期看,还是从微观看,若干程序在同时运行
●并发执行在单处理器的系统中宏观上是同时进行的,但微观上程序仍然顺序执行。
15.进程的定义
■进程是具有一定独立功能的程序在某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。
■从操作系统看,进程分为系统进程和用户进程。系统进程的优先级高于一般用户的优先级。
1.进程与程序的联系和区别
(1)进程与程序的联系
●程序是构成进程的组成部分之一。
●一个进程的运行目标是执行它所对应的程序。
●从静态的角度看,进程是由程序、数据和进程控制块(PCB)三部分组成。
(2)进程与程序的区别
●进程是动态的,程序是静态的。
●进程是程序的一个 执行过程,程序的存在是永久的。
●进程可以包括若干程序的执行,一个程序亦可产生多个进程。
●进程具有创建其他进程的功能。
2.可再入程序
(1)一个能够被多个用户同时调用的程序称作是“可再入”的程序。
(2)可再入程序必须是纯代码程序,即程序与数据分离。
3.进程的特征
(1)进程具有的基本属性
●进程是一个可拥有资源的独立单位。
●进程是一个可以独立运行的基本单位
(2)进程具有的特性
①并发性
②动态性
③独立性
④交往性
⑤异步性
⑥结构性
16.进程的状态与转换
1.三状态进程模型
(1)运行状态(Running)
指进程已获得处理器,并且在处理器上执行的状态。
(2)就绪状态(Ready)
一个进程已具备运行的条件,但没有获得处理器。
(3)等待状态(Waiting)
也称为阻塞或封锁状态,指进程等待某种事件发生而暂时不能运行的状态。
状态的转换
①就绪→运行
②运行→就绪
③运行→等待
④等待→就绪
2.五状态进程模型
(1)运行状态(Running)
(2)就绪状态(Ready)
(3)阻塞状态(Blocked)
由于进程等待I/O操作或进程同步等条件而暂停运行时处于阻塞状态。
(4)创建状态(New)
进程正在处于创建过程中
(5)结束状态(Exit)
进程已结束运行,回收除进程控制块之外的其他资源
状态的转换
①创建新进程
创建一个新进程,以运行一个 程序。
②提交(Admit)
完成一个新进程的创建过程,新进程进入就绪状态。
③调度运行(Dispatch)
从就绪进程表中选择一个进程,进入运行状态。
④释放(release)
进程完成或失败而终止进程运行。
⑤超时(Timeout)或抢占有、
时间片到或高级进程就绪被抢占等导致进程暂停运行。
⑥事件等待(Event Wait)
进程要求事件未出现进入阻塞。
3.七状态进程模型
■在操作系统引入虚拟存储管理技术后,需要区分进程地址空是位于内存还是外存。
■优先级别较低的进程移入外存的好处:
1)提高处理器的效率:就绪进程表为空时,有空闲内存空间用于提交新进程。
2)可为运行进程提供 足够的内存:资源紧张时,可把某些进程对换至外存。
3)有利于调试:在调试时,挂 起被调试进程,可方便对其地址空间进行读写。
(1)意义有变化的或新的状态
1)就绪状态(Ready):进程在内存且可立即进入运行状态。
2)阻塞状态(Blocked):进程在内存并等待某事件的出现。
3)阻塞挂起状态(Blocked,Suspend):进程在外存并等待某事件的出现。
4)就绪挂起状态(Ready,Suspend)进程在外存,但只要进入内存,即可运行。
(2)新引入的状态转换
1)挂起(Suspend)把一个进程从内存转到外存。
●阻塞到阻塞挂起 :没有进程就绪但要求更多内存资源
●就绪到就绪挂起:两个优先级不一样的就绪进程,挂起优先级低的进程。
●运行到就绪挂起:抢占式分时系统,出现优先级高进程时,挂起优先级低的进程。
2)激活(active):把一个进程从外存转到内存
●就绪挂起到就绪:就绪挂起进程优先级高于就绪或无就绪进程。
●阻塞挂起到阻塞:进程释放足够内存时,系统把高优先级阻塞挂起进程激活。
3)事件出现(Event Occurs):进程等待的事件出现
●阻塞到就绪:针对内存进程的事件出现。
●阻塞挂起到就绪挂起:针对外存进程的事件出现。
4)提交(Admit):完成一个新进程的创建过程,新进程进入就绪状态或就绪挂起状态。
17.进程控制块PCB
■进程控制块(Process Control Block)是操作系统定义的一种专门数据结构,用于控制和描述进程的活动过程。
■PCB是进程存在的唯一标志。
1.PCB的内容:可分为现场信息和调度信息。
(1)调度信息
供进程调用时使用,描述了进程当前所处理的状态,包括进程名、进程号、地址空间信息、优先级、当前状态、资源清单、“家族”关系、消息队列指针、进程队列指针和当前打开文件等。
(2)现场信息
刻画进程的运行情况。记录可能会被其他进程改变的寄存器,如程序状态字、时钟、界地址寄存器等。
2.进程的组成
进程由程序、数据和进程控制块三部分组成。
3.PCB组织
(1)线性方式
●将所有的PCB不分状态组织在一个连续表(称PCB表)中。
●优点:简单,不需要额外开销。
缺点:查找PCB时需要扫描整个表。
(2)索引方式
●为具有相同状态的进程设置各自的PCB索引,就绪索引表和等待索引表。
●在内存固定单元设置三个指针,指向就绪索引表和等待索引表的起始地址及执行态PCB在PCB表中的地址。
(3)链接方式
●对于具有相同状态进程的PCB,通过PCB中的链接字构成一个队列。
●链接字指出本队列下一PCB在PCB表中的编号,0是队尾。队道由内存固定单元中相应的队列指针指示。
●一般可以分为等待队列和就绪队列,等待队列可以根据等待的原因分成不同的队列。
18.线程的基本概念
1.什么是线程?
(1)线程是进程中的一个实体,是处理器调度和分派的基本单位。
(2)线程只拥有少量在运行中必不可少的资源 (如程序计数器、一组寄存器和栈等),可与同属一个进程的其他线程共享进程所拥有的全部资源。
(3)一个进程的多个线程可并发执行。
2.引入线程的好处
(1)创建一个新线程花费时间少。
(2)线程之间的切换花费时间少。
(3)线程之间相互通信无须调用内核,不需要额外的通讯机制,使通信更简便,信息传递的速度快。
(4)线程能独立执行,能充分利用和发挥处理器和外部设备并行工作能力。
3.进程和线程的关系
●线程具有许多传统进程所具有的特征,称为轻量级进程(Light-Weight Process),相当于只有一个线程的任务。
●传统的进程称为重量级进程(Heavy-Weight Process),至少一个线程。
1)调度
(1)线程作为调度和分派的基本单位,进程作为资源拥有的基本单位。
(2)同一个进程中,线程的切换不会引起进程切换。由一个进程中的线程切换到另一个进程中的线程时,会引起进程切换。
2)并发性
●引入线程的操作系统,进程之间可以并发,一个进程中的多个线程也可以并发执行,资源利用率和系统吞吐量更高。
3)拥有资源
进程是拥有资源的独立单位,一个进程的资源可供它属下的所有线程共享。线程不拥有自己的系统资源,但可以访问其隶属进程的资源。
4)系统开销
(1)从整体上看,操作系统所付出的开销将显著地大于在创建或撤销线程时的开销。
(2)线程的切换、同步和通信的实现比进程简单。
19.进程调度
1.进程调度的主要功能
(1)记录系统中所有进程的执行情况 ;
(2)根据一定调度算法,从就绪队列中选出一个进程,准备把处理器分配给它;
(3)把处理器分配给进程。
2.进程调度的时机
(1)处理器的调度时机
①正在执行的进程运行完毕。
②正在执行的进程由于某种错误而终止。
③时间片用完,即有一个进程从运行状态变为就绪状态。
④正在执行的进程调用阻塞原语将自己阻塞起来,即一个进程从运行状态进入 阻塞状态。
⑤创建了新的进程,即有一个新的进程进入就绪队列。
⑥正在执行的进程调用了唤醒原语操作激活了等待资源的进程,即一个等待状态的进程变为就绪状态。
(2)处理器的调度方式
①抢占式
即就绪队列中一旦有优先级高于当前运行进程优先级的进程存在时,便立即进行调度,转让处理器。
②非抢占式
一旦把一个处理器分配给一个进程,它就一直占用处理器,直到该进程自己因调用原语操作或等待I/O而进入阻塞状态,或时间片用完时才让出处理器,重新执行进程调度。
3.进程调度算法
1)先来先服务算法(First Come First-Served)
(1)算法思想 进程按照请求处理器的顺序使用处理器。适用于非抢占式调度。
(2)算法优点:易于理解并且便于在程序中运行。
(3)算法缺点:在处理长进程之后的短进程需要等待很长时间,不利于用户的交互体验。
2)最短进程优先算法Shortest Job ,SJF)
(1)适用于运行时可以预知的非抢占式批处理调度算法。
(2)算法思想 选择运行时间最短的进程先运行。
3)最短剩余时间优先算法(Shortest Remaining Time Next, SRTN)
(1)适用于抢占式调度。
(2)设计思想:总是选择其剩余运行时间最短的那个进程运行。
4)最高响应比优先算法(Highest Response Rate First)
(1)在批处理系统中,最高响应比优先算法的性能是介于先来先服务和最短进程优先算法之间的折中的算法。
(2)用于解决先来先服务算法中的“饥饿”现象,即等待的时间长但得不到CPU服务的现象。
(3)响应比的计算式
响应比Rp=(等待时间+预计运行时间)/预计运行时间 = 周转时间/预计运行时间
(4)最高响应比优先算法在一定程度上改善了调度的公平性和调度的效率,但存在一定的系统开销。
5)轮转算法(Round-Robin,RR)
(1)轮转算法最早来自分时系统。
(2)算法的基本思想:将处理器的处理时间划分成一个个时间片,就绪队列中的诸进程轮流运行一个时间片,当时间片结束时,就强迫运行进程终止处理器,该进程进入就绪队列。
(3)时间片Q长度的选取非常重要,将直接影响系统开销和响应时间。短了调度程序剥夺处理器的次数频繁,加重系统开销,长了退化为先来先服务算法。
(4)影响时间片值设置的主要因素
①系统响应时间,当进程数目一定时,时间片Q的大小正比于系统对响应时间的要求。Q=T/N
②就绪进程的数目:当系统响应时间一定时,时间片Q值的大小反比于就绪进程的数目。
③计算机的处理能力。处理速度越高,时间片值就可以越小。
④系统切换时速度。Q要长于切换所需要的时间。
⑤平均的处理器突发时间。
(5)结论 时间片设得太短会导致过多的进程切换,降低了处理器的效率;而设得太大又引起对短的交互请求时间变长,时间片设为20~50ms通常是一个比较合理的折衷。
6)最高优先级算法(Highest Priorty First,HPF)
(1)算法思想 每次将处理器分配给具有最高优先级的就绪进程。
(2)进程的优先级由进程优先数决定。
(3)进程优先级的设定
●静态优先数 在进程创建时根据进程的初始特性或用户要求而设定,进程运行期间不能改变。
●动态优先数 进程创建时先确定一个初始优先数,在进程运行中随着进程特性的改变而不断修改优先数。
(4)最高优先级算法还可以和不同的处理器高度方式结合起来,形成可抢占式最高优先级算法和不可抢占式最高优先级算法。
7)多级反馈队列算法
(1)在实际计算机系统中,进程的调度模式往往是几种调度算法相结合。
(2)基本思想
①被调度队列的设置。系统按优先级别设置若干个就绪队列:不同优先级别的队列有不同的时间片,对级别较高的队列分配较小的时间片Si(i=1,2,3,…,n),有S1<S2<….<Sn
②在同一个队列之内的调度原则:除了第n级队列是按轮转算法调度之外,其他各级队列均按先进先出调度算法调度。
③在不同队列之间的调度原则。系统总是先调度级别较高的队列,仅当级别较高的队列为空时才去调度次一级的进程。
④进程优先级的调整原则:当正在执行的进程用完其时间片之后,便被换出并进入次一级的就绪队列,当等待进程被唤醒时,它进入与其优先级同的就绪队列;若该进程优先级高于正在执行的进程,便抢占处理器。
20.管程
一、管程的提出
采用信号量及P、V同步机制编写并发程序,共享变量和信号量变量的操作将被分散于各个进程中,其缺点如下:
(1)程序易读性差。
(2)程序不利于修改和维护。
(3)正确性难以保证。
为了更易于编写正确的程序,Brinch Hansen和Hoare提出一种高级同步机制管理(Monitor):管程。
二、管程的概念及组成
1.一个管程是一个由过程、变量及数据结构等组成的一个集合,它们组成一个特殊的模块或软件包。进程可以在需要调用管程的过程,但不能在管程之外声明中直接访问管程内的数据结构。
2.一个管程由四个部分组成,它们是管理名称、共享数据的说明、对数据进行操作的一组过程和对共享数据赋初值的语句。管程能保障共享资源的互斥执行。由管程本身实现。
3.管程的主要特性
(1)模块化,一个管程是一个基本程序单位,可以单独编译。
(2)抽象数据类型,有数据,也有对数据进行操作的代码。
(3)信息隐蔽。管程是半透明的,管程中的外部过程(函数)实现了某些功能,但实现的方法外部不可见。
管程中的共享变量在管程外部是不可见的,只能通过调用管程中的外部过程(函数)来间接访问管程中的共享变量;规定管程互斥进入。管理用来管理资源,在管程中设有进程等待队列以及相应的等待唤醒操作。
(4)任一时刻管程中只能有一个活跃进程,管程能有效地完成互斥。
管程是编译语言的组成部分,典型的做法是:当一个进程调用管程时,该过程中的前几条指令将检查在管程中是否有其他的活跃进程。有,进程将被挂起,直到另一个进程离开管程将其唤醒。
21.进程通信
进程间信息交换
■少量 用信号量及P、V操作, 低级通信
■大量 用通信原语,高级通信,进程间大量信息通信问题的解决方案(共享内存、消息机制、共享文件)
一、共享内存
1.在相互通信的进程之间设有一个公共内存区,一组进程向公共内存中写,另一组进程从公共内存中读,通过这种方式实现两组进程间的信息交换。
2.需要解决的问题
(1)怎样提供共享内存。——操作系统解决
(2)共享内存中的读写互斥问题。——程序开发人员解决。
二、消息机制
进程在运行过程中,进程通过某种手段发出自己的消息或接收其他进程发来的消息,类似于邮箱的方式。
1.消息缓冲通信
(1)由Hansen提出,其基本思想是:根据“生产者——消费者”原理,利用内在中公用消息缓冲区实现进程之间的信息交换。
开辟消息缓冲区,存储消息。
发送进程申请缓冲区并将消息插入接收进程的消息队列。
接收进程到消息队列取消息并释放消息所占用的缓冲区。
2.消息缓冲区通信机制包含的内容:
1)消息缓冲区:由以下几项数据结构组成
①消息长度
②消息正文
③发送者
④消息队列指针
2)消息队列首指针m_q,一般保存在PCB中。
3)互斥信号m_mutex,初值为1,用于互斥访问消息队列,在PCB中设置。
4)同步信号量m_syn,初值为0,用于消息计数,在PCB中设置。
5)发送消息原语send(receiver,a)
参数说明:receiver为接收进程名,a为发送进程存储消息的内存区的首地址。
6)接收消息原语receive(a)
接收进程调用receive原语接收一条消息,调用参数a为接收进程的内存消息区,receive原语从消息队列中摘下第一个消息缓冲区,并复制到参数a所指定的消息区,然后释放该消息缓冲区,若消息队列为空,则阻塞调用进程。
2.信箱通信
(1)设立一个通信机构——信箱,以发送信件及接收回答信件为进程间通信的基本方式。
(2)当一个进程希望与另一个进程通信时,就创建一个链接两个进程的信箱,发送进程把信件投入信箱,而接收进程可以在任何时刻取走信件。
(3)信箱的结构 包括信箱说明和信箱体。
①信箱说明
●”可存信件数”设立信箱时预先确定,表明信箱的容量大小。
●“已有信件数”指出信箱中已有信件的数量。
●“可存信件的指针”指示当前可存入一封信的位置,初始时指向可存第一封信件的位置。
(4)采用信箱通信的好处:发送方和接收方不必直接建立联系,没有处理时间上的限制,发送方可以在任何时间发信,接收方也可在任何时间收信。
(5)信息通信规则
1)若发送信件时信箱已满,则发送进程被置“等信箱”状态,直到信箱有空时才被释放。
2)若取信件时信箱中无信,则接收进程应被置成“等信件”状态,直到有信件时才被释放。
(6)“send”原语和“receive”原语。
send(Box,L):把信件L送到指定的信箱Box中。
功能:查信息Box,若信箱未满则把信件L送入信箱,且释放“等信件”者;若信箱已满,置发送信件进程为“等信箱”状态。
receive(Box,Address):从指定信箱Box中取出一封信,存储到指定的地址Address中。
功能:查指定信箱Box,若信箱中有信,则取出一封信存于Address中,且释放“等信箱”者;若信箱中无信件,则置接收信件进程“等信箱”状态。
三、管道通信(文件共享)
(1)管道(Pipe)通信首先出现在UNIX操作系统中。
(2)管道就是连接两个进程之间的一个打开的共享文件,专用于进程之间进行数据通信,发送进程可以源源不断地从管道一端写入数据流,每次写入的信息长度是可变的;接收进程在需要时可以从管道的另一端读出数据,读出单位的长度也是可变的。
(3)在对管道文件进行读写操作过程中,发送进程和接收进程要实施正确的同步和互斥,以确保通信的正确性。
(4)管道通信具有传送数据量大的优点,但通信速度较慢。
22.死锁相关概念
死锁是指在多道程序系统中的一种现象,一组进程中的每一个进程均无限期地等待被该组进程中的另一个进程所占用且永远不会释放的资源。系统发生这种现象称为系统处于死锁状态,简称死锁。
一、死锁产生的原因
产生死锁的原因主要有两个
●竞争资源,系统资源在分配时出现失误,进程间对资源的相互争夺而造成僵局。
●多道程序运行时,进程顺序不合理。
二、死锁产生的必要条件
死锁的产生与各并发进程的相对速度有关,一般不可重现,它涉及进程的并发执行、资源共享和资源分配等因素。对于永久性资源,产生死锁有四个必要条件。
1.互斥条件
资源是独占且排他使用。
2.不可剥夺条件
又称不可抢占或不可强占。进程所获得的资源在未使用完毕之前,不能被 其他进程强行剥夺。
3.请求和保持条件
又称部分分配或占有申请。进程先申请它所需要的一部分资源,得到后再申请新的资源,在申请新的资源的同时,继续占用已分配 到的资源。
4.循环等待条件
又称环路条件。在发生死锁时,必然存在一个等待队列{P1,P2,…. ,Pn},其中P1等待P2占有的资源,其中P2等待P3占有的资源,Pn等待P1占有的资源,形成一个进程等待环路。
说明:只要系统发生死锁,以上四个条件一定成立 。第四个条件(循环等待)的成立蕴含了前三个条件的成立。
三、解决死锁的方法
解决死锁的方法有很多,一类是不让死锁发生;另一类是检测死锁是否发生,再加以解决。
1.预防死锁
通过设置某些严格限制,破坏产生死锁的必要条件以防止死锁发生。可能会导致系统资源利用率过低。
2.避免死锁
在资源的动态分配过程中,采取某种方法防止系统进入不安全状态,从而避免死锁的发生。只需以较弱的限制条件为代价,获得较高的资源利用。
3.检测与解除死锁
在系统运行过程中,通过在系统中设置检测机构,定时检测死锁是否真的发生,并能精确地确定与死锁有关的进程与资源,然后采取措施(剥夺资源、撤销进程)来解除死锁,将进程从死锁状态下解脱出来。
4.忽略死锁
对于死锁发生的几率极低,解决死锁的方法代价极大或暂时没有办法解决的死锁问题暂时不予理睬。
23.银行家算法
为保证资金的安全,银行家的规定如下:
(1)当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客。
(2)顾客可以分期贷款,但贷款的总数不能超过最大需求量。
(3)当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款。
(4)当顾客得到需的的全部资金后,一定能在有限的时间里归还所有的资金。
银行家算法通过动态地检测系统中资源分配情况和进程对资源的需求情况,来决定如何分配资源,在能确保系统处于安全状态时才把资源分配给申请,从而避免系统发生死锁。
24.存储管理的主要任务
1.内存的分配与回收
(1)功能
1)记住每个存储区域的状态。
2)实施分配。
3)回收。
(2)需要的内存分配表
①位示图表示法
②空闲页面表
③空闲块表
(3)内存的分配方式
①静态分配 内存分配在程序运行前完成
②动态分配 内存分配可在在程序运行前和运行过程中逐步完成。
2.存储共享
(1)定义 指两个或多个进程共用内存中相同区域
(2)共享内容 代码和数据
(3)共享目的
①提高内存利用率
②实现进程通信
3.存储保护
●目的 为多个程序共享内存提供保障,避免各道程序间相互干扰。
●存储保护通常需要硬件支持,并由软件配合实现。
●存储保护的内容
①保护系统程序不被用户有意或无意的侵犯。
②不允许用户读写不属于自己地址空间的数据。
(1)地址越界保护
(2)权限保护
①对属于自己区域的信息,可读可写。
②对公共区域中允许共享的信息或获得可使用的信息,可读而不可修改。
③对未获授权使用的信息,不可读、不可写。
4.“扩充”内存容量
(1)目的 使用户得到比实际内存容量大得多的内存空间。
(2)实现方法 软件、硬件相互协作,将内外存统一使用。
(3)常用技术 虚拟内存、覆盖和交换。
25.紧缩技术
(1)用于解决内存碎片问题。
(2)做法:通过移动内存中的程序,把所有空闲碎片合并成一个连续的大空闲区放在内存的一端,而把所有程序占用区放在内存的另一端 。称为“紧缩技术”或“压缩技术”。
(3)紧缩技术的好处:可以集中分散的空闲区,提高内存的利用率,便于进程动态扩充内存。
(4)采用紧缩技术要注意的问题
①紧缩技术会增加系统开销。
②移动是有条件的。
(5)在采用紧缩技术时,应该尽可能减少需要移动的进程数和信息量。
26.空闲分区的分配策略
(1)最先适应算法
又称顺序分配算法,当接到内存申请时,顺序查找分区说明表,找到第一个满足申请长度的空闲区,将其分割并分配。
(2)最优适应算法
当接到内存申请时,查找分区说明表,找到第一个能满足申请长度的最小空闲区,将其分割并分配。
算法优点:节约空间
缺点:可能形成很多很小的空闲区域——碎片。
(3)最坏适应算法
当接到内存申请时,查找分区说明表,找到能满足申请要求的最大空闲区。
算法基本思想 :在大空闲区中装入信息后,分割剩下的空闲区相对也大,还能装入其他程序。
算法优点:避免形成碎片。
缺点:遇到大程序无法满足要求。
27.覆盖技术
1.覆盖技术是指一个程序的若干程序段,或几个程序的某些部分共享某一个存储空间。
2.覆盖技术可以由编译程序提供支持。
3.要求:程序提供一个清楚的覆盖结构,即程序员必须完成一个程序划分成不同的程序段,并规定好它们的执行和覆盖顺序工作。
4.覆盖技术在逻辑上扩充了内存空间,实现了在小容量内存上运行较大程序的功能。但增加了用户的负担。
28.交换技术
1.进程从内存移到磁盘,并再移回内存称为交换。
2.交换技术的目的是尽可能达到“足够快地交换进程 ,以使当处理器调度程序想重新调度处理器时,总有进程在内存中处于就绪(准备执行)状态”的理想状态,从而提高内存利用率。
3.交换技术多用于分时系统。
4.交换技术的原理
(1)换出进程的选择。
(2)交换时机的确定。
(3)交换空间的分配。
(4)换入进程换回内存时位置的确定。
5.交换技术的优点与缺点
(1)优点 利用外存来逻辑地扩充内存,打破了一个程序一旦进入内存便一直运行到结束的限制。
(2)缺点 需要花费大量的时间进行内外存信息交换,响应时间变长。
6.交换技术与覆盖技术的比较
(1)交换技术不要求用户给出程序段之间的逻辑覆盖结构,对用户而言是透明的。
(2)交换技术可以发生在不同的进程或程序之间,而覆盖发生在同一进程 或程序内部 ,只能覆盖那些与覆盖段无关的程序段。
说明:交换技术比覆盖技术更加广泛地用于现代操作系统。
29.I/O软件组成
一般的I/O软件结构分为四层:中断处理程序、设备驱动程序、设备独立的操作系统软件、用户软件:
(1)从功能看,设备独立层是I/O软件的主要部分;从代码量看,设备驱动层是I/O软件的主要部分。
(2)中断处理程序负责控制I/O设备和内存与处理器之间的数据传送。
(3)设备驱动程序
●最突出的特点是与I/O设备的硬件结构密切联系。
●是操作系统底层中唯一知道各种输入输出设备控制细节以及用途的部分。
(4)设备独立层起到承上启下的作用
●将种类繁多的I/O设备屏蔽,对用户呈现标准的调用接口。
●将用户使用的I/O设备的需求按照设备驱动的要求形成配置参数并传递数据。
30.I/O设备控制方式
I/O设备的控制方式取决于I/O设备硬件与处理器和内存的联结方式以及其相应的设备驱动程序,主要有以下四种方式:程序控制方式、中断控制方式、DMA控制方式和通道控制方式。
一、程序直接控制方式
程序控制方式称为PIO(Programmed I/O,程控I/O)方式,是指由用户进程直接控制处理器或内存和外围设备之间进行信息传送的方式,也称为“忙-等”方式、轮询方式或循环测试方式,这种方式的控制者是用户进程 。
1.中断是一种发生了一个异常事件时,调用相应处理程序(通常称为中断服务程序)进行服务的过程。
2.中断程序执行过程
中断源发现请求,由硬件自动关中断、保留断点、转到相应的服务程序入口。执行中断服务程序。中断服务程序结束后,执行中断返回指令返回断点处,继续执行原程序。
二、中断控制方式
1.采用中断控制方式,可以实现
(1)处理器与外设在大部分时间内并行工作,有效地提高计算机的效率。
(2)具有实时响应能力,可适用于实时控制场合。
(3)及时处理异常情况 ,提高计算机的可靠性。
2.采用中断方式进行数据传送,处理器和设备控制器都应具备中断机构。
(1)处理器
●应具备的功能
(1)识别中断请求的能力。
(2)具备响应中断的能力。
(3)需要时能拒绝响应外部中断请求。
(4)具备按优先级响应中断请求的能力。
●需要的硬件
中断允许触发器、堆栈、中断判优电路及其他相关电路。
(2)设备控制器
●应具备的功能
①具备寄存外设中断请求的能力——中断源设置中断请求触发器。
②具备可屏蔽本级中断请求的能力——在每个中断源设备一个中断屏蔽触发器。
3.中断控制方式的处理过程:
1)处理器通过数据总线发出命令,启动外设工作,当前进程 阻塞,调度程序调度其他进程。
2)外设数据准备好,置位中断请求触发器。
3)若此时接口中断屏蔽触发器状态为非屏蔽状态,则接口向处理器发中断请求(IR)。
4)处理器接受请求中断,请中断为允许中断状态,则中断判优电路工作。
5)中断判优电路对优先级最高的中断请求给予响应(INTA),处理器中断正在执行其他进程,转而执行中断服务程序。
4.中断方式的优缺点
(1)优点 处理器的利用大大提高。
(2)缺点 用中断方式交换数据时,每处理一次I/O数据交换,都会耗去一定的处理器处理时间,对于高速的外围设备,以及成组大量交换数据的情况,速度太慢。
三、DMA控制方式
1.DMA是直接内存访问(Direct Memory Access)的缩写,是一种完全由硬件执行I/O的数据交换的工作方式。
2.DMA控制器(DMA Controller, DMAC)从处理器完全控管对总线的控制,数据交换不经过处理器,直接在内存和I/O设备直接进行。
3.采用DMA方式工作时,由DMA控制器向内存发出地址和控制信号,进行地址修改,对传送字的个数计数,并且以中断方式向处理器报告传送操作的结束 。
4.DMA数据传送过程
DMA方式的数据块传送过程可分为三个阶段:传送预处理、数据传送、传送后处理。
(1)预处理阶段 ——由处理器执行I/O指令对DMAC进行初始化与启动。
(2)数据传送阶段——由DMAC控制总线进行数据传送。
(3)后处理阶段——传送结构,DMAC向处理器发中断请求,报告DMA操作的结束 。
5.DMA方式优点与缺点
(1)优点
一般用于高速传送的成组的数据,操作均由硬件电路实现,传输速度快;除开头与结束外,处理器对数据传送基本不参与,处理器与外设并行工作,效率高。
(2)缺点
初始化与结束时仍由处理器控制。
四、通道控制方式
1.通道(Channel)是一个特殊功能的处理器,有自己的指令和程序,可实现对外围设备的统一管理和外围设备与内存之间的数据传送 。
2.引入通道的目的 减少输入输出对整个系统运行效率的影响。
3.通道与DMA方式的比较
通道方式增加了处理器与通道操作的并行能力;增加了通道之间以及同一通道内各设备之间的并行操作能力;为用户提供了灵活增加外设的可能性。
4.通道具有如下功能:
(1)接受处理器的指令,按指令要求与指定的外围设备进行通信。
(2)从内存读取属于该通道的指令,并执行通道程序,向设备控制器和设备发送各种命令。
(3)组织外围设备和内存之间进行数据传送,并根据需要提供数据缓存的空间,以及提供数据存取入内存的地址和传送的数据量。
(4)从外围设备得到设备的状态信息,形成并保存通道本身的状态信息,根据要求将状态信息送到内存指定的单元,供处理器使用。
(5)将外围设备的中断请求和通道本身的中断请求,按序及时报告 处理器。
31.缓冲技术
1.缓冲的引入
(1)引入缓冲技术的原因
①解决I/O设备和处理器的处理速度不匹配的问题。
②可以减少中断的次数。
③解决DMA或通道方式中可能出现的瓶颈问题。
(2)根据I/O控制方式的不同,实现缓冲区的方法有:
●采用专用的硬件设置数据缓冲区。
●在内存划出一定容量的专用数据缓冲区,又称“软件缓冲 ”
2.缓冲区种类
按照系统设置的缓冲器的个数分类:
(1)单缓冲 让输入和输出设备共用一个缓冲区。输入输出设备只能串行工作。
(2)双缓冲 为输入和输出设备分配两个缓冲区的缓冲技术。可使I/O设备并行工作。
(3)多缓冲 操作系统从自由主存区域中分配一组缓冲区。一部分专门用于输入,一部分专门用于输出。 亦可形成缓冲池。
32.虚拟设备技术SPOOLing
1.SPOOLing 系统,全称为Simultaneous Peripheral On-Line,其含义是同时的外部设备联机操作,也称假脱机技术。
2.SPOOLing 系统主要包括输入程序模块、输出程序模块、作业调度程序三部分。
3.SPOOLing 工作原理
●在作业执行前利用慢速设备将作业预先输入到后缓存储器(输入井)中去,称为预输入。
●作业进入内存后,使用数据时,直接从输入井取出。
●作业执行时将数据写入输出井中去,称为缓输出。
●待作业全部运行完毕,由外部设备输出全部数据和信息