




已阅读5页,还剩114页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统CDIO之路,2012,软件学院,第4章存储管理,4.1存储管理的基本功能4.2分区存储管理4.3分页式存储管理4.4分段式存储管理4.5段页式存储管理4.6虚拟存储管理4.8UNIX系统进程的虚拟地址空间4.9UNIX系统交换4.10UNIX系统进程正文段的共享4.11UNIX系统请求调页4.12UNIX系统中交换策略与请求调页策略的结合,4.1存储管理的基本功能,4.1.1转换4.1.2存储保护和共享4.1.3内存分配回收4.1.4内存扩充,4.1.1转换,1.连接和加载连接可以分为两种方式:静态连接和运行时动态连接。,ModuleAcallfunction1,ModuleBfunction1().,ModuleAcallL+F,ModuleBfunction1().,可执行文件,目标模块,0,L-1,L+N,L,L+M-1,M-1,N,0,L-1,0,图4.1静态连接示意图,运行时动态连接:指在程序运行时进行连接,通常被连接的共享代码称为动态连接库(DLL,Dynamic-LinkLibrary)或共享库(SharedLibrary)。加载:绝对加载、可重定位加载和运行时动态加载。,2.地址转换:把进程的逻辑地址转换为内存的物理地址地址转换的方式:静态地址重定位和动态地址重定位。静态:由加载模块把进程中的指令地址全部转换为物理地址动态:在程序执行过程中,在CPU访问程序和数据之前实现地址转换。,在动态地址重定位中,逻辑地址、物理地址和地址映射的关系:,500,2000,+,0,100,500,VR,2500,图4.2动态地址重定位,LoadAData1,LoadA500,456,0,500,编译连接,100,456,LoadA500,地址映射,BR=2000,2500,图4.3源程序、逻辑地址空间和物理地址空间的关系,4.1.2存储保护和共享,内存信息保护法:1、上下界保护法;(硬件法)2、保护键法;(软件法)3、界限寄存器和CPU的用户态或核心态工作方式相结合的保护方式。(软硬件结合),4.1.3内存分配回收,内存的分配方式,可以分为三种:连续分配方式、离散分配方式和虚拟存储管理方式。,连续分配方式,1、单一连续分区管理方式。,2、分区管理方式。,a.系统区,b.用户区,离散分配方式,1、分页存储管理方式,2、分段存储管理方式,3、段页式存储管理方式,虚拟存储管理方式,1、请求分页式管理方式,2、请求分段式管理方式,3、请求段页式管理方式,4.1.4内存扩充,定义:把外存中具备运行条件的进程换入内存内存扩充的方式:(1)由应用程序控制的:覆盖方式;(2)由操作系统控制的:交换方式、请求调入方式和预调入方式。,4.2分区存储管理,4.2.1固定分区4.2.2动态分区4.2.3地址转换和存储保护4.2.4存储共享4.2.5分配和回收算法4.2.6覆盖和交换4.2.7分区存储管理的优缺点,4.2.1固定分区,固定分区(fixedpartition):在作业装入之前,内存将被划分成若干固定大小的连续分区,划分好后,分区的位置不可变,分区的个数不可变,分区的大小不可变。,4M,12M,8M,16M,固定分区(大小不等),图4.4固定分区的划分方法,图4.5分区说明表,4.2.2动态分区,指根据进程大小,动态地为之分配内存空间,进程A,进程B,进程C,进程D,操作系统进程A,操作系统进程A,操作系统进程A,操作系统进程A,16K,8K,12K,8K,进程B,进程B,进程C,进程D,进程B,进程B,进程B,图4.6动态分区分配示意图,(a)分区说明表,(b)空闲分区表,图4.7分区说明表和空闲分区表,动态分区管理中何时对内存空间进行紧凑:(1)在某个分区被释放后立即进行紧凑(2)当请求分配找不到足够大的自由分区分给用户时,使用紧凑。,用户程序1,10KB,20KB,用户程序3,用户程序1,用户程序2,用户程序3,30KB,内存,(b)紧凑后,(a)紧凑前,内存,拼凑,图4.8紧凑示意图,4.2.3地址转换和存储保护,固定分区存储管理的地址转换可以采用静态地址重定位和动态地址重定位。静态地址重定位:在进程装入前,进行地址转换,并检查其物理地址是否在分区的指定长度中,若是,则装入,否则发生地址越界,不能装入。动态地址重定位:,下限寄存器,上限寄存器,CPU,加法器,比较器,用户区,分区1,分区2,分区4,分区5,产生中断,物理地址,逻辑地址,图4.9分区存储管理的动态地址重定位,4.2.4存储共享,进程在各个分区内都是连续存储的,因而不允许各个分区之间有公共区域。当几个进程共享某些指令和数据时,各个进程就只好在各自分区内各放一个副本。因此,分区存储管理难以实现各分区间的信息共享。,4.2.5分配和回收算法,1.固定分区的分配算法,内存,8MB,8MB,8MB,8MB,8MB,16MB,16MB,8MB,内存,(a)大小相等的分区,(b)大小不等的分区,图4.10固定分区的例子,进程大小,取分区说明表第一项,表是否结束,占有标志是否为0,无法分配,进程大小分区长度,分区占有标志设为进程号,返回分区号,无法分配,否,否,是,否,是,是,图4.11固定分区分配算法,2.动态分区的分配算法三种方式:最先适应法(firstfitalgorithm)、最佳适应法(bestfitalgorithm)、最坏适应法(worstfitalgorithm)。,3.动态分区的回收算法,已分配,F1,F1,已分配,回收区,回收区,回收区,回收区,已分配,已分配,F2,F2,图4.12动态分区回收示意图,4.移动技术改变内存中进程的存放区域,从而使分散的空闲区汇集成一片,便于进程装入。,操作系统进程1空闲区进程2空闲区进程3空闲区,操作系统进程1进程2进程3空闲区,操作系统进程1进程2进程3进程4空闲区,图4.13移动分配示例,4.2.6覆盖和交换,1.覆盖技术覆盖(overlay)技术指:同一主存区可以被不同的程序段重复使用。,主程序(30k),子程序2(10k),子程序1(8K),子程序11(15K),子程序21(20K),子程序22(25K),内存区覆盖区1(25k)覆盖区2(10k)主程序(30k),图4.14覆盖示意图,2.交换技术交换技术是指:操作系统根据需要把主存中暂时不运行的某个进程移动到外存交换区,而把外存交换区中的某个进程移到相应的主存区,并使其投入运行,进程P2,进程P1,换出,换入,内存,外存交换区,图4.15交换示意图,4.2.7分区存储管理的优缺点,分区存储管理的优点:(1)支持多道程序设计,实现了多个进程对内存的共享。提高了内存和CPU的利用效率;(2)分区存储管理的原理简单,所需硬件支持较少,容易实现。分区存储管理的缺点:(1)分区存储管理要求进程在分区内连续存储,进程大小受内存空间容量的限制;(2)分区存储管理难以实现存储共享;(3)固定分区分配算法会产生内部碎片,动态分区分配算法会产生外部碎片,内存利用率不高。,4.3分页式存储管理,4.3.1基本原理4.3.2数据结构4.3.3地址转换和存储保护4.3.4存储共享4.3.5分配算法4.3.6分页式存储管理的优缺点,4.3.1基本原理,分页式存储管理允许把一个进程分配到不相邻的分区中。,图4.16页的组成分页式存储管理中的页面可以被任一用户进程所共享。,4.3.2数据结构,分页式管理是指在进程开始执行之前,把该进程的指令和数据全部装入内存的各个页面内,并通过页表(pagetable)和硬件地址变换机构,实现逻辑地址到物理地址的转换。,图4.17页表,012345,02141131318522,页面,页号,作业的地址空间,页表,主存中页面块,图4.18页表作用,作业表是操作系统为当前运行的所有作业建立的,图4.19作业表,存储页面表的两种实现方法:1、位视图;2、链表法,H86,P62,图4.21链表法,4.3.3地址转换和存储保护,地址转换:先从页表控制寄存器中找到相应的页表,再以页号为索引从页表中找到对应的页面号,并根据下列公式:物理地址=页面号页表长度+页内地址计算出要访问内存单元的物理地址,,页号页内地址,页表起始地址页表长度,页面号页内地址,地址越界,作业表,页表控制寄存器,页表,逻辑地址,物理地址,图4.22分页式存储管理的地址转换,4.3.4存储共享,分页式存储管理能实现多个进程共享程序和数据,在共享时,必须区分数据共享和程序共享。,Data2,P1页表,P2页表,内存,图4.23分页式存储管理的数据共享,4.3.5分配算法,进程所需页数,存储页面表中有足够的页面数吗?,无法分配,先从位示图中找出为“0”的那些位置为“1”,按设置为“1”的位计算出相应的页面号,填入该作业的页表中,把该页表的起始地址和页表长度填入作业表中,返回,是,否,图4.24页面分配算法流程图,4.3.6分页式存储管理的优缺点,优点:(1)不要求各个页面之间连续存储,实现了离散存储,可以避免产生外部碎片,为以后实现程序的“部分装入、部分对换”奠定了基础。缺点:(1)消除了外部碎片,但内部碎片仍然存在;(2)进行地址转换和存储保护时,需要有相应的硬件支持,机器成本高。,4.4分段式存储管理,4.4.1基本原理4.4.2地址转换和存储保护4.4.3存储共享4.4.4分段式存储管理的优缺点,4.4.1基本原理,基本原理:把用户进程按逻辑关系划分成若干个段,每个段有自己的名字,从零开始编址。以段为基本单位,对进程进行划分,要求每一段分配一个连续的存储空间,而各段之间不一定连续。,是,否,进程所需页数,存储页面表中有足够的页面数吗?,先从位示图中找出为“0”的那些位置为“1”,无法分配,返回,按设置为“1”的位计算出相应的页面号,填入该作业的页表中,把该页表的起始地址和页表长度填入作业表中,图4.24页面分配算法流程图,一个程序可以分为若干程序段:主程序段、若干子程序段、若干数据段,每段的地址都从“0”开始编址,每段都有逻辑名、并具有完整的逻辑意义。,图4.25程序的分段结构,对源程序进行编译、连接时,分段式存储管理要求把进程的逻辑地址空间设计为二维结构,即段号和段内地址,图4.26段的组成,4.4.2地址转换和存储保护,实现地址变化,将进程的逻辑地址(二维)转换为物理地址(一维),操作系统为每个进程建立一张段映射表,简称为“段表”。,图4.27段表,段号与用户指定的段名一一对应;始址和段长分别表示该段在内存或外存的物理地址与实际长度;存取方式用来对该段进行存取保护。,图4.28进程表,分段式存储管理的地址变换:需要访问内存二次。第一次先访问段表以计算得到待访问指令或数据的物理地址,然后对物理地址进行取数据或存数据。,图4.29分段式存储管理的地址变换,4.4.3存储共享,使用相同的段名,在其段表中填入已存在于内存之中的段基址,便可实现逻辑上完整的信息共享,内存,P2段表,P1段表,b,c,a,d,e,进程P1,段1a,段2b,段3c,进程P2,段1a,段2d,段3e,图4.30分段式存储管理的信息共享,4.4.4分段式存储管理的优缺点,优点:(1)有利于实现信息的共享;(2)可以事先知道数据段会增长到多大(3)动态连接(4)内存和外存统一管理用虚存实现方式缺点:(1)需要有更多的硬件支持,提高了机器成本;(2)存在碎片问题;(3)缺段中断处理、动态增长会给系统增加难度和开销。有可能会产生抖动现象。,4.5段页式存储管理,4.5.1基本原理4.5.2地址转换4.5.3段页式存储管理的优缺点,4.5.1基本原理,基本原理是:(1)先将整个内存划分成大小相等的、位置固定的页面;(2)再把进程按逻辑关系分为若干个段,并为每个段赋予一个段名;(3)最后把每段的线性地址空间划分成与页面大小相等的页。,图4.31段页式存储管理的逻辑地址,段页式存储管理的数据结构,包括作业表、段表和页面三级结构。,段表,内存,页表,作业表,页表,页号页面号其他,110XX,211XX,312XX,页号页面号其他,114XX,215XX,318XX,图4.32段页式存储管理中作业表、段表、页表与内存的关系,4.5.2地址转换,首先,访问段表;其次,访问页表;然后,访问物理单元。,页表,内存,逻辑地址,段表,段表控制寄存器,段表起始地址段表长度,段号s段内页号p页内位移d,图4.33段页式存储管理的地址变换,4.5.3段页式存储管理的优缺点,优点:段页式存储管理具有分页式存储管理和分段式存储管理的优点。缺点:所需的硬件支持、复杂性和系统开销也会随之增加。在地址转换过程中,如果不采用快表提高地址转换速度,那么CPU的执行速度将大大下降。,4.6虚拟存储管理,4.6.1虚拟存储器的概念4.6.2请求分页式虚拟存储管理4.6.3请求分段式虚拟存储管理4.6.4请求段页式虚拟存储管理,4.6.1虚拟存储器的概念,虚拟存储器指:自动实现部分装入和部分对换功能,能只把进程的一部分装入内存便可运行,从逻辑上,是对内存容量进行扩充的一种虚拟的存储器系统。虚拟存储管理采用以下几种技术实现:请求分页式虚拟存储管理、请求分段式虚拟存储管理和请求段页式虚拟存储管理。,4.6.2请求分页式虚拟存储管理,1基本原理两种方式:请求页式管理和预调入页式管理。请求页式管理指:当需要执行某条指令或访问某个数据,而发现它们不在内存中,发生缺页中断,系统从外存中把该指令或数据所在的页面调入内存。预调入页式管理:一种主动的缺页调入策略,指进程在运行过程中,动态预测进程所需要的页面,预先调入内存中,尽量确保进程所需的页面都已调入。,2地址变换请求页式管理的地址转换和存储保护不可避免地会产生缺页中断。解决方法:1、在页表原有页号和页面号的基础上,增加驻留标志位、外存始址和其他标志2、根据所缺页的外存始址将该页从外存调入内存,图4.35请求页式管理的地址变换过程,3页面分配策略固定分配:保持页面数固定不变,只要发生一个缺页中断,就会有一页被替换掉可变分配。进程生命周期中,分配的页面数可变4面置换策略局部替换:页面置换算法从属于进程自己的页面中选择一个替换页面,其作用范围是本进程。全局替换:页面置换算法从所有的页面中选择一个替换页面,其作用范围是整个系统。,5面置换算法(1)随机页面置换算法:所淘汰页面由随机程序产生的随机数决定。(2)先进先出页面置换算法(FIFO):基于程序按线性顺序来访问物理空间这一假设,总是选择在内存中驻留时间最长的一个页面进行淘汰。,分配页面数,(a)正常情况,缺页次数,分配页面数,(b)Belady现象,缺页次数,图4.36FIFO算法的缺页次数,(3)最近最久未使用页面置换算法(LeastRecentlyUsed):总是选择最近一段时间内最久没有使用过的页先淘汰。这种算法在操作系统、数据管理系统和文件系统中被广泛使用。,4.6.3请求分段式虚拟存储管理,1.基本原理增加了请求调段功能和分段置换功能所形成的段式虚拟存储系统。,图4.37FIFO算法的缺页次数,访问字段:用于记录该段被访问的频繁程度;修改位:用于表示该段进入内存后,是否已被修改过;存在位:用于说明该段是否已调入内存;增补位:用于表示该段在运行过程中,是否进行过动态增长;外存起址:用于指示该段在外存中的起始地址。,2.请求调段策略若进程所要访问的段未调入内存,便由缺段中断机构产生缺段中断信号,由缺段中断处理程序将所需的段调入内存;若空闲区总和不能满足要求,则可调出一个或几个分段到外存上,再将该段调入内存。,图4.38缺段中断处理,3.地址变换:在分段式存储管理地址变换机构的基础上形成的。,图4.39请求分段式虚拟存储管理的地址变换过程,4.分段共享与保护:用共享段表来记录每一个共享段的段号、段长、内存始址、存在位等信息,并记录共享此分段的每个进程的情况。,图4.40共享段表,4.6.4请求段页式虚拟存储管理,请求段页式虚存管理的动态地址转换机构由段表、页表和快表构成。,4.7UNIX存储管理,UNIX系统中,通常采用请求调页和交换两种策略相结合的存储管理模式。当进程执行时,通过缺页申请把进程映像从外存调入内存执行。当内存中的空闲页下降到一定界限时,运行系统中的换页进程按一定的算法把内存中的某些页(可能属于不同的进程)换出到交换区;当空闲空间继续下降到更低的界限时,就启动系统中的交换进程,按一定的挑选算法把某些进程在内存中所有的映像一次换出到交换区。,4.8UNIX系统进程的虚拟地址空间,4.8.1区4.8.2页和页表4.8.3对进程虚拟地址空间的操作,4.8.1区,在UNIXSystemV中,一个进程的虚拟地址空间被划分成逻辑区(logicalregion),每一个逻辑区存放一个或多个逻辑段。为了对区进行管理,系统设置了一个称为区表的数据结构,图4.41区表,图4.42区表、进程区表和区的关系,4.8.2页和页表,为了实现虚拟地址到物理地址的映射,系统设置了一种称为页表的数据结构。页表每一个区一张,它实现进程的每个区中的某一页与该页所存放的内存页面之间的对应关系。,图4.43页表最主要部分,图4.46实现虚拟地址68432转换为物理地址的数据结构,4.8.3对进程虚拟地址空间的操作,进程的虚地址空间由若干个区构成,系统通过区表和进程区表实现对区的操作。1.为一个区加锁和开锁当核心要对区进行操作时,先锁住该区以阻止其他进程对这个区的访问,访问完之后为该区开锁,从而恢复其他进程对这个区的访问权。,2.分配一个区在系统调用fork,exec和shmget中,核心要为进程分配一个新的区。核心中有一个空闲区链表和活动区链表。空闲区链表中连接的是所有未分配的区,活动区链表中连接的是所有已分配的区。,分配一个区的算法为allocreg。【算法4.1allocreg】功能:分配一个区。输入:(1)i节点指针;(2)区类型。输出:加锁的区。,图4.47allocreg算法流程,3.把区连接到进程中在系统调用fork,exec和shmat中要把区连接到进程的地址空间中。,【算法4.2attachreg】功能:连接一个区到进程的地址空间中。输入:(1)指向要连接的区的指针;(2)要连接区的进程;(3)区要连接到进程中的起始虚拟地址;(4)区类型。输出:进程区表表项。,图4.48attachreg算法流程,4.改变区的长度【算法4.3growreg】功能:改变区的长度。输入:(1)指向进程区表表项的指针(2)改变的大小(正或负值)。输出:无。,图4.49growreg算法流程,5.装入一个区【算法4.4loadreg】功能:装入文件的一部分到一个区中。输入:(1)指向进程区表项的指针;(2)装入区的虚拟地址;(3)要装入区的文件的i节点指针;(4)开始位置在文件中的字节偏移量;(5)要装入数据量的字节计数。输出:无。,图4.50loadreg算法流程,图4.51装入文件到区中示例子,6.释放一个区【算法4.5freereg】功能:释放一个区。输入:指向要释放区的指针。输出:无。,图4.52freereg算法流程,7.从进程虚地址空间中断接一个区,【算法4.6detachreg】功能:从进程虚地址空间中断接一个区。输入:指向进程区表项的指针。输出:无。,图4.53detachreg算法流程,8.复制区:在fork系统调用中,核心要复制父进程的区到子进程中去。,【算法4.7dupreg】输入:指向区表项的指针。输出:指向被复制区的指针,图4.54dupreg算法流程,有一个进程A调用fork系统调用创建了子进程B。进程A和进程B有共同的正文区,故它们可共享同一个正文区,但数据区和栈区是私有的,故要将它们进行复制。,图4.55区的复制示例,4.9UNIX系统交换,4.9.1交换空间的管理4.9.2进程的换出4.9.3进程的换入4.9.4进程交换的实现,4.9.1交换空间的管理,交换所涉及到的存储空间分为两大部分:内存空间和交换空间。采用了成组连接法实现对存储空间空闲块的管理。1.数据结构采用交换映射表对交换区的空闲磁盘空间进行管理。其结构定义如下:structmapunsignedintm_size;/*可用块数目*/unsignedintm_addr;/*头一个块地址*/;交换映射表的定义如下:structmapswapmap;,2.交换空间的分配与释放分配和释放交换空间分别由malloc和mfree函数完成。,【算法4.8malloc】功能:分配交换空间。输入:交换映射表地址;要求分配的块数。输出:分配成功,返回所分配存储空间首址;否则,返回0。,算法4.9mfree功能:释放交换空间。输入:交换映射表;释放空闲区的块数(size);释放空闲区始址(aa)。输出:无。,图4.56malloc算法流程,图4.57mfree算法流程,在释放对换空间时,mfree根据所要释放的空闲区的首地址在交换映射表中找到插入位置。此时存在如图4.58所示的四种情况。,图4.58空闲区的合并,4.9.2进程的换出,当核心需要内存空间时,就可能要换出某个进程。以下的情况可能导致进程被换出:1、用fork()系统调用产生一个子进程;2、用brk()系统调用扩大进程的空间;3、由于进程的栈变大而使进程增大;4、核心要换入某一个以前被换出的进程。,核心采用如下公式来寻找在内存中要被换出的进程:F=p_time+(p_nice-NZERO)-age_vs_size(hibyte(p_size)其中:p_time是进程在内存中的驻留时间;p_nice是cpu或进程优先数的修补量;NZERO是常数20;p_size是可交换的进程映像的长度;age_vs_size(hibyte(p_size)为一个与进程映像大小呈正比的函数。F的值越大,进程被换出的可能性越大。,图4.59进程被换出到交换设备上,4.9.3进程的换入,交换进程使用以下函数计算哪一个在交换区中的就绪进程应该被换入内存。F=p_time-(p_nice-NZERO)age_vs_size(hibyte(p_size)其中p_time为进程在交换区驻留的时间,其余同前。F的函数值越大,对应进程被换入内存的可能性也就越大。,图4.61进程被从交换设备上换入内存,4.9.4进程交换的实现,进程的交换由进程0和进程2来完成。进程0主要通过执行函数sched实现进程的交换。【算法4.10sched】功能:完成进程的换入与换出。输入:无。输出:无。,图4.62sched算法流程,【算法4.11swapin】功能:将交换区中的一个进程P换入内存。输入:要换入的进程指针P。输出:1(成功)或0(失败)。,图4.63swapin算法流程,【算法4.12xswap】功能:将进程P的映像换出到交换区。输入:指向要换出进程的指针P;,ff,0:部分换出;SXFRK:完全换出并且不释放内存空间,用于在内存无空间的情况下在交换区建立一个子进程;SXTEXT:由于正文段增长而被换出;SXBRK:由于数据段增长而被换出;SXSTK:由于栈段增长而被换出;size:换出的大小。,输出:无。,图4.64xswap算法流程,进程2(又称为特殊进程0)执行函数xsched()换出那些由于自身增长而得不到内存的进程,同时周期性地将延时与缓冲区写到文件系统中。【算法4.13xsched】功能:根据xsp.x_h和xsp.x_t(换出进程链的头尾指针)将其上的进程调用xswap()加以换出,同时周期性地将延迟写缓冲区写到文件系统中。,图4.65xsched算法流程,4.10UNIX系统进程正文段的共享,4.10.1数据结构4.10.2算法,4.10.1数据结构,核心为实现正文段的共享,定义了一个数据结构text,text是一个数组,其定义如下:structtextshortx_daddr;/*正文段在交换区中的地址*/shortx_size;/*正文段的块数*/structroc*x_caddr;/*指向相应进程的proc结构的指针*/structinode*x_iptr;/*指向正文段所在文件的i节点指针*/charx_count;/*共享正文段的进程数*/charx_ccount;/*共享正文段且映像在内存的进程数*/charx_flag;/*标志*/,Externstructtexttext;标志x_flag的取值为:#defineXTRC01/*正文可写,但不能同时写*/#defineXWRIT02/*换出时写交换区标志*/#defineXLOAD04/*目前正从文件中读该正文段*/#defineXLOCK010/*正被换入换出,锁住*/#defineXWANT020/*请求交换*/,Text数组共有40个表项,取值由NTEXT规定。,图4.66text与user、proc、file的关系,4.10.2算法,函数xalloc附接一个正文段到某个进程中去。函数xfree放弃进程所用的共享正文段。【算法4.14xalloc】功能:将一个正文段附接到进程中去。输入:指向i节点的指针ip。输出:改变相应的数据结构。【算法4.15xfree】功能:放弃进程所用的共享正文段。输入:无。输出:改变相应的数据结构。,图4.67xalloc算法流程,图4.68xfree算法流程,4.11UNIX系统请求调页,4.11.1基本原理4.11.2数据结构4.11.3动态地址变换4.11.4页故障4.11.5换页进程,4.11.1基本原理,UNIXSystemV中,系统以页面为单位把内存分配给进程,页面与进程虚地址空间中的一页相对应。当进程访问某虚拟地址时,地址映射机构将该虚拟地址转换为内存物理地址。若访问的虚拟地址所在的页不在内存中,则要将该页装入内存后才能实现虚实地址的转换。若要装入该页时内存无足够页面,则需要请求调页,4.11.2数据结构,为实现请求调页存储管理,UNIXSystemV设置了页表,磁盘块描述表,页面数据表和交换使用表4种数据结构。1.页表每一个区有一张页表,页表的每个表项记录了一个页与页面的对应关系。,图4.69页表项的内容,2.磁盘块描述表(DiskBlockDescriptor)由于进程的地址空间在磁盘上都有一个磁盘复制(在文件系统中和交换区中),因此进程的每一个页在磁盘上都对应一个块(块和页同样大小)。磁盘块描述表的每个表项同页表的某一个表项都有对应关系,用来记录进程的各页的磁盘复制所在的块号。共享同一个区的进程可以访问共同的页表项和磁盘块描述表项。,图4.70磁盘块描述表表项内容,3.页面数据表(pageframedatatable,简称pfdata)页面数据表描述每一个物理页。每个表项包含以下内容:(1)页状态。指出页的复制是在交换设备上还是在可执行文件中。(2)引用页进程数:引用该页的进程数目。(3)逻辑设备号和块号:逻辑设备可以是交换设备或文件系统。(4)指向空闲页面链表中下一个页面数据表项的指针。(5)指向散列队列中下一个页面数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年马克思常识试题及答案
- 抢救及特殊事件报告处理制度试题及答案
- 特警业务知识培训课件
- 曹刿论战教学设计及课件
- 特种车辆使用培训课件
- 铅笔画教学课件图片大全
- 笔杆打磨自动化设备选型考核试卷及答案
- 毛发矫正知识培训
- 超声波清洗干燥工艺考核试卷及答案
- 安全设备安全认证流程工艺考核试卷及答案
- 企业信息化项目建设进度和成果汇报课件
- 高等数学期末试卷及答案
- 从0开始跨境电商-第三章-阿里巴巴国际站入门-OK
- 新能源电站远程监控系统建设方案
- 《紫藤萝瀑布》《丁香结》《好一朵木槿花》
- 2023柔性棚洞防护结构技术规程
- 河流地貌的发育 - 侵蚀地貌
- 离网光伏发电系统详解
- 广告文案写作(第二版)全套教学课件
- 《国家电网公司电力安全工作规程(配电部分)》
- 金融学黄达ppt课件9.金融市场
评论
0/150
提交评论