(2021) 22 [持久化] 1-Bit的存储

南京大学操作系统课蒋炎岩老师网络课程笔记。

视频:https://www.bilibili.com/video/BV1HN41197Ko?p=22
讲义:http://jyywiki.cn/OS/2021/slides/12.slides#/

背景

回顾

操作系统是什么?一组对象 + 一组API

  • 一组对象

    • UNIX: everything is a file

      • 数据 /bin/sh, a.txt, …
      • 设备 /dev/tty, /dev/sda, …
  • 一组 API
    • open, read, write, fork, execve, exit, mmap, …

最后没有解释的部分 :持久化

  • 文件是如何实现的?
  • 为什么关机以后文件还在?

本次课程的目标

理解 1-bit 在物理世界中是如何存储的,以及它们背后的存储设备

  • 磁:磁带、磁盘、软盘
  • 光:光盘、CD-RW
  • 电:NAND Flash

为什么要在这门课讨论持久化?持久化:有关 “操作系统对象” 的故事

  • “最小” 操作系统里的对象

    • 进程 (状态机)
    • (持久保存) 的数据 (文件)
      • making information persist, despite computer crashes, disk failures, or power outages is a tough and interesting challenge
    • 文件系统接管了 UNIX 世界的 “对象管理”

存储介质及评估方法

持久化:需要 “non-volatility”

  • 能把 1-bit 稳定持久地存储在物理世界

    • 再次见证人类的历史!

存储设备

  • 逻辑上可以看成是一个 bit/byte array

    • 1 TB 的磁盘 = 1T 个 1-byte (8∗1012 个 1-bit)
    • 通常支持按块 (block) 的方式读写
      • 区别于 RAM (Random Access Memory)
  • 评价方法:价格、扩展性 (容量)、速度、可靠性

存储介质:磁

磁带

介绍

用 “磁化方向” 表示 1-Bit 信息,物理空间一定区域的磁介质,将N/S 极的朝向作为 1-bit。

分析

  • 价格:非常低

  • 扩展性 (容量):非常高

  • 读写速度:顺序读取:勉强;随机读取:几乎完全不行。

  • 可靠性:存在机械部件、需要保存的环境苛刻。

  • 今天的应用场景:冷数据的专用备份

磁鼓

介绍

“并行版” 磁带

如果把磁带看成 “一维” 存储,磁鼓就是磁带的集合。

分析

  • 更快的速度
  • 更好的随机 read/write 性能

磁盘*

介绍

“二维并行版” 磁带

  • 我们可以用整个二维平面来存储 bits
  • 在二维平面上寻址需要两个维度的控制

依靠 3D 技术,有望突破 100 TB 存储。

盘片 + 柱面 + 磁道 + 扇区 = 定位到 512 字节

  • 为了读/写一个扇区

    1. 读写头需要到对应的磁道
    2. 转轴将盘片旋转到读写头的位置

分析

分析

  • 价格:很低

  • 扩展性 (容量):很高 (二维平面上铺满的磁带 + 多个盘片)

  • 读写速度:顺序读取:较高;随机读取:勉强。

  • 可靠性:存在机械部件、磁头划伤盘片导致数据损坏

  • 今天的应用场景:计算机系统的主力数据存储 (海量数据:便宜才是王道)

性能调优

为了读/写一个扇区

  1. 读写头需要到对应的磁道

    • 7200rpm → 120rps → “寻道” 时间 8.3ms
  2. 转轴将盘片旋转到读写头的位置
    • 读写头移动时间通常也需要几个 ms

通过缓存/调度等缓解

  • 例如著名的 “电梯” 调度算法
  • 现代 HDD 都有很好的 firmware 管理磁盘 I/O 调度
    • /sys/block/[dev]/queue
    • noop deadline [cfq]

软盘

介绍

降低交换数据的成本:把磁盘 (硬盘) 的读写头和盘片分开,分成电脑上的读写头 (drive) 和磁盘 (disk)。

分析

  • 价格:低

  • 扩展性 (容量):低 (暴露的存储介质)

  • 读写速度:顺序/随机读取:低

  • 可靠性:低 (暴露的存储介质)

  • 今天的应用场景:躺在博物馆供人参观

存储介质:坑(光)

除了磁介质以外,还有别的办法可以存储 1-bit 吗?

CD (Compact Disk)

介绍

在完美反射光线的表面上挖出 (几乎) 不反射光线的坑,激光扫过表面,就能读出坑的信息来。

由飞利浦 (激光碟片) 和索尼 (数字音频) 发明。

分析

  • 价格:很低 (而且很容易通过 “压盘” 复制)

  • 扩展性 (容量):高

  • 读写速度:顺序读取速度高;随机读取勉强;写入速度近乎为零 (挖坑容易填坑难)

  • 可靠性:高

  • 今天的应用场景:数字媒体的分发 (即将被互联网 “按需分发” 淘汰)

”挖坑“ 技术的进展

CD (740 MB):780nm 红外激光

DVD (4.7 GB):635nm 红色激光

Blue Ray (100 GB):405nm 蓝紫色激光

“挖坑” 不只是数据存储

光刻机

CD-RW

能否克服只读的限制?

  • 方法 1

    • 用激光器烧出一个坑来 (“刻盘”)
    • 使用持久化数据结构 (append-only)
  • 方法 2:改变材料的反光特性

    • PCM (Phase-change Material)
    • How do rewriteable CDs work?

存储介质:电

之前的持久存储介质都有致命的缺陷

  • 磁:机械部件导致 ms 级延迟
  • 坑 (光): 一旦挖坑,填坑很困难 (CD是只读的)

最后还得靠电 (电路) 解决问题

Solid State Drive

介绍

Flash Memory “闪存”:floating gate 的充电/放电实现 1-bit 信息的存储。

分析

  • 价格:低 (大规模集成电路,便宜)
  • 扩展性 (容量):高 (3D 空间里每个 (x,y,z) 都是一个 bit)
  • 读写速度:高(直接通过电路读写)
    • 不讲道理的 IMBA 特性:容量越大,速度越快 (电路级并行)
    • 快到需要淘汰了旧的 SATA 接口标准 (NVMe)
  • 可靠性:高 (没有机械部件,随便摔)。

但有一个意想不到的缺点 (大家知道是什么吗?) —> 寿命较短。

寿命

放电 (erase) 做不到 100% 放干净

  • 放电数千/数万次以后,就好像是 “充电” 状态了
  • dead cell; “wear out”
    • 必须解决这个问题 SSD 才能实用

USB Flash Disk

介绍

优盘容量大、速度快、相当便宜。很快就取代了软盘,成为了人手 nnn 个的存储介质。

  • Compact Flash (CF, 1994)
  • USB Flash Disk (1999, “朗科”)

NAND Wear-Out 的解决:软件定义磁盘

每一个 SSD 里都藏了一个完整的计算机系统

  • FTL: flash translation layer,“wear leveling”: 软件管理那些可能出问题的 blocks。

wear leveling

维护一个 block lookup table (BLT)

  • 然后 copy-on-write!
  • 垃圾回收、block 重分配……

U盘和SSD的区别

优盘, SD 卡, SSD 都是 NAND Flash

  • 但软件/硬件系统的复杂程度不同,效率/寿命也不同

    • 典型的 SSD

      • CPU, on-chip RAM, 缓存, store buffer, 操作系统 …
      • 寿命: ~1 PiB 数据写入 (~1,000 年寿命)
    • SD 卡
      • SDHC 标准未规定

        • 黑心商家一定会偷工减料 (毕竟接口完全一样)
      • 但良心厂家依然有 ARM 芯片

一定不要用便宜的优盘保存重要数据

FTL: 性能、可靠性、安全性的难题

大家可记得修电脑引发的血案?

  • 首先,(快速) 格式化是没用的(如实验M5)。
  • 在你理解了 FTL 之后,即便格式化后写入数据 (不写满),同一个 LBA 被覆盖,PBA 依然存储了数据 (copy-on-write)。

总结

本次课内容与目标

  • 理解 1-bit 在物理世界中是如何存储的

    • 磁、光、电和它们对应的存储设备

Takeaway messages

  • 存储技术一直在发展

    • 多核心处理器、GPU、TPU, … 全部都对内存带宽有巨大的需求
    • NVM 容量超过 DRAM, 性能开始接近 DRAM, 会发生什么?
      • 例子: Intel/Micron 3D XPoint (PCM)
  • 将来,计算机系统基础/操作系统书的教科书必将被改写

(2021) 22 [持久化] 1-Bit的存储相关推荐

  1. (2021) 24 [持久化] 文件系统API

    (2021) 24 [持久化] 文件系统API 南京大学操作系统课蒋炎岩老师网络课程笔记. 视频:https://www.bilibili.com/video/BV1HN41197Ko?p=24 讲义 ...

  2. (2021) 25 [持久化] 文件系统实现:FAT和UNIX文件系统

    (2021) 25 [持久化] 文件系统实现:FAT和UNIX文件系统 南京大学操作系统课蒋炎岩老师网络课程笔记. 视频:https://www.bilibili.com/video/BV1HN411 ...

  3. (2021) 23 [持久化] I/O设备与驱动

    (2021) 23 [持久化] I/O设备与驱动 南京大学操作系统课蒋炎岩老师网络课程笔记. 视频:https://www.bilibili.com/video/BV1HN41197Ko?p=23 讲 ...

  4. 结构 win32_COM编程攻略(十五 持久化与结构化存储)

    前情提要: Froser:COM编程攻略(十四 连接点与其ATL实现)​zhuanlan.zhihu.com 这一篇主要来说一下持久化和结构化存储. 本篇文章和上一篇没有关系. 一.什么是持久化(Pe ...

  5. Adobe Photoshop 2021 22.1.1.138中文版(win/mac)

    转载自亿品元素 原文链接:http://www.epinv.com/post/7718.html Adobe Photoshop(简称PS)是全球最流行的图像及照片后期处理专业软件.当前最新版本号为: ...

  6. 联想集团:2021/22财年第一季度业绩

    联想第一季度业绩创新高,净利润倍增转型战略成效显现,推动盈利能力的长期及可持续增长 香港 -- (美国商业资讯) -- 联想集团(HKSE:992)(PINK SHEETS:LNVGY)今天公布创历史 ...

  7. Photoshop 2021 22.4.3 精简版

    软件介绍 Adobe Photoshop(简称PS)是全球最流行的图像处理软件,知名图像及照片后期处理大型专业软件.Adobe Photoshop 是 Adobe Creative Cloud 创意云 ...

  8. 科技云报道:2021《分布式文件系统和对象存储魔力象限图》解读

    科技云报道原创. 近日,Gartner公布了2021年的<分布式文件系统和对象存储魔力象限图>,此次一共有十五家厂商进入魔力象限,与上一年度相比,变化不算大. 我们看到,戴尔和IBM作为老 ...

  9. [Windows] Adobe Photoshop 2021 22.0.02021

    Aobe Photoshop 2021版本目前已经出来了,总体变化不大,软件最大的不同就是启动图标了,能让人一眼就看出来你用的是2021版本.软件更注重智能,提供了AI的功能.不过说实话,这些功能,国 ...

最新文章

  1. 这是什么操作?导师一作,研究生挂通讯...
  2. 使用阿里云的maven私服的setting.xml, 提高maven项目jar下载速度
  3. Entity framewrok (linq to entity)查询优化的一点摸索
  4. MySql 数据库 - 重置数据库、重置初始密码方法,数据库初始化方法,长时间不用忘记密码暴力解决方法
  5. iOS对UIViewController生命周期和属性方法的解析
  6. iptables之iptables命令详解
  7. 天源迪科阿里云,打造卓越的数字化采购平台
  8. Shell脚本基本规则
  9. 携程apollo系列-个人开发环境搭建
  10. 锐动天地光盘刻录大师6.2 注册码
  11. TAOUP初译稿_HOOK
  12. 唤醒手腕Python全栈工程师学习笔记(人工智能篇)
  13. PC上无法捕捉vlan tag的原因
  14. 一个比较稳定的PLC通讯模块设计
  15. orm查询方式与优化
  16. onload extensions api
  17. 全文检索系统技术架构及流程说明
  18. MYSQL索引使用技巧及注意事项
  19. 2022年最新河南建筑施工电工(建筑特种作业)模拟试题及答案
  20. mysql 时间戳加减_mysql加减时间-函数-时间加减

热门文章

  1. RabbitMQ 下载安装配置_集群高可用篇_02
  2. 快速开发工作流_03_集成在线流程设计器_内置用户免登录
  3. 前端_网页编程 WebAPI_01
  4. html-下拉框、文本域、文件域
  5. qt样式表中背景图片的使用
  6. php 登陆微博,PHP调用微博接口实现微博登录的方法示例
  7. python爬取新闻网站内容findall函数爬取_Python爬取新闻网标题、日期、点击量
  8. linux中group命令详解,linux groupmod命令参数及用法详解
  9. android arm 寄存器,ARM汇编
  10. mysql 字符转换函数是_MySQL日期和字符串转换函数