操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院第4章存储管理4.1概述4.2基本存储空间管理4.3分页存储管理4.4分段存储管理4.5虚拟存储器4.6实例:Windows存储管理本章主要内容操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院存储管理一直是操作系统中的重要组成部分,因为冯·诺依曼体系结构就是建立在存储程序概念上的,访问存储器的操作占CPU时间的70%左右。计算机系统中的存储器一般分为主存储器(简称主存、内存)和辅助存储器(简称辅存)。由于CPU只能直接与内存进行通信,因此计算机系统的程序以及与该程序相关的数据,只有被装入到内存中才能有效地执行。计算机系统能否高效地管理内存空间,不仅直接反映存储器的利用率,还会影响整个操作系统的性能。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院第4章存储管理4.1概述4.2基本存储空间管理4.3分页存储管理4.4分段存储管理4.5虚拟存储器操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院4.1概述4.1.1存储层次4.1.2地址转换4.1.3程序的装入操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院1.层次结构容量存取速度成本Cache主存储器辅助存储器操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院2.高速缓存高速缓存通常采用静态存储器(SRAM),速度小于25ns,常见的容量有128KB和256KB两种。它可以位于CPU和MMU之间(称为虚地址Cache),也可以位于MMU和内存之间(称为实地址Cache)。Cache的管理Cache数据的一致性问题操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院4.1概述4.1.1存储层次4.1.2地址转换4.1.3程序的装入操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院1.逻辑地址和物理地址通常用户程序是用高级语言编写的,并以二进制的形式保存在计算机的辅存中,称为源程序,源程序经过编译得到计算机能理解的目标程序,目标程序中的地址称为逻辑地址(相对地址)。计算机主存中每个存储单元都有一个编号与之对应,这些编号称为物理地址(绝对地址)。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院2.地址转换将用户程序中的指令或数据的逻辑地址转换为存储空间中物理地址的工作称为地址转换或重定位。地址转换有两种方法:静态重定位、动态重定位操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院内存1300+N130011001000N3001000LOAD1,30012345LOAD1,300123450程序静态地址重定位操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院动态地址重定位CPU存储器程序内存1300+N130011001000N3001000LOAD1,30012345LOAD1,3001234503001000操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院4.1概述4.1.1存储层次4.1.2地址转换4.1.3程序的装入操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院程序在运行期间,被分为不同的生命期,每一步地址都有不同形式:编译阶段链接阶段装入阶段执行阶段操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院第4章存储管理4.1概述4.2基本存储空间管理4.3分页存储管理4.4分段存储管理4.5虚拟存储器操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院4.2基本存储空间管理4.2.1单用户存储管理4.2.2固定分区存储管理4.2.3可变分区存储管理4.2.4交换操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院这是最简单的一种存储管理方法,用于早期单用户系统中。它的最大特点是内存分配方式简单,整个内存空间被分割成系统区和用户区两部分,系统区用来存放操作系统驻留代码和数据,剩余空间则全部作为用户区,分配给一个用户作业使用。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院os内核代码用户进程空闲区域系统区用户区基址寄存器单用户存储管理内存分配操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院单用户存储管理的存储保护CPU<界限寄存器逻辑地址YN寻址错误+物理地址基址寄存器内存操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院4.2基本存储空间管理4.2.1单用户存储管理4.2.2固定分区存储管理4.2.3可变分区存储管理4.2.4交换操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院固定分区存储管理是满足多道程序环境的最简单的存储管理方案。“固定”是指分区的大小和个数是在开机时由系统管理员指定,直到关机都不会再重新划分。每个分区只能存储一个进程,进程也只能在它所驻留的分区中运行。一个计算机系统中可以运行的进程数依赖于内存中的分区数量。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院os内核代码J1J2J304056072104136存储空间分区图分区号大小(KB)始址(K)占用标记分区1(16k)分区2(16k)分区3(32k)分区4(32k)123416163232405672104J10J2J3主存分配表操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院在多道程序环境下,可能出现申请分配存储空间的进程数大于内存的分区数,这就需要先将这些进程排队,当出现空闲分区时再从队列中取出,为其分配分区。操作系统分区1分区2分区3分区4操作系统分区1分区2分区3分区4带有多个输入队列单个输入队列操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院逻辑地址<界限寄存器YN寻址错误+基址寄存器操作系统分区1分区2分区3固定分区存储管理的地址映射和存储保护操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院4.2基本存储空间管理4.2.1单用户存储管理4.2.2固定分区存储管理4.2.3可变分区存储管理4.2.4交换操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院1、可变分区存储管理的基本原理系统初启后,在内存中除常驻操作系统,其余空间为一个完整的大空闲区。当有进程申请分配内存空间时,系统从该空闲区中划分出一块与进程大小相同的区域进行分配。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院可变分区存储管理中可以采用两种数据结构来完成存储空间的分配和回收。⑴空闲分区表⑵空闲分区链操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院分区号大小(KB)始址(K)占用标记12343461454040123182239J300J45……………向前指针N+20向后指针N+20空闲分区(N个字节)空闲分区表空闲分区链操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院例:假设一个计算机系统的内存为2560KB,采用可变分区存储管理,操作系统占用内存低地址的400KB,则用户区的内存为2160KB。输入队列如下:进程内存(KB)时间J160010J24005J390010J430018J580020操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院2.分区的分配策略常用的分配策略有五种:⑴最先适应算法(FirstFit,FF)⑵下次适应算法(NextFit,NF)⑶最佳适应算法(BestFit,BF)⑷最坏适应算法(WorstFit,WF)⑸快速适应法(QuickFit,QF)操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院3.可变分区的回收外部碎片有两种含义:一是指很小且很难分出的内存空间;另一种是当内存中的所有空闲分区的长度之和足够装入一个进程,但各个单个空闲分区的长度却不够装入一个进程,这些空闲分区就称为外部碎片。随着运行时间的增加,外部碎片的数量也会增多,这就势必会增加内存空间的浪费,而且空闲分区的查找效率也要降低。解决外部碎片的办法,就是紧凑(Compaction)。在空闲分区回收时将它与相邻的分区进行合并,形成一个大的空闲分区。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院操作系统J1200KBJ2300KBJ3400KB操作系统J1200KBJ2300KBJ3400KB操作系统J1200KBJ2300KBJ3400KB300KB700KB900KB1300KB1600KB1900KB2300KB300KB300KB2300KB2300KB700KB700KB1100KB1400KB1600KB1900KB900KB1300KB1600KB1900KB(a)(b)操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院4.地址转换与存储保护地址转换机构中的两个寄存器:界限寄存器和基址寄存器,分别存放作业占用的连续存储空间的长度,和分配给作业的分区的最小绝对地址值。在进程运行过程中执行紧凑操作,需要移动内存中的代码,这时只要用新的起始地址代替基址寄存器中的地址即可,而不需要修改程序。有些系统为计算机提供多对基址/限长寄存器,允许一个进程占用多个分区。这些寄存器中有一对寄存器所指示的区域是共享的,可以存放共享代码和数据。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院4.2基本存储空间管理4.2.1单用户存储管理4.2.2固定分区存储管理4.2.3可变分区存储管