coursera 《现代操作系统》 -- 第八周 存储模型(2)
名词解释
页面:
页面大小:
页表:
页表项:
以上名词解释见: coursera 《现代操作系统》 -- 第七周 存储模型(1)
页表项大小:
问:以上是怎么计算出来的?
32位指什么?
页缓冲技术
问:为什么置换出去还要保留到内存,置换不就是为了减少内存的消耗吗?而留在内存中还是消耗的。
快表 (TLB)
引入快表的原因
解决办法
加快地址访问速度,以改善系统性能
程序访问的局部性原理1 -> 引入快表
快表是什么
加入 TLB 后的地址转换过程
首先第一件事是先查 快表 TLB,我们可以看到这张图里头示意出是 并行地去进行比较啊确定 你要访问的这个页表项是不是在 快表里头,当然有两种结果,一种就是命中 叫做 TLB hit,就是命中了。 如果命中了,那我就可以 得到了这个虚页号所对应的页框号,我就可以直接拼接出 物理地址了。 当然也可能会出现没有命中的情况,比如说如果没有命中,那么下面 这个 MMU 继续用这个虚页号去查页表 啊查页表,这就是 TLB miss 的时候就去查页表 那么查了页表,找到了对应的页表项,我们还要看它的这个有效位是不是 0 或还是 1 如果是 1,那么说明这个页框啊内容已经是这个读入内存的内容了,那么这个时候 就需要从页表项当中得到了页框号,也是可以形成物理地址 那么也可能这个有效位是 0,表示这个页面还没有读入 内存,这个时候就要产生一个啊异常,叫做 Page fault 异常 那么 page fault 异常就是转入了操作系统,操作系统就会 做相应的工作。 比如说,到磁盘上把相应的页面 先调入内存,就得到了页框号,再去把页表 填好,然后再重新再进行地址转换 啊,得到了相应的物理地址,来去访问内存 所以这就是加入了快表之后的地址转换的一个过程的一个示意
页错误 (Page fault)
它通常指的是在地址转换的过程中, 硬件发现了一些问题,然后产生了异常。 那么我们知道第二讲我们讲过,产生异常之后呢就进入了 操作系统,由操作系统呢来处理这样一些 情况啊,所以这个机制呢,大家结合啊第二讲所讲的内容来理解。
驻留集
置换问题
置换范围
置换策略
页框锁定
为了使进程运行时间更稳定、更好预测
清除策略
保证系统中存在一定的空闲页框数,能提高效率
页缓冲技术
收回页框
页框收回后,数据保存到磁盘,在页表上标记为空闲。但是,直到这个页框被新的数据覆盖之前,这个页框还是保留之前的数据。所以,当一个进程需要使用已经被置换出的页框,但是这个页框还保留有原来的数据,没有被新的数据覆盖,将这个页框从空闲页框中恢复出来即可。
错题
提出存储层次体系的主要依据是
存储保护技术
程序访问的局部性原理
虚拟存储技术
多道程序设计技术
在虚拟页式存储系统中,若页面尺寸为4K,页表项大小为4字节,则采用三级页表结构可以表示多大的虚拟地址空间?
239
220
242
248
参考:
1.程序访问的局部性原理:程序的局部性原理是指程序在执行时呈现出局部性规律,即在一段时间内,整个程序的执行仅限于程序中的某一部分。相应地,执行所访问的存储空间也局限于某个内存区域。局部性原理又表现为:时间局部性和空间局部性。时间局部性是指如果程序中的某条指令一旦执行,则不久之后该指令可能再次被执行;如果某数据被访问,则不久之后该数据可能再次被访问。空间局部性是指一旦程序访问了某个存储单元,则不久之后。其附近的存储单元也将被访问。
coursera 《现代操作系统》 -- 第八周 存储模型(2)的更多相关文章
- coursera 《现代操作系统》 -- 第七周 存储模型(1)
虚拟地址 隔离进程,便于管理. 问:为什么不直接划分物理地址为一块一块,直接管理,而要做一层虚拟地址的映射呢? 栈和堆 Differences between Stack and Heap Stack ...
- 操作系统学习笔记----进程/线程模型----Coursera课程笔记
操作系统学习笔记----进程/线程模型----Coursera课程笔记 进程/线程模型 0. 概述 0.1 进程模型 多道程序设计 进程的概念.进程控制块 进程状态及转换.进程队列 进程控制----进 ...
- SQLite入门与分析(八)---存储模型(1)
写在前面:SQLite作为嵌入式数据库,通常针对的应用的数据量相对于通常DBMS的数据量是较小的.所以它的存储模型设计得非常简单,总的来说,SQLite把一个数据文件分成若干大小相等的页面,然后以B树 ...
- 《Linux内核设计与实现》第八周读书笔记——第四章 进程调度
<Linux内核设计与实现>第八周读书笔记——第四章 进程调度 第4章 进程调度35 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配 ...
- 《Linux内核设计与实现》 第八周读书笔记 第四章 进程调度
20135307 张嘉琪 第八周读书笔记 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有 ...
- 20165223《信息安全系统设计基础》第九周学习总结 & 第八周课上测试
目录 [第九周学习总结] 教材内容总结 [第八周课上测试] (一)求命令行传入整数参数的和 (二)练习Y86-64模拟器汇编 (三)基于socket实现daytime(13)服务器和客户端 参考资料 ...
- 20172325 2018-2019-2 《Java程序设计》第八周学习总结
20172325 2018-2019-2 <Java程序设计>第八周学习总结 教材学习内容总结 一.堆 1.什么是堆? 具有两个附加属性的一个二叉树. 堆分为小顶堆和大顶堆. 最小堆:对每 ...
- 20155315 2016-2017-2 《Java程序设计》第八周学习总结
教材学习内容总结 第14章 NIO与NIO2 1.认识NIO NIO使用频道(Channel)来衔接数据节点,在处理数据时,NIO可以让你设定缓冲区(Buffer)容量,在缓冲区中对感兴趣的数据区块进 ...
- 20135302魏静静——linux课程第八周实验及总结
linux课程第八周实验及总结 实验及学习总结 1. 进程切换在内核中的实现 linux中进程切换是很常见的一个操作,而这个操作是在内核中实现的. 实现的时机有以下三个时机: 中断处理过程(包括时钟中 ...
随机推荐
- OpenERP为form和tree视图同时指定view_id的方法
Odoo,OpenERP中文网 / 2014-07-16 文所说的是关于OpenERP中同一个对象(同名继承)使用view_id来指定form和tree视图的方法,由于官方文档中Views and E ...
- 关于Fragment API版本号兼容问题
Fragment 是在API 11(android 3.0)被引入的.然而我的应用 的 android:miniSdkVersion 是 API 8,也就是说该应用是兼容旧版本号的.为了可以兼容旧版 ...
- 【web开发学习笔记】Structs2 Result学习笔记(一)简介
Structs2 Result学习笔记(一)简介 问题一 <struts> <constant name="struts.devMode" value=" ...
- 一篇关于arc下内存管理的老文章,包含各种冷门修饰符(关于内存),写的较好,mark
http://blog.csdn.net/zhibudefeng/article/details/7746201
- less css下载及编绎工具
http://www.lesscss.net less.js下载 LESS 1.5已经放出Beta 1版本,支持source map等新特性,欢迎尝鲜.详细变更请见更新日志. 生产环境使用建议下载1. ...
- 浅谈Java中的System.gc()的工作原理
很多人把Java的“效率低下”归咎于不能自由管理内存,但我们也知道将内存管理封装起来的好处,这里就不赘述. Java中的内存分配是随着new一个新的对象来实现的,这个很简单,而且也还是有一些可以“改进 ...
- 【LeetCode OJ 016】3Sum Closest
题目链接:https://leetcode.com/problems/3sum-closest/ 题目:Given an array S of n integers, find three integ ...
- 74. First Bad Version 【medium】
74. First Bad Version [medium] The code base version is an integer start from 1 to n. One day, someo ...
- NYOJ 诡异的电梯 && nyoj 1204 魔法少女
诡异的电梯[Ⅰ] 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 新的宿舍楼有 N(1≤N≤100000) 层 and M(1≤M≤100000)个学生. 在新的宿舍楼里 ...
- Building Maintainable Software-java篇之Separate Concerns in Modules
Building Maintainable Software-java篇之Separate Concerns in Modules In a system that is both complex ...