Windows操作系统原理与应用-存储管理(上)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Windows操作系统原理与应用第7讲存储管理(上)马洪兵,2011年春2第7讲存储管理(上)存储管理概述内存管理的基本原理马洪兵,2011年春3存储管理概述存储体系存储管理的功能逻辑地址和物理地址重定位技术马洪兵,2011年春4存储体系现代微处理器能以很高的速度执行指令,因此处理器必须连接一个容量大、速度快的存储器如果存储器容量太小,就不能装载足够的程序以保持处理器全力处理如果太慢,就不能像处理器执行指令那样快地提供指令和数据成本也是一个重要的因素不幸的是,设计一个足够大、足够快又足够便宜的单一存储器是不可能的马洪兵,2011年春5存储体系处理器访问存储器时,无论取指令还是取数据,所访问的存储单元都趋向于聚集在一个较小的连续单元区域中——存储器访问的局部性原理时间上的局部性——最近的将来要用到的信息很可能就是现在正在使用的信息。主要由循环造成空间上的局部性——最近的将来要用到的信息很可能与现在正在使用的信息在空间上是邻近的。主要由顺序执行和数据的聚集存放造成马洪兵,2011年春6存储体系高速缓存:DataCache、CodeCacheTLB(TranslationLookasideBuffer)内存:DRAM,SDRAM等外存:软盘、硬盘、光盘、磁带等外存(secondarystorage)DOS核心命令处理程序内存(primarystorage)高速缓存(cache)寄存器(register)马洪兵,2011年春7存储管理的功能Cache对于软件是不可见的,因此操作系统存储管理的功能针对的是内存和外存的管理,特别是内存管理存储分配和回收分配和回收算法及相应的数据结构地址变换可执行文件生成中的链接技术程序加载(装入)时的重定位技术进程运行时硬件和软件的地址变换技术和机构马洪兵,2011年春8存储管理的功能存储共享和保护代码和数据共享地址空间访问权限(读、写、执行)存储器扩充——存储器的逻辑组织和物理组织由应用程序控制:覆盖由OS控制:交换(整个进程空间),虚拟存储的请求调入和预调入(部分进程空间)马洪兵,2011年春9逻辑地址和物理地址逻辑地址(相对地址,虚地址):用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式其首地址为0,其余指令中的地址都相对于首地址来编址不能用逻辑地址在内存中读取信息物理地址(绝对地址,实地址):内存中存储单元的地址马洪兵,2011年春10逻辑地址和物理地址地址映射:将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址当程序装入内存时,操作系统要为该程序分配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致,而CPU执行指令时,是按物理地址进行的,所以要进行地址转换马洪兵,2011年春11地址映射BA=100034561200物理地址空间movax,data1data1db3456源程序movax,[200]34560100200编译连接逻辑地址空间movax,[1200]10001100逻辑地址和物理地址马洪兵,2011年春12重定位技术重定位:在可执行文件装入时需要解决可执行文件中的地址(指令和数据)和内存地址的对应重定位由操作系统中的装入程序来完成重定位方法:绝对装入可重定位装入动态装入马洪兵,2011年春13重定位技术绝对装入(absoluteloading)在可执行文件中记录内存地址,装入时直接定位在该内存地址(即文件中记录的地址)优点:装入过程简单缺点:过于依赖于硬件结构,不适于多道程序系统马洪兵,2011年春14重定位技术可重定位装入(relocatableloading)在可执行文件中,列出各个需要重定位的地址单元和相对地址值。当用户程序被装入内存时,一次性实现逻辑地址到物理地址的转换,以后不再转换。即装入时根据所定位的内存地址去修改每个重定位地址项,添加相应偏移量优点:不需硬件支持,可以装入有限多道程序缺点:一个程序通常需要占用连续的内存空间,程序装入内存后不能移动。不易实现共享马洪兵,2011年春15重定位技术动态装入(dynamicrun-timeloading)在可执行文件中记录虚拟内存地址,装入和执行时通过硬件地址变换机构,完成虚拟地址到实际内存地址的变换优点:OS可以将一个程序分散存放于不连续的内存空间,可以移动程序,有利用实现共享能够支持程序执行中产生的地址引用,如指针变量(而不仅是生成可执行文件时的地址引用)它是虚拟存储的基础缺点:需要硬件支持(通常是CPU),OS实现较复杂马洪兵,2011年春16第7讲存储管理(上)存储管理概述内存管理的基本原理马洪兵,2011年春17内存管理的基本原理单一连续区存储管理分区存储管理页式和段式存储管理虚拟存储器管理马洪兵,2011年春18单一连续区存储管理内存分为两个区域:系统区,用户区。应用程序装入到用户区,可使用用户区全部空间最简单,适用于单用户、单任务的OS优点:易于管理缺点:程序全部装入,很少使用的程序部分也占用内存;对要求内存空间少的程序,造成内存浪费用户程序操作系统0xFFF…F0x000…0马洪兵,2011年春19分区存储管理把内存分为一些大小相等或不等的分区(partition),每个进程占用一个或几个分区。操作系统占用其中一个分区特点:适用于多道程序系统和分时系统支持多个程序并发执行难以进行内存分区的共享问题:可能存在内碎片和外碎片内碎片:占用分区之内未被利用的空间外碎片:占用分区之间难以利用的空闲分区(通常是小空闲分区)马洪兵,2011年春20分区存储管理固定分区(fixedpartitioning)把内存划分为若干个固定大小的连续分区分区大小相等:只适合于多个相同程序的并发执行分区大小不等:多个小分区、适量的中等分区、少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区优点:没有外碎片缺点:有内碎片马洪兵,2011年春21分区存储管理8M8M8M8M8MOperatingSystemOperatingSystem8M12M8M8M6M4M2M固定分区(大小相同)固定分区(多种大小)马洪兵,2011年春22分区存储管理动态分区(dynamicpartitioning)动态创建分区:在装入程序时按其初始要求分配,或在其执行过程中通过系统调用进行分配或改变分区大小优点:没有内碎片缺点:有外碎片马洪兵,2011年春23分区存储管理动态分区(dynamicpartitioning)OperatingSystemProcess1320KProcess2Process3224K288K64KOperatingSystemProcess1320KProcess3224K288K64KOperatingSystemProcess1320KProcess3288K64KProcess4128K96K马洪兵,2011年春24分区存储管理动态分区——分区分配算法寻找某个空闲分区,其大小需大于或等于程序的要求若是大于要求,则将该分区分割成两个分区,其中一个分区为要求的大小并标记为“占用”,而另一个分区为余下部分并标记为“空闲”分区的先后次序通常是从内存低端到高端马洪兵,2011年春25分区存储管理动态分区——分区分配算法最先匹配法(first-fit):按分区的先后次序,从头查找,找到符合要求的第一个分区该算法的分配和释放的时间性能较好,较大的空闲分区可以被保留在内存高端但随着低端分区不断划分而产生较多小分区,每次分配时查找时间开销会增大下次匹配法(next-fit):按分区的先后次序,从上次分配的分区起查找(到最后分区时再回到开头),找到符合要求的第一个分区该算法的分配和释放的时间性能较好,使空闲分区分布得更均匀,但较大的空闲分区不易保留马洪兵,2011年春26分区存储管理动态分区——分区分配算法最佳匹配法(best-fit):找到其大小与要求相差最小的空闲分区外碎片较小,但随着运行时间的增长会积累较多小碎片。较大的空闲分区可以被保留最坏匹配法(worst-fit):找到最大的空闲分区基本不留下小空闲分区,但较大的空闲分区不被保留马洪兵,2011年春27页式和段式存储管理页式和段式存储管理是通过引入进程的逻辑地址,把进程地址空间与实际存储位置分离,从而增加存储管理的灵活性简单页式简单段式段页式马洪兵,2011年春28简单页式简单页式(simplepaging)管理是将程序的逻辑地址空间和物理内存划分为固定大小的页和页框(page/pageframe),程序加载时,分配其所需的所有页,这些页不必连续马洪兵,2011年春29简单页式01234567891011121314A.0A.1A.2A.3B.0B.1B.2C.0C.1C.2C.301234567891011121314A.0A.1A.2A.3C.0C.1C.2C.301234567891011121314A.0A.1A.2A.3C.0C.1C.2C.3D.0D.1D.2D.3D.4马洪兵,2011年春30简单页式优点:没有外碎片,每个内碎片不超过页大小一个程序不必连续存放便于改变程序占用空间的大小。即随着程序运行而动态生成的数据增多,地址空间可相应增长缺点:程序全部装入内存马洪兵,2011年春31简单页式简单页式管理的数据结构进程页表:每个进程有一个页表,描述该进程占用的物理页框及逻辑排列顺序;逻辑页号(本进程的地址空间)物理页框号(实际内存空间)物理页框表:整个系统有一个物理页框表,描述物理内存空间的分配使用状况数据结构:位示图,空闲页面链表请求表:整个系统有一个请求表,描述系统内各个进程页表的位置和大小,用于地址转换,也可以结合到各进程的PCB里马洪兵,2011年春32简单页式指令所给出地址分为两部分:逻辑页号,页内偏移地址以页号为索引,查进程页表,得物理页框号:逻辑页号页框物理地址页号页内地址091019逻辑地址马洪兵,2011年春33简单页式页式地址变换ProgramPagingMainMemoryLogicalAddressRegisterPageTablePageFrameOffsetP#Frame#PageTablePtrPage#OffsetFrame#Offset+ProgramPagingMainMemoryLogicalAddressRegisterPageTablePageFrameOffsetP#Frame#PageTablePtrPage#OffsetFrame#Offset+马洪兵,2011年春34简单页式为缩短查找时间,可以采用TLB(TranslationLookasideBuffer,快表),TLB是一种相联映射的存储器...逻辑页5页框290逻辑页64无效逻辑页17页框1004逻辑页65页框801逻辑页6页框14逻辑页7无效TLB页号:17逻辑地址同时读取并比较匹配马洪兵,2011年春35简单段式简单段式(simplesegmentation)将程序的地址空间划分为若干个段(segment),程序加载时,分配其所需的所有段(内存分区),这些段不必连续物理内存的管理采用动态分区马洪兵,2011年春36简单段式程序通过分段(segmentation)划分为多个模块,如代码段、数据段、共享段可以分别编写和编译可以针对不同类型的段采取不同的保护可以按段为单位来进行共享,包括通过动态链接进行代码共享优点:没有内碎片,外碎片可以通过内存紧缩来消除便于改变进程占用空间的大小缺点:进程全部装入内存马洪兵,2011年春37简单段式B0S-1A0N-1Y0L-1X0P-1M0K-1逻辑段号01234进程的地址空间PKSLN内存K3200P1500L6000N8000S5000长度段地址01234操作系统15003200500060008000马洪兵,

1 / 62
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功