第四讲 外存算法概述

合集下载

《外部存储器》PPT课件

《外部存储器》PPT课件

文件根目录:一个文件的目录称为一个目录项,FAT16
中占32个字节。存放文件名、修改日期时间、文件长度
2021/4及/26 起始簇。
第 99 页
目录区
文件名

文件长度


第二簇号

第三簇号

第四簇号


FFFF
基 础
文件分配表
2021/4/26
日期时间 起始簇号
文件起始簇 文件第二簇 文件第三簇
文件最后簇 数据区
2021/4/26
第 88 页
7.1 硬盘系统
3. 高级格式化(DOS中使用FORMAT) 将全部扇区分成引导区、文件分配
表(FAT)、文件根目录表和数据区四个 区域。
引导区:磁盘参数和引导程序等。
引导区 文件分配表 文件根目录
数据区
文件分配表(FAT):数据区的每一个簇对应文件分配表中
的两个字节,表示该簇被某文件占用并指明该文件下一 簇。FAT表记录着硬盘数据的存储地址,每一个文件都有 一组FAT链指定其存放的簇地址。FAT表的损坏意味着文 件内容的丢失。
2021/4/26
激光
光盘及
检测器 旋转机构
激光 二极管
平行移 动机构
移动 反光镜
第2200 页
7.4 光盘存储系统
5. 光驱的主要技术指标 ① 传输速率
标准速率为150KB/s。N倍速光驱的最大传输速率为 NX150KB/s。对恒定角速度光驱为读外圈光道时的速度。
可写光驱的写速度一般比读速度低的多。
7.4.2 CD-ROM数据格式
经过对CD-DA的数据格式的改进,增强纠错功能形成了 CD-ROM的数据格式,经过标准化后形成High Sierra格式, 用于一般的只读CD盘(模式1)。

计算机存储基础知识研究计算机内存与外存的存储原理

计算机存储基础知识研究计算机内存与外存的存储原理

计算机存储基础知识研究计算机内存与外存的存储原理计算机存储基础知识研究:计算机内存与外存的存储原理计算机存储是指计算机用于存储并处理数据的技术和设备。

它分为内存和外存两个层次,每个层次具有不同的存储原理和特点。

本文将详细介绍计算机内存和外存的存储原理,帮助读者全面了解计算机存储基础知识。

一、计算机内存的存储原理计算机内存是指计算机用于临时存储数据和指令的部件,其存储原理主要包括随机存取存储器(RAM)和只读存储器(ROM)。

1. 随机存取存储器(RAM)随机存取存储器是计算机内存中最常用的一种存储器,其特点是可以随机读写数据。

RAM根据存储介质的不同,分为静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。

SRAM采用触发器作为存储单元,每个存储单元由若干个触发器构成。

SRAM读写速度快,但存储密度低,成本高。

DRAM采用电容作为存储单元,每个存储单元由电容和开关构成。

DRAM存储密度高,成本低,但读写速度较慢。

2. 只读存储器(ROM)只读存储器用于存储不能被改写的数据,其中最常见的是只读存储器(ROM)。

ROM的数据是在制造过程中被写入,并且无法被修改。

ROM的特点是数据的永久性存储和较快的读取速度。

二、计算机外存的存储原理计算机外存是指计算机用于长期存储数据和程序的设备,其存储原理主要包括磁盘存储和固态存储。

1. 磁盘存储磁盘存储是计算机外存中最常用的一种存储方式,其中包括硬盘和软盘。

硬盘是一种采用磁记录原理存储数据的设备,由多个磁性盘片构成。

数据通过磁头读写,可以实现快速的随机读写操作。

硬盘的优点是存储容量大、读写速度快,但价格相对较高。

软盘是一种采用软磁记录原理存储数据的设备,由塑料盘片和软磁性涂层构成。

软盘的存储容量相对较小,读写速度较慢,但价格低廉,便于携带和传输。

2. 固态存储固态存储是一种使用闪存芯片作为存储介质的设备,其中包括固态硬盘(SSD)和闪存驱动器(USB闪存盘)。

算法概述知识点总结

算法概述知识点总结

算法概述知识点总结一、算法的概念1. 算法是什么算法(Algorithm)是指用于解决特定问题的一系列具体操作步骤。

它是一种解决问题的方法论,能够将问题的输入转化为输出。

2. 算法的特点(1)确定性:算法在相同的输入条件下,能够得到相同的输出结果。

(2)可行性:算法的每一步操作可以实际执行,不会陷入无穷循环。

(3)有穷性:算法必须在有限的步骤内结束。

(4)输入输出:算法必须具有输入和输出。

3. 算法的重要性算法在计算机科学领域有着重要的地位,它是计算机程序的核心。

一个好的算法能够提高程序的执行效率和准确性,从而提高计算机系统的整体性能。

二、算法的设计方法1. 分治法分治法(Divide and Conquer)是一种算法设计方法,它将问题分解为更小的子问题,通过递归地解决子问题,最终得到原问题的解。

分治法常用于解决大规模问题,例如快速排序、归并排序、最近点对等。

2. 贪心法贪心法(Greedy Algorithm)是一种构造性的算法设计方法,它每次以最优的策略选择当前的最佳解,从而得到问题的整体最优解。

贪心法常用于最优化问题,例如最小生成树、哈夫曼编码等。

3. 动态规划动态规划(Dynamic Programming)是一种通过将问题分解为更小的子问题来解决复杂问题的算法设计方法。

动态规划通过存储子问题的解以减少重复计算,能够有效解决一些复杂的优化问题,例如背包问题、最长公共子序列等。

4. 回溯法回溯法(Backtracking)是一种通过不断试探和放弃来寻找问题解空间的算法设计方法。

回溯法常用于解决一些搜索和排列组合问题,例如全排列、N皇后问题等。

5. 分析设计算法的分析设计是指分析问题的特性和要求,设计出合适的算法来解决问题。

它是算法设计的关键环节,需要充分考虑问题的复杂度、特性和约束条件,从而选择合适的算法设计方法。

三、算法的复杂度分析1. 时间复杂度时间复杂度是算法执行所需时间的度量,它用大O表示法(O)来描述算法执行时间与输入规模之间的关系。

2019年全国计算机考试四级复习纲要:外存储器的工作原理

2019年全国计算机考试四级复习纲要:外存储器的工作原理

2019年全国计算机考试四级复习纲要:外存储器的工作原理4.外存储器的工作原理外存储器是指那些不能被CPU直接访问的,读取速度较内存慢,容量比内存大,通常用来存放不常用的程序和数据的存储器。

磁带、磁盘存储器是现今最常用的外存,因其利用磁表面介质存储数据,通常也称为磁表面存储器。

而光盘是外存发展的方向,有必要了解它们的原理和应用。

(1)磁盘存储器磁盘存储器具有容量大,存取速度高(相对其他种类外存储器)的特点,因而在各种类型的计算机中普遍被用做主要的外存储器。

磁盘存储器避免了磁带存储的缺点。

磁盘存储器将磁性材料涂粘在以某种材料为主的盘形圆片上,用若干封闭的圆形磁道代替了磁带的长形磁道。

使用时,**磁盘面的高速旋转代替磁带的直线运动,减少寻找特定位置的时间。

磁盘存储器由磁盘、磁头、定位系统和传动系统等部分组成,一般也将这些部件统称为磁盘驱动器。

根据盘片的基本组成材料将磁盘分为硬盘和软盘两种。

所谓硬盘是指由金属材料制成一定厚度的盘片基体,这些盘片一般组合成盘片组构成硬盘驱动器的存储主体。

软盘和硬盘盘片记录信息的方式相同,都是将每个盘面由外向内分成若干个磁道,每个磁道也划分为多个扇区,信息以扇区为单位存储。

扇区是磁盘存放信息的最小物理单位。

扇区包括头空、序标、数据区、检验字段和尾空等几个部分。

通常对磁盘实行的所谓格式化操作就是在磁盘上划分磁道、扇区及扇区内各特定区域,刚出厂的磁盘上没有这些划分,所以必须在格式化后才能使用。

磁盘区域的划分随计算机系统而不同,其存储容量也有较大的差别。

但能够**查阅计算机系统相对应的说明掌握磁盘容量的数据。

计算一个磁盘容量的公式是:磁盘存储容量=盘面数×每盘面磁道数×每磁道扇区数×每扇区存储容量(2)光盘存储器所谓光盘(CD)是利用光学原理读写信息的存储器。

因为光盘的容量大、速度较快、不易受干扰等特点,光盘的应用愈来愈广泛。

光盘系统一般是由光学、电气和机械部件组成。

ewch4存储器PPT课件

ewch4存储器PPT课件

MOS型RAM:功耗小、集成度高、成本低,但速度比
双极型RAM低。
静态存储器(SRAM)
MOS型RAM
读写速度快,通常用来做Cache
动态存储器(DRAM) 需要刷新 存取速度慢 通常用来做内存
.
9
DRAM内存条的种类
SIMM——Single Inline Memory Module单列直插式内存模块
❖高速缓存:或称cache,介于CPU与主存之间的容量更小、 而速度更快的存储器。 ❖辅存:或称外存,它用来永久存放各种信息。
.
3
4.1 存储器概述
1、存储器的分类
(2)按存储介质(纪录0、1信息的物质)分类:
❖ 半导体存储器:用半导体材料制成的存储器,大多用 作主存。
❖ 磁表面存储器:利用磁层来纪录信息,工作时由磁头 在磁层上的移动,来进行读或写操作。磁表面存储器常 用作辅存,如硬盘、软磁盘、磁带等。 (磁介质通常要避免粉尘、高温、烟雾的影响。磁介质 的磁性会随着时间的流逝而慢慢降低,最终导致数据丢 失。)
.
14
4.1 存储器概述
2、存储器的层次结构
(1)多级存储结构的形成:
❖ CPU不断的访问存储器,存储器的存取速度将直接影响计 算机的工作效率。
❖ 在某一段时间内,CPU只运行存储器中部分程序和访问部
分数据,其中大部分是暂时不用的。
CPU
增加Cache的目的是为了
CPUபைடு நூலகம்
提高CPU运行速度,提
Cache
.
6
当烧灼光盘时,激 光将反射层上刻出 凹坑。这些凹坑是 黑色的,不能反射 激光
当光驱读取 数据的时候, 它使用较弱 的激光。激 光射在凹坑 上,没有反 射光

外部存储器PPT演示课件

外部存储器PPT演示课件
8
硬盘系统
1973年IBM终于推出了使用温彻斯特技术的第一块 硬盘,型号为3340,它采用14英寸的规格,由两个 分离的盘片构成(一个固定的和一个可移动的),每张 盘片容量为30MB。并且硬盘首次使用了封闭的内部 环境,并进一步发展了气动学磁头技术,将磁头与 盘片之间的距离缩短到了17微英寸。
10
硬盘系统
硬盘的分类
根据接口技术的不同来划分的,我们可以 把硬盘分为
IDE硬盘 高端的SCSI硬盘 更为先进的Serial ATA硬盘
11
硬盘系统
硬盘的结构
1. 内部结构 硬盘内部包括浮动磁 头组件、磁头驱动机 构、盘体及主轴驱动 机构、前置读写控制 电路和接口电路等。 封装在硬盘的净化腔 体内。
柱面(Cylinder):各个盘面上同一编号磁道的组合。
外圈磁道 中圈 磁道 内圈 磁道
单个 扇区
13
硬盘系统
3. 记录格式 每一扇区除存放512字节的用户数据外,
还存放着用于同步、数据定位、数据校验等 作用的辅助数据,这些数据一般只作用于硬 盘内部。
14
硬盘系统
4 . 硬盘的基本工作原理 初始化:加电正常工作后,利用控制电路中的单片机初始化模
块进行初始化工作,此时磁头置于盘片中心。 启动:主轴电动机将启动并以高速旋转,装载磁头的悬臂机构
移动,将浮动磁头置于盘片表面的00道,处于等待指令的启 动状态。 读/写:当接口电路接收到微机系统传来的指令信号后,通过 前置放大控制电路,驱动音圈电动机发出磁信号,根据感应 阻值变化的磁头对盘片数据信息进行正确定位,并将接收后 的数据信息解码,通过放大控制电路传输到接口电路,反馈 给主机系统完成指令操作。 断电:硬盘断电时,在力矩反弹的作用下,浮动磁头驻留到盘 面中心。

计算机组成原理外存与IO设备要点课件

计算机组成原理外存与IO设备要点课件
02
这些设备在特定应用场景下发挥 重要作用,如摄像头用于视频通 话和会议,游戏手柄用于游戏控 制等。
06
CATALOGUE
IO设备的工作原理
显示器的工作原理
显示器的工作原理
显示器是计算机的重要输出设备,用于将计算机内部的数据以可视化的方式呈现给用户。显示器通过将计算机传输的 信号转换成图像,使用户能够直观地查看和交互。
固态硬盘
总结词
固态硬盘(SSD)是一种基于闪存的存储器,具有高速读写、低功耗、抗震等特点。
详细描述
固态硬盘内部由多个闪存芯片组成,数据存储在闪存芯片的存储单元中。由于没有机械运动,固态硬盘的读写速 度非常快,通常在数百兆字节每秒以上。此外,固态硬盘还具有低功耗和抗震等特点,使其成为高性能计算机和 移动设备的理想选择。
电子式
智能式
现代的IO设备已经逐渐向智能式发展 ,如触摸屏、扫描仪等,它们不仅具 有输入输出功能,还能进行数据处理 和通信。
随着电子技术的发展,IO设备逐渐向 电子式转变,如磁盘驱动器、打印机 等,它们具有更高的速度和精度。
IO设备的技术指标
数据传输速度
IO设备的数据传输速度是衡量其性能的 重要指标,包括传输速率、带宽等参数
数据。
光盘的工作原理
01
光盘利用激光束在光盘表面形成凹坑和凸起,以二进制形式存 储数据。
02
光盘表面由透明基质、反射层和存储层组成,激光束通过基质
照射到存储层,反射回来的光线经过聚焦后形成光点。
光点的形状和大小通过调制激光束的强度和聚焦点位置来控制
03
,从而实现数据的写入和读取。
U盘与闪存盘的工作原理
兼容性
指外存储器与计算机和其他设备的互 操作能力,通常以接口类型、操作系 统支持等为指标。

第四讲 外存算法概述

第四讲 外存算法概述

– 使用选择算法 选择
M 次,逢第 4N
B
M B
M B

4N
M
个元素则
B
• 分析:
– 步骤 1 在O(N/B)次I/O内完成
– 步骤2 在 M B O( O(N/B)次I/O
N
M B
B
)

O(
N
B)
次I/O内完成
计算分割元素
1) 抽取
4N
M
个元素:
B
– 创建N/M 个内存 大小的排序列表

从每个排序列表中逢第
离元素,分割成大小<
3 2
N
M
的列表
B
O(log
M B
N M
)

O(log M B
N M
)
个阶段
O(
N B
logM
B
N B
)
算法
计算分割元素
1) 抽取
4N
M B
个元素:
– 创建N/M 个内存 大小的排序列表

从每个排序列表中逢第
1 4
M B 个元素则选择
2) 从抽样中选择 M B 个分割元素:
• 例如:遍历链表(链表排序) 数组大小N = 10(个元素) 磁盘区域大小B = 2 (个元素) 主存大小M = 4 (个元素) (2个磁盘块)
1 5 2 6 3 8 9 4 7 10 1 2 10 9 5 6 3 4 8 7
算法 1: N=10 I/Os
算法 2: N/B=5 I/Os
• N 和 N/B之间因为磁盘块大而差异较大
随机存取机模型
R A M
• 标准计算理论模型:

数据结构-外存信息的存取

数据结构-外存信息的存取
• 结果:采用胜者树后,从 K 个元素中挑选一个最小的元素仅需 log2k 次比 较,这时总的时间耗费下降为:
logkm × log2k × ( n - 1 ) × tmg = log2m × ( n - 1 ) × tmg 有意思的是该结果和 k 无关,这是通过多用空间换来的。
• 改进:采用胜者树,K 个元素中最小的元素输出之后,从根结点到它的相应的叶子结 点路径上的结点都需要进行修改,为了加快程序运行的速度产生了败者树。
7
29
9
入 16
12
38
22
缓 49
25
57
47
52
84
66
48

78
91
71
59

1234567 5 5 9 5 7 29 9
输5 出 缓 冲 区
注意:挑出冠军 需要进行 k-1 次 比较,此处需要 比较 3 次。
3、多路平衡归并 的实现
2、胜者树及其使用 • 胜者进入下一轮,直至决出本次比赛的冠军。决出冠军之后,充分利用上一次比赛的 结果,使得更快地挑出亚军、第三名 …… 。 决出第一名需比较: k - 1 次 决出第二名需比较: log2k 次 决出第三名需比较: log2k 次
while ( b[ls[0]].key != MAXKEY ) { q = ls[0]; // q为当前最小关键字所在的 b[] 的下标地址,即相 // 应的归并段的输入缓冲区的序号 output(q); // 在相应归并段的输入缓冲区中,将包含该关键字的 // 记录写入输出缓冲区 input(b[q].key); // 从序号为 q 的输入归并段中读入下一个记录 // 的关键字 Adjust( ls, q ); }

计算机的储存空间计算公式

计算机的储存空间计算公式

计算机的储存空间计算公式在计算机科学和信息技术领域,储存空间是一个非常重要的概念。

无论是个人用户还是企业用户,都需要足够的储存空间来存储数据和文件。

在计算机中,储存空间通常以字节(Byte)为单位来表示。

而在实际应用中,我们经常需要计算储存空间的大小,以便选择合适的存储设备或规划存储空间。

计算机的储存空间可以分为内存和外存两种。

内存是计算机用来存储数据和程序的临时存储空间,而外存则是用来长期保存数据和文件的设备,比如硬盘、固态硬盘、光盘等。

在这篇文章中,我们将主要讨论外存的储存空间计算公式。

储存空间的计算公式可以分为两种情况,一种是根据存储设备的物理参数来计算其总容量,另一种是根据文件大小和数量来计算所需的存储空间。

下面我们将依次介绍这两种情况的计算公式。

1. 根据存储设备的物理参数来计算总容量。

对于硬盘、固态硬盘等存储设备,其总容量可以通过以下公式来计算:总容量 = 每个扇区的容量×每个磁道的扇区数×磁头数×柱面数。

其中,每个扇区的容量是指每个扇区可以存储的字节数,通常为512字节或4KB;每个磁道的扇区数是指每个磁道上的扇区数量,通常为63个或255个;磁头数是指磁盘上的读写头数量,通常为1个或2个;柱面数是指磁盘的柱面数量,通常为几百到几千个。

以一个普通的1TB硬盘为例,其总容量可以通过以下计算得出:总容量 = 512字节/扇区× 63个扇区/磁道× 2个磁头× 16383个柱面≈ 1TB。

这个计算过程是根据硬盘的物理参数来计算其总容量的,可以帮助用户了解硬盘的实际存储空间。

2. 根据文件大小和数量来计算所需的存储空间。

在实际应用中,我们经常需要根据文件大小和数量来计算所需的存储空间。

这时可以使用以下公式来计算:所需存储空间 = 文件大小1 + 文件大小2 + ... + 文件大小n。

其中,文件大小1、文件大小2等表示每个文件的大小,单位通常为字节、KB、MB或GB。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 例如:遍历链表(链表排序) 数组大小N = 10(个元素) 磁盘区域大小B = 2 (个元素) 主存大小M = 4 (个元素) (2个磁盘块)
1 5 2 6 3 8 9 4 7 10 1 2 10 9 5 6 3 4 8 7
算法 1: N=10 I/Os
算法 2: N/B=5 I/Os
• N 和 N/B之间因为磁盘块大而差异较大
• 未排序的列表(队列)可以使用<M/B个分割 元素利用O(N/B)次 I/O实现划分
排序
• 归并排序:
– 创建N/M个内存大小的有序列表 – 重复归并列表,每次Θ(M/B)路
(
N M
)
(
N M
/
M B
)
(
N M
/(
M B
)2)
1

O(log M B
N M
) 个阶段,每个阶段 O(N
B)次I/O
1 4
M B个元素则选择
2) 从抽样中选择 M B个分割元素:

使用选择算法
M
B
次,逢第
4N
M B
个元素则选择
N M
1 4
M B 1
4N
M
1 个抽样元素
B
计算分割元素
• 范围R内元素定义为连续的分割元素

R中的抽样个数:
4N
M
1

B
R中抽样元素间的元素个数
(
4N
M
B

1)

(
1 4
M B 1)
Pop
O(1/B)次Push/Pop操作 • 堆栈:
– 维护在主存储器PUSH / POP块
O(1/B)次Push/Pop操作
本讲内容
4.1 外存存储结构与外存算法
请44各..32 外外位存存评数算据审法结示老谢构例师示:谢例提外!:存出外排宝存序查贵算找法建树议!
排序
• <M/B 个排序列表(队列) 可以在O(N/B) I/Os内 合并 内存中M/B个磁盘块

步骤4最多在~
7 10
N个元素上递归执行
T (N) O(N B) T (N 5) T (7N10) O(N B) 次I/O
排序
• 分配排序(多路快速排序):
• 计算分割元素:
– Θ(M/B) 次线性I/O选择 O(NM/B2) 次I/O的算法
– 但是可以用选择算法在O(N/B) 次I/O内计算 M B个分

O(
N B
logM B
N B
)
次I/O
排序
• 分配排序(多路快速排序)
– 计算 Θ(M/B)个分割元素 – 将无序列表分散为Θ(M/B)个等长无序列表 – 递归分割列表,直到每个列表的大小能放到内存中

O(log M B
N M
)
个阶段

O(
N B
logM
B
N B
)

I/O,如果分割元素可以用O(N/B)次
I/O-算法
23
外部搜索树
• 在更新过程中如何维护 BFS 块?
– 在搜索树中,通常使用旋转来维护树的平衡
x y
y x
• 通过旋转来维护BFS块看起来是件非常困难的事情
– 也需要确定输出(叶子)也是成块的!
I/O-算法
24
致谢
• 本讲义部分内容来自于Lars Arge的讲义
请各位评审老师提出宝贵建议! 谢谢!
搜索:O(log2 N)次I/O 范围搜索O(log2 N T ) 次 I/O
(log2 B)
外部搜索树
• BFS 块:
(B)
– 块高度O(log2 N) / O(log2 B) O(logB N) – 按块输出元素

范围搜索 (logB N T B) 次I/O • 最优: O(N/B) 空间和 (logB N T B) 次查询
离元素,分割成大小<
3 2
N
M
的列表
B
O(log
M B
N M
)

O(log M B
N M
)
个阶段
O(
N B
logM
B
N B
)
算法
计算分割元素
1) 抽取
4N
M B
个元素:
– 创建N/M 个内存 大小的排序列表

从每个排序列表中逢第
1 4
M B 个元素则选择
2) 从抽样中选择 M B 个分割元素:

R
中抽样元素和
R外抽样元素间的元素个数:
2
N M

(
1 4

4N
M
(
B
N
M B

4N
M
)

B
N
2B
M B

3 2
N
M B
M B 1)
N M
1 4
M B 1
4N
M
1 个抽样元素
B
排序小结

外部合并或分布排序需要O(
N B
logM B
N B
)次I/O
– 基于归并排序的M/ B路归并排序
– 基于 M B 路分布和分割元素查找的分布排序
– 使用选择算法 选择
M 次,逢第 4N
B
M B
M B

4N
M
个元素则
B
• 分析:
– 步骤 1 在O(N/B)次I/O内完成
– 步骤2 在 M B O( O(N/B)次I/O
N
M B
B
)

O(
N
B)
次I/O内完成
计算分割元素
1) 抽取
4N
M
个元素:
B
– 创建N/M 个内存 大小的排序列表

从每个排序列表中逢第
海量数据计算研究中心
Massive Data Computing Lab @ HIT
大数据算法
第四讲 外存算法概述
哈尔滨工业大学 王宏志
wangzh@
本讲内容
4.1 外存存储结构与外存算法
请44各..23 外 外位存存评算数审法据示结老谢例构师谢:示提外例!存:出排外宝序存贵算查法找建树议!
随机存取机模型
R A M
•ห้องสมุดไป่ตู้标准计算理论模型:
• 无限内存 • 统一访问代价 • 简单的模型为计算机行业成功的关键
3
分层存储
R
L
L
A
1
2
M
• 现代计算机有复杂的存储层次
– 存储量得到较大提升,但较慢的层次进一步远 离CPU
– 以块为单位的数据移动
慢速 I/O现代CPU和磁盘之间在速度 上的差异是类似于在一办
• 最优?
本讲内容
4.1 外存存储结构与外存算法
请4各.2 外位存评算审法示老例师:提外存出排宝序贵算法建议! 4.3 外存数据结谢构示谢例!:外存查找树
外部搜索树
• 二叉搜索树: – 在N个元素之间搜索的标准方法 – 我们把元素保存在叶子中
(log2 N)
– 搜索路径至少需要访问一条根到叶的路 – 如果结点存储在磁盘的任意位置
I/O计算出来
计算分割元素
• 在(确定性)内存快速排序中,分割元素(中位数) 可以用线性时间选择
• 选择算法:寻找第i个元素的排序顺序
1)各组5个元素中选择中位数
2)递归选择中位数:~ N/5 选定的5 个元素
3)用中位数将元素分配到两个列表
4)对两个列表之一递归选择
分析:
– 步骤 1 和 3 在O(N/B)次 I/O内完成
• 磁盘访问比主存访问的速度慢106倍
公桌上使用转笔刀或坐飞 机到世界的另一边和在办
read/write head 公桌用卷笔刀削铅笔在速
track
read/write arm
度上的差异。”
(D. Comer)
magnetic surface
– 磁盘系统通过传输大规模连续的数据块来平摊 巨大的访问代价(8-16K字节)
– 例如: N = 256 x 106, B = 8000 , 1ms磁盘访问时间
N 次I/O 需要 256 x 103 sec = 4266 min = 71 hr N/B 次I/Os 需要 256/8 sec = 32 sec
队列和堆栈
• 队列:
– 维护在主存中的push和pop块
Push
– 重要的是要利用块高效存储/访问数据
可扩展性问题
大多数程序在RAM模型上运行 -由于操作系统按需访问块
可以在大型数据集上运行
现代操作系统采用先进的分页和预取策略
但是,如果程序分散的访问磁盘上的数据,即使是好操作 系统也无法利用数据块存取优势

running time
可扩展性的问题!
data size
D
Block I/O
M P
外部存储器模型
N = # 问题实例数据项个数 B = # 每个磁盘块中数据项个数 M = # 内存能容纳的数据项个数 T = # 输出数据项个数 I/O:内存和磁盘之间移动的块数
为了方便,我们假设: M >B2
基本界限
内存算法
外存算法
• 浏览: • 排序: • 置换
• 查找:
N N log N
N log2 N
N
B
N B
logM B
N B
min{N,
N B
logM B
N B
相关文档
最新文档