虚拟内存管理是交互式或部分不受信任的应用程序操作系统的一个组成部分,一般来说,操作系统的这一部分往往比较复杂,但是标准的虚拟内存策略往往不适合满足数据库管理,垃圾收集,多媒体应用等特殊任务和应用程序的需求。
为了满足这些要求,提出了两种方法:
使用特定的应用策略
将虚拟内存管理外部化到特定于应用程序的管理器
L4 kernel提出的递归虚拟地址空间模型是一种外部化方法,该模型提供了一种机制,可以在用户级别上实现任意的虚拟内存管理和保护策略,每个子系统都可以实现这些策略,最适合于应用程序的需求,能够独立于其他子系统实现这些策略,也可以使用其他子系统提供的功能,从而以分层的方式构建系统。
然而递归虚拟地址空间模型的适用性目前是有限的,这是因为该模型的现有实现显示了不期望的行为或不必要的复杂或缓慢的行为:
长时间的中断延迟
无界优先级反转
复杂的时间片捐赠或帮助计划
本文研究了避免这些不理想的行为和技术的机制,我们证明无界优先级反转不是递归虚拟地址空间的固有特征,而是表明,在设计中可以避免这种方法,而不必延迟中断处理,也不必实施复杂的时间片捐赠或帮助计划
本文的目的是为单处理器和小型多处理器系统提供解决方案
1.1 提出的解决方案
抢占长时间运行的操作,以避免长时间中断延迟
后序遍历以避免无界优先级反转
前滚结合有调度程序意识的锁定以确保一致性
重新启动点跟踪以保证前进进度和避免饥饿
为了有效的跟踪抢占操作的重启点,我们引入了一种新的技术:基于标记的抢占线程列表。
2.背景
本章概述了实现基于页面的虚拟内存的硬件机制和软件机制,介绍了递归虚拟地址空间模型和用于实现递归虚拟地址空间模型的数据结构,映射数据库。
我们分析了无界优先级反转问题,并讨论了为避免这一问题而提出的技术,其中一个技巧是“helping”
本章最后确定递归虚拟地址空间模型实现的问题和约束。
2.1 基于页面的虚拟内存机制
2.1.1 术语
页框是物理内存的一个连续区域,它由其物理基础地址和大小描述,大小为2的次方,基础地址与这个对齐
页是一个虚拟内存的一个连续区域,大小为s,基础地址为v,s是2的次幂.处理器支持的硬件页面大小之一。V与大小s对齐
虚拟地址空间有一个映射组成,该映射将每个虚拟地址页面关联到物理页面,或标记为无映射。另外,对页面的访问权限也存在映射当中。
页表实现这个映射,他们将访问到虚拟页的虚拟地址转换成访问物理页的物理地址,TLB硬件缓存常用的结果。TLB的作用是加快后续访问页帧的速度。如果TLB不存在这样的映射,例如TLB miss,页表将映射的条目放入到TLB中。