第6-7章-存储管理课件.ppt
操作系统原理操作系统原理 Principles of Operating System胡志刚胡志刚中南大学信息科学与工程学院中南大学信息科学与工程学院Central South UniversityCollege of Information Science and Engineering 2023/1/24计算机操作系统目目 录录REFERANCEREFERANCE第第1 1章章 操作系统引论操作系统引论第第2 2章章 进程的描述与控制进程的描述与控制第第3 3章章 进程的通信与同步进程的通信与同步第第4 4章章 调度与死锁调度与死锁第第5 5章章 存储器管理存储器管理2023/1/24计算机操作系统目目 录录第第6 6章章 虚拟存储器虚拟存储器第第7 7章章 设备管理设备管理第第8 8章章 文件系统文件系统第第9 9章章 磁盘存储器管理磁盘存储器管理第第1010章章 操作系统接口操作系统接口2023/1/24计算机操作系统第第6 6章章 存储器管理存储器管理6.1 存储管理功能存储管理功能 6.2 分区存储管理方式分区存储管理方式6.3 覆盖与交换技术覆盖与交换技术6.4 分页存储管理方式分页存储管理方式6.5 分段存储管理方式分段存储管理方式6.6 段页式存储管理方式段页式存储管理方式 实验二实验二 主存空间的分配和回收主存空间的分配和回收2023/1/24计算机操作系统6.1 存储管理功能存储管理功能1 1 1 1、存储管理的主要任务、存储管理的主要任务、存储管理的主要任务、存储管理的主要任务l为多道程序的运行提供良好的环境和存储基础;为多道程序的运行提供良好的环境和存储基础;l方便用户使用存储器,提高存储器和方便用户使用存储器,提高存储器和CPU的利用率;的利用率;l从逻辑上来扩充主存储器从逻辑上来扩充主存储器2 2、存储管理功能、存储管理功能、存储管理功能、存储管理功能l主存空间分配和管理主存空间分配和管理l地址转换和重定位地址转换和重定位l存储保护和共享存储保护和共享l存储扩充存储扩充 2023/1/24计算机操作系统一一、程序的装入和链接、程序的装入和链接 用户编制的源程序成为可以在内存运行的程序用户编制的源程序成为可以在内存运行的程序通常要经历三个步骤:通常要经历三个步骤:编译、链接和装入编译、链接和装入编译、链接和装入编译、链接和装入。源源程程序序系统源系统源语句库语句库私有源私有源语句库语句库目标目标模块模块系统目标系统目标语句库语句库私有源私有源语句库语句库装入装入模块模块重定位重定位2023/1/24计算机操作系统重定位的重定位的2种方式种方式1、程序的装入程序的装入补充:补充:补充:补充:重定位的概念:重定位的概念:重定位的概念:重定位的概念:相对地址:相对地址:相对地址:相对地址:用户程序中使用的地址;用户程序中使用的地址;绝对地址:绝对地址:绝对地址:绝对地址:系统为主存单元分配的地址;系统为主存单元分配的地址;相对地址空间:相对地址空间:相对地址空间:相对地址空间:绝对地址空间:绝对地址空间:绝对地址空间:绝对地址空间:例:例:0 LOAD AX,6 ;将将6号单元内容入号单元内容入AX 2 ADD AX,8 ;AX与与8号单元内容相加号单元内容相加 4 SRORE AX,10 ;AX内容入内容入10号单元号单元 6 A 8 B 10 A+B重定位:重定位:重定位:重定位:修改程序中与地址相关的内容修改程序中与地址相关的内容-将相对地址变将相对地址变为绝对地址的过程称为程序重定位。为绝对地址的过程称为程序重定位。2023/1/24计算机操作系统1 1、静态重定位、静态重定位、静态重定位、静态重定位思想:思想:思想:思想:程序入主存之前由编译程序入主存之前由编译/链接程序完成重链接程序完成重定位,入主存可立即执行。定位,入主存可立即执行。例例优缺点:优缺点:优缺点:优缺点:根据重定位的时机不同有根据重定位的时机不同有2种方式种方式2 2、动态重定位、动态重定位、动态重定位、动态重定位思想:思想:思想:思想:程序入主存之前不进行重定位,入主存执程序入主存之前不进行重定位,入主存执行到与地址相关项时,再进行重定位。行到与地址相关项时,再进行重定位。例例优缺点:优缺点:优缺点:优缺点:装入的装入的3种方式种方式2023/1/24计算机操作系统静静/动态重定位示例动态重定位示例 0 LOAD AX,6 2 ADD AX,8 4 SRORE AX,10 6 A 8 B 10 A+B1000 LOAD AX,10061002 ADD AX,10081004 SRORE AX,10101006 A1008 B1010 A+B静态静态入入10001000 LOAD AX,61002 ADD AX,81004 SRORE AX,101006 A1008 B1010 A+B动动 态态重定位重定位重定位重定位R R 1000 1000执行:绝对地址执行:绝对地址=R+相对地址相对地址2023/1/24计算机操作系统装入模块装入内存的三种方式:装入模块装入内存的三种方式:1 1、绝对装入方式、绝对装入方式、绝对装入方式、绝对装入方式(Absolute Loading Mode)Absolute Loading Mode)思想:思想:思想:思想:事先已经知道用户程序入主存后的位置,故编事先已经知道用户程序入主存后的位置,故编译程序在编译时即可将相对地址改为绝对地址。装入译程序在编译时即可将相对地址改为绝对地址。装入程序按照装入模块中的地址,将程序和数据装入内存。程序按照装入模块中的地址,将程序和数据装入内存。2 2、可重定位装入方式、可重定位装入方式、可重定位装入方式、可重定位装入方式(RelocatableRelocatable Loading Mode)Loading Mode)思想:思想:思想:思想:多道环境下,编译程序不能预知用户程序入主多道环境下,编译程序不能预知用户程序入主存后的位置,故编译后的目标模块的起始地址一般设存后的位置,故编译后的目标模块的起始地址一般设为从为从0开始。可重定位装入程序根据内存使用情况,将开始。可重定位装入程序根据内存使用情况,将装入模块重定位后装入内存。装入模块重定位后装入内存。3 3、动态运行时装入方式、动态运行时装入方式、动态运行时装入方式、动态运行时装入方式(Dynamic Run_time Dynamic Run_time Loading)Loading)思想:思想:思想:思想:装入程序按照装入模块中的地址,将程序和数装入程序按照装入模块中的地址,将程序和数据装入内存,执行时重定位。据装入内存,执行时重定位。程序的链接程序的链接2023/1/24计算机操作系统链接程序的功能:链接程序的功能:链接程序的功能:链接程序的功能:将编译后得到的一组目标模块将编译后得到的一组目标模块以及它们所需要的库函数,装配成一个完整的装以及它们所需要的库函数,装配成一个完整的装入模块。有三种链接方法:入模块。有三种链接方法:2、程序的链接、程序的链接一、静态链接一、静态链接一、静态链接一、静态链接(Static Linking)Static Linking)工作:工作:工作:工作:1、修改相对地址;、修改相对地址;2、将外部调用符号,变换为相对地址;、将外部调用符号,变换为相对地址;例例二、装入时动态链接二、装入时动态链接二、装入时动态链接二、装入时动态链接(Load-Time Dynamic Load-Time Dynamic Linking)Linking)工作:工作:工作:工作:边装入,边链接;边装入,边链接;三、运行时动态链接三、运行时动态链接三、运行时动态链接三、运行时动态链接(RunRun-Time Dynamic-Time Dynamic Linking)Linking)工作:工作:工作:工作:程序执行时再链接;程序执行时再链接;2023/1/24计算机操作系统程序的链接示例程序的链接示例(P136 图图5-4)模块模块ACALL B;Return;模块模块BCALL C;Return;模块模块CReturn;000L-1M-1N-1目标模块目标模块链接链接 模块模块AJSR“L”Return;模块模块BJSR“L+M”Return;模块模块CReturn;装入模块装入模块0LL+ML+M+N-12023/1/24计算机操作系统6.2 分区存储管理方式分区存储管理方式 区分:区分:区分:区分:实存管理实存管理/虚存管理虚存管理6.2.16.2.1单一连续分配单一连续分配单一连续分配单一连续分配(单用户、单任务的单用户、单任务的单用户、单任务的单用户、单任务的OS)OS)内存分为内存分为:系统区,用户区;:系统区,用户区;存储保护存储保护:一般采用界限地址寄存器。:一般采用界限地址寄存器。系统区系统区1用户区用户区上限地址寄存器上限地址寄存器系统区系统区2下限地址寄存器下限地址寄存器固定分区分配固定分区分配2023/1/24计算机操作系统思想:思想:思想:思想:将内存地址空间划分为若干个固定大小的区将内存地址空间划分为若干个固定大小的区域,每个分区装入一道作业运行。域,每个分区装入一道作业运行。6.2.2固定分区分配固定分区分配动态分区分配动态分区分配一、分区划分一、分区划分 1、大小相等;、大小相等;2、大小不等;、大小不等;二、数据结构二、数据结构 例例 分区说明表:分区说明表:分区号,大小,起始地址,状态;分区号,大小,起始地址,状态;三、分配三、分配/回收回收 例例四、优缺点四、优缺点:“内零头内零头”(Internal Fragmentation)OVER2023/1/24计算机操作系统固定分区示例固定分区示例分区号分区号 大小(大小(KB)始址(始址(K)状态状态 1 15 30 已已/未未 2 30 45 已已/未未 3 50 75 已已/未未 4 100 125 已已/未未作业序列:作业序列:A(10),B(50),C(25),B,D(30).OS1/A2/C3/B4/30K45K75K125K225K0K2023/1/24计算机操作系统6.2.3 动态分区分配动态分区分配思想:思想:思想:思想:主存预先不划分分区,作业入主存执行时主存预先不划分分区,作业入主存执行时再根据作业大小划分等额分区分配。再根据作业大小划分等额分区分配。一、数据结构(一、数据结构(例例)1 1、空闲分区、空闲分区、空闲分区、空闲分区:空闲分区表:空闲分区表/空闲分区控制块;空闲分区控制块;空闲分区表:空闲分区表:序号,大小,起始地址,状态;序号,大小,起始地址,状态;2 2、已分分区已分分区已分分区已分分区:已分已分分区表分区表/已分分区控制块;已分分区控制块;二、分区分配二、分区分配4算法算法 1 1、首次适应、首次适应、首次适应、首次适应(First Fit)First Fit);2 2、循环首次适应、循环首次适应、循环首次适应、循环首次适应(Next Fit)Next Fit);3 3、最佳适应、最佳适应、最佳适应、最佳适应(Best Fit):Best Fit):4 4、最坏适应最坏适应最坏适应最坏适应(Worst Fit);Worst Fit);分配分配/回收回收2023/1/24计算机操作系统1 1、分区分配、分区分配、分区分配、分区分配按照分区分配算法,选择一个合适的未分分区分按照分区分配算法,选择一个合适的未分分区分配,并修改空闲配,并修改空闲/已分分区表。(已分分区表。(例例)“外零头外零头”:系统中存在但无法使用的分区。:系统中存在但无法使用的分区。克服外零头:设置不再分割的剩余区最小值克服外零头:设置不再分割的剩余区最小值Size三、分区的分配三、分区的分配/回收回收2 2、分区回收、分区回收、分区回收、分区回收说明:说明:说明:说明:回收分区应与空闲分区合并。回收分区应与空闲分区合并。共有四种情况(共有四种情况(P143图图5-10)()(例例)动态重定位分区分配动态重定位分区分配2023/1/24计算机操作系统动态分区分配示例(首次)动态分区分配示例(首次)进程序列:进程序列:A(10)B(50)C(25)B D(48)序号序号 大小(大小(KB)始址(始址(K)状态状态 1 610 30 未未 2 空表目空表目 3 空表目空表目 4 空表目空表目 .OS030640A(10)600 40 B(50)4090 550 90 C(25)115 525 115 50 40 525 115 未未D(48)2 88 525 115 ALLOCATION OVERC 552 88 空表目空表目OVER2023/1/24计算机操作系统6.2.4动态重定位分区分配动态重定位分区分配一、紧凑一、紧凑一、紧凑一、紧凑 移动内存中作业,将分散的多个可用分区合移动内存中作业,将分散的多个可用分区合并成一个大的分区,这种方法称为紧凑。并成一个大的分区,这种方法称为紧凑。要求:采用动态重定位技术。要求:采用动态重定位技术。二、动态重定位分区分配二、动态重定位分区分配二、动态重定位分区分配二、动态重定位分区分配思想:思想:思想:思想:当作业需进入主存时,若主存每一个可用当作业需进入主存时,若主存每一个可用分区都不能满足要求,而可用分区总和又可满足分区都不能满足要求,而可用分区总和又可满足要求时,首先完成内存的要求时,首先完成内存的“紧凑紧凑”,然后调入。,然后调入。书中算法流程书中算法流程书中算法流程书中算法流程IBM-PC微机中的存储管理方式微机中的存储管理方式2023/1/24计算机操作系统6.3 覆盖与交换技术覆盖与交换技术6.3.1 6.3.1 覆盖技术覆盖技术覆盖技术覆盖技术基本思想:基本思想:基本思想:基本思想:将进程当前不运行的指令和数据只在需要时装将进程当前不运行的指令和数据只在需要时装入到该进程不需再使用的指令和数据所占用的内存入到该进程不需再使用的指令和数据所占用的内存空间中。空间中。引入目的:引入目的:引入目的:引入目的:使在较小的可用内存空间上运行较大的程序成使在较小的可用内存空间上运行较大的程序成为可能,该技术常与分区存储管理技术配合使用。为可能,该技术常与分区存储管理技术配合使用。优点:优点:优点:优点:缺点:缺点:缺点:缺点:2023/1/24计算机操作系统6.3.2 交换交换(Swapping)技术技术引入目的:引入目的:引入目的:引入目的:解决由于内存不足而无法同时调入解决由于内存不足而无法同时调入多个作业的问题。多个作业的问题。1 1、多道程序环境下的对换、多道程序环境下的对换、多道程序环境下的对换、多道程序环境下的对换实现:实现:实现:实现:通过中级调度。通过中级调度。分类:分类:分类:分类:进程对换:进程对换:以整个进程为单位;以整个进程为单位;页页/段对换:虚存管理技术;段对换:虚存管理技术;2 2、对换空间管理、对换空间管理、对换空间管理、对换空间管理实现:实现:实现:实现:将外存分为文件区和对换区,并设置数据将外存分为文件区和对换区,并设置数据结构记录外存空间的使用情况,用于分配结构记录外存空间的使用情况,用于分配/回收。回收。2023/1/24计算机操作系统6.4 分页存储管理方式分页存储管理方式基本思想:(基本思想:(基本思想:(基本思想:(例例)1 1、内存物理地址空间按内存物理地址空间按2n等分成页框等分成页框/架,并从架,并从0连连续编号:续编号:0,1,2,.。2 2、作业的逻辑地址空间按页框大小等分成页,并从作业的逻辑地址空间按页框大小等分成页,并从0连续编号:连续编号:0,1,2,.。3 3、作业逻辑地址表示:作业逻辑地址表示:v=(P,d)4 4、作业连续的页,可以分配不连续的页框;作业连续的页,可以分配不连续的页框;5 5、系统设置页表系统设置页表PMT(Page Mapping Table)保存作业保存作业各页入内存后的情况;各页入内存后的情况;主要有:页号、页框号主要有:页号、页框号6 6、设置设置一个一个页表地址寄存器,保存页表地址寄存器,保存当前执行进程当前执行进程页页表的起始地址和页表的长度。表的起始地址和页表的长度。地址变换地址变换2023/1/24计算机操作系统分页存储管理方式示例分页存储管理方式示例.页框号页框号012345678910111201230 21 32 63 8 页号页号 页框号页框号作业作业AA0A1A2A3012作业作业B0 41 7 2 12 页号页号 页框号页框号B0B1B2OVEROVER2023/1/24计算机操作系统6.4.2地址变换地址变换一、基本地址变换(直接地址映像)一、基本地址变换(直接地址映像)一、基本地址变换(直接地址映像)一、基本地址变换(直接地址映像)思想:思想:思想:思想:借助借助PMT表、页表寄存器完成作业表、页表寄存器完成作业的逻辑地址(虚地址)到内存物理地址的变的逻辑地址(虚地址)到内存物理地址的变换。换。例例问题:问题:问题:问题:从虚地址转换为物理地址,然后再完从虚地址转换为物理地址,然后再完成地址访问,共访问几次主存?效率为多少成地址访问,共访问几次主存?效率为多少?具有快表的地址变换具有快表的地址变换2023/1/24计算机操作系统分页基本地址变换示例分页基本地址变换示例页框号页框号013456789101112A0A1A2A320 21 32 63 8 页号页号 页框号页框号作业作业A:V=(2,d)页表寄存器页表寄存器B L L(6,d)偏移偏移dOVER2023/1/24计算机操作系统二、具有快表的地址变换(相关地址映像)二、具有快表的地址变换(相关地址映像)思想:思想:思想:思想:增设若干具有并行查询能力的特殊高速缓冲寄增设若干具有并行查询能力的特殊高速缓冲寄存器(联想寄存器存器(联想寄存器/快表),保存当前执行进程的部分快表),保存当前执行进程的部分/全部页表表目。全部页表表目。例如:例如:例如:例如:IBM:变换后备存储器变换后备存储器TLB (Translation Look-aside Buffer);NT:变换查找缓冲区;变换查找缓冲区;地址变换:地址变换:地址变换:地址变换:先查快表:先查快表:找到:得出物理地址;找到:得出物理地址;未找到:查页表。未找到:查页表。例例问题:问题:问题:问题:由于联想寄存器较贵,系统配置数目有限,如由于联想寄存器较贵,系统配置数目有限,如Inter 80486有有32个,个,如何提高从快表中找到的概率?如何提高从快表中找到的概率?程序的局部性特征程序的局部性特征有效访问时间示例有效访问时间示例2023/1/24计算机操作系统具有快表的地址变换示例具有快表的地址变换示例P b 页号页号 页框号页框号V=(P,d)页表寄存器页表寄存器B L L(b,d)P b快表快表.OVER2023/1/24计算机操作系统程序的局部性特征程序的局部性特征遵循结构化设计的程序具有如下两个特征:遵循结构化设计的程序具有如下两个特征:时间局部性:时间局部性:时间局部性:时间局部性:刚被访问的主存单元,不久会刚被访问的主存单元,不久会再次再次再次再次被访问。被访问。空间局部性:空间局部性:空间局部性:空间局部性:刚被访问的主存单元,其刚被访问的主存单元,其临近单元临近单元临近单元临近单元不久会被访问不久会被访问。例:例:例:例:For i=1 To 100 Do A(i)=0;2023/1/24计算机操作系统有效访问时间示例(有效访问时间示例(P153)设:设:设:设:联想寄存器的访问时间为联想寄存器的访问时间为20ns,内存访问时内存访问时间为间为100ns。不使用联想寄存器的访问时间为:不使用联想寄存器的访问时间为:t=100*2 若从联想寄存器找到的概率为若从联想寄存器找到的概率为80%80%,则有,则有效访问时间为:效访问时间为:t=20%*(20+100*2)+80%(20+100)=140ns两级和多级页表两级和多级页表2023/1/24计算机操作系统6.4.3两级和多级页表两级和多级页表 现代大多数计算机系统都支持非常大的逻辑现代大多数计算机系统都支持非常大的逻辑地址空间。如地址空间。如Windows NT是是32位的位的OS,它为每它为每一个进程提供的逻辑地址空间为一个进程提供的逻辑地址空间为232,即,即4000MB。对一个有对一个有32位逻辑地址空间的分页系统,若位逻辑地址空间的分页系统,若页面大小为页面大小为4KB(212B),),则每一个进程的页表则每一个进程的页表项可达项可达1兆个。设每一个表目占兆个。设每一个表目占4个字节,则每个个字节,则每个进程页表需进程页表需4MB连续内存连续内存。为解决对内存高要求。为解决对内存高要求的问题,的问题,有两种思路:有两种思路:有两种思路:有两种思路:1、页表采用离散分配方式;、页表采用离散分配方式;2、部分页表表目入内存,其余仍在外存。、部分页表表目入内存,其余仍在外存。两级页表两级页表2023/1/24计算机操作系统两级页表(其余自学)两级页表(其余自学)思想:思想:思想:思想:1、页表再按页框大小分页,、页表再按页框大小分页,0页、页、1页页.编号;编号;2、为页表再建立一张页表(、为页表再建立一张页表(外层页表外层页表外层页表外层页表),每个),每个页表项记录页表页面的物理块号;页表项记录页表页面的物理块号;3、设置外层页表寄存器,存放外层页表的起址;、设置外层页表寄存器,存放外层页表的起址;4、逻辑地址表示:、逻辑地址表示:V=V=(P P1 1,P P2 2,d d)。)。)。)。例:例:例:例:对于对于32位,页面大小为位,页面大小为4KB(212)的系统,则共有的系统,则共有220个表目。设每个表目占个表目。设每个表目占4字节,则:每页存放表目数字节,则:每页存放表目数为为210个,共需个,共需210个外层页表。个外层页表。逻辑地址如下:逻辑地址如下:P1P2d01112212231页内偏移页内偏移212外层页内地址外层页内地址210外层页号外层页号210见见见见F5-20F5-20,OVEROVER2023/1/24计算机操作系统6.5 分段存储管理分段存储管理6.5.16.5.1分段存储管理方式的引入分段存储管理方式的引入分段存储管理方式的引入分段存储管理方式的引入段:段:段:段:一组逻辑信息的集合。如:主程序段、子一组逻辑信息的集合。如:主程序段、子程序段、数据段、堆栈段等。程序段、数据段、堆栈段等。目的:目的:目的:目的:1、方便编程;、方便编程;2、分段共享;、分段共享;3、分段保护;、分段保护;4、动态连接;、动态连接;5、动态增长。、动态增长。分段的基本原理分段的基本原理2023/1/24计算机操作系统6.5.2分段的基本原理分段的基本原理1 1、作业的逻辑地址空间分段,每个段有自己的段名,作业的逻辑地址空间分段,每个段有自己的段名,并从并从0连续编号:连续编号:0,1,2,.。2 2、装入程序将分段装入时,为每一个分段分配一段装入程序将分段装入时,为每一个分段分配一段号;号;3 3、作业逻辑地址表示:作业逻辑地址表示:v=(S,w)4 4、以段为单位分配主存,每一分段分配连续的分区;以段为单位分配主存,每一分段分配连续的分区;5 5、系统设置段保存作业各段入内存后的情况;系统设置段保存作业各段入内存后的情况;主要有:段号、段长、主存起址主要有:段号、段长、主存起址6 6、设置设置一个一个段表地址寄存器,保存段表地址寄存器,保存当前执行进程当前执行进程段段表的起始地址和长度。(表的起始地址和长度。(F5-22,F5-23例例)地址映像同分页系统地址映像同分页系统地址映像同分页系统地址映像同分页系统分页和分段的区别分页和分段的区别2023/1/24计算机操作系统一、分页分段的共享一、分页分段的共享一、分页分段的共享一、分页分段的共享 可共享的代码应该是可共享的代码应该是可重入的可重入的(Reentrant),),可重入代码又称可重入代码又称纯代码纯代码(Pure Code)。)。为保证共享代码是纯代码,设计时可将作业为保证共享代码是纯代码,设计时可将作业分成两部分:纯段、杂段。分成两部分:纯段、杂段。分段共享方便,分页共享较困难分段共享方便,分页共享较困难。6.5.3共享与保护共享与保护二、分页分段的保护二、分页分段的保护二、分页分段的保护二、分页分段的保护 分页与分段都有较完善的保护机制。分页与分段都有较完善的保护机制。分页系统,通过页表地址寄存器中的页表长度;分页系统,通过页表地址寄存器中的页表长度;分段系统,通过段表地址寄存器中的段表长度分段系统,通过段表地址寄存器中的段表长度及段表中的段长项来实现存储保护。及段表中的段长项来实现存储保护。2023/1/24计算机操作系统1、页是信息的物理单位,为实现离散存储,提、页是信息的物理单位,为实现离散存储,提高内存利用率而引入;段是信息的逻辑单位,为高内存利用率而引入;段是信息的逻辑单位,为满足用户要求而引入。满足用户要求而引入。分页和分段的分页和分段的3个主要区别个主要区别2、页的大小固定且由系统确定;段长不定,取、页的大小固定且由系统确定;段长不定,取决于用户程序,并在编译时划分。决于用户程序,并在编译时划分。3、分页的作业地址空间是一维的;分段的作业、分页的作业地址空间是一维的;分段的作业地址空间是二维的。地址空间是二维的。共享与保护共享与保护2023/1/24计算机操作系统6.6段页式存储管理方式段页式存储管理方式基本思想:(基本思想:(基本思想:(基本思想:(例例)1 1、内存物理地址空间等分成页框,并从内存物理地址空间等分成页框,并从0连续编号;连续编号;2 2、作业的逻辑地址分段;作业的逻辑地址分段;3 3、作业各段按页框大小等分成页,并从作业各段按页框大小等分成页,并从0连续编号;连续编号;4 4、作业逻辑地址表示:作业逻辑地址表示:V=(S,P,d)5 5、作业各段连续的页,可以分配不连续的页框;作业各段连续的页,可以分配不连续的页框;6 6、系统为每个作业设置一个段表,每个分段再设置一个页表,系统为每个作业设置一个段表,每个分段再设置一个页表,分别保存作业各段及每段各页入内存后的情况;分别保存作业各段及每段各页入内存后的情况;段表:段号、段表:段号、该段页表起址、该段页表长度该段页表起址、该段页表长度 页表:页号、页框号页表:页号、页框号7 7、设置设置一个一个段表地址寄存器,保存段表地址寄存器,保存当前执行进程当前执行进程段表的起始段表的起始地址和段表的长度。地址和段表的长度。2023/1/24计算机操作系统段页式存储管理方式示例段页式存储管理方式示例.页框号页框号012345678910111201230 21 32 63 8 页号页号 页框号页框号作业作业AA00A01A02A030120 41 7 2 12 页号页号 页框号页框号A10A11A12主段主段0子段子段10 P0 L01 P1 L1段号段号 页表起址页表起址 长度长度2023/1/24计算机操作系统实验二实验二 主存空间的分配和回收主存空间的分配和回收一、实验内容一、实验内容一、实验内容一、实验内容 主存储器空间的分配和回收主存储器空间的分配和回收二、实验目的二、实验目的二、实验目的二、实验目的 帮助了解在不同的存储管理方式下,应怎帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。样实现主存空间的分配和回收。三、实验题目三、实验题目三、实验题目三、实验题目 在在可变分区可变分区可变分区可变分区管理方式下,采用管理方式下,采用最先适应算最先适应算法法实现主存空间的分配和回收。实现主存空间的分配和回收。提示及要求提示及要求2023/1/24计算机操作系统1 1、自行假设主存空间大小,预设操作系统所自行假设主存空间大小,预设操作系统所占大小并构造未分分区表;占大小并构造未分分区表;表目内容:表目内容:起址、长度、状态(未分起址、长度、状态(未分/空表空表目)目)2 2、结合实验一,结合实验一,PCB增加为:增加为:PID,要求运行时间,优先权,状态,要求运行时间,优先权,状态,所需主存大小,主存起始位置所需主存大小,主存起始位置,PCB指针指针3 3、采用最先适应算法分配主存空间;采用最先适应算法分配主存空间;4 4、进程完成后,回收主存,进程完成后,回收主存,并与相邻空闲分并与相邻空闲分区合并。区合并。提示及要求提示及要求2023/1/24计算机操作系统第第7章章 虚拟存储器虚拟存储器7.17.1 虚拟存储器的基本概念虚拟存储器的基本概念7.27.2 请求分页存储器管理方式请求分页存储器管理方式7.37.3 页面置换算法页面置换算法7.47.4 请求分页系统的性能分析请求分页系统的性能分析7.57.5 请求分段存储器管理方式请求分段存储器管理方式7.67.6 段的动态链接(补充)段的动态链接(补充)2023/1/24计算机操作系统7.1 7.1 虚拟存储器的基本概念虚拟存储器的基本概念实存管理有两个明显的特性:实存管理有两个明显的特性:实存管理有两个明显的特性:实存管理有两个明显的特性:一次性:一次性:一次性:一次性:作业一次全部入主存;作业一次全部入主存;驻留性:驻留性:驻留性:驻留性:作业进入主存后一直驻留直到完成。作业进入主存后一直驻留直到完成。实存管理的不足:实存管理的不足:一、虚拟存储器的定义一、虚拟存储器的定义一、虚拟存储器的定义一、虚拟存储器的定义 从用户角度从用户角度从用户角度从用户角度,将系统可提供的比实际大很多,将系统可提供的比实际大很多的内存容量,称为虚拟存储器。的内存容量,称为虚拟存储器。二、虚存的二、虚存的二、虚存的二、虚存的2 2 2 2种实现方式种实现方式种实现方式种实现方式 请求分页系统和请求分段系统。请求分页系统和请求分段系统。硬件支持:硬件支持:硬件支持:硬件支持:页页/段表扩充,缺页段表扩充,缺页/段中断,地址变换段中断,地址变换虚存的虚存的4个特征个特征2023/1/24计算机操作系统1、离散性:、离散性:采用离散分配方式;采用离散分配方式;2、多次性:、多次性:一个作业分成多次调入主存运行;一个作业分成多次调入主存运行;3、对换性:、对换性:将得不到运行的程序、数据调至外存将得不到运行的程序、数据调至外存盘交换区;盘交换区;4、虚拟性:(、虚拟性:(OVER)三、虚存的三、虚存的4个特征个特征2023/1/24计算机操作系统7.2 7.2 请求分页存储器管理方式请求分页存储器管理方式7.2.17.2.1请求分页中的硬件支持请求分页中的硬件支持请求分页中的硬件支持请求分页中的硬件支持一、页表机制一、页表机制一、页表机制一、页表机制 页号,页框号,状态位页号,页框号,状态位P,访问位访问位A,修改位修改位M,外存地址外存地址二、缺页中断机构二、缺页中断机构二、缺页中断机构二、缺页中断机构与一般中断的与一般中断的2点区别:点区别:1 1、是在指令执行期间,发现指令是在指令执行期间,发现指令/数据不在主存时数据不在主存时产生并处理;产生并处理;2 2、一条指令在执行期间,可能会产生多次缺页中一条指令在执行期间,可能会产生多次缺页中断。要求系统能保存多次中断的状态。(断。要求系统能保存多次中断的状态。(例例)地址变换地址变换2023/1/24计算机操作系统多次缺页中断示例多次缺页中断示例设:主存页框大小为设:主存页框大小为128字,有字,有128*128的数组;的数组;Var A:array1.128 of array1.128 of integer;程序段:程序段:程序段:程序段:for i:=1 to 128 for j:=1 to 128 Aij:=0;在在PascalPascal中,数组元素的存放中,数组元素的存放格式为格式为以行为主序以行为主序以行为主序以行为主序,问:执行,问:执行时缺页次数为多少?时缺页次数为多少?A1,1A1,2A1,3.A1,128.A128,1A128,2A128,3.A128,128.1页页 1页页2023/1/24计算机操作系统有快表的地址变换过程:有快表的地址变换过程:有快表的地址变换过程:有快表的地址变换过程:(P170P170,F6-2F6-2)1 1、存储保护检查:存储保护检查:页号页号页表长度?页表长度?是,越界是,越界中断;否则中断;否则2;2 2、查快表:查快表:找到找到,修改访问位对于写操作置修,修改访问位对于写操作置修改位,并形成物理地址访问;改位,并形成物理地址访问;若未找到若未找到,查页表状态位:在主存,将表,查页表状态位:在主存,将表目写入快表;否则,缺页中断。目写入快表;否则,缺页中断。OVEROVER7.2.2 请求分页的地址变换机构请求分页的地址变换机构页面分配页面分配2023/1/24计算机操作系统一、页面调入一、页面调入3策略策略 1 1、何时调入:、何时调入:、何时调入:、何时调入:预调预调/请调;请调;2 2、何处调入:、何处调入:、何处调入:、何处调入:交换区交换区/文件区;文件区;3 3、调入过程:、调入过程:、调入过程:、调入过程:二、最小物理块数二、最小物理块数 保证进程正常运行所需最小的页框数,其保证进程正常运行所需最小的页框数,其值取决于指令的格式、功能和寻址方式。值取决于指令的格式、功能和寻址方式。采用直接寻址:最小物理块数为采用直接寻址:最小物理块数为2;(存;(存放指令的页和存放数据的页)放指令的页和存放数据的页)采用间接寻址:最小物理块数为采用间接寻址:最小物理块数为3;7.2.3 页面调度策略页面调度策略页面分配和置换策略页面分配和置换策略2023/1/24计算机操作系统三、页面分配和置换策略三、页面分配和置换策略(三种三种)分配:固定分配:固定/可变;可变;置换:局部置换:局部/全局。全局。1 1、固定分配局部置换;固定分配局部置换;2 2、可变分配全局置换;可变分配全局置换;先分配一定数额,先分配一定数额,OS保留一个空闲页框队列。保留一个空闲页框队列。进程缺页时,申请新页框:有,追加分配;进程缺页时,申请新页框:有,追加分配;无,全局置换。无,全局置换。3 3、可变分配局部置换;可变分配局部置换;先分配一定数额,先分配一定数额,OS保留一个空闲页框队列。保留一个空闲页框队列。进程缺页时,申请新页框:有,追加分配;进程缺页时,申请新页框:有,追加分配;无,局部置换。无,局部置换。分配算法分配算法2023/1/24计算机操作系统1 1、平均分配算法、平均分配算法、平均分配算法、平均分配算法2 2、按进程大小比例分配算法、按进程大小比例分配算法、按进程大小比例分配算法、按进程大小比例分配算法 每个进程分配的页框数为:每个进程分配的页框数为:S Si i/S*m/S*m3 3、考虑优先权的分配算法、考虑优先权的分配算法、考虑优先权的分配算法、考虑优先权的分配算法 系统的总页框数分为系统的总页框数分为两部分两部分两部分两部分:一部分一部分,按比例,按比例分配;分配;另一部分另一部分,按进程的优先权适当追加;,按进程的优先权适当追加;四、固定分配的分配算法四、固定分配的分配算法2023/1/24计算机操作系统五、页面置换算法五、页面置换算法(Page-Replacement AlgorithmsPage-Replacement AlgorithmsPage-Replacement AlgorithmsPage-Replacement Algorithms)“抖动抖动抖动抖动”(Thrashing):刚刚被换出的页很快又被刚刚被换出的页很快又被访问,需再次调入。使进程花费大部分时间进行页访问,需再次调入。使进程花费大部分时间进行页面的置换,称进程发生了面的置换,称进程发生了“抖动抖动”。为避免抖动的发生,应选择合适的置换算法。为避免抖动的发生,应选择合适的置换算法。1、最佳置换算法、最佳置换算法2、先进先出置换算法(、先进先出置换算法(FIFO)()(例例