前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >操作系统存储管理和oracle数据库(第三篇)(r4笔记第46天)

操作系统存储管理和oracle数据库(第三篇)(r4笔记第46天)

作者头像
jeanron100
发布2018-03-15 15:43:43
6050
发布2018-03-15 15:43:43
举报
文章被收录于专栏:杨建荣的学习笔记

在之前的一篇博文中讨论了分页存储,http://blog.itpub.net/23718752/viewspace-1435671/ 今天看了下分段存储,尽管这部分内容都是大学的课程内容,但是感觉好像没学过一样:) 分段式存储管理系统中,会为每个段分配一个连续的分区,而进程中的各个段可以离散地移入内存中不同的分区中,这一点上所说的段和数据库中的段还是有着很大的区别,数据库中的段是可以包含多个分区的,各个段 说起分段就会联想到分页,在这一点上自己的认识也很浅薄,查找了下资料,个人认为下面的这段描述还是很到位的。 http://blog.163.com/clevertanglei900@126/blog/static/111352259201121734555459/ 分页与分段的主要区别 分页和分段有许多相似之处,比如两者都不要求作业连续存放.但在概念上两者完全不同,主要表现在以下几个方面: (1)页是信息的物理单位,分页是为了实现非连续分配,以便解决内存碎片问题,或者说分页是由于系统管理的需要.段是信息的逻辑单位,它含有一组意义相对完整的信息,分段的目的是为了更好地实现共享,满足用户的需要. (2)页的大小固定,由系统确定,将逻辑地址划分为页号和页内地址是由机器硬件实现的.而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时根据信息的性质来划分. (3)分页的作业地址空间是一维的.分段的地址空间是二维的. 从数据库的角度来看,感觉和数据库中的段概念还是比较类似的。数据库中段包含多个分区。各个分区也可以在不相邻的分区中。 上一个图来说明。 在分段情况下,会要求每个进程的地址空间划分为若干个段,每个段都有自己的段名,对应到下图中就是一个段号。每个段的地地址空间都是从0开始,是一个连续的地址空间, 从地址的存储情况来说,段和页的存储方式都是类似的,都会包含两部分。分段存储中是段号和段内地址,和分页存储中的页号和页内地址类似。

由于一个进程由很多段组成,而且各个段可能被分配在主存中的多个不相邻的分区中,为了将进程的逻辑地址转换为物理地址,需要有一个短标来指出进程的某段放在主存中的位置以及段长。 这一点从数据库层面来说有类似的方面,首先是进程由多个段组成,数据库中可以理解为一个表包含多个段,数据段,索引段,lob段,lob索引段等等。这些都是独立的段,在存储的时候也可能分布在不同的表空间中,所以可能不是一个相邻的分区。 而段的信息在操作系统层面是通过段表来维护的,数据库层面则是通过数据字典,user_segment,user_extents来维护的,每个表包含的段,每个段包含的区都是很详实的。 从分段和分页的优点来说,因为它们涉及的层面和应用方向不同,但是还是有一定的可比性,在段共享方面,分段存储还是很有优势,谁让它是段共享呢。 从操作系统层面举个例子就是一个多用户系统,有一个应用程序可能包含的程序段是100K,数据段是40K,按理说需要40K*40+100k*40=1600+4000=5600k 在分段存储中则需要100k+40k*40=1700k,从这一点上来说还是很大的改进。 从这一点上来说,数据库中的同义词就有点分段存储的味道,每个同义词都可以访问源表,相当于共享了数据,同义词占用的存储空间很小,几乎可以忽略。 可能分段存储和分页存储都各有千秋,但是都是在不断的使用和改进中主键发展起来的,分段存储没有段内碎片,只有外部碎片,简单分段技术也是基于多重分区技术的发展而来。另外简单分页对于用户是不可见的,用户无法了解进程被分页或者分页的细节,但是简单分段对于用户基本是可见的,当进程被交换出内存的时候,对应的页表和段表也需要随着进程一起撤出内存。 当然分页分段方式还在不断的发展中,要不怎么有后续的段页式存储呢,在后续章节继续分享,需要多充充电,补补操作系统方面的东西。理解透了才能准确的类比数据库层面的东西。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档