I/O设备管理与文件系统

目录

一, I/O设备概述

1.1 设备控制器

二, I/O 地址

2.1 I/O独立编址

2.2 内存映像编址

2.3 混合编址

三, I/O 控制方式

3.1 程序循环检测

3.2 中断驱动方式

3.3 直接内存访问方式

四, I/O软件

五, 磁盘

5.1 磁盘的组成

5.2 磁盘调度算法

5.3 固态硬盘原理

六, 文件系统

6.1 文件的概述

6.2 文件系统的布局

6.3 文件系统的实现


一, I/O设备概述

        即输入输出(Input/Output)设备, 如键盘, 鼠标, 打印机, 显示器, 磁盘网卡等。

1.1 设备控制器

        每一个输入输出单元由两个部分组成, 一个是机械部分(如显示器), 一个是电子部分(如显卡)。

示意图:

二, I/O 地址

        每个设备控制器里面都有寄存器, 用于CPU通信, 如控制寄存器, 状态寄存器, 数据寄存器等。

2.1 I/O独立编址

        给所有设备控制器中的每一个寄存器分配一个唯一的I/O端口地址。

        特点: 需要专门的输入输出指令, 但易区分是对内存访问还是对I/O设备访问

2.2 内存映像编址

        把设备控制器中的寄存器都映射为一个内存地址

区别图:

        特点: 编程方便, 无需专门I/O指令, 但每一次都要判断访问的是内存还是I/O。 

2.3 混合编址

        把以上两种情况结合起来, 对于设备控制器中的寄存器, 采用独立编址, 对于设备缓冲区, 采用内存映像编址。

三, I/O 控制方式

        即对设备控制器中的各种寄存器进行通信。

3.1 程序循环检测

        每一次I/O操作都循环地区检测设备的当前状态。即繁忙等待方式, 一直占用CPU

示意图:

 

3.2 中断驱动方式

        即依赖硬件支持, 使用中断驱动方式, 在I/O操作完成后发送中断信号, 防止死等。

3.3 直接内存访问方式

        增加硬件, 独立于CPU运行, 可直接访问系统总线, 每一次的读写由DMA控制器来完成, CPU通过写操作对其发送命令。

原理图:

四, I/O软件

软件的层次图:

        中断处理程序: I/O设备完成一次操作, 设备控制器向中断控制器发信号, 进而中断控制器想CPU发信号, 从而触发一次中断, 执行中断处理程序。

        设备驱动程序: 控制设备运行的程序, 有设备的生产厂商提供。

        设备独立的I/O软件: 主要有两个接口, 一个是应用程序与系统之间的接口, 一个是操作系统与I/O设备之间的接口。

        用户空间的I/O软件: 库函数与Spooling技术(实现对独占设备的共享, 如打印机的共享)。

Spooling技术原理图:

五, 磁盘

5.1 磁盘的组成

        柱面: 由所有盘面上, 半径相同的所有磁道组成。

        扇区: 对于每一个磁道, 平均划分为一个个的小格子, 每个小格子就是一个扇区。

磁盘结构图:

盘面结构:

        磁盘的读写: 以扇区为单位, 一般为512B, 修改一个字节也需一个扇区整体重写。

5.2 磁盘调度算法

        访问一个磁盘扇区时间 = 柱面定位时间 + 旋转延迟时间(找扇区) + 数据传送时间

        先来先服务: 效率不高, 磁头可能反复移动, 增加了柱面定位时间。

        最短定位时间优先算法: 优先选择从当前磁头出发, 移动距离最短的先访问。如果需要访问的扇区位于磁盘中间, 会比较有利; 位于磁盘两端, 则不利。

        电梯法: 从当前位置出发, 先沿一个反向, 然后再换一个方向, 对于任何一组访问, 磁头移动距离最多为柱面的总数的两倍。

5.3 固态硬盘原理

        备注: 隧穿层本质上也相当于绝缘体,所以电子们只能被关押着, 但随着时间的流逝,不断地有电子“越狱”成功。即固态硬盘能够存储数据的年限。

        固态硬盘有擦写次数限制: 浮栅晶体管擦写的过程中,电子反复在隧穿层反复进出,导致隧穿层损坏,不能有效的阻拦电子,失去了隧穿层应有的作用。

        原理参考: SSD原理

六, 文件系统

6.1 文件的概述

        文件的命名: 文件名 + 扩展名

        文件的结构: 无结构(当前使用), 简单的记录结构, 复杂结构(树形结构)

        文件的分类: 普通文件(二进制文件, ASCII文件), 目录文件(文件夹)

多级目录结构图:

6.2 文件系统的布局

示意图:

        MBR: 主引导记录, 用来启动计算机。

        分区表: 记录每一个分区的起始扇区和大小。

        引导块: 功能是将该分区中存放的操作系统程序装入到内存(操作系统不一定需要在C盘)。

        备注: 计算机启动后, 主板上的BIOS程序被执行, 检查并设置系统中各种硬件资源。将MBR当中的引导程序装入到内存中运行, 将活动分区(装有操作系统的分区)的引导块当中的程序装入到内存中运行, 即操作系统程序。

6.3 文件系统的实现

        数据结构为文件控制块(FPC);物理结构有连续结构, 链表结构, 索引结构。

6.3.1 连续结构

         即顺序结构, 把文件的各个逻辑块安装顺序存放在连续的物理块中。

        特点:易于实现, 磁盘访问快, 但文件不能动态增长, 会有外部碎片。

示意图:

 

6.3.2 链表结构

        文件的各个逻辑块依次放在若干个物理块中, 各个块通过指针连接起来。

        特点:文件大小可以动态变化, 但访问文件只能顺序访问, 不能随机访问。

示意图:

 

6.3.3 索引结构

        把文件的每一个逻辑块对应的物理块编号直接记录在一个物理块中, 此物理块做索引块。

示意图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值