3.7 分段

3.7 分段

1. 分段系统
每个进程有多个互相独立的称为段的地址空间,每个段由一个从0到最大的线性地址序列构成,每个段的长度可以不同(通常比较大)
3.7 分段
因为有些段会增长,如果用页的话有时候会碰撞。即在以为地址中,过程被一个挨一个地放在一起,中间没有空隙,因此修改一个过程的大小会影响其他无关的进程的起始地址。
3.7 分段

逻辑地址由段号S与段内偏移量W两部分组成。
3.7 分段

3.7 分段

存储分配时,以段为单位,段与段在内存中可以不相邻接,也实现了离散分配。

  • 页是信息的物理单位,分页是为了实现非连续分配,以便解决内存碎片问题,或者说分页是由于系统管理的需要.
  • 段是信息的逻辑单位,它含有一组意义相对完整的信息,分段的目的是为了更好地实现共享,满足用户的需要.
3.7 分段

段式虚拟存储器有许多优点:
(1)    段的逻辑独立性使其易于编译、管理、修改和保护,也便于多道程序共享。
(2)    段长可以根据需要动态改变,允许*调度,以便有效利用主存空间。
(3)    方便编程,分段共享,分段保护,动态链接,动态增长
 因为段的长度不固定,段式虚拟存储器也有一些缺点:
(1)    主存空间分配比较麻烦。
(2)    容易在段间留下许多碎片,造成存储空间利用率降低。
(3)    由于段长不一定是2的整数次幂,因而不能简单地像分页方式那样用虚拟地址和实存地址的最低若干二进制位作为段内地址,并与段号进行直接拼接,必须用加法操作通过段起址与段内地址的求和运算得到物理地址。因此,段式存储管理比页式存储管理方式需要更多的硬件支持。

总而言之,分段系统最有用的就是===========》逻辑独立、保护和共享

对分段式系统,被共享的程序或数据可作为单独的一段,在物理上它是一段,在不同的进程中,可以对应不同的逻辑段,相对来说比较易于实现。

对于分页管理,则要困难得多。首先,必须保证被共享的程序或数据占有整数块,以便与非共享部分分开。其次,由于共享程序或数据被多个进程访问,所以每个进程对共享程序或数据的访问都应该是有限制条件的。

因此,从共享和保护的实现上来看,须共享的程序段或数据段是一个逻辑单位,而分段存储管理中被共享的程序或数据作为一个整体(一段),实现共享和保护就要方便得多。

分段系统的共享是通过两个(或多个)进程的段表之间相应表目都指向同一个物理段,并设置共享计数来实现的;每段设置、访问方式,就可以实现段的保护。

2. 段页式存储

  • 用分段方法来分配和管理虚拟存储器。程序的地址空间按逻辑单位分成基本独立的段,而每一段有自己的段名,再把每段分成固定大小的若干页。
  • 用分页方法来分配和管理实存。即把整个主存分成与上述页大小相等的存储块,可装入作业的任何一页。程序对内存的调入或调出是按页进行的。但它又可按段实现共享和保护。

逻辑地址结构。一个逻辑地址用三个参数表示:段号S;页号P;页内地址d。
3.7 分段
为了进行地址转换,系统为每个作业建立一个段表,并且要为该作业段表中的每一个段建立一个页表。系统中有一个段表地址寄存器来指出作业的段表起始地址和段表长度。
3.7 分段

在段页式系统中,为了获得一条指令或数据,须三次访问内存:
  • 第一次访问是访问内存中的段表,从中取得页表始址;
  • 第二次访问是访问内存中的页表,从中取出该页所在的物理块号,并将该块号与页内地址一起形成指令或数据的物理地址
  • 第三次访问才是真正从第二次访问所得的地址中,取出指令或数据。

优点:
  • 它提供了大量的虚拟存储空间。
  • 能有效地利用主存,为组织多道程序运行提供了方便。
缺点:
  • 增加了硬件成本、系统的复杂性和管理上的开消。
  • 存在着系统发生抖动的危险。
  • 存在着内碎片。
  • 还有各种表格要占用主存空间。
段页式存储管理技术对当前的大、中型计算机系统来说,算是最通用、最灵活的一种方案。

2018/03/15 19:43

tips:
打个比方,比如说你去听课,带了一个纸质笔记本做笔记。笔记本有100张纸,课程有语文、数学、英语三门,对于这个笔记本的使用,为了便于以后复习方便,你可以有两种选择。

第一种是,你从本子的第一张纸开始用,并且事先在本子上做划分:第2张到第30张纸记语文笔记,第31到60张纸记数学笔记,第61到100张纸记英语笔记,最后在第一张纸做个列表,记录着三门笔记各自的范围。这就是分段管理,第一张纸叫段表。

第二种是,你从第二张纸开始做笔记,各种课的笔记是连在一起的:第2张纸是数学,第3张是语文,第4张英语……最后呢,你在第一张纸做了一个目录,记录着语文笔记在第3、7、14、15张纸……,数学笔记在第2、6、8、9、11……,英语笔记在第4、5、12……。这就是分页管理,第一张纸叫页表。你要复习哪一门课,就到页表里查寻相关的纸的编号,然后翻到那一页去复习