20145306《信息安全系统设计基础》第14周学习总结

20145306《信息安全系统设计基础》第14周学习总结

教材学习内容总结

物理和虚拟寻址

物理寻址:计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组。每字节都有一个唯一的物理地址PA。第一个字节的地址为0,接下来的字节的地址为1,再下一个为2,依此类推。给定这种简单的结构,CPU访问存储器的最自然的方式就是使用物理地址,我们把这种方式称为物理寻址。

虚拟寻址:使用虚拟寻址时,CPU通过生成一个虚拟地址来访问主存,这个虚拟地址在被送到存储器之前先转换成适当的物理地址。将一个虚拟地址转换为物理地址的任务叫做地址翻译。

CPU芯片上叫做存储器管理单元的专用硬件,利用存放在主存中的查询表来动态翻译虚拟地址,该表的内容是由操作系统管理。

地址空间

1.线性地址空间:地址空间中的整数是连续的一个非整数地址的有序集合:{0,1,2,...}。

2.虚拟地址空间:在一个带虚拟存储器的系统中,CPU从一个有N = 2 ^ n个地址空间中生成虚拟地址。{0,1,2,3,...,N-1}。

3.一个地址空间的大小是由表示最大地址所需要的倍数来描述的。

4.虚拟存储器的基本思想:允许每个数据对象有多个独立的地址,其中每个地址都选自一个不同的地址空间。

虚拟存储器作为缓存的工具

每个字节都有一个唯一的虚拟地址
每个虚拟页大小为P=2^p字节
在任意时刻,虚拟页面的集合都被分为三个不相交的子集:
  未分配的:VM系统还没分配/创建的页,不占用任何磁盘空间
  缓存的:当前缓存在物理存储器中的已分配页
  未缓存的:没有缓存在物理存储器中的已分配页
物理存储器被分割为物理页(PP),也叫页帧,大小也为P字节

DRAM缓存的组织结构

DRAM缓存来表示虚拟存储器系统的缓存
DRAM缓存的组织结构完全是由巨大的不命中开销驱动的
DRAM缓存总是使用写回,而不是直写
页表:是一个数据结构,存放在物理存储器中,将虚拟页映射到物理页,就是一个页表条目的数组
页表就是一个页表条目的数组
PTE:由一个有效位和一个n位地址字段组成的
DRAM缓存不命中称为缺页
在磁盘和存储器之间传送页的活动叫做交换或者页面调度
颠簸:工作集大小超出了物理存储器的大小

虚拟存储器作为存储器管理工具

多个虚拟页面可以映射到同一个共享物理页面上
简化链接:独立的地址空间允许每个进程的存储器映像使用相同的基本格式,而不管代码和数据实际存放在物理存储器的何处
简化加载:虚拟存储器使得容易想存储器中加载可执行文件和共享对象文件
简化共享:独立地址空间为操作系统提供了一个管理用户进程和操作系统自身之间共享的一致机制
简化存储器分配:虚拟存储器为向用户进程提供一个简单的分配额外存储器的机制

虚拟存储器作为存储器保护的工具

PTE的三个许可位:
  SUP:表示进程是否必须运行在内核模式下才能访问该页
  READ:读权限
  WRITE:写权限

地址翻译

页面命中时,CPU执行步骤:

第一步:处理器生成一个虚拟地址,并把它传送给MMU
第二步:MMU生成PTE地址,并从高速缓存/主存请求得到他
第三步:高速缓存/主存向MMU返回PTE
第四步:MMU构造物理地址,并把它传送给高速缓存/主存
第五步:高速缓存/主存返回所请求的数据字给处理器

处理缺页,要求硬件和操作系统协作完成

第一步到第三步同上
第四步:PTE中的有效位是0,MMU触发异常,传递CPU中的控制到操作系统内核中的缺页异常处理程序
第五步:程序确定物理存储器中的牺牲页,如果页面被修改,则换出到磁盘
第六步:程序页面调入新的页面,并更新存储器中的PTE
第七步:程序返回到原来的进程,再次执行导致缺页的指令

结合高速缓存和虚拟存储器

主要的思路:地址翻译发生在高速缓存查找之前

利用TLB加速地址翻译

翻译后备缓冲器TLB:是一个小的,虚拟寻址的缓存,其中每一行都保存着一个由单个PTE组成的块,具有高度的相连性

用来压缩页表的常用方法是使用层次结构的页表,这种方式从两个方面减少了存储器要求:

第一点:节约,如果一级页表中的PTE是空的,那么相应的二级页表就不会存在
第二点:减压,只有一级页表存在主存中,只有经常使用的二级页表才需要缓存在主存中

Linux虚拟存储器系统

1.Linux虚拟存储器区域

每个存在的虚拟页存在某个区域中,而不属于某个区域的虚拟页是不存在的,并且不能被进程引用。

2.一个具体区域结构包含的字段:

(1)vm_start:指向这个区域的起始处。
(2)vm_end:指向这个区域的结束处。
(3)vm_prot:描述这个区域的内包含的所有页的读写许可权限。
(4)vm_flags:描述这个区域内页面是与其他进程共享的,还是这个进程私有的(还描述了其他一些信息)。
(5)vm_next:指向链表中下一个区域结构。

存储器映射

1.再看共享对象

(1)共享区域:

一个映射到共享对象的虚拟存储器区域叫做共享区域。

共享对象的关键点在于即使对象被映射到了多个共享区域,物理存储器也只需要存放共享对象的一个拷贝。一个共享对象物理页面不一定是连续的。

(2)私有对象是使用写时拷贝巧妙技术被映射到虚拟存储器中的。

2.再看fork函数

当fork函数被当前进程调用时,内核为新进程创建各种数据结构,并分配给它一个唯一的PID。

3.再看execve函数

execve函数在当前进程中加载并运行包含在可执行目标文件a.out中的程序,用a.out程序有效地替代了当前程序。

4.使用mmap函数的用户级存储器映射

mmap函数要求内核创建一个新的虚拟存储器区域,最好是从地址start开始的一个区域,并将文件描述符fd指定的对象的一个连续的片映射到这个新区域。

时间: 2024-10-12 20:47:58

20145306《信息安全系统设计基础》第14周学习总结的相关文章

# 2018-2019-1 20165225《信息安全系统设计基础》第一周学习总结

2018-2019-1 20165225<信息安全系统设计基础>第一周学习总结 教材学习内容总结 vim的用法 命令行输入vimtutor即可随时查看: linux系统下文件的转换: gcc hello.c => 编译hello.c源程序,出现a.out文件 gcc -o hello hello.c => 编译hello.c源程序,出现hello文件 od -tc -tx1 hello.c => 按单字节查看文件内容 gcc -E hello.c -o hello.i =&g

2018-2019-1 20165225《信息安全系统设计基础》第九周学习总结

2018-2019-1 20165225<信息安全系统设计基础>第九周学习总结 教材学习内容总结 1.理解虚拟存储器的概念和作用; 2.理解地址翻译的概念; 3.理解存储器映射; 4.掌握动态存储器分配的方法; 5.理解垃圾收集的概念; 6.了解C语言中与存储器有关的错误; 虚拟存储器 物理和虚拟寻址 计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组,每字节都有一个唯一的物理地址.CPU根据物理地址访问存储器的方式是物理寻址. 虚拟存储器被组织为一个由存放在磁盘上的N个连续的字

20145216 史婧瑶《信息安全系统设计基础》第一周学习总结

20145216 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 Linux基础 1.ls命令 ls或ls .显示是当前目录的内容,这里“.”就是参数,表示当前目录,是缺省的可以省略.我们可以用ls -a .显示当前目录中的所有内容,包括隐藏文件和目录.其中“-a” 就是选项,改变了显示的内容.如图所示: 2.man命令 man命令可以查看帮助文档,如 man man : 若在shell中输入 man+数字+命令/函数 即可以查到相关的命令和函数:若不加数字,那man命令默认从数字较

20145311 《信息安全系统设计基础》第一周学习总结

20145311 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 常用的部分命令 CTRL+SHIFT+T:新建标签页,编程时有重要应用: ALT+数字N:终端中切换到第N个标签页,编程时有重要应用: Tab:终端中命令补全,当输入某个命令的开头的一部分后,按下Tab键就可以得到提示或者帮助完成: CTRL+C:中断程序运行 Ctrl+D:键盘输入结束或退出终端 Ctrl+S: 暂定当前程序,暂停后按下任意键恢复运行 Ctrl+A: 将光标移至输入行头,相当于Home键 Ctrl+E

20145216史婧瑶《信息安全系统设计基础》第九周学习总结

20145216史婧瑶<信息安全系统设计基础>第九周学习总结 教材内容总结 第十章 系统级I/O 输入/输出(I/O)是在主存和外部设备之间拷贝数据的过程. 第一节 Unix I/O 这一节涉及到操作系统的基本抽象之一--文件.也就是说,所有的I/O设备都被模型化为文件,而所有的输入输出都被当做对相应文件的读/写.相关的执行动作如下: 1.打开文件: 应用程序向内核发出请求→要求内核打开相应的文件→内核返回文件描述符 文件描述符:一个小的非负整数,用来在后续对此文件的所有操作中标识这个文件.有

20145311 《信息安全系统设计基础》第二周学习总结

20145311 <信息安全系统设计基础>第二周学习总结 教材学习内容总结 重新学习了一下上周的一部分命令:grep main wyx.c(grep的全文检索功能)ls > ls.txt :ls内容输出到文本find pathname -mtime -n/+nfind -size -n/+n (find的功能还是比较强大) 简单地学习了一下vim编辑器,跟着vimtutor简单地学了一些,在linux bash中使用vim能够极大地提高效率, vim的用法比较多,只学习了其中简单的一部分

20145339《信息安全系统设计基础》第一周学习总结

20145339顿珠达杰<信息安全系统设计基础>第一周学习总结 ◆ Linux是一个操作系统.如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命令行进行使用. 物理机系统上可以通过使用[Ctrl]+[Alt]+[F1]-[F6]进行终端和图形界面切换,在线实验环境中按下[Ctrl]+[Alt]+[F7]来完成切换.普通意义上的 Shell 就是可以接受用户输入命令的程序,Unix/Linux 操作系统下的 Shell 既是用户交互的界面,也是控制系统的

2017-2018-1 20155228 《信息安全系统设计基础》第九周学习总结

2017-2018-1 20155228 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 常见的存储技术 RAM 随机访问存储器(Random-Access Memory, RAM)分为两类:静态的和动态的.静态 RAM(SRAM)比动态RAM(DRAM)更快,但也贵得多.SRAM用来作为高速缓存存储 器,既可以在CPU芯片上,也可以在片下.DRAM用来作为主存以及图形系统的帧缓冲 区.典型地,一个桌面系统的SRAM不会超过几兆字节,但是DRAM却有几百或几千兆 字节. SRAM将每

2017-2018-1 20155332 《信息安全系统设计基础》第九周学习总结

2017-2018-1 20155332 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 简单模型中,存储器是一个线性的字节数组.真实模型中,是一个具有不同容量,成本,访问时间的存储层次结构(存储器山) 程序的局部性很重要,对程序性能有很重要的影响. 计算机系统一个基本而持久的思想,如果你理解了系统是如何将数据在存储器层级结构中上下移动,你就可以编写程序,让数据存储在层次结构中较高的地方,从而CPU可以更快的访问到他们. 编写程序实现功能是最简单的,如何让编写的程序拥有最高的性能,例

2017-2018-1 20155227 《信息安全系统设计基础》第九周学习总结

2017-2018-1 20155227 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 第六章 随机访问存储器 随机访问存储器分为:静态RAM(SRAM)和动态RAM(DRAM),静态RAM(SRAM)比动态RAM(DRAM)更快,但也贵很多. (1)静态RAM SRAM将每个位存储在一个双稳态的存储器单元里,每个单元是用一个六晶体管电路来实现的. 属性:它可以无限制地保持在两个不同的电压配置或状态之一.其他任何状态都是不稳定的. 特点:由于SRAM的双稳态特性,只要有电,它就会永