恶补《操作系统》5_2——王道学习笔记

5.2_1 I-O核心子系统

1、用户层软件

假脱机系统

2、设备独立性软件(设备无关性软件)

IO调度、设备保护、设备分配与回收、缓冲区管理

3、设备驱动程序(比如打印机驱动)

4、中断处理程序

5、硬件

5.2_2 假脱机技术(SPPOLing技术)

1、什么是脱机技术,脱机技术可以解决什么问题

脱离主机的控制进行输入/输出控制

SPPOLing系统:必须要有多道程序并发进行

2、假脱机技术的实现原理

  • 输入井和输出井
  • 输入进程和输出进程
  • 输入缓冲区和输出缓冲区

3、共享打印机的原理分析

5.2_3 设备的分配与回收

1、设备分配时应考虑的因素

  1. 设备的固有属性:独占设备(打印机)、共享设备(磁盘)、虚拟设备
  2. 设备分配算法:
  3. 设备分配中的安全:为进程分配一个设备后就将进程阻塞,本次IO完成后才将进程唤醒

2、静态分配与动态分配

静态分配:进程运行前为其分配全部所需资源、运行结束后归还资源

动态分配:运行中动态分配

3、设备分配管理中的数据结构

  1. 系统设备表SDT,表目:(设备类型、设备标识符、DCT、驱动程序入口)
  1. 设备控制表DCT(设备类型、设备标识符、设备状态、指向控制器表的指针、重复执行次数或事件、设备队列的队首指针)
  1. 控制器控制表COCT(控制器标识符、控制器状态、指向通道表的指针设备队列的队首指针、控制器队列的队尾指针)
  1. 通道控制表CHCT(通道标识符、通道状态、与通道连接的控制器表首址、通道队列的队首指针、通道队列的队尾指针)

4、设备分配的步骤

根据进程请求的物理设备名------>设备控制表------>控制器控制表------>通道

5、设备分配步骤的改进方法

建立逻辑设备名和设备的映射

5.2_4 缓冲区管理

1、什么时缓冲区?有什么作用?

缓冲区是一个存储区域

缓和CPU与IO设备之间速度不匹配的矛盾

减少对CPU的中断频率

解决数据粒度不匹配的问题

提高CPU与IO设备之间的并行性

2、单缓冲

在内存中分配一块缓冲区

处理一块时间=max(C,T)+M

3、双缓冲

在内存中分配两块缓冲区

max(T,C+M)

4、循环缓冲

5、缓冲池

由系统中共用的缓冲区组成。这些缓冲区可以分为:空缓冲队列、装满输入数据的缓冲队列、装满输出数据的缓冲队列

相关推荐
野老杂谈8 分钟前
【Solidity学习】合约基本结构与状态变量
学习·区块链
承渊政道1 小时前
C++学习之旅【C++类和对象(下)】
c++·学习·visual studio
暴风游侠3 小时前
linux知识点-内核参数相关
linux·运维·服务器·笔记
Galloping-Vijay7 小时前
Claude Code 使用笔记
笔记
日更嵌入式的打工仔7 小时前
EtherCAT 逐帧解析状态机切换过程(初始清零阶段)
网络·信息与通信·ethercat
旖旎夜光8 小时前
多态(11)(下)
c++·学习
Danileaf_Guo9 小时前
256台H100服务器的RoCEv2无损与全互联算力网络建设方案
运维·服务器·网络
解压专家6669 小时前
怎么找书?怎么传输?在Kred里完成的全过程
运维·服务器·网络
极市平台9 小时前
骁龙大赛-技术分享第5期(上)
人工智能·经验分享·笔记·后端·个人开发
全栈陈序员9 小时前
【Python】基础语法入门(十七)——文件操作与数据持久化:安全读写本地数据
开发语言·人工智能·python·学习