操作系统OS(operating system)
原文链接:https://www.notion.so/OS-operating-system-3ac79d55d4e64fdaa4c0119520a71a10
主要内容:简介,中断及系统调用,进程调度、同步、互斥,内存管理:物理、虚拟,文件管理,设备管理
概念:指控制和管理整个计算机的系统的硬件和软件资源,并合理的组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,是计算机最基本的系统软件。
进程:一个程序的执行过程,执行前需要将该程序放入内存中,才能被CPU处理。
作为系统资源的管理者需提供的功能:处理机管理,存储器管理,文件管理,设备管理
目标:安全高效
例子:用QQ和朋友视频聊天的过程:分四步
作为用户和计算机硬件之间的接口(用户接口):
命令接口:允许用户直接使用(联机命令接口 一对一;脱机命令接口 一堆对一堆,相当于批处理命令接口)
程序接口:允许用户通过程序间接使用,即为系统调用=广义指令
GUI:现代操作系统中最流行的图形用户接口/界面
操作系统的特征:
最基本的—>并发和共享(且互为存在条件)
并发:两个或多个在同一时间间隔内发生,宏观上是同时发生的,但微观上是交替发生的,相对的是并行,它是多个事件在同一时刻同时发生,需要多个处理器。
共享:互斥共享方式(分时)、同时访问方式(资源被隔离成不同的部分,可出现多个程序同时访问)
虚拟:通过多道程序设计技术让每一个用户觉得有一个计算机专门我自己服务。同时玩GTA,聊QQ,听音乐,电脑为4G内存,用到了空分复用技术(虚拟存储技术),时分复用技术(虚拟处理器),没有并发性就没有虚拟性。
异步:程序执行不是一贯到底,走走停停,先前推进。只有系统有并发性,才可能导致异步性。
操作系统的结构设计
传统的:模块化的结构,层次结构,
现代的:微内核,客户机/服务器模式(云服务,VMM,DOCKER)
第二章操作系统的硬件环境
启动过程:计算机加电,BIOS,BootLoader
CPU和处理机状态:中断促使处理机用户模式
处理器的状态:
管态:指操作系统管理程序运行的状态。状态位为0,处于内核模式。
目态:指用户程序运行时的状态。状态位为3,处于用户模式。
中断触发促使处理机用户模式向内核模式的切换,执行完毕后切回。
缓冲技术:弥补处理速度不匹配
中断、异常、系统调用:
来源:中断主要是由外设,硬中断
异常 应用程序异常代码(除0错,内存地址越界),软中断
系统调用 应用程序请求使用操作系统内核提供的服务
处理时间:中断 异步(不可预知)
异常 同步 (可预知)类似于try ....catch....
系统调用 异步或同步
响应:中断 持续,对用户应用程序透明
异常 杀死应用程序或重新执行异常指令
系统调用:等待和持续
中断技术:
中断源,中断请求,中断处理程序
引入中断的目的:实现并发操作,实现实时处理,故障自动处理。
第三章进程与进程管理
进程的引入:多道程序设计
进程的概念:
具有独立功能的可并发执行的程序在一个数据集合上的一次动态执行过程,是系统进行资源分配和调度的独立单位。“进程”是进程实体的运行过程。
进程的构成:
程序段、
数据段、
进程控制块(PCB Process Control Block)(正在运行的一个程序的所有状态信息)
程序与进程的区别和联系:
进程是一次程序的执行过程,动态的概念。
程序完成特定功能的指令的有序序列,静态的概念。
一个程序的多次执行对应多个进程,一个进程的执行过程可能调用多个程序。
一个进程不同时间打开时,系统分配不同的ID号,不是同一个进程。
举例:食谱:程序 原材料:输入数据
计算机专家:CPU 做菜过程:进程
…
进程的特征:
动态性、
并发性(多个进程同时存于内存,一段时间同时运行)、
独立性(不同进程互不影响,存储保护,程序浮动)、
异步性、结构特征(三部分组成)
制约性:相互制约性
进程数据块PCB块:
概念:操作系统管理控制进程运行的所有的信息集合。
作用:描述进程的基本情况及运行变化过程。
对并发执行的进程进行控制和管理。
是进程存在的唯一标志 ID。
放在内存中,不存放在磁盘中。进程终止后系统回收进程的PCB。
信息:
进程标识符信息,
处理机状态信息,
进程调度信息,
进程控制信息。
PCB的组织方式:
链接方式(多数情况):相同状态链接成队列,可形成就绪队列、若干个阻塞队列和空队列
索引方式(类似于数组):建立索引表,由于PCB可能会频繁的创建、删除,使用索引方式,但增加了开销。
进程的生命期管理:
进程创建:系统初始化(INIT 进程)、用户请求操作系统创建进程、正在运行的进
程执行了创建进程的系统调用。
进程运行:内核选择一个就绪进程,占用处理机。
进程阻塞:
出现进程阻塞的情况;
请求并等待系统的服务,无法马上完成。
启动操作,无法马上完成。
所需的数据没到达。
只有进程自己阻塞自己
进程唤醒:
情况:被阻塞的唤醒,PCB插入就绪队列。
进程只能被进程和操作系统唤醒。
进程结束:
情形:
(自愿)正常结束退出,错误退出,
(强制)致命错误被OS kill,被其他进程杀死。
进程的状态:
就绪状态、
执行状态、
阻塞状态、
没有直接从阻塞到执行
进程的挂起状态:
进程不再占用内存,挂起放到磁盘 (Linux中放在SWAP,不能进行常规文件管理操
作
挂起状态的引入:
中断用户挂起、
父进程挂起、
操作系统挂起、
对换挂起:缓解内存紧张
负荷调节挂起、
被挂起的进程的特征:
不能立即执行
挂起的是阻塞进程,两者互相独立,两者解除不等。
使之挂起的进程才能将挂起的进程状态改变
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IonILz7w-1638326610214)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ae7a6906-3801-4794-9872-bba42fa5cf89/Untitled.png)]
状态队列
- 表示系统中所有进程的当前状态
- 就绪队列、执行队列、阻塞队列
- 根据PCB的状态
进程控制
- 主要任务:创建、撤销和转换进程,有操作系统内核实现
- 操作系统内核
- 与硬件紧密相关的模块(中断处理程序、各种设备驱动程序、运行频率较高的模块),常驻在内存
- 功能:中断处理、进程管理、资源管理的基本操作
- 原子操作:不可分割的操作,要么全做完,要么全不做
- 过程
- 进程的创建:create(),首先要申请空白PCB,
- 进程的终止:destroy()
- 进程阻塞原语:block(),执行到阻塞
- 进程唤醒原语:wakeup(),阻塞到就绪
- 进程挂起原语:suspend(),
- 进程建立:
- 就是用fork()复制一个父进程,在用exec()执行自己的代码
- fork()克隆了一个自己
- fork()== 0 为子进程
- fork()> 0 为父进程
- fork() < 0 出错
- exec()用fork函数创建子进程后,子进程往往要调用exec()函数执行另一个程序,根据()内的文件名后目录找到可执行的文件,取代原调用进程的数据段、代码、堆栈段,除进程号。
- 进程退出:exit()
- wait():父进程用来等待子进程结束
进程调度
- 一个程序从提交开始到完成,经历高级调度——》中级调度——》低级调度
- 调度方式:非剥夺方式、剥夺方式
- 衡量调度算法指标:CPU使用率、吞吐量、周转时间、等待时间、响应时间
- 调度算法
- FIFO算法:先来先服务方式
- 最高响应比优先调度算法(不可抢占)
- 响应比 = (等待时间 + 处理时间)/ 处理时间
- 优先级调度算法
- 静态优先级
- 动态优先级
- 时间片轮转调度算法
- 通常在分时系统
- 前后台调度算法
- 用在批处理和分时相结合的系统中,将用户作业放在前台,批处理作业放在后台,前台按照时间片轮换法进行调度
- 多级反馈队列轮换算法
第四章进程同步与通信
进程间的相互作用
临界资源
- 一种多个进程访问的资源
- 属性:必须互斥访问,同一时刻只能一个进程访问。
- 临界区:需要访问临界资源的那段代码
- 互斥:同一时间内,互斥访问临界区共享资源
- 死锁:两个以上并发的进程等待对方资源以维持自己的运行
- 饥饿:一个进程长期得不到调度,使之处于可执行切不被执行
利用软件方法解决进程互斥问题
-
保证互斥和让进
-
while(1){
flag[],turn while(flag,turn){ }no - op
}
利用硬件方法解决进程互斥问题
- TestAndSet指令:TS()取反
- Swap指令:Swap()互换
总结:进临界获得锁,出临界释放锁
信号量(整数,一种卓越成效的进程同步工具)
- 两种类型:二进制信号(互斥)、一般技术信号量(非负值)
- 两个原子操作:
- P():能够阻塞,信号量减一操作,小于0阻塞,多个进程被阻塞,使用FIFO,wait(s)
- V():能够唤醒,信号量加一操作,小于等于0,唤醒一个等待 P(), signal(s)
- 一个临界资源初始 sem 设为 1 ,互斥信号量
- 记录型信号机制:有代表资源数目的整型变量value,还有进程链表 L ,链接所有等待该信号量代表的资源进程
- 描述程序或语句的前驱关系,
- 经典问题:生产者消费者,读者写者问题
semaphore mutex = 1, empty = 20, full = 0;
item buffer[n];
int in = out = 0
void producer(){
while(1){
…
produce an item in nextp;
…
wait(empty);
wait(mutex);
buffer[in] = nextp;
in = (in + 1) % 20;
signal(mutex);
signal(full);
}
}
void consumer(){
while(1){
…
wait(full);
wait(mutex);
nextc = buffer[out];
out = (out + 1) % 20;
signal(mutex);
signal(empty):
…
consume the item in nextc;
}
}
管程机制
引入
- 解决信号量大量的同步操作分散,不利于管理,以及操作不当导致死锁。
定义
- 一种高级的同步机制,类似于一种面向对象的类
- 组成:共享数据结构的说明;对该数据结构进行操作的一组过程(函数);共享数据设初值;管程起名字。
- 每次仅允许一个进程在管程内执行某个内部过程(由编译器负责实现各进程互斥的进入管程中的过程)
死锁
死锁:各个进程互相等待对方手里的资源,导致各个进程都阻塞,无法向前推进的现象。至少两个或两个以上同时发生死锁
饥饿:短进程优先算法(SPF)中的长进程可能导致饥饿,可能只有一个进程发生饥饿。
死锁和饥饿是操作系统的问题,
死循环:被管理这的问题
死锁产生的必要条件:
- 互斥条件
- 不剥夺条件
- 请求和保持条件
- 循环等待条件,循环等待不一定导致死锁,但死锁一定导致循环等待
对不可剥夺资源的不合理分配就会导致死锁
死锁处理策略
-
预防(破坏死锁产生的条件,静态策略),
-
避免(动态策略)
安全序列,发生死锁一定是进入了不安全状态
银行家算法
安全性算法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AIPn7Q0X-1638326610217)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/a267cebf-0227-4be4-9bcf-9694d51fb153/Untitled.png)]
-
检测和解除
死锁定理:如果某时刻系统的资源分配图示不可完全简化的,那么此时系统死锁
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3lHRYoFn-1638326610218)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/67c935cd-194c-4b9c-b4d5-9cf0d200b92e/Untitled.png)]
解除:资源剥夺法(挂起)
撤销进程法(终止进程法)
进程回退法
第五章存储器管理
内存的基础知识
- 相对地址又称逻辑地址,绝对地址又称物理地址
- 装入的三种方式(用三种不同的方法完成逻辑地址到物理地址的转换):
- 绝对装入(只适用于单道程序环境)
- 逻辑地址和内存地址完全相同
- 静态重定位
- 可重装定位装入方式:一次装入
- 动态重定位
- 动态运行时装入方式:有重定位寄存器,执行时装入,可分配到不连续的储存区。
- 绝对装入(只适用于单道程序环境)
- 操作系统主要是建立逻辑地址和物理地址之间的映射
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7OyLYhec-1638326610220)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/58a1f8f1-27a0-4215-8e15-1eaa7d329c68/Untitled.png)]
连续存储管理方式
单一连续分配
- 储存保护:基址寄存器和界限地址寄存器
分区分配
-
固定分区
- 预先分配内存,按需分配
- 保护机制:上下限寄存器或基址、长度寄存器
-
可变分区
- 分区分配算法
- 首次适应算法:在空闲分区链中以地址递增的次序链接,顺序查找
- 最佳适应算法:满足要求、最小的空闲分区分配
- 最差适应算法:满足要求的最大空闲分区分配
外部碎片最小的算法:最差适应算法
- 内存分区回收操作
- 分区分配算法
总结:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I26Qq5Qn-1638326610222)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/dfe6763d-8af6-42d8-b3a0-2f5b6b51159b/Untitled.png)]
分段存储管理方式
**基本思想:**程序按逻辑关系可划分为若干段(数据段、堆栈段),划分段号,段内地址连续,每个段分配连续地址空间,段间地址可以不连续。
**段表:**实现逻辑段到物理内存区的映射,系统为每一个进程建立了一张段映射表,进程的每一个段在表中的占有一个表项,记录段长和基址
分页存储管理方式
基本思想:
将逻辑地址空间和物理地址空间按相同长度为单位进行等划分。
逻辑地址:划分为大小相同的片段,叫做页面或页
物理地址:化成大小与页面相同的片段,叫做物理块或页宽,分配的物理块可以不连续。
**动态地址变换:**通过地址变换机构,借助页表完成,相同设置了一个页表寄存器存放内存的起始和页表的长度。
快表:由于页表按照逻辑地址进行读写时,需要访问两次内存:1、根据页号访问页表。2、根据物理地址进行读写。缓存近期访问的页帧转换表项
段页式存储管理方式
内存分成大小相同的块,程序按照逻辑关系分成若干段,再分成页
覆盖技术和交换技术
第六章 虚拟存储器管理
覆盖技术增加程序员负担,交换技术增加处理器的负担
从逻辑上对存储器进行扩充
实现的可能:
局部性原理:
- 时间局部性:指令在执行后的很快再回被执行
- 空间局部性:某一存储单元被访问,那么相邻的单元可能也很快也被访问
分页虚拟存储管理
在分页系统的基础上,增加了请求调页功能、页面置换功能,页表也扩充了:
页号 物理块号 驻留位 访问字段 修改位 辅存地址
页面置换算法:
最佳置换算法:淘汰以后永不使用的,或者在最长时间内不再被访问的页,作为衡量置换算法的标准
先进先出算法:每次淘汰最先进入内存的页,
最近最久未使用算法(LRU):淘汰那些在最近一段时间里最久未使用的一页,开销大,需较多的硬件支持(移位寄存器)
简单CLOCK置换算法(最近未使用算法NRC):
每页设置一个访问位,是0就选择该页换出,为1则重新将它复0,若访问到最后一个还是1,则返回队首检查。
改进型Clock置换算法:
设置访问位和修改位,且在选择换出页面是既未使用过又未修改过的页面为首选淘汰页,增加了开销。
执行过程(有继承简单Clock算法的扫到1改为0,这里改的是访问位A):指针当前位置开始扫描,寻找A=0,M=0的页;失败则第二遍扫描,寻找A=0,M=1的页;失败重复第一步。
Belady现象:
物理页面数增加,缺页次数增加,FIFO有,LRU没有。
工作集:
一个进程当前正在使用的逻辑页面集合,W(当前执行的时刻,工作集窗口)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4l8z1i6B-1638326610224)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/df8056e6-4c19-40ae-98eb-0970a79bb25a/Untitled.png)]
常驻集:当前时刻,进程实际驻留在内存的页面集合,当常驻集大于工作集时,程序才能顺利进行。
先看页表有没有页项,有置1且指针不动;指针指向0访问位的页项置出后指针要下移一位。
全局页面置换算法:固定工作集窗口,随时间平移,在工作集中淘汰,(工作集要去重,工作集的窗口大小计算时不去)
物理块的分配策略:固定分配局部置换,可变分配全局置换,可变分配局部置换
第八章文件管理
- 文件的基本特征
- 内容为一组相关信息
- 具有保存性
- 可按名存取
- 文件系统的功能
- 完成文件块管理和空闲存储空间的管理
- 定位文件,逻辑到物理的映射
- 实现文件和目录的操作管理
- 读写限制,提供安全可靠和共享的措施
- 文件的存取方式
- 顺序存储
- 随机存取
- 按键存取
- 文件的逻辑结构
- 原则:便于修改、提高检索效率、使文件信息占据最小的存储空间、便于用户进行操作
- 文件逻辑结构分类:
- 记录式文件(有结构文件)
- 这种文件在逻辑上总是被看成一组连续有序的记录集合
- 定长、变长记录文件
- 记录按不同方式排列:顺序文件、索引文件、索引顺序文件
- 流式文件(无结构文件)
- 文件是有序字符集合
- 需设置读写指针
- 记录式文件(有结构文件)
储存介质
磁盘
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SW63yqS1-1638326610226)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/96faabbe-432f-45b8-a124-2b9f9b1fed4c/Untitled.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oIZvsA3x-1638326610227)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6fe770e2-0ad6-45fa-b9ce-ccfb91f94377/Untitled.png)]
磁盘文件的物理结构
-
连续文件
- 一个文件中逻辑连续的信息存放到磁盘的依次相邻的块上
- 文件目录项FCB:存放了起始块号和长度,物理块号=起始块号+逻辑块号
- 支持直接、随机访问,效率高(磁头移动距离短),代价大需充足空闲块
-
链接文件
- 连续逻辑不连续磁盘
- 显示链接:指针存放在链接表(FAT)中
- 隐式链接:盘块间有指针
- 扩展方便,不支持直接、随机访问,速度慢,FAT占内存
- 连续逻辑不连续磁盘
-
索引文件
- 一个文件一个索引块(磁盘块),记录文件的所有盘块号,索引块中有一个索引表(存放着逻辑块和物理块)
- 支持直接、随机访问,文件易扩展
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TvorlljB-1638326610229)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/82dbe2be-9351-4cda-8e01-bac2d8debb03/Untitled.png)]
- 当多分配的磁盘块装满后分配的新磁盘通过指针链接
- 多层索引:则索引表不能超过磁盘块
- 混合索引分配方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zrwIfPPp-1638326610230)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/0600e9ef-ac25-46d0-a574-489ac107b8b3/Untitled.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HTGFSg3A-1638326610231)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/fe4fd68a-31ee-4853-b254-65c7d7506256/Untitled.png)]
文件目录
- 文件控制块(文件目录项,文件说明)
- 文件有文件控制块和文件体组成
- 包括:文件基本信息,存取控制信息,文件使用信息
- 文件系统的实现
- 打开文件表
- 系统打开文件表
- 用户打开文件表
- 打开文件表
- 外存空间管理
-
空闲块表法:每个磁盘建立一张空闲块表,每个登记项纪录一组连续空闲块的首块号和块数;
- 分配回收:最先适应、最优适应和最坏适应算法。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AEyIX0Eb-1638326610231)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5965f360-5693-40b8-8b2d-325e806091a8/Untitled.png)]
-
空闲盘块链:空闲盘块链以盘块为基本元素构成一条链,系统保存链头和链尾指针。
- 分配时从链首开始,依次摘下适当数目的空闲盘块分配给用户,且修改链首指针。回收时将回收的盘块依次链入空闲盘块链的链尾,且修改链尾指针。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kQzvl5Bk-1638326610232)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6f1f95d6-caa0-4bd5-ba39-d184ebc0286e/Untitled.png)]
-
空闲盘区链:将磁盘上的所有空闲盘区(每个盘区可包含若干个盘块)拉成一条链,OS保存链头、链尾指针。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LTakHY1b-1638326610233)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/796eb3f3-cd8a-475d-9305-39db50fedd52/Untitled.png)]
-
位示图法
- 磁盘块的组织
字号为i,位号为j
块号=i×位示图中的字长+j
分配时顺序扫描位示图,0表示空闲,1表示占用。
- 磁盘块的组织
-
成组链接法
- 空闲块的组织
把空闲块分成若干组,每一组的第一个空闲块中登记下一组空闲块数和空闲块的块号。
超级块(专用块)存放在磁盘的目录区,在初始化时会读入内存。
- 空闲块的组织
-
磁盘调度
- 输入输出时间:
- 设每移动一个磁道需要m,移动n个磁道的时间为m*n,磁盘转速为r,每磁道字节数N,需要处理的数据为b字节。
- 寻道时间=s+m*n
- 等待时间=(1/2)*(1/r)=1/(2r)
- 传输时间= (1/r)*(b/N)=b/(rN)
- 磁盘的移臂调度算法
-
先来先服务调度算法(FCFS)
- 先请求先服务
- 寻道时间长
-
最短查找时间优先算法(SSTF)
- 以磁头移动距离大小为优先条件
- 可能产生饥饿现象,还需考虑移动方向
-
SCAN算法(电梯调度算法)
- 选取磁臂前进方向最接近的柱面所在的访问位下一个服务对象,到达最外柱面才改变方向
- 对各磁道的相应频率不均
-
循环扫描策略
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eKKm3ImV-1638326610234)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/bf9945e6-1957-43d4-a0fe-e367bae8f05c/Untitled.png)]
-
N步扫描策略
-
FSCAN算法
-
第九章设备管理
概述
- 设备分类
- 按信息交换方式分类
- 块设备(外存):以可寻址的数据块为信息的存储和传输单位,块间读写独立,如磁盘
- 字符设备(人机交互设备):鼠标
- 按信息交换方式分类
- 设备组成:
- 物理设备:机械
- 电子部分:设备控制器,适配器
- 设备接口:主机和设备以约定格式和过程接发数据和信号
- 设备控制器
-
I/O编址:
- 独立编制:一个寄存器分配一个IO端口
- 内存映像编址:一个寄存器映射一个用于IO操作的内存地址
-
IO控制方式:
-
程序查询方式:也称繁忙等待方式或轮询方式,
- 控制IO的所有工作都由CPU来完成。
-
IO中断方式:无需等待,用用户进程发起IO请求。
- CPU干预频率在I/O切换进程时才会执行
-
直接存储器访问DMA:需要一个DMA控制器,可以接管地址线的控制权,包含数据寄存器DR,内存地址寄存器MAR,数据计数器DC,命令/状态寄存器CR。
- CPU只有在I/O操作开始和结束的时候干预
-
IO通道方式:
- 能执行有限通道指令得IO控制器,有自己的指令系统,即通道程序,能与CPU并行操作,通道间也可并行操作,
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d5mYH40O-1638326610234)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/69f8af77-fd45-4dde-a3ed-6684163cd6b1/Untitled.png)]
- 通道类型:
- 字节多路通道:一个通道以分时方式可以同时执行几个通道程序,以管理多台外部设备的工作
- 数组选择通道:数组选择通道一次仅执行一个通道程序,以实现内存和外设之间的成批数据传送
- 数组多路通道:数组多路通道以分时方式同时执行几个通道程序
-
-
缓冲技术:
- 单缓冲:每当一个IO请求分配一个缓冲区,缓冲区满时才能读出数据,
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K6iJep6V-1638326610235)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/0598866b-4024-4577-9427-2343cbd55eb4/Untitled.png)]
平均一块数据的处理时间为MAX(T,C)+M
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-10ZIt9Ld-1638326610236)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6cdeb1c4-2496-4d95-835e-50695aa92bf6/Untitled.png)]
-
双缓冲:
- 解决消费者和生产者问题,设置双缓冲,双缓冲最适合IO操作速度与进程的运行速度相匹配的情况。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vgsn3NNr-1638326610236)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7fde24a5-0471-4a9f-8d11-2cc1fa4ca809/Untitled.png)]
平均一块数据的处理时间为MAX(T,M+C)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jLEDHvSf-1638326610237)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5ed5d00a-77e0-48b1-a607-8ba313c54e1a/Untitled.png)]
-