导图社区 操作系统原理知识导图
这是一篇关于操作呢系统原理知识的思维导图。一图掌握操作系统知识框架,了解操作系统基础知识,零基础入行。
编辑于2021-07-07 20:05:15操作系统原理
绪论
计算机系统的组成
硬件系统
运算系统
含中央处理器等
存储系统
含硬盘、内存等
输入输出设备
含键盘、鼠标、显示器等
外围设备
含所有连接到主机的外设
软件系统
系统软件
操作系统
编译系统
数据库系统
应用软件
计算机系统的四个层次
图示
操作系统的定义
操作系统是现代计算机系统中不可缺少的系统软件,是其他所有系统软件和应用软件的运行基础
操作系统控制和管理整个计算机系统中的软硬件资源,并为用户使用计算机提供一个方便灵活、安全可靠的工作环境
操作系统的作用
管理计算机系统的硬件以及软件
控制计算机系统的工作流程
提供方便的操作环境
提高计算机系统的效率
操作系统的基本类型
批处理操作系统
定义
操作系统控制和管理整个计算机系统中的软硬件资源, 并为用户使用计算机提供一个方便灵活、安全可靠的工作环境
分类
脱机批操作系统
是指用户程序和数据在外围机的控制下,预先从低速输入设备输入到磁带上, 当CPU需要这些程序和数据时,再直接从磁带机高速输入到主机内存上
联机操作系统
是指输入/输出操作在主机控制下进行,将作业信息先传送到磁带上,再从磁带上调入主机内存
特征
批量操作,处理方便
自动执行,效率高
缺少人机互动,不便调试程序
分时操作系统
定义
在操作系统中采用分时技术就形成了分时操作系统
分时技术
就是把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用
特征
同时性
是指允许多个终端用户同时使用一台计算机
独立性
系统中各用户可以彼此独立地操作,互不干扰
及时性
用户请求能在很短时间内获得响应
交互性
用户能够方便地与系统进行人-机对话
实时操作系统
定义
为了满足计算机的某些应用领域的实时性要求,开发了实时操作系统。实时系统能及时响应外部事件的要求, 在规定的时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地工作
分类
实时过程控制系统
实时信息处理系统
特征
高及时性
高可靠性
通用操作系统
定义
如果一个操作系统兼有批处理系统、分时系统和实时系统三者或其中两者的功能,则该操作系统是通用操作系统
嵌入式操作系统
定义
对整个智能芯片(移动设备、信息家电、智能机械中嵌入的各种微处理器或控制芯片)以及它 所控制的各种部件模块等资源进行统一调度、只会和控制的系统软件称为嵌入式操作系统
特征
高可靠性
实时性
占有资源少
成本低
网络操作系统
定义
是基于计算机网络的操作系统,是在各种计算机操作系统上按网络拓扑系统结构协议开发的软件, 包括网络管理、通信、资源共享、系统安全和各种网络应用服务,其目的是互相通信和资源共享
特征
分布性
计算机网络是一个互连的群体,计算机是分散在各个地方的
自治性
网络上的每个计算机能独自完成自己承担的工作
互连性
将不同地点的计算机互连,以达到资源共享和网络通信的目的
可见性
计算机网络中的资源对其他用户是可见的
分布式操作系统
定义
分布式操作系统是指多个分散的处理单元经互联网络连接而形成的系统、其中每个处理单元既具有 高度直至性又相互协同,能在系统范围内实现资源管理、任务动态分配,并能并行地运行分布式程序
特征
统一性
要求所有的主机使用的是同一个操作系统
共享性
分布式系统中的所有资源可供系统中的所有用户共享
透明性
用户并不知道分布式系统是运行在多台计算机上,在用户眼里整个分布式系统 像是一台计算机,也就是说系统对于用户是透明的
自治性
分布式系统中的多个主机都处于平等地位
操作系统的主要功能
用户接口以及作业管理
处理器管理
存储器管理
文件系统
设备管理
操作系统的接口
处理器
指令划分
特权指令
指具有特殊权限的指令,这类指令只用于操作系统或其他系统软件,一般不直接提供给用户使用
非特权指令
其他指令
工作模式划分
核心态
可以运行包括特权指令在内的全部指令
用户态
只能运行非特权指令
用户态切换到内核态的3种方式
系统调用
用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作
异常
当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常, 这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态
外围设备的中断
当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停 执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行 的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换
操作系统的内核
主要组成
硬件操作
关键数据结构
基本中断程序
常用功能模块
基本特点
常驻内存
运行在核心态
用户不能直接访问内核
操作系统的启动
启动流程
系统配置
内核的装入以及初始化
用户登陆
固件
基本功能
在计算机开机启动时的基本硬件资源的检查、诊断,装入操作系统的引导程序, 为计算机操作系统提供基本的硬件资源的驱动程序及其中断处理程序
基本输入/输出系统BIOS
概念
BIOS程序是计算机开机加电后第一个开始执行的程序,完成硬件检测及基本的设置功能
BIOS也为操作系统及其他自启动程序的开发、加载提供接口,是计算机系统中最基础的系统软件
基本组成程序
POST(Power On Self Test)自检程序
基本启动程序
基本硬件启动程序
中断处理程序
BIOS的基本功能
自检及初始化
提供程序服务处理
提供硬件中断处理
可扩展固件接口
固件接口规范(EFI)
概念
由英特尔开发的一种在个人电脑系统中,替代BIOS的升级方案
基本组成部分
Pre-EFI初始化模块
EFI驱动执行环境
EFI驱动程序
兼容性支持模块(CSM)
EFI高层应用
GUID磁盘分区
基本功能
负责上电自检(POST)
连系操作系统
提供连接操作系统与硬件的接口
注意
EFI不是程序代码,而是一个规范
统一可扩展固件接口(UEFI)
Intel已于2005年此规范交由UEFI论坛来推广与发展,之后并更名为UnifiedEFI(UEFI)
操作系统的用户接口
命令接口
外部命令
对应一个独立应用程序的命令
内部命令
由内核程序模块实现的命令
程序接口
通过系统调用来实现
系统调用的含义
将事先编写好的子程序作为内核一部分
程序员使用这组子程序的方法
系统调用的过程
处理器切换为核心态,保护用户程序现场
分析功能号并在地址入口表中查找对应的子程序,有时需要进行安全控制检查
执行系统调用的子程序并得到结果
现场恢复,切换为用户态,并返回结果,必要时进行安全检测
系统调用与一般子程序的区别
对比项目
系统调用
用户子程序
运行环境
核心态
用户态
中断
访管中断
无
与主程序关系
与主程序分开、独立
同一进程地址空间
共享
不同用户可以共享
同一进程内部调用
处理器管理
系统的工作流程
程序
含义
完成特定功能的一组指令或者(语句)的有序集合
特点
顺序性
可再现性
顺序执行
含义
只有在当前程序执行完成后,才能执行下一道程序
特点
封闭性
可再现性
并发执行
含义
多任务程序运行
特点
随机性
不可再现性
相互制约
进程
定义
指的是一道程序在一个数据集上的一次执行过程
特征
动态性
并发性
独立性
结构性
异步性
与程序的关系
进程是程序的运行过程,进程包含程序
进程的运行就是对应的程序的运行
程序规定了进程所要完成的功能
进程的动态性
进程的基本状态
运行状态
就绪状态
阻塞状态
基本状态的转换关系
注意
对每个进程而言,不一定要经历所有的三个状态
进程管理
进程块
含义
操作系统把为描述、管理和控制进程所设计的数据结构称为进程控制块,简称PCB(Process Control Block)
组成
基本描述信息部分
管理信息部分
控制信息部分
控制信息部分
PCB队列
就绪队列
等待队列
进程管理的主要功能
控制
同步
通信
调度
死锁
进程控制
原语
含义
一个特殊的程序段,不会被分割或者中断
特点
要么全部执行,要么一个也不执行
主要作用
保证系统运行的一致性
进程控制原语
创建
创建进程的时机
作业调度程序
用户提交命令
系统调用
创建原语的主要操作
建立一个PCB
生成pid(唯一标识符)
初始化PCB各项内容
加入合适的就绪队列
进程树
构建一个以PCB为节点的树叫做进程树
撤销
含义
标志进程的消亡
进程撤销时机
进程执行完成
进行执行出错,异常结束
子进程对应的父进程异常结束
人为操作终止进程
主要功能
回收进程占用的资源
阻塞
主要功能
修改PCB中的进程状态
现场保护
将进程加入合适的等待队列
唤醒
主要功能
从等待队列中移出进程
修改PCB的进程状态
将进程加入合适的就绪队列
进程同步
并发进程的关系
无关
相关
间接制约关系
直接制约关系
进程的同步机制
加锁机制
步骤
设置锁变量
加锁操作
解锁操作
标志位机制
信号量机制
其与同步关系的划分
简单同步关系
一般同步关系
管程机制
进程通信
含义
两个或多个进程之间交换数据的过程称为进程通信
进程通信类型
低级通信
指的是操作系统内核程序之间的通信
高级通信
指的是应用程序之间的通信
进程通信方式
共享存储区通信
消息缓冲通信
信箱通信
管道通信
线程
含义
将进程细化成若干个可以独立运行的实体,每个实体称为一个线程
作用
实现进程内部的并发执行,提高并行程度
减少处理器切换带来的开销
简化进程通信方式
线程与进程的关系
和进程一样,线程具有动态性,均有各自的生命周期
线程具有并发性,多个线程可以同时并发执行
线程也有三个基本状态:运行、就绪、阻塞
具有相互制约关系的线程之间也需要同步、互斥控制
线程的类型
用户级线程
系统级线程
线程的常用细化方法
分派/处理模型
队列模型
管道模型
处理器调度
操作系统中的调度
含义
调度是管理的一种方法、一种决策测,使得资源得到合理、有效的利用
目的
提高资源利用率
分类
作业调度
进程调度
交换调度
设备调度
性能指标
定量指标
周转时间和平均周转时间
响应时间
衡量指标
公平合理
提高资源利用率
吞吐量
作业调度
含义
按照一定的策略从后备队列中选择一部分作业,为他们分配运行所需的必要资源,创建进程的过程
作业状态
提交状态
后备状态
执行状态
完成状态
作业状态的转换
作业调度主要功能
设计和选择算法
设计数据结构,等级调度所需要的参数
执行指定的算法,从作业的后备队列中选择一个作业
为选中的作业分配资源,创建进程
作业完成时的资源回收
调度算法
先来先服务算法
短作业优先算法
高响应比优先算法
进程调度
含义
实现进程并发执行时各个进程在处理器上轮流交替运行
实现
进程调度的实现由操作系统中的进程调度程序实现
进程调度的主要功能
确定采用何种进程调度方式
进程调度方式
含义
指的是运行状态的进程何时以什么方式停止或 暂停停止运行,让出处理器给下一个进程
分类
抢占方式
非抢占方式
确定进程调度算法
进程调度算法
含义
从就绪队列中选择一个进程用来执行的算法
基本算法分类
先来先服务算法
时间片轮转算法
优先级算法
其他算法
多级队列算法
处理器切换
进程结束时资源回收
实时系统的进程调度算法的基础知识
实时系统
对外界实践的响应和处理的计算机系统,需要及时进行处理,否则会造成严重后果
任务分类
周期性任务
非周期性任务
实时系统的时间参数
任务就绪时限
开始时限
完成时限
处理时间
实时系统的可调度性
如果系统中的所有时间或者进程都是可以调度的,即存在一种处理方式 使其在规定时间内处理完成,则称系统是可调度的
时限调度算法
基本思想
按照用户指定的时限要求,调度时选择时限要求最紧迫的任务运行
调度方式
采用抢占方式
举例
频率单调调度算法
针对周期性的任务
频率越高(周期越短)任务的优先级越高, 调度时应该采用抢占优先级算法
死锁问题
含义
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用, 它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。
分类
资源死锁
通信死锁
控制死锁
产生死锁四个必要条件
互斥条件
请求和保持条件
不剥夺条件
环路等待条件
产生原因
竞争资源引起进程死锁
当系统中供多个进程共享的资源如打印机、公用队列的等,其数目不足以 满足诸进程的需要时,会引起诸进程对资源的竞争而产生死锁。
进程推进顺序不当引起死锁
解决方法
死锁预防
死锁避免
死锁检测
死锁解除
存储器管理
概述
计算机系统的存储器类型
寄存器
存储程序的指令和运算数据
在CPU内
高速缓存区存储器
即cache存储器
为了减少CPU与内存之间速度不匹配
具有透明性,程序员不能直接使用cache
主存储器
即内存储器/内存
分类
ROM
只读存储器
RAM
随机存储器
外存储器
磁盘、光盘等
虚拟地址与物理地址
虚拟地址
对整个内存的抽像描述
物理地址
用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应
重定位
含义
重定位就是把程序的逻辑地址空间变换成内存中的实际物理地址空间的过程
分类
动态重定位
它不是在程序装入内存时完成的,而是CPU每次访问内存时 由动态地址变换机构(硬件)自动进行把相对地址转换为绝对地址
静态重定位
是指在程序开始运行前,程序中的各个地址有关的项均已完成重定位, 地址变换通常是在装入时一次完成的,以后不再改变
存储管理的主要功能
存储空间的分配和回收
重定位
存储空间的共享与保护
虚拟存储器
存储管理的目的
提高主存储器的利用率,放便用户对主存储器空间的使用
存储管理方法
分区管理
基本思想
是一类存储单元连续分配的管理方法
分类
单一连续区存储管理
单一连续分配是指主存中只有一个用户作业,把程序装入主存之后,占据全部存储空间和资源
固定分区存储管理
固定式分区是在处理作业之前存储器就已经被划分成若干个分区,每个分区的大小可以相同,也可以不同
一旦划分好分区后,主存储器中的分区的个数就固定了,且每个分区的大小固定不变
可变分区存储管理
在作业要求装入内存时,根据用户作业的大小和当时内存空间使用情况决定是否为该作业分配一个分区
分区大小不是预先固定的,而是按作业需求量来划分的;分区的个数和位置也不是预先确定的
克服了固定分区方式中由于分区内部剩余内存空置造成浪费的问题
覆盖与交换
覆盖
作业在一次运行时,把那些不会同时执行的程序段共用一个主存区,相互覆盖的程序段叫做覆盖,可共享的主存区叫做覆盖区
覆盖是指同一主存区可以被不同的程序段重复使用,其技术基础旨在提供正确的覆盖结构
交换
交换就是系统根据需要把主存中暂时不允许的某个或某些作业部分或全部移到辅存, 而把辅存中的某个或某些作业移到相应的主存区,并使其投入运行
分页管理
基本思想
是一种非连续的存储空间管理
特点
内存分块
进程分页
非连续分配
分类
基本分页
含义
要求将作业全部装入内存后方能运行;作业装入内存后,便一直驻留在内存中,直至作业运行结束
地址结构
地址结构包含两部分:前一部分为页号P,后一部分为页内偏移量W; 其中页号与页内偏移量所占多少位,与页面的大小和主存的最大容量有关
图示
每页大小为4KB,主存大学为4GB。则地址长度为32位,其中0~11位 为页内地址,即12~31位为页号,地址空间最多允许有2^20页
图示
地址变换机制
请求分页
含义
在进程开始运行之前,仅装入当前要执行的部分页面即可运行;在执行过程中,可使用请求调入中断动态装入要访问但又不在内存的页面; 当内存空间已满,而又需要装入新的页面时,者根据置换功能适当调出某个页面,以便腾出空间而装入新的页面
扩充的页表
图示
地址变换机制
页面置换算法
最佳算法(OPT算法)
用来评价其他算法,使用缺页中断率: f=F/A(其中F为作业失败访问的次数,A为作业总的访问次数)
先进先出算法(FIFO算法)
淘汰在内存驻留时间最长的页面
最近最久未使用淘汰算法(LRU算法)
淘汰最久没有被使用的页面
最不经常使用淘汰算法(LFU算法)
淘汰一段时间内,访问次数最少的页面
分段管理
基本思想
段式存储管理要求每个作业的地址空间按照程序自身的逻辑划分为若干段,每个段都有一个唯一的内部段号
地址结构
逻辑地址由段号S与段内偏移量W两部分组成
图示
段号为16位,段内偏移量为16位,则一个作业最多可有2^16=65536个段,最大段长为64KB
图示
地址变换机制
段页式管理
基本思想
把分页管理和分段管理的思想和方法结合起来,形成段页式存储管理
在段页式存储中,每个分段又被分成若干个固定大小的页
地址结构
逻辑地址由段号S、段内页号P与段内偏移量W两部分组成
图示
地址变换机制
文件管理
概述
引入文件系统的原因
数据需要长期保存
主存储器容量较小
存储介质种类繁多
发挥数据的信息作用
文件分类
按文件性质分类
系统文件
库文件
用户文件
按文件的存储控制分类
只读文件
可执行文件
读写文件
隐藏文件
按文件的组织分类
目录文件
普通文件
设备文件
按文件内容的表示方式分类
文本文件
二进制文件
文件的逻辑结构
流式文件
含义
无结构
指对文件内信息不再划分单位,它是依次的一串字符流构成的文件
特点
对于字符流的无结构文件来说,查找文件中的基本信息单位,例如某个单词,是比较困难的; 反之,字符流的无结构文件管理简单,用户可以方便地对其进行操作
记录式文件
含义
有结构
是用户把文件内的信息按逻辑上独立的含义划分信息单位,每个单位称为一个逻辑记录(简称记录)
特点
记录式的有结构文件可把文件中的记录按各种不同的方式排列,构成不同的逻辑结构, 以便用户对文件中的记录进行修改、追加、查找和管理等操作
文件的物理结构
文件存取方式
顺序读取法
依此读取各个记录,直到读取目标记录
随机存取法
可以单独读取一个记录,与其他记录无关
文件存储介质
磁盘
随机存取的存储设备
磁带
顺序存取的存储设备
物理结构分类
连接结构
优点
简单:存储与管理都简单,且容易实现
支持顺序存取和随机存取
所需的磁盘寻道次数和寻道时间最少
顺序存取速度快
缺点
需要为每个文件预留若干物理块,以满足文件增长的部分需要
不利于文件插入和删除
链接结构
优点
提高了磁盘空间利用率,不需要为每个文件预留物理块
有利于文件插入和删除
有利于文件动态扩充
缺点
存取速度慢,不适于随机存取
当物理块间的连接指针出错时,数据丢失
更多的寻道次数和寻道时间
链接指针占用一定的空间,降低了空间利用率
索引结构
优点
不需要为每个文件预留物理块
既能顺序存取,又能随机存取
满足了文件动态增长、插入删除的要求
缺点
较多的寻道次数和寻道时间
索引表本身带来了系统开销,如:内外存空间,存取时间等
文件的目录管理
文件控制块
含义
为了能对一个文件进行正确的存取,操作系统必须为文件设置用于描述和控制文件的数据结构,称为文件控制块(FCB)
作用
保存文件的特征信息
包含的文件属性信息
文件标志和控制信息
文件逻辑结构信息
文件物理结构信息
文件使用信息
文件管理信息
目录结构分类
单级目录
把文件系统中所有文件的FCB保存在一个目录文件中
二级目录
把目录分成主目录(MFD)和用户文件目录(UFD)两级
主目录由用户名和用户文件目录首地址组成
每个用户单独建立一个目录,各用户目录登记其下属文件的目录项
多级目录
在二级目录的基础上继续扩充,在一个目录下建立若干个目录,形成多级目录结构,也称为树状目录结构
基本术语
根目录
父目录/子目录
绝对路径
当前目录
相对路径
文件的安全性
文件保护的主要方法
备份
定期备份
活动备份
恢复
文件保密的主要方法
访问控制基本模型
基于主体权限的存取控制方法
存取控制矩阵
访问控制表
全能表
设备管理
概述
设备分类
按设备的用途分类
存储设备
输入/输出设备
按设备的传输速度分类
慢速设备
键盘、打印机
快速设备
磁盘、光盘
按设备的数据组织分类
字符设备
一次可以传输一个字符
键盘、打印机
块设备
一次可以传输多个块的数据
磁盘、磁带
按设备的管理分类
物理设备
逻辑设备
按设备的固有属性
独占设备
共享设备
I/O软件的层次结构
用户或程序
OS抽象操作
设备驱动程序
中断处理程序
硬件
设备管理的主要功能
设备的数据传输控制
缓冲技术
设备分配
磁盘驱动调度
I/O控制方式
程序查询方式
利用I/O测试指令测试设备的闲忙。若设备不忙,则执行输入或输出指令;若设备忙,则I/O测试指令不断对该设备进行测试,直到设备空闲为止
这种方式使CPU花费很多时间在I/O是否完成的循环测试中,资源浪费严重
中断方式
引入中断之后,每当设备完成I/O操作,便以中断请求方式通知CPU,然后进行相应处理
但由于CPU直接控制输入输出操作,每传达一个单位信息,都要发生一次中断,因而仍然消耗大量CPU时间
DMA方式
DMA(直接内存存取)方式用于高速外部设备与内存之间批量数据的传输
使用专门的DMA控制器,采用窃取总线程控制权的方法,由DMA控制器送出内存地址和发出内存读、设备写或者设备读、 内存写的控制信号完成内存与设备之间的直接数据传送,而不用CPU干预
当本次DMA传送的数据全部完成时才产生中断,请求CPU进行结束处理
通道方式
通道是一个用来控制外部设备工作的硬件机制,相当于一个功能简单的处理机
通道是独立于CPU的、专门负责数据的输入输出传输工作
对外部设备实统一管理,代替CPU对I/O操作进行控制,从而使I/O操作可以与CPU并行工作
实现了计算机和传输并行,提高系统效率
设备分配
数据结构
系统分配表
设备控制表
控制器控制表
通道控制表
设备分配原则
提高并行性
方便用户使用
系统的安全性
设备分配方式
静态分配
利用率低,不会存在死锁
动态分配
利用率高,可能导致死锁
设备分配过程
查询SDT
查询DCT,分配设备
查询COCT,分配控制器
查询CHCT,分配通道
缓冲技术
含义
在设备的I/O操作过程中,利用一种存储部件或其中的部分,暂时存放要交换的数据,将来再把数据传输到目标位置
目的
改善CPU与I/O设备间速度不匹配的矛盾,提高 CPU和 I/O设备之间的并行性
减少I/O操作的次数
减少中断次数
提高系统的及时性,方便用户操作
缓冲类型
硬件缓冲
如设备控制器中的缓冲区
软件缓冲
单缓冲
在设备和处理机之间设置一个缓冲器。设备相处理机交换数据时,先把被交换 数据写入缓冲器,然后,需要数据的设备或处理机从缓冲器取定数据
双缓冲
解决两台外设、打印帆和终端之间的并行操作问题的办法是设置双缓冲。 有了两个缓冲器之后,CPU可把输出到打印机的数据放入其中一个缓冲器(区)、 让打印机慢慢打印;然后,它又可以从另一个为终端设置的缓冲器(区)中读取所需要的输入数据
多缓冲
是把多个缓冲区连接起来组成两部分,一部分专门用于输入,另一部分专门用于输出的缓冲结构
缓冲池
把多个缓冲区连接起来统一管理,既可用于输入又可用于输出的缓冲结构。
缓冲池
结构
缓冲池由多个缓冲区组成
一个缓冲区分为两个部分
1、用来标识该缓冲器和用于管理的缓冲首部
2、用于存放数据的缓冲体
四种工作缓冲区
用于收容输入数据的工作缓冲区(hin)
用于提取输入数据的工作缓冲区(sin)
用于收容输出数据的工作缓冲区(hout)
用于提取输出数据的工作缓冲区(sout
系统把各缓冲区按其使用状况连成三种队列
空白缓冲队列em,其队首指针为F(em),队尾指针为L(em)
装满输入数据的输入缓冲队列in,其队首指针为F(in),队尾指针为L(in)
装满输出数据的输出缓冲队列out,其队首指针为F(out),队尾指针为L(out)
管理
(1)从三种缓冲区队列中按一定的选取规则取出一个缓冲区的过程take_buf(type)
(2)把缓冲区按一定的选取规则插入相应的缓冲区队列的过程add_buf(type,number)
(3)供进程申请缓冲区用的过程get_buf(type,number)
(4)供进程将缓冲区放入相应缓冲区队列的过程put_buf(type,work_buf)
工作过程
首先,输入进程调用get_uf(em,number)过程从空白缓冲区队列中取出一个缓冲号为number的空白缓冲区, 将其作为收容输入缓冲区hin,当hin中装满了由输入设备输入的数据之后,系统调用过程put_buf(in,hin)将该缓冲区插入输入缓冲区队列in中
另外,当进程需要输出数据数据时,输出进程经过缓冲管理程序调用过程get_buf(em,number)从空白缓冲区队列中取出一个空白缓冲区number 作为收容输出缓冲区hout,待hout中装满输出数据之后,系统再调用过程Put_buf(out,hout)将该缓冲区插入输出缓冲区队列out.
对缓冲区的输入数据和输出数据的提取也是由过程get_buf和put_buf实现的。get_buf(out,number)从输出缓冲队列中取出装满输出数据的 缓冲区number,将其作为sout。当sout中数据输出完毕时,系统调用过程put_buf(em,sout)将该缓冲区插入空白缓冲队列
而get_buf(in,number)则从输入缓冲队列中取出一个装满输入数据的缓冲区number作为输入缓冲区sin,当CPU从中提取完所需数据之后, 系统调用过程put_buf(em,sin)将该缓冲区释放和插入空白缓冲队列em中