操作系统内存管理

内存,毫无疑问是最重要的资源,显然,操作系统对内存的管理我必须清楚。这里主要介绍了分页管理和分段管理。

1.页式管理

a.页式管理的基本思想

打破存储分配的连续性
将逻辑上连续的用户程序映射到离散的内存块
用户程序与内存空间被划分为若干等长的区域——逻辑页 与 物理页

用户程序的划分由系统自动完成

b.页式管理下的逻辑地址和物理地址的转换

使用页表进行转换。页表存储了逻辑页号和对应的物理页号,如下:

逻辑页号     物理页号

     0                      2
   1                       3
   2                       1
   3                       6


那么,操作系统就可以根据逻辑地址和物理块的大小来算出逻辑页号,从而找出物理页号,然后确定物理地址。比如:

若在一分页存储管理系 统中,某作业的页表如下所示。已知页面大小为1024字节,试将逻辑地址1011,2148,4000,5012转 化为相应的物理地址。

页号 块号

0         2
1         3
2         1
3         6
页式存储管理的地址结构是一维的,即逻辑地址(或物理地址)只用一个数值即可表示。若给定逻辑地址A, 页面的大小为L,则页号p和页内地址d可 按照下式求得:p=int [A/L] d=A mod L;其中,int是 取整函数(取数值的整数部分),mod是取余函数(取数值的余数部分)。

物 理地址=块的大小(即页的大小L)′块号f+ 页内地址d

设 页号为p,页内位移为d,则:
(1)对于逻辑地址1011,p=int(1011/1024)=0,d=1011 mod 1024=1011。查页表第0页 在第2块,所以物理地址为1024′2+1011=3059。
(2)对于逻辑地址2148,p=int(2148/1024)=2,d=2148 mod 1024=100。查页表第2页 在第1块,所以物理地址为1024+100=1124。
(3)对于逻辑地址4000,p=int(4000/1024)=3,d=4000 mod 1024=928。查页表第3页 在第6块,所以物理地址为1024′6+928=7072。
(4)对于逻辑地址5012,p=int(5012/1024)=4,d=5012 mod 1024=916。因页号超过页表长度,该逻辑地址非法。


c.硬件支持

系统设置一对寄存器
页表始址寄存器:用于保存正在运行进程的页表的始址
页表长度寄存器:用于保存正在运行进程的页表的长度


2.段式管理

用户程序划分
按程序自身的逻辑关系划分为若干个程序段(Segment)

每个程序段都有一个段名,且有一个段号段号从0开始,每一段也从0开始编址,段内地址是连续的逻辑地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值