当前位置: 首页 > news >正文

操作系统 第九章 部分

设备与IO

-1:设备及其分类

--存储型设备

磁盘,磁带,光盘

--IO型设备

扫描仪,打印机,mouse,keyboard,monitor,

--网络设备

网卡,交换机,etc.

-管理类型:

共享型设备(块型):多个进程的IO操作以块为单位可以交叉

独占型设备(型):多个进程的IO操作以块为单位不交叉

独占型设备(字符型):多个进程的IO操作以字符为单位不交叉

-2设备的物理特性

--IO设备的物理特性:

传输一字节发生一次中断

--存储设备的物理特性:

---磁带的物理特性:

操作:反绕,正向查找,反向查找,读,写

地址:一维

文件:顺序结构

---磁盘组的物理特性

(扇区,柱面,引臂,盘面)

杀(扇)猪(柱)盘

引入了==>(柱面i,盘面j,扇区k)的三维地址用来定位一个块(三对一)

(注意这里是优先扇=>盘=>柱)

三对一:   b=i*m*n+j*n+k

一对三: i=b/(m*n)

        j=b mod (m*n) /n

        k=b mod (m*n) mod n

扇区编号:

没有考虑读写延迟的编号

考虑读写延迟的编号(单):

(双)

--光盘的物理性质:

读取原理: pit/land

螺旋线,22188圈(展开5.6km),

内侧转速:530转/分; 外侧转速:200转/分(密度均匀,读取速度均匀)

-3IO传输方式

(查询、中断、通道、DMA)

-程序查询方式

(cpu和设备不能并行)

缺点:

(1)处理机与设备串行工作;

(2)消耗大量处理机时间

-中断方式

(cpu和设备可以并行,但是cpu会处理大量的中断)

特点:

(1)CPU与设备并行工作

(2)设备多时对CPU打扰多

-通道方式

(特殊的一个处理器,来解决io操作)

负责IO操作的处理机

-指令系统

--基本操作:控制、读、写、转移、结束

--指令格式:(操作码,传输量,特征位,地址)

-运控部件:--CAW,CCW,CSW,CDW

存储区域(与CPU共用内存,通道内有缓冲区)

--通道程序,IO数据

通道的分类:

字节多路通道: 多个非分配型子通道,连接低速外围设备

数组选择通道; 一个分配型子通道,连接多台高速设备

数组多路通道: 多个非分配型子通道,连接多台高速设备

-直接内存方式

(DMA控制器来直接去获取IO块)

过程:
①CPU通过设置DMA控制器实现DMA编程,同时启动磁盘控制器由磁盘读入数据至内部缓冲区并进行和校验

②DMA控制器向磁盘控制器发出读请求,并将内存地址放在地址总线上;

③磁盘控制器将字节传到内存指定单元

④磁盘控制器向DMA控制器发送回答

⑤DMA控制器将内部地址寄存器加1同时将记数减1,重复上述过程②─④直至计数器为0,此时DMA控制器向CPU发出中断信号.

-4设备分配与去配

--1独占型设备的分配与去配

块型独占

字符型独占

用户使用独占型设备活动:

        申请,使用,使用,…,使用,释放

过程

         申请:(1) 根据设备类查SDT表

                       (2) P(Sm)

                       (3) 查UCB表找一空闲设备并分配

         使用:(1) 分配通道

                       (2) IO传输

                       (3) 去配通道

         释放:(1) 找SDT表对应入口

                       (2) 查UCB表,去配

                       (3) V(Sm)          

--2共享型设备的分配与去配:

块型共享

共享型设备的分配与去配

-用户使用共享型设备活动

使用,使用,…,使用

特征

来自文件系统;

每次读(写)一块

通常经过缓冲

排队优化

使用

分配通道;IO操作;释放通道

-5设备驱动

通道程序

-CCW指令序列  (CAW依次遍历去得到CCWi放入CCW)

-静态编制或动态生成

设备启动

-通道启动

中断处理

-通道向CPU发的中断

-6设备调度****

优化服务顺序

考虑因素:公平性(防止饿死)_和_高效性(减少磁盘引臂移动量)

引臂调度算法:

FCFS:

SSTF:

SCAN算法(LOOK)

区别在于到不到底

C-SCAN(C-LOOK)

区别:跨越的路径走不走

N-SCAN(内大外小)

将磁盘请求队列分为若干个长度为N的子队列,每个队列内采用SCAN算法

例子:磁道由外向内编号0-99,磁头当前位置20,向内移动,N=4

12, 5, 7, 30, 60, 77, 13, 26, 61, 80, 53, 66

20→30→12→7→5→13→26→60→77→80→66→61 →53

当N很大时,接近SCAN算法

当N=1时,蜕化为FCFS算法

F-SCAN

将磁盘请求分为两个子队列,

服务队列

请求队列

用SCAN算法扫描服务队列,并为请求服务,服务期间新到达的请求入请求队列

扫描完成后交换两个队列的地位

-7磁盘IO参数

首先分析一下读/写一个磁盘块需要多少时间。它一般由如下

三个因素确定:

寻道时间(seek time):将磁盘引臂移动到指定柱面所需要的时间;

旋转延迟(rotational delay):指定扇区旋转到磁头下的时间;

传输时间(transfer time):读/写一个扇区的时间

寻道时间Ts计算公式如下:

Ts=m×n﹢s

其中,n为跨越磁道数,m为跨越一个磁道所用时间,s为启动时间。

旋转延迟Tr计算公式如下:

Tr=1/(2r)

其中,r为磁盘转速。该公式给出的是平均旋转延迟,它是磁盘旋转一周时间的一半,即旋转半周所花费的时间。

传输时间Tt计算公式如下:

Tt=b/(rN)

其中,b为要读/写字节数,r为磁盘转速,N为一条磁道上的字节数。

(读取1/M的部分)

例题:

例8-1.设有一个只有一个移动磁头的磁盘,磁道由外向内编号0、1、2、…、199,磁头移动一个磁道所需时间为1ms,每个磁道有100个扇区,磁盘转速6000r/m。采用CLOOK引臂调度算法,当前引臂位置处于第100磁道,当前移动方向由外向内,并规定引臂向内扫描时为路经请求服务。对于如下磁道请求120、85、70、30,每个请求访问对应磁道上的一个扇区,问:

(1)给出引臂移动序列,计算引臂移动量和寻道时间,忽略启动时间;

(2)计算平均旋转延迟时间;

(3)计算传输时间;

(4)计算所有访问处理时间。

-8缓冲技术

概念:设备处理数据到达与离开速度不一致所采用的技术。

-Buffering vs. Caching

buffering: one data copy

caching: multiple data copy (slow多, fast少)

-硬缓冲与软缓冲

硬缓冲区通常设在设备中 

软缓冲区通常设在内存系统空间

-私用缓冲与公共缓冲

一个缓冲区与一个固定设备相联系,不同设备使用不同的缓冲区

-利用率低

缓冲区由系统统一管理,按需要动态分派给正在进行I/O传输的设备

缓冲池:

-9:虚拟设备

用户使用独占型设备活动: 申请,使用,使用,…,使用,释放

缺点:

===速度:CPU与设备速度不匹配 

===设备利用率:占有期间不一定一直使用\

实现方法

:在进程与独占型设备之间增加共享设备缓冲

流程如下:

申请:

        分配一虚设备

        分配一实设备

        信息由实设备==>虚设备

        去配该实设备

使用:

        信息由虚设备==>进程空间

释放:

        去配虚设备

例子:
SPOOLing输入

作业预输入(输入机==>输入井)

SPOOLing输出

作业缓输出(输出井==>输出机)

作业控制块:


作业存在标志,其中保存系统管理作业需要的全部信息。

JCB内容:

作业标识 用户标识 作业状态 调度参数 作业位置 资源需求 进入时间 处理时间 记账信息

-10:稳定存储器

实现

恢复:鉴别两个数据块内容

一对信息完全相同,且无检测到错误,正常

其中一块检测到错误,用另一块取代

两块均未检测到错误,但内容不同,用第二块内容取代第一块内容

http://www.xdnf.cn/news/1066681.html

相关文章:

  • 飞往大厂梦之算法提升-7
  • 第一节 布局与盒模型-Flex与Grid布局对比
  • Java的SpringAI+Deepseek大模型实战【二】
  • Vue实现选中多张图片一起拖拽功能
  • 华为HN8145V光猫改华为蓝色公版界面,三网通用,xgpon公版光猫
  • [NocoDB] 在局域网中调整Float类型显示精度的部署经验
  • 《哈希表》K倍区间(解题报告)
  • 数组题解——​轮转数组【LeetCode】
  • K8S下http请求在ingress和nginx间无限循环的问题
  • Docker 永久换源步骤
  • 基于ASP4644多通道降压技术在电力监测系统中集成应用与发展前景
  • Maven 之 JUnit 测试体系构建全解析
  • 基于SpringBoot + Vue 的网上拍卖系统
  • leetcode543-二叉树的直径
  • 通信网络编程3.0——JAVA
  • Spring Cloud微服务
  • Java面试题027:一文深入了解数据库Redis(3)
  • 【软考高级系统架构论文】论数据分片技术及其应用
  • Redis中的bigkey的介绍及影响
  • 安全再升级! 正也科技通过信息安全等级保护三级备案
  • 七八章习题测试
  • 高级版 Web Worker 封装(含 WorkerPool 调度池 + 超时控制)
  • 本地文件深度交互新玩法:Obsidian Copilot的深度开发
  • 能耗管理新革命:物联网实现能源高效利用
  • 小学期前端三件套学习(更新中)
  • 开启游戏新时代:神经网络渲染技术实现重大跨越
  • 【Torch】nn.GRU算法详解
  • 前端跨域解决方案(7):Node中间件
  • 容器技术入门与Docker环境部署指南
  • asp.net core Razor动态语言编程代替asp.net .aspx更高级吗?