您的位置:首页 > 游戏 > 手游 > 秦皇岛房管局官网网上查询_广东网站设计有名的公司_百度旗下13个app_网站优化怎么做

秦皇岛房管局官网网上查询_广东网站设计有名的公司_百度旗下13个app_网站优化怎么做

2024/12/23 16:56:16 来源:https://blog.csdn.net/m0_73843666/article/details/142359850  浏览:    关键词:秦皇岛房管局官网网上查询_广东网站设计有名的公司_百度旗下13个app_网站优化怎么做
秦皇岛房管局官网网上查询_广东网站设计有名的公司_百度旗下13个app_网站优化怎么做

I/O系统的组成

I/O系统的结构

微机I/O系统
  • 总线型I/O系统结构,CPU与内存之间可以直接进行信息交换,但是不能与设备直接进行信息交换,必须经过设备控制器。
主机I/O系统
  • I/O系统可能采用四级结构,包括主机、通道、控制器和设备。
  • 一个通道客户已控制多个设备控制器,一个设备控制器也可以控制多个设备。

I/O设备的分类

按传输速录分类
  • 低速设备
    • 键盘和鼠标
  • 中速设备
    • 打印机
  • 高速设备
    • 磁带机、磁盘机、光盘机
按信息交换的单位分类
  • 块设备
    • 数据的存取以数据块为单位,如磁盘
  • 字符设备
    • 传送字节流,没有使用块结构,如鼠标
按设备的共享属性分类
  • 独占设备
    • 是必须作为临界资源以互斥方式访问的设备
      • 如打印机
  • 共享设备
    • 是允许多个进程共同访问的设备
      • 如硬磁盘
  • 虚拟设备
    • 是通过某种虚拟技术把一台物理设备变成若干逻辑设备,从用户的角度看,多个用户拥有各自的设备,可以随时向设备发出访问请求并得到系统应答

设备控制器

I/O设备分为机械和电子两部分,设备控制器对应电子部分,通常是可编程的
  • 什么是设备控制器
    • 设备控制器是CPU与I/O设备之间的接口,接收I/O的命令并控制设备完成I/O工作
    • 设备控制器是一个可编址设备,连接多个设备时可有多个设备地址
  • 设备控制器的功能
    • 接收和识别命令
    • 数据交换
    • 设备状态的了解和报告
    • 地址识别
    • 数据缓冲
      • 设备控制器可以存储数据,作为CPU和I/O之间的缓冲
  • 设备控制器的组成
    • 设备控制器与处理机的接口
      • 数据线、控制器、和地址线
    • 设备控制器与设备的接口
      • 设备与设备控制器接口中的3类信号为数据、状态和控制信号
    • I/O逻辑
      • 主要有指令译码器和地址译码器两部分功能部件构成

I/O通道

I/O通道式一种特殊的处理机,它具有执行I/O指令的能力,并通过执行通道程序来控制I/O操作
引入通道能够使CPU从控制I/O的任务重解脱,使CPU与I/O并行工作,提高CPU的利用率和系统的吞吐量

I/O控制方式

轮询

早期的计算机系统,因为没有中断机制,处理器对输入/输出的控制不得不采取程序轮询的方式

中断

现代计算机系统广泛采用中断控制方式完成对I/O的控制

DMA控制方式

对于磁盘驱动器这类的设备,每次数据传输量较大,采用中断控制方式,传输一个数据块就需要进行多次中断处理
DMA控制需要特殊结构的设备控制器
  • 命令/状态寄存器CR
  • 内存地址寄存器MAR
  • 数据计数器DC
  • 数据寄存器DR

缓冲管理

缓冲的引入

在数据到达速率与数据离去速率不同的地方,都可以引入缓冲区。引入缓冲区的主要原因有
  • 处理数据流的生产者与消费者之间的速度差异
  • 协调传输数据大小不一致的设备

单缓冲

对于面向块的设备
  • 输入数据被传送进入系统缓冲区,当传送完成是,进程把该快移到用户空间,并立即请求另一块系统缓冲区。
  • 用户进程可以在下一块数据正在读入系统缓冲区时,处理用户去中的那一块数据
对于面向流的I/O
  • 键盘。打印机和传感器等都属于面向流的设备

双缓冲

当一个进程往这一个缓冲区中传送数据(或从这个缓冲区中读取数据)时,操作系统正在清空(或填充)另一个缓冲区,这种技术称为双缓冲,或缓冲交换

循环缓冲

双缓冲方案可以平滑I/O设备和进程之间的数据流,如果某个特定进程的性能是关注的焦点,常常会希望相关I/O操作能够跟得上这个进程。如果这个进程突然快速执行了大量的I/O,仅有双缓冲就不够了
  • 循环缓冲的组成
    • 多个缓冲区
      • 空缓冲区R:生产者进程下一个可用的空缓冲区
      • 已装满数据的缓冲区G:用于指示消费者进程下一个可用的装有产品的缓冲区
      • 现行工作缓冲区C:消费者进程正在使用的工作缓冲区
    • 多个指针
      • Nextg
        • 用于指示消费者进程下一个可用的装有数据的缓冲区
      • Nexti
        • 用于指示生产者进程下一个可用的空缓冲区
      • Current
        • 用于指示进程正在使用的工作缓冲区
  • 循环缓冲的使用
    • Getbuf过程
      • 消费者进程要使用缓冲区中的数据时,该过程将Nextg指向的缓冲区提供给进程使用,并吧他改成有Current指针指向的现行工作缓冲区,同时使Nextg指向下一个可用的装有数据的缓冲区G
      • 而当生产者进程要使用空缓冲区来装数据时,也通过调用Getbuf过程,把Nexti指示的空缓冲区提供给生产者进程使用,然后使Nexti指向下一个空缓冲区R
    • Releasebuf过程
      • 当进程使用完缓冲区之后,调用Releasebuf过程释放缓冲区
  • 进程同步
    • Nexti指针追上Nextg
      • 生产者进程速度大于消费者进程速度
        • 阻塞生产者进程,等待消费者进程为生产者进程释放空缓冲区R
    • Nextg指针追上Nexti
      • 消费者进程速度大于生产者进程速度
        • 阻塞消费者进程,等待生产者进程为消费者进程释放装有数据的缓冲区G
  • 缓冲池
    • 缓冲池的组成
      • 3种类型的缓冲区
        • 空缓冲区
        • 装满输入数据的缓冲区
        • 装满输出数据的缓冲区
      • 3种队列
        • 空缓冲队列emq
        • 输入队列inq
        • 输出队列outq
      • 4种工作缓冲区
        • 收容输入数据的缓冲区
        • 提取输入数据的缓冲区
        • 收容输出数据的缓冲区
        • 提取输出数据的缓冲区
    • Getbuf过程和Putbuf过程
    • 缓冲区的工作方式
      • 收容输入
        • 在进程需要收容输入数据时,需要先从空缓冲队列提取一个空缓冲区,将输入数据写入缓冲后,再把装入了输入数据的缓冲区插入到输入队列中去
          • Getbuf(emq)
          • 将输入数据写入缓冲区
          • putbuf(inq,hin)
      • 提取输入
        • 当进程需要输入数据时(如计算进程需要提取输入数据,然后对数据进行计算处理),先从输入队列提取输入缓冲区,然后从中提取输入数据,最后把缓冲区作为空缓冲区插入空缓冲队列。
          • Getbuf(inq)
          • 从缓冲区提取数据
          • putbuf(emq,sin)
      • 收容输出
        • 在进程需要收容输出数据时,要先从空缓冲队列提取一个空缓冲区,将输入数据写入缓冲后,再把装入了输出数据的缓冲区插入到输出队列中去。
          • Getbuf(emq)
          • 将输入数据写入缓冲区
          • putbuf(outq,hout)
      • 提取输出
        • 当进程需要输出数据时(如打印进程需要提取输出数据送入打印机),先从输出队列提取输出缓冲区,然后从中提取输出数据,最后把这个缓冲区插入空缓冲队列。
          • Getbuf(outq)
          • 输出数据
          • putbuf(emq,sout)

设备分配

设备分配中的数据结构

设备控制表DCT
控制器控制表COCT
通道控制表CHCT
系统设备表SDT

设备分配

设备的固有属性
  • 独占设备
  • 共享设备
  • 可虚拟设备
设备分配算法
  • 先来先服务
  • 基于优先权的分配算法
设备分配方式
  • 安全分配方式
    • 这种分配方式中,每当进程发出I/O请求后,便进入阻塞状态,直到其I/O操作完成时才被唤醒。
  • 不安全分配方式

设备独立性

设备独立性的概念
  • 为了提高操作系统的可适应性和可扩展性,在现代操作系统中都毫无例外地实现了设备独立性,也称设备无关性。
    • 逻辑设备
    • 物理设备
    • 系统必须具有将逻辑设备名称转换为物理设备名称的功能
实现设备独立性带来的好处
  • 应用程序与物理设备无关
  • 易于处理输入/输出设备的故障
  • 提高了系统的可靠性,增加了设备分配的灵活性
设备独立软件
  • 执行所有设备的共有操作
  • 向用户层软件提供统一的接口

独占设备的分配程序

分配设备
分配控制区
分配通道

SPOOLing技术

什么是SPOOLing(假脱机技术)
  • SPOOLing系统的组成
    • 输入井和输出井
    • 输入缓冲区和输出缓冲区
    • 输入进程SPi和输出进程SPo
利用SPOOLing技术实现共享打印机

I/O软件原理

设备管理软件的功能
  • 实现I/O设备的独立性
  • 错误处理
  • 异步传输
  • 缓冲管理
  • 设备的分配和释放
  • 实现I/O控制方式
中断处理程序
设备驱动程序
与硬件无关的I/O软件

磁盘管理

磁盘结构

数据的组织和格式
  • 存储面
    • 磁道
    • 扇区
磁盘的类型
  • 固定头磁盘
  • 移动头磁盘
磁盘的访问时间
  • 寻道时间
  • 旋转延迟时间
  • 传输时间

磁盘调度

先来先服务
扫描算法
循环扫描算法
NStepSCAN和FSCAN调度算法

提高磁盘I/O速度的方法

提前读
延迟写
优化物理块的分布
虚拟盘
  • 虚拟盘通常用于存放临时文件,如编译程序产生的目标程序等
磁盘高速缓存
  • 一组逻辑上属于磁盘,而物理上是驻留在内存中的盘块

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com