13,329
次編輯
變更
存储结构
,创建页面,内容为“[[File:存储结构1.png|缩略图|存储结构[https://cdn.jsdelivr.net/gh/leishen6/ImgHosting/MuZiLei_blog_img/20200813200952.png 原图链接][https://cdn.jsdeliv…”
[[File:存储结构1.png|缩略图|存储结构[https://cdn.jsdelivr.net/gh/leishen6/ImgHosting/MuZiLei_blog_img/20200813200952.png 原图链接][https://cdn.jsdelivr.net/gh/leishen6/ImgHosting/MuZiLei_blog_img/20200813200952.png 图片来源优酷网]]]
[[数据元素]]之间的关系有两种不同的表示方法:[[顺序映象]]和[[非顺序映象]],并由此得到两种不同的存储结构:[[顺序存储结构]]和[[链式存储结构]]。数据的存储结构是指数据的[[逻辑结构]]在计算机中的表示。
*中文名:存储结构
*分 类:顺序存储结构 链式存储结构
==数据结构方面的储存结构==
===分类===
顺序存储方法它是把逻辑上相邻的[[结点存储]]在物理位置相邻的[[存储单元]]里,结点间的逻辑关系由存储单元的邻接关系来体现,由此得到的存储表示称为顺序存储结构。顺序存储结构是一种最基本的存储表示方法,通常借助于程序设计语言中的[[数组]]来实现。
链接存储方法它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。由此得到的存储表示称为[[链式存储结构]],链式存储结构通常借助于[[程序设计语言]]中的[[指针]]类型来实现。
[[File:存储结构2.png|缩略图|存储结构[https://yorxika.github.io/2019/12/24/%E5%AD%98%E5%82%A8%E7%B3%BB%E7%BB%9F%E4%B8%80/image-20191224143440462.png 原图链接][https://yorxika.github.io/2019/12/24/%E5%AD%98%E5%82%A8%E7%B3%BB%E7%BB%9F%E4%B8%80/image-20191224143440462.png 图片来源优酷网]]]
===顺序存储和链接存储的基本原理===
顺序存储和链接存储是数据的两种最基本的存储结构。
在顺序存储中,每个存[[储空间]]含有所存[[元素]]本身的信息,元素之间的逻辑关系是通过数组下标位置简单计算出来的[[线性表]]的顺序存储,若一个元素存储在对应数组中的下标位置为i,则它的前驱元素在对应数组中的下标位置为i-1,它的后继元素在对应数组中的下标位置为i+1。在[[链式存储结构]]中,存储结点不仅含有所存元素本身的信息,而且含有元素之间逻辑关系的信息。<ref>[[ 廖彬,于炯,孙华,年梅. 基于存储结构重配置的分布式存储系统节能算法. 《 CNKI;WanFang 》 , 2013]]</ref>
数据的链式存储结构可用链接表来表示。
其中data表示值域,用来存储节点的[[数值]]部分。Pl,p2,…,Pill(1n≥1)均为指针域,每个指针域为其对应的后继元素或前驱元素所在结点(以后简称为后继结点或前驱结点)的[[存储位置]]。通过结点的指针域(又称为[[链域]])可以访问到对应的后继结点或前驱结点,若一个结点中的某个指针域不需要指向其他结点,则令它的值为空(NULL)。
在数据的顺序存储中,由于每个元素的存储位置都可以通过简单计算得到,所以访问元素的时间都相同;而在数据的链接存储中,由于每个元素的存储位置保存在它的前驱或后继结点中,所以只有当访问到其前驱结点或后继结点后才能够按指针访问到,访问任一元素的时间与该元素结点在链式存储结构中的位置有关。
==储存器方面的储存结构==
储存系统的层次结构为了解决存储器速度与价格之间的矛盾,出现了存储器的层次结构。
程序的局部性原理
在某一段时间内,CPU频繁访问某一局部的存储器区域,而对此范围外的地址则较少访问的现象就是
程序的局部性原理。层次结构是基于程序的局部性原理的。对大量典型程序运行情况的统计分析得出的结论是:CPU对某些地址的访问在短时间间隔内出现集中分布的倾向。这有利于对存储器实现层次结构。
多级存储体系的组成
目前,大多采用三级存储结构。
即:Cache-主存-[[辅存]],如下图:
[[File:存储结构3.jpg|缩略图|存储结构[https://bkimg.cdn.bcebos.com/pic/024f78f0f736afc390340567b319ebc4b74512f3?x-bce-process=image/watermark,image_d2F0ZXIvYmFpa2U4MA==,g_7,xp_5,yp_5/format,f_auto 原图链接][https://bkimg.cdn.bcebos.com/pic/024f78f0f736afc390340567b319ebc4b74512f3?x-bce-process=image/watermark,image_d2F0ZXIvYmFpa2U4MA==,g_7,xp_5,yp_5/format,f_auto 图片来源优酷网]]]
3、多级存储系统的性能
考虑由Cache和主存构成的两级存储系统,其性能主要取决于Cache和贮存的存取周期以及访问它们的
次数。([[存取周期]]为: Tc,Tm ;访问次数为: Nc,Nm)
(1)Cache的命中率 H= Nc / (Nc+Nm)
(2)CPU访存的平均时间 Ta= H * Tc+ (1-H) Tm
Cache-主存系统的效率
e= Tc / Ta
=1/H+(1-H)Tm/Tc
根据统计分析:Cache的命中率可以达到90%~98%
当Cache的容量为:32KB时,命中率为86%
64KB时,命中率为92%
128KB时,命中率为95%
256KB时,命中率为98%
'''视频'''
'''数据存储结构简介'''
{{#iDisplay:h14046s7nv1 | 560 | 390 | qq }}
==参考文献==
{{Reflist}}
[[数据元素]]之间的关系有两种不同的表示方法:[[顺序映象]]和[[非顺序映象]],并由此得到两种不同的存储结构:[[顺序存储结构]]和[[链式存储结构]]。数据的存储结构是指数据的[[逻辑结构]]在计算机中的表示。
*中文名:存储结构
*分 类:顺序存储结构 链式存储结构
==数据结构方面的储存结构==
===分类===
顺序存储方法它是把逻辑上相邻的[[结点存储]]在物理位置相邻的[[存储单元]]里,结点间的逻辑关系由存储单元的邻接关系来体现,由此得到的存储表示称为顺序存储结构。顺序存储结构是一种最基本的存储表示方法,通常借助于程序设计语言中的[[数组]]来实现。
链接存储方法它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。由此得到的存储表示称为[[链式存储结构]],链式存储结构通常借助于[[程序设计语言]]中的[[指针]]类型来实现。
[[File:存储结构2.png|缩略图|存储结构[https://yorxika.github.io/2019/12/24/%E5%AD%98%E5%82%A8%E7%B3%BB%E7%BB%9F%E4%B8%80/image-20191224143440462.png 原图链接][https://yorxika.github.io/2019/12/24/%E5%AD%98%E5%82%A8%E7%B3%BB%E7%BB%9F%E4%B8%80/image-20191224143440462.png 图片来源优酷网]]]
===顺序存储和链接存储的基本原理===
顺序存储和链接存储是数据的两种最基本的存储结构。
在顺序存储中,每个存[[储空间]]含有所存[[元素]]本身的信息,元素之间的逻辑关系是通过数组下标位置简单计算出来的[[线性表]]的顺序存储,若一个元素存储在对应数组中的下标位置为i,则它的前驱元素在对应数组中的下标位置为i-1,它的后继元素在对应数组中的下标位置为i+1。在[[链式存储结构]]中,存储结点不仅含有所存元素本身的信息,而且含有元素之间逻辑关系的信息。<ref>[[ 廖彬,于炯,孙华,年梅. 基于存储结构重配置的分布式存储系统节能算法. 《 CNKI;WanFang 》 , 2013]]</ref>
数据的链式存储结构可用链接表来表示。
其中data表示值域,用来存储节点的[[数值]]部分。Pl,p2,…,Pill(1n≥1)均为指针域,每个指针域为其对应的后继元素或前驱元素所在结点(以后简称为后继结点或前驱结点)的[[存储位置]]。通过结点的指针域(又称为[[链域]])可以访问到对应的后继结点或前驱结点,若一个结点中的某个指针域不需要指向其他结点,则令它的值为空(NULL)。
在数据的顺序存储中,由于每个元素的存储位置都可以通过简单计算得到,所以访问元素的时间都相同;而在数据的链接存储中,由于每个元素的存储位置保存在它的前驱或后继结点中,所以只有当访问到其前驱结点或后继结点后才能够按指针访问到,访问任一元素的时间与该元素结点在链式存储结构中的位置有关。
==储存器方面的储存结构==
储存系统的层次结构为了解决存储器速度与价格之间的矛盾,出现了存储器的层次结构。
程序的局部性原理
在某一段时间内,CPU频繁访问某一局部的存储器区域,而对此范围外的地址则较少访问的现象就是
程序的局部性原理。层次结构是基于程序的局部性原理的。对大量典型程序运行情况的统计分析得出的结论是:CPU对某些地址的访问在短时间间隔内出现集中分布的倾向。这有利于对存储器实现层次结构。
多级存储体系的组成
目前,大多采用三级存储结构。
即:Cache-主存-[[辅存]],如下图:
[[File:存储结构3.jpg|缩略图|存储结构[https://bkimg.cdn.bcebos.com/pic/024f78f0f736afc390340567b319ebc4b74512f3?x-bce-process=image/watermark,image_d2F0ZXIvYmFpa2U4MA==,g_7,xp_5,yp_5/format,f_auto 原图链接][https://bkimg.cdn.bcebos.com/pic/024f78f0f736afc390340567b319ebc4b74512f3?x-bce-process=image/watermark,image_d2F0ZXIvYmFpa2U4MA==,g_7,xp_5,yp_5/format,f_auto 图片来源优酷网]]]
3、多级存储系统的性能
考虑由Cache和主存构成的两级存储系统,其性能主要取决于Cache和贮存的存取周期以及访问它们的
次数。([[存取周期]]为: Tc,Tm ;访问次数为: Nc,Nm)
(1)Cache的命中率 H= Nc / (Nc+Nm)
(2)CPU访存的平均时间 Ta= H * Tc+ (1-H) Tm
Cache-主存系统的效率
e= Tc / Ta
=1/H+(1-H)Tm/Tc
根据统计分析:Cache的命中率可以达到90%~98%
当Cache的容量为:32KB时,命中率为86%
64KB时,命中率为92%
128KB时,命中率为95%
256KB时,命中率为98%
'''视频'''
'''数据存储结构简介'''
{{#iDisplay:h14046s7nv1 | 560 | 390 | qq }}
==参考文献==
{{Reflist}}