四、存 储 器 管 理


前言

在早期的UNIX系统中,为了提高内存利用率,已提供了内存和外存之间的进程对换机制。在UNIX系统V中,除了保留对换功能外,还支持请求调页,内存空间的分配与回收均以页为单位进行,页面的大小随版本或机型的不同而异,大约为512B~4KB。一个进程只须将其一部分(段或页)调入内存便可运行。

一、请求调页管理的数据结构

1. 页表和磁盘描述表
1) 页表

页帧号:在内存中的物理块号;
年龄位:该页在内存中最近已有多少时间未被访问;
访问位:该页最近是否被访问过;
修改位:该页内容是否被修改过;
有效位:该页内容是否在内存;
写时拷贝(copy on write):当有多个进程共享一页时,须设置此字段,用于指示在某共享该页的进程要修改该页时,系统是否已为该页建立了拷贝;
保护位:该页所允许的访问方式,只读还是读/写。

在这里插入图片描述
2. 页框数据表和对换使用表
1) 页框数据表
每个页框数据表描述一个物理内存页:

页状态: 在对换设备/文件中。
内存引用计数: 引用该页面的进程数目。
逻辑设备: 拷贝的逻辑设备(交换设备/文件系统)。
块号: 块所在逻辑设备的逻辑块号。
指针1: 指向空闲页链表中的下一个页框数据表的指针。
指针2: 指向散列队列中下一个页框数据表的指针。

在这里插入图片描述
2) 对换使用表
对换设备上的每一页都占有对换使用表的一个表项,表项中含有一个引用计数,其数值表示有多少页表项指向该页。
在这里插入图片描述

二、换页进程

  • 在UNIX的核心中,专门设置了一个换页进程(Page
    Stealer),其主要任务是:每隔一定时间,对内存中的所有有效页的年龄加1,以及当有效页的年龄达到规定值后,便将它换出。主要功能有:
  • 增加有效页的年龄
  • 对换出页(几种处理方式)
  • 将换出页面写到对换设备上

三、 请求调页

当一个运行进程试图访问一个无效页面时,将产生一个有效性错误。这时的错误有两种情况:

  • “段违例”:由于在装入可执行程序时,所有页所在的磁盘块号均已记入磁盘块描述表项中。若再找不到所需页,表示本次为“无理需要”,核心将发出“段违例”中断信号。
  • “缺页中断”:若在磁盘块描述表项中,找到所需的页,表示内存访问合法;但若该页尚未调入内存,则核心为之分配一个页面的内存,将所缺的页调入。
  • 调入缺页可能从以下三个位置:
    缺页在可执行文件上
    缺页在对换设备上
    缺页在内存页面缓冲区中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值