第三章 内存管理——虚拟内存
- 局部性原理:时间局部性(如果程序的某条指令/数据一旦执行,不久以后该指令/数据可能再次执行),空间局部性(访问了某一存储单元,不久之后附近的存储单元也会被访问)
- 时间局部性是通过近来使用的指令和数据保存到高速缓存存储器中,并使用高速缓存的层次结构实现。
- 空间局部性通常是使用较大的高速缓存,并预取机制集成到高速缓存控制逻辑中实现。
- 引入虚拟存储技术:提高系统的内存利用率和系统的吞吐量。
- 虚拟存储器:基于局部性原理,在程序装入时,可以将程序的一部分存入内存,其余留在外存,就可以启动程序执行,执行中,当访问信息不在内存时,系统调用调入内存,另一方面将暂不使用的内容换出外存,腾出空间,这样系统好像为用户提供了一个比实际内存大的多的存储器。
- 系统提供部分装入,请求调入和置换功能,虚拟存储器的大小由计算机的地址机构决定,并非是内存外存相加
- 虚拟存储器特性:离散性,多次性。对换性,虚拟性。
- 虚拟内存的实现需要建立离散分配的内存管理方式上。
- 虚拟内存的实现有三种方式,请求分页存储管理,请求分段存储管理,请求段页式存储管理。
- 虚拟内存需要硬件支持:一定的内存外存,页表机制或段表机制(主要的数据结构),中断机构(系统调用时候),地址变换机构(逻辑地址到物理地址)
- 请求分页的页表机制:页号,物理块号,状态位(是否调入内存),访问字段A(供置换算法换出页面参考),修改位M(调入内存后是否被修改), 外存地址、
- 基本分页存储管理系统中,系统将每个程序按固定的大小分成若干页,每个页对应一个物理块,程序中所有页面装入内存。
- 请求分页存储器管理系统 中,程序仍然按固定的大小分成若干页,但不是全部装入内存,仅仅装入程序运行必须的页面,当需要某一个页面,再请求从外部调入,如果没有空闲的空间,则用置换技术进行页面的淘汰和置换。
- 页式存储管理将主存储器分成大小相等的物理块,作为主存分配的物理单位,同时要求程序逻辑地址也分成块大小一致的页面,这样就可以把页面放入块中,进程存储分配,根据作业大小不同,确定页面数,在装入内存时候给他分配相应的物理块,页表的主要作用是记录进程的每个页面对应的页框信息。
- 缺页中断机构:请求分页系统中,每当访问的页面不在内存中,便产生一个缺页中断。
- 请求分页中的地址变换过程
- 页面置换算法中字:最佳置换算法,先进先出算法,最久最未使用,最近未使用
- 在请求分页管理系统中,提取页面的策略有:预调页策略,请求调页策略
- 影响缺页中断率的因素:页面大小,进程所分配的物理块,页面置换算法,程序固有特性
- belady异常:当所分配的物理块数增大而页故障数目不减反增的异常。只有先进先出可能出现belady异常。
- 抖动:刚刚换出的页面马上又换入主存,刚刚换入的页面马上要换出内存
- 频繁缺页抖动的原因:频繁访问的页面数目高于可用物理块帧数。
- 覆盖技术和虚拟存储技术最本质不同在:覆盖程序段最大长度受内存容量大小限制,而虚拟存储器最大长度不受内存容量限制,只受计算机地址结构的限制,覆盖技术的覆盖段由程序员设计,且覆盖段相对独立,而虚拟技术对用户的程序段没有要求。
- 交换技术是把暂时不用的某个程序及数据从内存移到外存中,腾出内存空间。交换技术和虚拟内存中使用的调入调出主要区别是交换的调入调出是整个进程,虚拟内存的调入调出是页面或者分段,不是整个进程,它们两个都是内存和外存之间交换信息。
来源:https://www.cnblogs.com/findz/p/9775851.html