操作系统笔记-IO与存储

本文详细介绍了设备管理的基本概念,包括程序直接控制、中断控制、DMA和通道控制等多种I/O控制方式,以及如何通过缓冲技术提高效率。还深入探讨了磁盘调度算法如FCFS、SSTF、SCAN、C-SCAN和C-LOOK,并阐述了固态盘SSD的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

设备管理概述

三种设备管理方法

I/O控制方式

程序直接控制(查询)方式

中断控制方式

直接内存存取方式 - DMA

通道控制方式(智能设备)

缓冲技术

缓冲的目的

缓冲技术的实现方法

SPOOLING

磁盘设备

认识磁盘

磁盘调度

FCFS先到先服务磁盘调度

SSTF最短寻道时间优先

SCAN扫描/电梯算法

C-SCAN循环扫描磁盘调度

C-LOOK磁盘调度

硬盘布局

固态盘SSD


设备管理概述

三种设备管理方法

- OS直接操纵设备的运行

    直接程序控制、中断方式

- OS间接操纵设备的运行

    DMA和管道方式

- OS通过使用设备驱动程序

     将设备管理工作通过任务(进 程)的形式来体现。OS只需制定标准,将具体操纵设备的程序交给不同 的制造商去开发

I/O控制方式

        设备管理的主要任务之一是控制设备和内存或CPU之间的数据传送

程序直接控制(查询)方式

(轮询)

    1. 当进程需要数据时,CPU向设备控制器发出IO指令启动工作
    2. 当设备输入输出数据期间,CPU不断查询设备状态,检查IO工作是否完成
    3. 若完成,对于输入操作CPU从寄存器取数,否则继续检查            

中断控制方式

        中断是大部分IO的处理方式

1. CPU发送read指令,然后做其他工作,与IO并行

  进程A有IO请求,则向IO控制器发read指令,然后A阻塞,调度其他进程工作

2. read IO 状态
- 检查IO状态是否就绪

    - 若未就绪则进行出错处理

- 若就绪CPU从IO读取数据,然后写入内存        

直接内存存取方式 - DMA

        将一些简单任务交给DMA(直接内存存取)

1. 进程需要设备输入数据时,CPU对DMA进行初始化
2. 进程阻塞,等待数据输入完成
3. DMA控制数据传输

通道控制方式(智能设备)

通道具有简单CPU功能,可管理多个设备同时工作,真正实现CPU与外设并行工作

缓冲技术

缓冲的目的

        解决CPU与外设速度不匹配的矛盾,提高CPU与外设之间的并行性,减少对CPU的中断频率

缓冲技术的实现方法

- 硬件缓冲

  利用专门的硬件寄存器作为缓冲区,一般由外设自带的专用寄存器

- 软件缓冲

  借助操作系统的管理,在内存中专门开辟若干单元作为缓冲区

    - 单缓冲

        - 在内存中开辟一个固定大小的区域作为缓冲区
        - 外设与CPU对缓冲区的操作是串行的

    - 双缓冲

        - 内存中设置2个大小相同的缓冲区
        - 并行:外设与CPU交替使用

    - 环形缓冲

        - 内存中设置大小相等的多个缓冲区,并链接成一个环形链表

    - 缓冲池

      多个大小相同的缓冲区组成

        - 池中的缓冲区是系统公共资源,所有进程共享
        - 由系统管理程序统一管理,负责分配回收工作

SPOOLING

外部设备同时联机操作(假脱机操作)

磁盘设备

认识磁盘

- 磁盘的寻址单位、访问单位:扇区
- 扇区大小:512字节
- 扇区的大小是传输时间和碎片浪费的折中
- 磁盘访问延迟 = 队列时间 + 控制器时间 + 寻道时间 + 旋转时间+传输时间

  寻道时间:8~12ms
  旋转时间:4~8ms(半周)
  传输时间:0.25ms

磁盘调度

多个磁盘访问请求时
目标:使平均访问延迟最小
主要考察:寻道时间

FCFS先到先服务磁盘调度

  实例: 磁头开始磁道位置=53;请求队列=98, 183, 37, 122, 14, 124,65,67
  按请求的顺序调度:183-53 + 183-37 + 122-37 + 122-14 + 124-14 + 124-65 + 67-65
  移动640条磁道

SSTF最短寻道时间优先

  实例: 磁头开始位置=53;请求队列=98, 183, 37, 122, 14, 124,65,67

53 -> 65 -> 67 -> 37 -> 14 -> 98 -> 122 -> 124 - > 183
  SSTF: 磁头共移动 236=(14+53+169) 磁道

    - 缺点:存在饥饿问题:最远的等很久

SCAN扫描/电梯算法

  实例: 磁头开始位置=53;请求队列=98, 183, 37, 122, 14, 124,65,67

  SSTF+中途不回返(解决饥饿问题)

53 -> 65 -> 67 -> 98 -> 122 -> 124 -> 183 -> 37 -> 14
  SCAN: 移动236 ( 130 +  )

        缺点:不利于远离磁头一端的访问请求

C-SCAN循环扫描磁盘调度

  实例: 磁头开始位置=53;请求队列=98, 183, 37, 122, 14, 124, 65,67
SCAN+直接移到另一端(到头) 

C-SCAN:53+199+134

   
    缺点:两端没有访问请求时不必要移动到头

C-LOOK磁盘调度

    C-SCAN+向前看一看:前面没有请求就回移(不到头)

硬盘布局

磁盘编址

扇区编号

        - 按照(C,H,S)将扇区形成数组,数组索引就是扇区编号
        - 编号A=c*H*S+h*S+s

            - 扇区总数=C*H*S

        - 已知A,求s,h,c

- 扇区

    - 物理盘存储单元、基本编制单元,一般512字节

- 主引导记录MBR

    - 硬盘第一个扇区内容:含引导代码和主分区表

- 分区

    - 硬盘中可作为逻辑盘管理的一组扇区集合

- 可扩展分区

    - 可继续划分成“扇区”的硬盘分区

- 引导分区
- 引导扇区
- 可扩展分区引导记录

固态盘SSD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值