操作系统 第四章 内存离散分配 分段--笔记*2
页表笔记补充
每个进程一张页表
一张OS反置页表+没进程一张外部页表
**反置页表:**站在物理角度,记录占用他的已调入内存的进程标识和页号。系统中只需要一张表即可(例如:一个64MB内存,若页面大小4KB[64M/4K=2^16 ,16个物理块],反置页表占用64KB(16K*4B))
**进程外部页表:**每个进程一张,记录进程不在内存中的那些页面所在物理位置。
**如何提高检索反置页表的速度:**内存容量大时,反置页表的页表项还是会很大,利用进程标识符和页号去检索一张大的线性表很费时,可利用hash算法提高检索速度。
分段
程序通过分段划分为多个模块,每个段定义一组逻辑信息(如代码段,数据段,栈段)
段的特点
每个段有自己的名字(一般是段号),都从0编址,可分别编写和编译。装入内存时每个段赋予各段一个段号。
每个段占据一块连续的内存(既有连续的,又有分离的)
各段的大小不等
地址结构:段号+段内地址
段表:记录每段实际存放的物理地址
分页容易造成共享和非共享数据共处一页,不方便设置权限。
段页式存储
基本原理:
将用户程序分成若干段,并为每个段赋予一个段名。
把每个段分成若干页
地址结构包括段号、段内页号和页内地址三部分