操作系统课件zgsos64,31-40存储器管理_第1页
操作系统课件zgsos64,31-40存储器管理_第2页
操作系统课件zgsos64,31-40存储器管理_第3页
操作系统课件zgsos64,31-40存储器管理_第4页
操作系统课件zgsos64,31-40存储器管理_第5页
已阅读5页,还剩143页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

120三月2023北京交通大学计算机学院翟高寿主讲教师:翟高寿(副教授)联系电话:(办)电子邮件:制作人:翟高寿制作单位:北京交通大学计算机学院《操作系统》220三月2023北京交通大学计算机学院翟高寿第四章存储器管理4.1内存管理概述4.2连续分配存储管理方式4.3基本分页存储管理方式4.4基本分段存储管理方式4.5虚拟存储器概念及关键技术4.6请求分页存储管理方式4.7请求分段存储管理方式320三月2023北京交通大学计算机学院翟高寿用户程序处理过程内存装入程序源程序装入模块链接程序库编译程序……目标模块符号名空间目标地址空间统一的目标地址空间物理地址空间数据和指令构成:存取访问问题布局?420三月2023北京交通大学计算机学院翟高寿程序处理与内存管理程序地址空间及形成目标模块(由编译/汇编得到):相对地址链接过程实现各目标模块相对地址的统一内存管理物理部件MMU负责将逻辑地址转换为物理地址X86体系结构MMU支持分页和分段机制内存管理方式实模式和保护模式520三月2023北京交通大学计算机学院翟高寿程序的链接链接过程根据外部访问符号名表,将经过编译或汇编得到的一组目标模块以及它们所需要的库函数,装配成一个完整的装入模块关键问题修改相对地址变换外部调用符号链接方式静态链接方式、装入/运行时动态链接方式620三月2023北京交通大学计算机学院翟高寿程序的链接过程目标模块模块ACALLB;Return;L-1相对地址0模块BCALLC;Return;M-10模块CCodeReturn;N-10相对装入模块模块AJSR“L”;Return;L-1相对地址0模块BJSR“L+M”;Return;L+M-1L模块CCodeReturn;L+M+N-1L+M720三月2023北京交通大学计算机学院翟高寿链接方式比较静态链接方式可执行文件、难以实现“内存”模块共享装入时动态链接便于软件版本的修改和更新便于实现目标模块为多个应用程序共享运行时动态链接将某些目标模块的链接推迟到执行时根据是否需要再完成820三月2023北京交通大学计算机学院翟高寿程序的装入基本目标及相关问题由装入程序将装入模块载入到内存装入位置、地址变换(重定位)及时机关键概念相对地址、绝对地址、重定位及其寄存器装入方式绝对装入方式(单道程序环境)静态可重定位装入方式(多道程序环境)动态运行时装入方式(运行中移动位置)920三月2023北京交通大学计算机学院翟高寿绝对装入模块和可重定位装入模块

JMP1424CodeLOAD1,2224

Data14242224绝对地址1024绝对装入模块PROGRAMJMPAddriCodeLOAD1,Addrj

DATADataAddriAddrj符号地址目标模块

JMP400CodeLOAD1,1200

Data4001200相对地址0可重定位装入模块1020三月2023北京交通大学计算机学院翟高寿(静态/动态)可重定位重定位程序装入或执行时对装入模块或目标程序中的指令及数据地址的修改过程静态重定位由重定位装入程序在将装入模块装入内存时一次性完成重定位需要连续存储空间,装入后不能移动动态重定位需要特殊硬件(地址变换机构)支持,以保证地址转换不会影响指令的执行速度便于动态链接和代码共享1120三月2023北京交通大学计算机学院翟高寿动态重定位示意图CPU10000相对地址2500+重定位寄存器内存物理地址12500LOAD1,250036510000101001250015000LOAD1,2500365010025005000作业J1220三月2023北京交通大学计算机学院翟高寿操作系统内存管理功能要求内存分配使各得其所、提高利用率及适应动态增长要求连续分配/离散分配方式地址映射逻辑地址转换为物理地址,与分配方式相关内存保护基于地址的保护、存取访问控制保护内存扩充对换技术、虚拟存储技术1320三月2023北京交通大学计算机学院翟高寿作业题4.1谈谈你对程序处理过程及内存管理相关概念与关键问题的认识与理解。同时并就各种可能的程序链接方式和程序装入方式进行比较和展开讨论。1420三月2023北京交通大学计算机学院翟高寿第四章存储器管理4.1内存管理概述4.2连续分配存储管理方式4.3基本分页存储管理方式4.4基本分段存储管理方式4.5虚拟存储器概念及关键技术4.6请求分页存储管理方式4.7请求分段存储管理方式1520三月2023北京交通大学计算机学院翟高寿4.2连续分配存储管理方式4.2.1单一连续分配存储管理4.2.2固定分区分配存储管理4.2.3动态分区分配存储管理4.2.4动态可重定位分区分配4.2.5对换技术1620三月2023北京交通大学计算机学院翟高寿单一连续分配方式内存划分为系统区和用户区整个用户区为一个用户独占,仅驻留一道程序静态链接和动态重定位技术、存储器保护措施仅适用于单用户、单任务操作系统中CPU界限寄存器基址寄存器逻辑地址<+是物理地址内存否地址错1720三月2023北京交通大学计算机学院翟高寿4.2连续分配存储管理方式4.2.1单一连续分配存储管理4.2.2固定分区分配存储管理4.2.3动态分区分配存储管理4.2.4动态可重定位分区分配4.2.5对换技术1820三月2023北京交通大学计算机学院翟高寿固定分区分配方式用户区分为若干固定区域每个分区可装入一道作业分区划分方法(等分/不等分)分区说明表与内存分配算法可用于多道程序存储管理A:B:C=15:30:50操作系统作业A作业B作业C存储空间分配情况030K45K75K125K225K分区号大小KB始址K状态11530已分配23045空闲35075已分配4100125空闲…………1920三月2023北京交通大学计算机学院翟高寿4.2连续分配存储管理方式4.2.1单一连续分配存储管理4.2.2固定分区分配存储管理4.2.3动态分区分配存储管理4.2.4动态可重定位分区分配4.2.5对换技术2020三月2023北京交通大学计算机学院翟高寿动态分区分配方式基本思想根据进程的实际需求,动态地对内存空间进行分配、回收及划分关键问题分区分配用数据结构分区分配算法分区分配与回收操作碎片(零头)处理?黑板教学2120三月2023北京交通大学计算机学院翟高寿分区分配用数据结构空闲分区表空闲分区链

前向指针

后向指针N+4N+4N个字节可用分区大小分区号大小KB始址K16444224132340210430270………2220三月2023北京交通大学计算机学院翟高寿分区分配算法首次适应算法FF要求空闲分区链以地址递增次序链接查找开销大,但有利于大作业分配循环首次适应算法首次适应+起始查寻指针+循环查找减少查找开销,但不利于大作业分配最佳适应算法追求既能满足要求且又最小的空闲分区要求空闲分区按大小递增次序链接微观意义上的最佳与宏观上的零头问题最坏适应算法?2320三月2023北京交通大学计算机学院翟高寿动态分区内存分配流程从头开始查找可变分区分配用数据结构开始m.size≧u.size?检索完否?m.size-u.size≦size?从当前分区划出u.size大小的分区是否否否修改分配用数据结构并执行分配是返回是检索下一分区信息移出当前分区分配单位?2420三月2023北京交通大学计算机学院翟高寿动态分区内存回收情况F1回收区回收区F2F1回收区F2回收区2520三月2023北京交通大学计算机学院翟高寿动态分区内存回收流程顺序查找分配用数据结构直至找到某分区之m.addr>collected.addr或m.size=0开始是返回回收区与前一空闲区合并同时修正分配用数据结构非第一分区且与前一空闲区相邻?否非最末分区且与后一空闲区相邻?回收区与后一空闲区合并同时修正分配用数据结构与后一空闲区相邻?与后一空闲区合并同时修正分配用数据结构是是回收区collected.size=0?否插入回收区并调整分配用数据结构否是2620三月2023北京交通大学计算机学院翟高寿4.2连续分配存储管理方式4.2.1单一连续分配存储管理4.2.2固定分区分配存储管理4.2.3动态分区分配存储管理4.2.4动态可重定位分区分配4.2.5对换技术2720三月2023北京交通大学计算机学院翟高寿动态重定位分区分配方式紧凑连续分配要求程序装入内存空间的连续性分区分配产生的零头/碎片问题通过移动把多个分散拼接成大分区用户程序内存地址变化及地址修正问题动态重定位动态运行时装入方式及重定位寄存器动态重定位分区分配算法动态分配分区算法+紧凑功能2820三月2023北京交通大学计算机学院翟高寿紧凑(拼接)技术操作系统用户程序110KB用户程序330KB用户程序614KB用户程序926KB操作系统用户程序1用户程序3用户程序6用户程序980KB紧凑前紧凑后2920三月2023北京交通大学计算机学院翟高寿动态重定位分区分配流程从头开始查找可变分区分配用数据结构开始找到不小于u.size的空闲分区否?空闲分区总和不小于u.size?进行拼凑形成连续空闲区修改分配用数据结构是否否按动态分区方式进行分配,修改分配用数据结构返回是3020三月2023北京交通大学计算机学院翟高寿4.2连续分配存储管理方式4.2.1单一连续分配存储管理4.2.2固定分区分配存储管理4.2.3动态分区分配存储管理4.2.4动态可重定位分区分配4.2.5对换技术3120三月2023北京交通大学计算机学院翟高寿多道程序环境下的对换对换的概念及意义内存(进程、程序、数据)外存提高内存利用率对换实现机制UNIX:对换进程(中级调度)对换实现方式进程对换:分时系统页面/分段对换:虚拟存储技术3220三月2023北京交通大学计算机学院翟高寿对换空间的管理文件区和对换区功能、管理目标及管理方式对换区使用情况数据结构空闲盘区表/链(盘块组为基本单位)对换区分配与回收操作分配算法分配操作回收操作序号第一空闲盘块号空闲盘块数03318521623……3320三月2023北京交通大学计算机学院翟高寿进程的换出和换入进程的换出被换出进程的选择(进程状态+优先级+内存驻留时间)换出过程(换出非共享或不再共享的程序及数据段对换空间申请换出内存释放内存分配数据结构及PCB修改)进程的换入被换入进程的选择(进程状态+换出时间)换入过程(内存申请换入

PCB修改)3420三月2023北京交通大学计算机学院翟高寿4.2连续分配存储管理方式4.2.1单一连续分配存储管理4.2.2固定分区分配存储管理4.2.3动态分区分配存储管理4.2.4动态可重定位分区分配4.2.5对换技术3520三月2023北京交通大学计算机学院翟高寿作业题4.2从内存管理的各个方面比较单一连续分配、固定分区分配、动态分区分配以及动态可重定位分区等存储管理方式的异同,特别注意相关数据结构和算法的理解。4.3谈谈你对覆盖技术与对换技术的认识与理解。3620三月2023北京交通大学计算机学院翟高寿《操作系统实践》实验6动态可重定位分区存储管理设计、实现及模拟性测试:运用动态可重定位分区分配算法实现内存的分配与回收;假定系统用户区内存空间为128MB;随机发生进程创建事件(伴随进程运行时间及申请内存空间大小)。撰写实验报告,阐述实验目的、实验目标、实验步骤、技术难点及解决方案、关键数据结构和算法流程、测试方案与过程及运行效果、结论与体会等。3720三月2023北京交通大学计算机学院翟高寿第四章存储器管理4.1内存管理概述4.2连续分配存储管理方式4.3基本分页存储管理方式4.4基本分段存储管理方式4.5虚拟存储器概念及关键技术4.6请求分页存储管理方式4.7请求分段存储管理方式3820三月2023北京交通大学计算机学院翟高寿4.3

基本分页存储管理方式4.3.1离散存储管理方式4.3.2页面与页表4.3.3地址变换机构4.3.4两级和多级页表4.3.5反置页表3920三月2023北京交通大学计算机学院翟高寿离散存储管理方式连续存储管理方式弊端碎片问题及紧凑开销离散分配方式分页存储管理分段存储管理段页式存储管理4020三月2023北京交通大学计算机学院翟高寿4.3

基本分页存储管理方式4.3.1离散存储管理方式4.3.2页面与页表4.3.3地址变换机构4.3.4两级和多级页表4.3.5反置页表4120三月2023北京交通大学计算机学院翟高寿页面与页表页面和物理块进程逻辑地址空间及内存空间的划分页面编号与物理块编号内存分配与页内碎片内存页表与进程页表页面映射表及其表项(物理块号、存取控制字段)页面大小选择由机器的地址结构所决定页面大/小评析29B~8KB之间4220三月2023北京交通大学计算机学院翟高寿物理块表(内存页表)4320三月2023北京交通大学计算机学院翟高寿位示图利用位示图(即二维数组Map[m,n])的一位(0/1)来表示一个内存物理块(或磁盘盘块)的使用情况,使内存所有物理块(或磁盘上所有盘块)都与一个二进制位相对应110001001010011010010001010011111101100101001010

……110100101010001012345678910111213141516123…m4420三月2023北京交通大学计算机学院翟高寿物理块(盘块)的分配VarMap:array[1..m,1..n]ofbit;顺序扫描位示图,找出一个或一组其值均为空闲的二进制位将所找到的一个或一组二进制位Map[i,j]的行/列号转换为与之对应的物理块(盘块)号b:b=n(i-1)+j-1按物理块(或盘块)号分配物理块(或盘块),同时修改位示图4520三月2023北京交通大学计算机学院翟高寿物理块(盘块)的回收将回收物理块(或盘块)的物理块(或盘块)号b转换为位示图中的行号i和列号j:i=bDIVn+1;j=bMODn+1;按物理块(或盘块)号回收物理块(或盘块)根据回收物理块(或盘块)对应二进制位的行/列号修改位示图4620三月2023北京交通大学计算机学院翟高寿(进程)页表0页1页2页3页4页5页…n页用户程序012113216318419517……n页表页号块号第12块第13块第14块第15块第16块第17块第18块第19块内存4720三月2023北京交通大学计算机学院翟高寿分页存储地址结构及地址变换分页存储管理地址结构

31

1211

0

页号页内地址逻辑地址与页号及页内偏移地址之间的换算PageNo=INT[Addr/PageLength]PageOffset=AddrMODPageLength举例:对于1KB页面,若给定逻辑地址2170B,则PageNo=2,PageOffset=122地址变换任务关键在于页号到物理块号的转变4820三月2023北京交通大学计算机学院翟高寿4.3

基本分页存储管理方式4.3.1离散存储管理方式4.3.2页面与页表4.3.3地址变换机构4.3.4两级和多级页表4.3.5反置页表4920三月2023北京交通大学计算机学院翟高寿基本的地址变换机构页表始址页表长度页表寄存器页号(3)页内地址逻辑地址寄存器BlockNo页表BlockNo块内地址物理地址寄存器+≦越界中断页号物理块号01235020三月2023北京交通大学计算机学院翟高寿具有快表的地址变换机构页表始址页表长度页表寄存器页号(3)页内地址逻辑地址寄存器BlockNo页表BlockNo块内地址物理地址寄存器+≦越界中断页号物理块号01233BlockNo输入寄存器页号物理块号快表5120三月2023北京交通大学计算机学院翟高寿快表引入前后数据存取速度比较假定快表检索时间为20ns,内存访问时间为100ns,则若能在快表中找到CPU给出的页号,CPU为存取一个数据将需要(100+20)=120ns;而若不能在快表中找到CPU给出的页号,CPU为存取一个数据将需要(100+100+20)=220ns。进一步说,若假定快表查找命中率为80%,则其有效访问时间为120×80%+220×(1-80%)=140ns。5220三月2023北京交通大学计算机学院翟高寿4.3

基本分页存储管理方式4.3.1离散存储管理方式4.3.2页面与页表4.3.3地址变换机构4.3.4两级和多级页表4.3.5反置页表5320三月2023北京交通大学计算机学院翟高寿页表空间问题及对策页表空间问题现代计算机系统支持非常大的逻辑地址空间(232~264),页表变得庞大。例如,对于具有32位逻辑地址空间的分页系统,规定页面大小为4KB即212B,则每个进程页表的页表项可达1M个;若同时设定页表项大小为4B,则每个进程仅页表便需占用4MB内存空间,且要求是连续的解决方案多级页表(页表分页及对换)或反置页表5420三月2023北京交通大学计算机学院翟高寿两级页表结构基本方法基本思想对页表按内存物理块大小进行分页,对它们进行编号并离散地存放于不同的物理块中;同时为离散分配的页表分页再建立一张页表,称之为外层页表,以记录各页表分页对应的物理块号以前述32位逻辑地址空间、页面大小为4KB的系统为例,若采用一级页表结构,则每个进程页表的页表项可达1M个;而若采用两级页表结构,由于各页表分页包含4KB/4B=1K个页表项,故需1K个页表分页即可,因此外层页表的外层页号及内层页号均为10位。此时逻辑地址结构为:

31

2221

1211

0

外层页号内层页号页内地址5520三月2023北京交通大学计算机学院翟高寿两级页表结构示意图10111078…1742外层页表第0页页表………内存012n146…0121023第1页页表114115…011023第n页页表1468…011023…1267114045311514685620三月2023北京交通大学计算机学院翟高寿具有两级页表的地址变换结构外层页表始址外层页表长度外层页表寄存器外层页号内层页号页内地址逻辑地址寄存器BlockNo页表BlockNo块内地址物理地址寄存器+≦越界中断内层页号物理块号PageAddress外层页表外层页号分页页表起始地址+5720三月2023北京交通大学计算机学院翟高寿多级页表结构对于64位计算机,如规定页面大小仍为4KB,则每个进程的页表项可达264/4K=252个,且外层页表可能有252/210=242个页表项;即使按每个页表分页1M个页表项来划分,页表分页将达到4MB,而外层页表仍有252/220=4G个页表项,要占用16GB的连续内存空间。可见,无论怎样划分,其结果都是不能接受的。因此,必须采用多级页表,将16GB的外层页表再进行分页,并将各个分页离散的分配到不相邻接的物理块中,在利用第二级的外层页表来映射它们之间的关系。事实上,对于64位的机器,用三级页表结构都很难适应5820三月2023北京交通大学计算机学院翟高寿4.3

基本分页存储管理方式4.3.1离散存储管理方式4.3.2页面与页表4.3.3地址变换机构4.3.4两级和多级页表4.3.5反置页表5920三月2023北京交通大学计算机学院翟高寿反置页表一般页表的表项是按页号进行排序,而页表项内容包括物理块号的;反置页表则是为每一个物理块设置一个页表项并将它们按物理块的号数排序,页表项内容包括对应页号及其隶属进程的标识符在利用反置页表进行地址变换时,是用进程标识符和页号去检索反置页表。若找到与之匹配的表项,则以该表项序号即该页所在物理块号与页内地址构成物理地址;否则地址出错或产生调页中断请求进程外部页表的设立及反置页表Hash检索6020三月2023北京交通大学计算机学院翟高寿反置页表地址变换机构进程标识符页号页内地址逻辑地址寄存器…pid/page…反置页表BlockNo块内地址物理地址寄存器PID/页号物理块号016120三月2023北京交通大学计算机学院翟高寿4.3

基本分页存储管理方式4.3.1离散存储管理方式4.3.2页面与页表4.3.3地址变换机构4.3.4两级和多级页表4.3.5反置页表6220三月2023北京交通大学计算机学院翟高寿作业题4.4从内存管理的各个方面谈谈你对基本分页存储管理方式的认识与理解,包括相关数据结构和算法以及页面大小选择、多级页表和反置页表等。6320三月2023北京交通大学计算机学院翟高寿第四章存储器管理4.1内存管理概述4.2连续分配存储管理方式4.3基本分页存储管理方式4.4基本分段存储管理方式4.5虚拟存储器概念及关键技术4.6请求分页存储管理方式4.7请求分段存储管理方式6420三月2023北京交通大学计算机学院翟高寿4.4

基本分段存储管理方式4.4.1分段存储管理方式的引入4.4.2分段系统的基本原理4.4.3信息共享4.4.4段页式存储管理方式6520三月2023北京交通大学计算机学院翟高寿分段存储管理方式的引入满足用户在编程和使用上的多方面要求方便编程(作业基于逻辑关系自然分段)

LOAD1,[A]|<D>; STORE1,[B]|<C>;信息共享信息保护 (分段作为信息的逻辑单位)动态链接动态增长(特别是数据段地动态增长)6620三月2023北京交通大学计算机学院翟高寿4.4

基本分段存储管理方式4.4.1分段存储管理方式的引入4.4.2分段系统的基本原理4.4.3信息共享4.4.4段页式存储管理方式6720三月2023北京交通大学计算机学院翟高寿分段作业地址空间被划分为若干段,每个段定义了一组逻辑信息,如主程序MAIN、子程序段X、数据段D及栈段S,各段均有自己的名字(段号)每个段都从0开始编址,并采用一段连续的地址空间,且段的长度取决于相应的逻辑信息组的长度,因而各段长度可不等整个作业的地址空间是二维的,其逻辑地址有段号(名)和段内地址所组成31

1615

0

段号段内地址6820三月2023北京交通大学计算机学院翟高寿利用段表实现地址映射示意图作业空间段表内存30K40K20K80K15K120K10K150K段长段号01(MAIN)=0030K(X)=1020K(D)=2015K(S)=3010K基址23(MAIN)=030K(X)=120K(D)=215K(S)=310K40K80K120K150K6920三月2023北京交通大学计算机学院翟高寿分段系统地址变换机构段表始址段表长度段表寄存器段号(2)段内地址(100)逻辑地址寄存器段表8292物理地址寄存器+≦越界中断1K6K6004K5008K2009200段长段号01基址23+≦越界中断低四位为07020三月2023北京交通大学计算机学院翟高寿分页与分段存储管理的比较相似之处实现机制(离散分配、地址映射机构)目的及内涵系统管理需要/用户需要、物理/逻辑单位分页/段长度固定与否、决定因素(系统硬件/信息性质)作业地址空间维数一维/二维、程序员编程7120三月2023北京交通大学计算机学院翟高寿4.4

基本分段存储管理方式4.4.1分段存储管理方式的引入4.4.2分段系统的基本原理4.4.3信息共享4.4.4段页式存储管理方式7220三月2023北京交通大学计算机学院翟高寿可重入代码(纯代码)一种允许多个进程同时访问的代码为使各个进程所执行的代码完全相同,绝对不允许可重入代码在执行中有任何改变,所以它是一种不允许任何进程对其进行修改的代码但事实上,大多数代码在执行时都有可能发生改变,例如其中用于控制程序执行次数的变量及指针、信号量及数组等。为此,在每个进程中都必须配备局部数据区,并把在执行中可能改变的部分都拷贝到该数据区。这样,在程序执行时,只去对属于特定进程私有的数据区中的内容进行修改,而不去改变共享的代码,这时的可共享代码即成为可重入代码7320三月2023北京交通大学计算机学院翟高寿信息共享比较举例说明多个用户对文本编辑程序的共享某多用户系统,可同时接纳40个用户,假设均在执行Editor进行文本编辑。若该文本编辑程序含有160KB的代码区和40KB的数据区,则总共需有8000KB的内存空间来支持40个用户。如果该文本编辑程序代码是可重入的,则无论分页系统还是分段系统该程序代码都能被共享,即内存中只需保留一份文本编辑程序的副本,因而所需内存空间仅为40×40+160=1760KB7420三月2023北京交通大学计算机学院翟高寿基于分页的文本编辑器共享CodePage1CodePage2…CodePage40DataPage1…DataPage10进程1…CodePage1CodePage2CodePage3CodePage4…CodePage40DataPage1…DataPage10DataPage1…DataPage10…内存…22CodePage1CodePage2…CodePage40DataPage1…DataPage10进程22122…6061…70进程1页表…2122…6071…80进程2页表2124236160807170160KB40KB160KB40KB7520三月2023北京交通大学计算机学院翟高寿基于分段的文本编辑器共享EditorDataSeg1进程1…EditorDataSeg1…DataSeg2…内存…80K进程2进程1段表…240KEditorDataSeg1160K80K40K240K段长段号01基址进程2段表160K80K40K380K段长段号01基址280K380K420K7620三月2023北京交通大学计算机学院翟高寿4.4

基本分段存储管理方式4.4.1分段存储管理方式的引入4.4.2分段系统的基本原理4.4.3信息共享4.4.4段页式存储管理方式7720三月2023北京交通大学计算机学院翟高寿段页式存储管理方式的引入分页与分段存储管理各有优缺点分页系统能有效地提高内存利用率分段系统则能很好地满足用户需要分页/段存储管理各取所长、有机结合既具有分段系统便于实现、分段可共享、易于保护、可动态链接等一系列优点;又能像分页系统那样很好地解决内存的外部碎片问题以及为各个分段离散地分配内存等问题7820三月2023北京交通大学计算机学院翟高寿段页式存储管理方法分段与分页原理的结合先将用户程序按信息性质分为若干段(赋予一个段名),再把每个段划分为若干页主程序段04K8K12K15K16K子程序段04K8K数据段04K8K10K12K段号段内页号页内地址段页式存储管理地址结构7920三月2023北京交通大学计算机学院翟高寿利用段表和页表实现地址映射段号状态页表大小页表始址0111213041段表第0段页表内存页号状态物理块号0111213141第1段页表…页号状态物理块号0111213041段表大小段表始址段表寄存器8020三月2023北京交通大学计算机学院翟高寿段页式系统的地址变换结构段表始址段表长度段表寄存器段号段内页号页内地址逻辑地址寄存器BlockNo页表BlockNo块内地址物理地址寄存器+≦越界中断页号物理块号段表段号页表长度+页表始址状态越界中断≦8120三月2023北京交通大学计算机学院翟高寿4.4

基本分段存储管理方式4.4.1分段存储管理方式的引入4.4.2分段系统的基本原理4.4.3信息共享4.4.4段页式存储管理方式8220三月2023北京交通大学计算机学院翟高寿作业题4.5从内存管理的各个方面谈谈你对基本分段存储管理方式的认识与理解,包括相关数据结构和算法等。4.6比较分页存储管理与分段存储管理的异同。4.7简要阐述段页式存储管理方式的基本原理。8320三月2023北京交通大学计算机学院翟高寿第四章存储器管理4.1内存管理概述4.2连续分配存储管理方式4.3基本分页存储管理方式4.4基本分段存储管理方式4.5虚拟存储器概念及关键技术4.6请求分页存储管理方式4.7请求分段存储管理方式8420三月2023北京交通大学计算机学院翟高寿常规存储管理问题与对策要求将一个作业全部装入内存方能运行一些对内存空间要求超过内存容量的大作业因不能全部装入内存而无法运行同时有大量作业要求运行,但由于内存容量不足以容纳所有这些作业,则只能将少数作业装入内存首先运行,而将其它大量作业留在外存上等待解决方法增加物理内存容量(系统成本和机器条件)从逻辑上扩充内存容量=>虚拟存储技术8520三月2023北京交通大学计算机学院翟高寿一次性全部装入及驻留性问题作业“一次性”全部装入内存并不必要许多作业在每次运行时并非用到其全部程序和数据作业常驻内存存在不合理性因输入输出操作尚未完成而处于长期等待状态的运行进程或某些一次性运行程序对宝贵内存资源的占据问题后果使一些需要运行的作业无法装入运行,从而严重降低内存利用率和减少系统吞吐量8620三月2023北京交通大学计算机学院翟高寿局部性原理程序在执行时将呈现局部性规律,即在一较短时间内,程序的执行仅限于某个部分;相应地,它所访问的内存空间也仅局限于某个区域程序在大多数情况下的顺序执行特点过程调用深度及执行轨迹程序循环结构执行及数据结构操作特点局部性表现形式时间局部性(指令执行与数据结构访问)空间局部性(存储单元临近访问)8720三月2023北京交通大学计算机学院翟高寿虚拟存储器技术要点作业部分装入内存即可启动运行其余部分暂留磁盘程序执行过程页段访问机制已调入内存则直接访问尚未调入内存则缺页/段中断及请求调入页段置换功能技术效果大用户程序在小内存空间的运行多道程序度的提高8820三月2023北京交通大学计算机学院翟高寿虚拟存储器的定义所谓虚拟存储器,是指仅把作业的一部分装入内存便可运行作业的存储器系统。具体地说,所谓虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。实际上,用户看到的大容量只是一种感觉,是虚的,故而得名虚拟存储器。其逻辑容量由内存和外存容量之和所决定,其运行速度接近于内存速度,而每位的成本却又接近于外存。8920三月2023北京交通大学计算机学院翟高寿请求分页虚拟存储系统技术构成分页+请求调页+页面置换硬件支持请求分页的页表机制缺页中断机构地址变换机构软件支持请求调页页面置换9020三月2023北京交通大学计算机学院翟高寿请求分段虚拟存储系统技术构成分段+请求调段+分段置换硬件支持请求分段的段表机制缺段中断机构地址变换机构软件支持请求调段分段置换9120三月2023北京交通大学计算机学院翟高寿虚拟存储器的特征离散性离散分配方式多次性作业被分成多次调入内存和运行对换性程序和数据在作业运行过程中的换进/出虚拟性内存容量的逻辑扩充9220三月2023北京交通大学计算机学院翟高寿作业题4.8谈谈你对虚拟存储器的概念、特征及其软硬件技术支持的认识与理解。9320三月2023北京交通大学计算机学院翟高寿第四章存储器管理4.1内存管理概述4.2连续分配存储管理方式4.3基本分页存储管理方式4.4基本分段存储管理方式4.5虚拟存储器概念及关键技术4.6请求分页存储管理方式4.7请求分段存储管理方式9420三月2023北京交通大学计算机学院翟高寿4.6

请求分页存储管理方式4.6.1请求分页中的硬件支持4.6.2内存分配策略和分配算法4.6.3调页策略4.6.4页面置换算法9520三月2023北京交通大学计算机学院翟高寿页表机制页表项的扩充页号物理块号状态位访问字段修改位外存地址9620三月2023北京交通大学计算机学院翟高寿缺页中断机构缺页中断之中断特征保护CPU现场分析中断原因转入缺页中断处理程序恢复CPU现场缺页中断之特殊性在指令执行期间产生和处理中断信号一条指令执行期间,可能产生多次缺页中断654123页面copyATOBB:A:9720三月2023北京交通大学计算机学院翟高寿地址变换机构在分页系统的地址变换机构的基础上,增加缺页中断产生和处理并页面置换功能而构成地址变换过程要领从页表找到对应分页的页表项获悉该页尚未调入内存时,应产生缺页中断,请求操作系统从外存把该页调入内存关于快表和页表的检索及表项修改9820三月2023北京交通大学计算机学院翟高寿请求分页系统地址变换过程

程序请求访问一页CPU检索快表找到否?访问页表是否页在内存?否产生缺页中断请求调页是修改页表对应页表项访问字段和修改位形成物理地址地址变换结束页号有效?是否越界中断修改快表硬件实现!9920三月2023北京交通大学计算机学院翟高寿缺页中断处理算法流程

从外存中找到缺页内存满否?从内存选择某页换出是否该页被修改否?是将该页写回外存否命令CPU从外存读取缺页启动I/O硬件将缺页从外存换入内存修改页表相应表项状态位及物理块号返回恢复CPU现场阻塞当前执行程序和响应缺页中断处理保护CPU现场10020三月2023北京交通大学计算机学院翟高寿4.6

请求分页存储管理方式4.6.1请求分页中的硬件支持4.6.2内存分配策略和分配算法4.6.3调页策略4.6.4页面置换算法10120三月2023北京交通大学计算机学院翟高寿最小物理块数的确定保证进程正常运行所需的最少物理块数若系统为某进程分配的物理块数少于此值,进程将无法正常运行不同于使进程有效工作所需的物理块数与计算机的硬件结构有关,并取决于指令的格式(操作数个数)、功能和寻址方式(直接/间接)10220三月2023北京交通大学计算机学院翟高寿物理块分配与置换策略固定分配局部置换为每个进程分配一固定页数的内存空间,在整个运行期间都不再改变可变分配全局置换系统设立一个空闲物理块队列可变分配局部置换依据缺页率酌情增加或减少物理块10320三月2023北京交通大学计算机学院翟高寿物理块分配算法平均分配算法将系统可供分配的物理块平均分配按比例分配算法BlockOfPk=max{minBlocks, Blocks

PagesOfPk/PagesOfPi}考虑优先权的分配算法照顾重要或紧迫的作业能尽快完成10420三月2023北京交通大学计算机学院翟高寿4.6

请求分页存储管理方式4.6.1请求分页中的硬件支持4.6.2内存分配策略和分配算法4.6.3调页策略4.6.4页面置换算法10520三月2023北京交通大学计算机学院翟高寿何时调入页面预调页策略将那些预计在不久之后便会被访问的程序或数据所在的页面,预先调入内存以预测为基础,主要用于进程首次调入请求调页策略当进程在运行中需要访问某部分程序和数据时,若发现其所在的页面不在内存,应立即提出请求,由系统将其所需页面调入内存;易于实现但系统开销大10620三月2023北京交通大学计算机学院翟高寿何处调入页面对换区空间充分进程运行前,便须将与该进程有关的文件,从文件区拷贝到对换区对换区空间不足文件是否修改分别处理UNIX方式凡未运行过的页面都应从文件区调入,而对于曾运行过又被换出到对换区的页面则从对换区调入10720三月2023北京交通大学计算机学院翟高寿页面调入过程缺页中断发生程序所访问的页面不在内存时产生缺页中断并转入缺页中断处理程序根据页表外存地址调入所缺页面页表项外存地址(物理盘块号)内存不足置换页面淘汰算法是否重写磁盘10820三月2023北京交通大学计算机学院翟高寿4.6

请求分页存储管理方式4.6.1请求分页中的硬件支持4.6.2内存分配策略和分配算法4.6.3调页策略4.6.4页面置换算法10920三月2023北京交通大学计算机学院翟高寿4.6.4

页面置换算法4.6.4.1抖动与缺页率4.6.4.2最佳置换算法4.6.4.3先进先出置换算法4.6.4.4最近最久未使用置换算法4.6.4.5Clock置换算法4.6.4.6最少使用置换算法4.6.4.7页面缓冲算法11020三月2023北京交通大学计算机学院翟高寿抖动与缺页率抖动的定义如果所用置换算法不当,便可能导致这样一种情形:刚被换出的页面很快又被访问,需重新调入,为此,又需再选一页换出;而此刚被换出的页面,不久也被访问,故又需将它调入,如此频繁地更换页面,以致一个进程在运行中把大部分的时间耗费在页面置换的工作上,称该进程发生了抖动(或称之为颠簸)缺页率缺页率=缺页中断次数/页面访问次数11120三月2023北京交通大学计算机学院翟高寿4.6.4

页面置换算法4.6.4.1抖动与缺页率4.6.4.2最佳置换算法4.6.4.3先进先出置换算法4.6.4.4最近最久未使用置换算法4.6.4.5Clock置换算法4.6.4.6最少使用置换算法4.6.4.7页面缓冲算法11220三月2023北京交通大学计算机学院翟高寿最佳置换算法基本思想选择永不使用或是在最长时间内不再被访问(即距现在最长时间才会被访问)的页面淘汰出内存评价理想化算法,具有最好性能(对于固定分配页面方式,本法可保证获得最低的缺页率),但实际上却难于实现,故主要用于算法评价参照11320三月2023北京交通大学计算机学院翟高寿最佳置换算法举例说明70120304230321201701777222222222222227770000004440000000000111333333331111111某进程分配获得三个物理块缺页中断次数为6次,缺页率30%页面访问序列内存页面分布情况页面预先装入11420三月2023北京交通大学计算机学院翟高寿4.6.4

页面置换算法4.6.4.1抖动与缺页率4.6.4.2最佳置换算法4.6.4.3先进先出置换算法4.6.4.4最近最久未使用置换算法4.6.4.5Clock置换算法4.6.4.6最少使用置换算法4.6.4.7页面缓冲算法11520三月2023北京交通大学计算机学院翟高寿先进先出置换算法基本思想选择最先进入内存即在内存驻留时间最久的页面换出到外存进程已调入内存的页面按进入先后次序链接成一个队列,并设置替换指针以指向最老页面评价简单直观,但不符合进程实际运行规律,性能较差,故实际应用极少11620三月2023北京交通大学计算机学院翟高寿70120304230321201701777222244400000007770000333222221111100111100033333222221某进程分配获得三个物理块缺页中断次数为12次,缺页率60%页面访问序列内存页面分布情况页面预先装入先进先出置换算法举例说明11720三月2023北京交通大学计算机学院翟高寿4.6.4

页面置换算法4.6.4.1抖动与缺页率4.6.4.2最佳置换算法4.6.4.3先进先出置换算法4.6.4.4最近最久未使用置换算法4.6.4.5Clock置换算法4.6.4.6最少使用置换算法4.6.4.7页面缓冲算法11820三月2023北京交通大学计算机学院翟高寿最近最久未使用置换算法LRU基本思想以“最近的过去”作为“最近的将来”的近似,选择最近一段时间最长时间未被访问的页面淘汰出内存评价适用于各种类型的程序,性能较好,但需要较多的硬件支持11920三月2023北京交通大学计算机学院翟高寿70120304230321201701777222244400011111110000000033333300000111333222222222777某进程分配获得三个物理块缺页中断次数为9次,缺页率45%页面访问序列内存页面分布情况页面预先装入最近最久未使用置换算法举例说明12020三月2023北京交通大学计算机学院翟高寿最近最久未使用置换算法硬件支持—移位寄存器B#RR7R6R5R4R3R2R1R010101001021010110030000110040110101151101011060010101170000011180110110112120三月2023北京交通大学计算机学院翟高寿最近最久未使用置换算法硬件支持—栈4474707407047170410174010741210742120741210742621076某进程分配获得五个物理块页面访问序列12220三月2023北京交通大学计算机学院翟高寿4.6.4

页面置换算法4.6.4.1抖动与缺页率4.6.4.2最佳置换算法4.6.4.3先进先出置换算法4.6.4.4最近最久未使用置换算法4.6.4.5Clock置换算法4.6.4.6最少使用置换算法4.6.4.7页面缓冲算法12320三月2023北京交通大学计算机学院翟高寿简单Clock置换算法(NRU)块号页号页面访问位指针0124034215650711查寻指针入口返回查寻指针前移指向下一表目选择该页淘汰页面访问位=0?置页面访问位为0是否12420三月2023北京交通大学计算机学院翟高寿改进型Clock置换算法基本思想①从查寻指针当前位置起扫描内存分页循环队列,选择A=0且M=0的第一个页面淘汰;若未找到,转②②开始第二轮扫描,选择A=0且M=1的第一个页面淘汰,同时将经过的所有页面访问位置0;若不能找到,转①评价与简单Clock算法相比,可减少磁盘的I/O操作次数,但淘汰页的选择可能经历多次扫描,故实现算法自身的开销增大12520三月2023北京交通大学计算机学院翟高寿4.6.4

页面置换算法4.6.4.1抖动与缺页率4.6.4.2最佳置换算法4.6.4.3先进先出置换算法4.6.4.4最近最久未使用置换算法4.6.4.5Clock置换算法4.6.4.6最少使用置换算法4.6.4.7页面缓冲算法12620三月2023北京交通大学计算机学院翟高寿最少使用置换算法LFU基本思想为内存各页设置一移位寄存器用于记录对应被访频率,并选择在最近时期使用次数最少的页面淘汰评价鉴于仅用移位寄存器有限各位来记录页面使用会导致访问一次与访问多次的等效性,本算法并不能真实全面地反映页面使用情况12720三月2023北京交通大学计算机学院翟高寿4.6.4

页面置换算法4.6.4.1抖动与缺页率4.6.4.2最佳置换算法4.6.4.3先进先出置换算法4.6.4.4最近最久未使用置换算法4.6.4.5Clock置换算法4.6.4.6最少使用置换算法4.6.4.7页面缓冲算法12820三月2023北京交通大学计算机学院翟高寿页面缓冲算法PBA基本思想设立空闲页面链表和已修改页面链表采用可变分配和基于先进先出的局部置换策略,并规定被淘汰页先不做物理移动,而是依据是否修改分别挂到空闲页面链表或已修改页面链表的末尾空闲页面链表同时用于物理块分配当已修改页面链表达到一定长度如64个页面时,一起将所有已修改页面写回磁盘,故可显著减少磁盘I/O操作次数12920三月2023北京交通大学计算机学院翟高寿4.6.4

页面置换算法4.6.4.1抖动与缺页率4.6.4.2最佳置换算法4.6.4.3先进先出置换算法4.6.4.4最近最久未使用置换算法4.6.4.5Clock置换算法4.6.4.6最少使用置换算法4.6.4.7页面缓冲算法13020三月2023北京交通大学计算机学院翟高寿4.6

请求分页存储管理方式4.6.1请求分页中的硬件支持4.6.2内存分配策略和分配算法4.6.3调页策略4.6.4页面置换算法13120三月

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论