概述
基本分段存储管理方式:分页管理方式是从计算机的角度上考虑设计的,以提高内存的利用率,提高计算机的性能,且分页通过硬件机制实现,对用户完全透明;而分段管理方式的提出则是考虑了用户和程序员,以满足方便编程、信息保护和共享、动态增长及动态链接等多方面的需要。
(1) 分段。段式管理方式按照用户进程中的自然段划分逻辑空间。例如,用户进程由主程序、两个子程序、栈和一段数据组成,于是可以把这个用户进程划分为5个段,每个段从0开始编址,并分配一段连续的地址空间(段内要求连续,段间不要求连续,因此整个作业的地址空间是二维的)。其逻辑地址由段号S与段内偏移量W两部分组成。
如下图,段号为16位,段内偏移量位16位,则一个作业最多有2^16=65535个段,最大段长为64KB。
在页式系统中,逻辑地址的页号和页内偏移量对用户是透明的,但在段式系统中,段号和段内偏移量必须由用户显示提供,在高级程序设计语言中,这个工作由编译程序完成。
(2) 段表。每个进程都有一张逻辑空间与内存空间映射的段表,其中每一个段表项对应进程的一个段,段表项记录该段在内存中的起始地址和段的长度。段表的内容如下
在配置了段表后,执行中的进程可通过查找段表,找到每个段所对应的内存区。可见,段表用于实现从逻辑段到物理内存区的映射,如下所示:
(3)地址变换机构。
分段系统的地址变换过程如下。为了实现进程从逻辑地址到物理地址的变换功能,在系统中设置了段表寄存器,用存放段表始地址F和段表长度M。其从逻辑地址A到物理地址E之间的地址变换过程如下:
(3) 段的共享和保护。在分段系统中,段的共享是通过两个作业的段表中相应表项指向被共享段的同一物理副本来实现的。当一个作业正从共享段中读取数据时,必须防止另一个作业修改此共享段的数据。不能修改的代码称为纯代码或可重入代码,这样的代码和不能修改的数据时可以共享的,而可修改的代码和数据则不能共享。
最后
以上就是忧虑早晨为你收集整理的37基本分段管理方式的全部内容,希望文章能够帮你解决37基本分段管理方式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复