chap09--索引与散列.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数 据 结 构 (C语言版) 董玉涛 第9章 索引与散列 本章目标 9.1 磁盘和文件 9.2 静态索引及其查找 9.3 动态索引及其查找 9.4 散列表 9.1 磁盘和文件 9.1.1 主存和辅存 一般说来,计算机存储设备分为主存储器(primary memory)和辅存储器(secondary memory) 主存储器通常指RAM,高速缓存(cache)和显存(video memory),又叫内存 辅存储器指硬盘、软盘和磁带这样的设备,相对地,也叫外存。其中磁盘是直接访问存储设备(direct access storage devices, DASD),磁带是顺序访问存储设备(sequential access storage devices,SASD) 访问内存和磁盘的速度相差极大(差距在10万到100万倍之间)。由于访问磁盘中的数据太慢,因而需要创建有效的应用程序处理存储在磁盘中的信息。设计基于磁盘的应用程序时遵循下面的这条规则极其重要 使访问磁盘的次数最少! 9.1.2 磁盘驱动器1-1 磁盘通常称为直接访问存储设备(DASD) 这表明可以对存储在磁盘中的数据进行随机访问 这与磁带之类的顺序访问存储设备不同:需要从磁带的开始处检索数据,直到到达需要的位置 一块硬盘由一个或多个圆形盘片(platters)组成,这些盘片从上到下排列,中间有一定的间隙,所有盘片都围着一个主轴(spindle)旋转。盘片像唱片一样,以恒定的速度连续转动。盘片有两个面,每个面都有一个读/写磁头(read/write head),或者称为I/O磁头。数据就是通过这些磁头读出或写入的,这有些像留声机的活动臂从唱片中得到声音一样。与留声机的针头不同,磁盘的读/写磁头实际上不接触盘面,这样会防止划伤磁盘。这个距离非常小,比一粒灰尘的高度还要小500万倍 9.1.2 磁盘驱动器1-2 硬盘一般有多个盘片和多个读/写磁头,每个磁头都固定到一个回转臂上。当磁头在盘片上方的某个位置时,磁头就可以直接访问相应盘片上的数据。盘面上有许多同心圆,这些圆圈叫磁道(tracks),数据就保存在磁道上。一个面上有一个磁头,它可以从该面上的一道移动到另一道 由于不同面上的磁头固定在同一个回转臂上,因此它们是同时移动的,并处于同一垂直柱面(cylinders)上。各个盘面上半径相同的磁道组成一个垂直的圆柱面 9.1.2 磁盘驱动器1-3 9.1.2 磁盘驱动器1-4 软盘(floppy disks)和光盘(CD)与硬盘的这种物理布局不同:它们由一个单一的螺旋磁道组成。磁道内的bit数据分布均匀,因此内层磁道和外层磁道的数据密度相同 从硬盘读写一个字节数据通常分为3个独立的步骤 I/O磁头在磁道(或者说柱面)间移动,移到正确的磁道上。这个过程叫寻道(seek)。寻道所花的时间叫寻道时间(seek time),一般为几十ms 磁头等待该磁道上包含数据的扇区转到磁头下方。这个时间叫做旋转延迟时间(rotation latency)。一般为几ms 数据的传输时间。一旦数据旋转到I/O磁头下方,读写数据所花的时间。这个时间就是读写时,盘片旋转的时间。一般为ns级 Tr/w= Tseek+ Tlatency+ Ttransition 9.1.2 磁盘驱动器1-5 因此,读写一次磁盘所花的时间主要取决于寻道时间,即磁头在磁道间移动的时间 9.1.2 磁盘驱动器1-6 例如,windows98操作系统规定一个簇是32kB(若硬盘的扇区为512B,则一簇相当于64个扇区) 假设有一个文件,大小为33kB,这样,操作系统就为它分配2个簇,其中一个占满了,而另一个只占用一个1kB,其余的31kB只能被浪费掉了,我们把这种浪费掉且不能分配给其他文件使用的磁盘空间叫内碎片(internal fragments) 我们读该文件,一次读32kB,即一簇的数据量到内存,读到内存的簇或块通常叫页面或页(pages)。它的大小等于一个簇或块的大小 至于Unix操作系统,规定文件分配和读写的基本单位是一个扇区,在Unix术语中称为一个块(block) 9.1.3 磁盘访问的时间代价2-1 访问磁盘扇区的主要代价是寻道时间 当随机访问一个磁盘的扇区时,当前磁道和目标磁道之间的平均距离是磁盘中磁道总数的1/3 跨越n个磁道的寻道时间Tseek = t×n+s,其中,t是跨越一个磁道的时间,s是启动磁盘驱动器的时间 拥有10.2GB的Quantum磁盘就是一个典型的例子。生产厂家的规格说明标识,cylinders/ platters /sectors =19885/16/63,t=2.5ns,s=3ms。因此,这个磁盘的平均寻道时间可以这样计算0.0025× (19885?3) +3=19.

文档评论(0)

海川电子书城 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档