文件的逻辑结构和物理结构的区别

       在学习文件管理的时候,发现有逻辑结构和物理结构,当时不理解为啥逻辑结构也能影响查找效率,电脑中查找不是按照物理结构来的吗等等类似的问题。下面是我的一些想法。

       我认为逻辑结构可以抽象为对一大长串内存做规划,而物理结构是对外存上一块块做规划。而为什么我要这样想呢,因为逻辑地址是对块内地址(内存与外存进行交换是以块为单位)进行操作,逻辑地址相当于给你分配了一块地方,让你在上面进行操作(假设逻辑地址上的内存是从0开始到9999)。那么你可以在逻辑地址0-9上开一个数组A,上面放数字0到9,后面再来几个数组B,C,D等等,接着你再内存上删去A,B,上几个数字,那么他们就不连续了,会产生碎片,造成资源的浪费,这时候我们再提出了串结构。所以,看到这,你能理解我要表达的意思吗,我的意思是逻辑结构上管理一个块内的数据,你要查找一个数据,你要在外存上通过物理结构找到那个块(物理结构的应用),然后在块内通过逻辑结构找到这个数据。所以通过逻辑结构的选择串结构或者顺序结构不同,会导致查找效率的不同(逻辑结构的应用)。而且能通过这个逻辑块找到指向外存的地址,看下图:(为啥有不同的逻辑类型)

而物理存储是以块为单位,存放的是ABCD,每个块里有100个逻辑地址,看第一张图,所以通过逻辑地址来确定块内的排序,而通过物理地址来确定块间的排序。

可能这时候有人会有疑问,如果一个数组非常大,他放在了ABCD四个块中,按照操作系统的内存管理,他们四个调入内存后很有可能不放在一块。这不就跟外存上放数据块一样吗,而为啥我认为可以将逻辑地址给抽象为内存上ABCD在一块,认为他们在一起,但是我认为这个延时非常非常小。看下列分析。

         简而言之,我认为逻辑结构是给你一大片空间,让你在上面任意进行操作,通过各种各样的数据结构放数据,所以他会影响你的查找效率,因为数据结构啥都是对你可见的,不是透明的。

而物理结构是将每一个100个地址分成一个块,然后在外存上将这个当作一个地址,所以物理结构是通过改变块间的联系来影响查找效率,但是注意注意,以上的讨论都是在文件都在外存上,如果在内存上,块和块之间的查找几乎就没有区别,因为直接通过地址线可以直接定位到那个内存块。但是在外存上,块和块之间的移动不可以直接定位,因为外存是通过磁头来定位那个块,磁头的移动就是一步一步的,不可能直接定位。所以都放到了内存上,物理结构的影响就几乎没有了。

最后,物理结构是对用户不透明的,因为物理结果要是也需要用户去操作的话,那么每一个分块你都等声明一下,那不得累死,那谁还当程序员了,但是交给操作系统的话,就轻松很多了,所以物理结果对于用户是透明的。而为啥逻辑结构不交给操作系统,我感觉是让用户知道,这样放可以快,这样会慢,让用户自己选择,不然全交给操作系统了,不知道自己整的效率如何,该如何改进。

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值