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

计算机系统概述(5)

辅助存储器简称辅存,用于存放需持久性存储的信息。其特点是存储器容量大、可靠性高、价格低。常用的辅存有硬件驱动器、固态硬盘、U盘和光盘等。
◆硬盘分为三类:机械硬盘(HDD)、固态硬盘(SSD)和混合硬盘(SSHD)。
◆其中,机械硬盘是传统硬盘,其信息分布呈以下层次:记录面、圆柱面、磁道(读取时间较长)和扇区(读取时间较短)。
◆一块磁盘有正反两个盘面,每个盘面有多个同心圆,每个同心圆是一个磁道,每个同心圆又被划分为多个扇区,数据就被存放在一个个扇区中,多块磁盘在一起,不同磁盘磁道上下之间就会组成柱面。
硬盘的存取时间主要包括三个部分:第一部分是指磁头从原先拉置移动到目的磁道所需要的时间,称为寻道时间或查找时间;第二部分是指到达目的磁道以后,等待被访问的记录块旋转到磁头下方的等待时间;第三部分是指信息的读写操作时间(很快,可忽略不计)
因此可认为,磁盘存取时间=寻道时间+等待时间

磁盘调度算法

磁盘数据的读取时间分为寻道时间+旋转时间,也即先找到对应的磁道,而后再旋转到对应的扇区才能读取数据,其中寻道时间耗时最长,需要重点调度,有如下调度算法:磁盘调度算法

磁盘调度算法是操作系统用于管理磁盘I/O请求顺序的策略,旨在减少磁头移动时间(寻道时间)提高磁盘吞吐量,并降低响应时间。以下是常见的磁盘调度算法及其特点:


1. 先来先服务(FCFS, First-Come-First-Served)

  • 原理:按请求到达的顺序处理。

  • 示例
    磁头当前位置:50
    请求队列:[80, 30, 120, 10]
    移动顺序:50 → 80 → 30 → 120 → 10
    总寻道距离:30 + 50 + 90 + 110 = 280

  • 优点:简单公平,无饥饿问题。

  • 缺点:效率低(磁头可能频繁来回移动)。


2. 最短寻道时间优先(SSTF, Shortest Seek Time First)

  • 原理:优先处理离当前磁头位置最近的请求。

  • 示例
    磁头位置:50
    请求队列:[80, 30, 120, 10]
    移动顺序:50 → 30 → 10 → 80 → 120
    总寻道距离:20 + 20 + 70 + 40 = 150

  • 优点:平均寻道时间较短,吞吐量较高。

  • 缺点:可能导致饥饿(远距离请求长期得不到响应)。


3. 扫描算法(SCAN,电梯算法)

  • 原理:磁头沿一个方向移动,处理途经的请求,到达磁盘一端后反向移动。

  • 示例(假设磁头初始方向为向外):
    磁头位置:50
    请求队列:[80, 30, 120, 10]
    移动顺序:50 → 80 → 120(末端)→ 30 → 10
    总寻道距离:30 + 40 + 90 + 20 = 180

  • 优点:公平性较好,无饥饿问题。

  • 缺点:末端请求的响应时间可能较长。


4. 循环扫描算法(C-SCAN)

  • 原理:类似SCAN,但磁头到达一端后立即返回起点(不处理返回途中的请求)。

  • 示例
    磁头位置:50,方向向外
    请求队列:[80, 30, 120, 10]
    移动顺序:50 → 80 → 120 → 0(快速返回)→ 10 → 30
    总寻道距离:30 + 40 + 120 + 10 + 20 = 220

  • 优点:响应时间更均匀(适用于负载均衡场景)。

  • 缺点:空返造成一定效率损失。

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

相关文章:

  • Bandizip 7.38专业版安装教程【超详细】一键安装教程(永久使用)
  • MySQL 基础笔记
  • RNN:从记忆困境到序列建模革命
  • docker-compose和docker下载
  • 如何在docker desktop上安装mysql
  • 20250611让NanoPi NEO core开发板在Ubuntu core16.04系统下开机自启动的时候拉高GPIOG8
  • 缓冲区(C语言缓冲区+内核缓冲区)一个例子解释他们的关系和作用!!!
  • ElasticSearch 操作索引与映射的API
  • Springboot+idea热更新
  • 【全志V821_FoxPi】2-1 首次编译Tina5.0 SDK
  • Redis:set类型和zset类型
  • Google reCAPTCHA实现
  • 在线客服系统:未来商业沟通的关键武器
  • 使用VirtualBox安装ubuntu22.04虚拟机
  • 怎么设置51la统计?新手快速设置悟空统计
  • 大模型笔记_模型微调 vs RAG
  • 23、Python字符串核心机制解析:驻留原理、对象比较与成员检测实战
  • 亮数据抓取浏览器,亚马逊数据采集实战
  • 【电路物联网】SDN架构与工作原理介绍
  • 护照阅读器在景区的应用
  • Vue 数据代理机制实现
  • 什么是数据交换?有哪些数据交换方式?
  • Rust 学习笔记:关于 Future trait 和 Async 语法的练习题
  • el-select滚动分页加载、模糊搜索
  • 代码填空题技术实现:突破 highlight.js 安全限制的工程实践
  • Java Collection接口解析
  • c++算法学习6——迪杰斯特拉算法
  • 用 OpenSSL 库实现 3DES(三重DES)加密
  • CKA考试知识点分享(10)---NetworkPolicy
  • 【Git】TortiseGit设置过滤上传文件