前言
在前面文章基本分页存储管理方式和分段存储管理方式中介绍了非连续分配管理方式的基本分页存储管理方式。
接下来,本文将介绍非连续分配管理的第三种方式——段页式存储管理方式
分页、分段的优缺点
- 分页
优点:内存空间利用率高,不会产生外部 碎片,只会有少量的页内碎片
缺点:不方便按照逻辑模块实现信息的共享和保护
- 分段
优点:很方便按照逻辑模块实现信息的共享和保护
缺点:如果段长过大,为其分配很大的连续空间会很不方 便。另外,段式管理会产生外部碎片
分段管理中产生的外部碎片也 可以用“紧凑”来解决,只是 需要付出较大的时间代价
分段与分页管理方式都有自己的各自优缺点,分页管理方式能有效提高内存空间利用率、分段管理方式能更好地满足用户的需要,结合两种方式的优点,一种新的管理方式——段页式管理方式。
基本原理
段页式管理方式的基本原理是分段和分页原理的结合,即先将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。
上图出了一个作业地址空间的结构。该作业有三个段:主程序段、子程序段和数据段;页面大小为 4 KB。
在段页式系统中,其地址结构由段号、段内页号及页内地址三部分所组成。
段表与页表
在段页式系统中,为了实现从逻辑地址到物理地址的变换,系统中需要同时配置段表和页表。段表的内容与分段系统略有不同,它不再是内存始址和段长,而是页表始址和页表长度。
地址交换过程
1、根据逻辑地址得到段 号、页号、页内偏移量
2、判断段号是否越界。 若S≥M,则产生越界 中断,否则继续执行
3、查询段表, 找到对应的段 表项,段表项 的存放地址为 F+S*段表项长 度
4、检查页号是否越界,若 页号≥页表长度,则发生越 界中断,否则继续执行
5、根据页表存放块 号、页号查询页表, 找到对应页表项
6、根据内存块号、 页内偏移量得到最 终的物理地址
7、访问目标 内存单元
需要三次访存。
【参考文献】
汤小丹、汤子瀛《计算机操作系统(第4版)》
王道