网站建设明细,wordpress上传图片不显示,asp.net网站安全,wordpress审计第三章 内存管理3.1内存管理概念3.1.1 内存管理的基本原理和要求#xff08;1#xff09;内存管理的主要功能3.1.2 覆盖和交换#xff08;1#xff09;覆盖#xff08;2#xff09;交换3.1.3 连续分配管理方式#xff08;1#xff09;单一连续分配#xff08;2#x…
第三章 内存管理3.1内存管理概念3.1.1 内存管理的基本原理和要求1内存管理的主要功能3.1.2 覆盖和交换1覆盖2交换3.1.3 连续分配管理方式1单一连续分配2固定分区分配3动态分区分配3.2虚拟内存管理3.2.1 虚拟内存的基本概念3.2.2 请求分页管理方式3.2.3 页框分配3.2.4 页面置换算法3.2.5 抖动和工作集3.2.6 内存映射文件3.2.7 虚拟储存器性能影响因素3.3本章小结3.3.1 为什么要引入虚拟内存3.3.2 虚拟内存空间的大小是由什么因素决定的3.3.3为什么要引入虚拟内存本章围绕分页机制展开通过分页管理方式在物理内存大小的基础上提高内存的利用率在进一步引入请求分页管理方式实现虚拟内存是内存脱离物理大小的限制提高处理器的利用率。3.1内存管理概念
3.1.1 内存管理的基本原理和要求
内存管理的概念操作系统对内存的划分和动态分配。
有效的内存管理在多道程序设计中非常重要方便用户使用存储器、提高内存利用率还可以通过虚拟技术从逻辑上扩充存储器。
1内存管理的主要功能
、内存空间的分配与回收由操作系统完成主存储器空间的分配和管理。、地址转换把逻辑地址转换成相应的物理地址。、内存空间的扩充利用虚拟内存技术或者自动覆盖技术逻辑上扩充内存。、内存共享允许多个进程访问内存的同一部分。、存储保护保证各道作业在各自的存储空间内运行互不干扰。
3.1.2 覆盖和交换
覆盖和交换的目的是在多道程序环境下用来扩充内存。
1覆盖
基本思想由于程序运行时并非任何时候都要访问程序及数据的各个部分所以把用户空间分为一个固定区和若干覆盖区 将经常活跃的部分放在固定区其余的部分按调用关系分段首先将那些即将要访问的段放入覆盖区其他段放入外存中在需要调用前系统再将其调入覆盖区替换其中原有的段。
2交换
交换对换的基本思想把处于等待状态的或在CPU调度原则下被剥夺运行权利的程序从内存移到辅存将内存空间腾出来的这一过程称为换出把准备好竞争CPU运行的程序从辅存移到内存的过程称为换入。
交换技术主要在不同进程或作业之间进行而覆盖则用于同一个程序或进程中。
3.1.3 连续分配管理方式
连续分配方式是指为一个用户程序分配一个连续的内存空间主要包括单一连续分配、固定分区分配和动态分区分配。
1单一连续分配
内存分为系统区和用户区系统区仅供操作系统使用通常在低地址部分。
优点简单、无外部碎片无须内存保护 缺点只能用于单用户、单人任务的操作系统中有内部碎片存储器的利 用率极低。
2固定分区分配
将用户内存空间划分为若干固定大小的区域每个分区只装入一道作业。当有空闲分区时便可在从外存的后备作业队列中选择适当大小 的资源装入该分区。
这种方式存在两个问题
1、程序可能太大而放不进任何一个分区可以使用覆盖技术解决。
2、当程序小于固定分区大小时也要占用一个完整的内存分区这样内部就存在空间浪费即 ------内部碎片。
3动态分区分配
进程装入内存时根据进程的实际需要动态地为之分配内存并使分区的大小正好适合进程的需要。系统中分区的大小和数目是可变的。
刚开始很好随着时间的推移内存中会产生越来越多的内存块外部碎片内存的利用率也随之下降。可通过紧凑技术来解决。
3.2虚拟内存管理
3.2.1 虚拟内存的基本概念
基于局部性原理在程序装入时仅须将程序当前要运行的少数页面或段先装入内存其余部分暂留于外存需要时调入内存暂时不使用的内容换出到外存上。在逻辑上扩大了内存的容量实际上并没有即为“虚拟储存器”。
3.2.2 请求分页管理方式
请求分页系统建立于基本分页系统基础之上且为了支持虚拟储存器增加了请求调页 和 页面置换 功能。
请求分页系统中的页表项 如下
页号——物理块号——状态位P——访问字段A——修改位M——外存地址
增加的四个字段说明如下 1、状态位P : 指示该页是否已调入内存 2、访问字段A 记录本页在一段时间内被访问的次数或是记录最近已有多长时间未被访问。 3、修改位M 标识该页在调入内存后是否被修改过以确定页面置换时是否写回外存。 4、外存地址 指出该页在外存上的地址通常是物理块号供调入内存该页时参考。
请求分页系统中访问的页面不在内存中时便产生一个缺页中断。
3.2.3 页框分配
1、驻留集 给一个进程分配的物理页框的集合。 ——————页框越少驻留主存的进程就越多可提高CPU的利用率。 ——————一个进程主存中页面过少缺页率相对较高。 ——————若分配页框过多则对缺页率无什么影响。
2、内存分配策略 固定分配局部置换 、可分配全局置换 、可分配局部置换
3、物理块调入算法 平均分配算法、按比例分配算法、优先权分配算法
4、调入页面时机 预调页策略、请求调页策略
5、从何处调入页面——》三种方式系统拥有足够的对换区空间、系统缺少足够的对换区空间、UNIX方式
6、如何调入页面 当进程所访问的页面不在内存中时 存在位为0)便向CPU 发出缺页中断中断响应后便转入缺页中断处理程序该程序通过查找页表得到该页的物理块此时如果内存未满则启动磁盘 I/O将所缺页调入内存并修改页表。如果内存已满则先按某种置换算法从内存中选出页准备换出如果该页未被修改过修改位为0则无须将该页写回磁盘但是**如果该页已被修改修改位为 1则必须将该页写回磁盘然后将所缺页调入内存并修改页表中的相应表项置其存在位为 1。**调入完成后进程就可利用修改后的页表形成所要访问数据的内存地址。
3.2.4 页面置换算法
选择调出页面的算法好的页面置换算法应有较低的页面更换频率也就是说应将以后不会在访问或以后较长时间内不会在访问的页面线调出。
最佳置换算法OPT选择被淘汰的页面是以后永不使用的页面 或最长时间不被访问的保证获得最低的缺页率。先进先出页面置换算法FIFO队列实现淘汰在内存中驻留时间最久的页面只有这种算法会出现Belady异常。最近最久未使用置换算法LRU堆栈类算法选择最近最长时间未访问过的页面予以淘汰。时钟置换算法CLOCK)考虑页面是否被访问过和页面是否被修改过
3.2.5 抖动和工作集
1、抖动
简单来说就是进程多物理块少进程频繁缺页。
刚刚换出的页面马上又要换入主存刚刚换入的页面马上又要换出主存这种频繁的页面调度行为称为抖动或颠簸。
2、工作集
工作集是指在某短时间间隔内进程要访问的页面集合。
工作集大小一般会比工作集窗口小很多一般来说分配给进程的物理块数即驻留集大小要大于工作集大小。
3.2.6 内存映射文件
将磁盘文件的全部或部分内容与进程虚拟地址空间的某个区域建立映射关系便可以直接访问被映射的文件而不必执行一些繁琐的操作适合管理大尺寸文件。
内存映射文件所进行的如何实际交互都是在内存中进行的共享内存是通过内存映射来实现的进程可以通过共享内存来通信而共享内存是通过映射相同文件到通信进程的虚拟地址实现的。
如下图所示
3.2.7 虚拟储存器性能影响因素
缺页率缺页率高即为抖动是影响虚拟储存器性能的主要因素也受到页面大小、分配给屋里进程的块数、页面置换算法及程序编制方法的影响。
根据局部性原理页面较大则缺页率较低页面较小则缺页率较高。 编写程序的局部化程度越高执行时的缺页率就越低。
3.3本章小结
3.3.1 为什么要引入虚拟内存
多道程序并发执行不仅使讲程之间共享了外理器而且同时共享了主存。然而随着对处理器需求的增长进程的执行速度会以某种合理平滑的方式慢下来。但是若同时运行的进程太多则需要很多的内存当一个程序没有内存空间可用时那么它甚至无法运行。所以在物理上扩展内存相对有限的条件下应尝试以一些其他可行的方式在逻辑上扩充内存。
3.3.2 虚拟内存空间的大小是由什么因素决定的
虚存的容量要满足以下两个条件:
1、 虚存的实际容量≤内存容量和外存容量之和这是硬件的硬性条件规定的若虚存的实际容量超过了这个容量则没有相应的空间来供虚存使用。
2、 虚存的最大容量≤计算机的地址位数能容纳的最大容量。假设地址是32位的按字节编址一个地址代表 1B存储空间则虚存的最大容量≤4GB 2B)。这是因为若虚存的最大容量超过4GB则 32位的地址将无法访问全部虚存也就是说4GB 以后的空间被浪费了相当于没有一样没有任何意义。
实际虚存的容量是取条件①和②的交集即两个条件都要满足仅满足一个条件是不行的。
3.3.3为什么要引入虚拟内存
虚拟内存使用外存上的空间来扩充内存空间通过一定的换入/换出使得整个系统在逻辑上能够使用一个远远超出其物理内存大小的内存容量。因为虚拟内存技术调换页面时需要访问外存会导致平均访存时间增加若使用了不合适的替换算法则会大大降低系统性能。