操作系统幻灯片4

上传人:F****n 文档编号:88153991 上传时间:2019-04-20 格式:PPT 页数:70 大小:1.90MB
返回 下载 相关 举报
操作系统幻灯片4_第1页
第1页 / 共70页
操作系统幻灯片4_第2页
第2页 / 共70页
操作系统幻灯片4_第3页
第3页 / 共70页
操作系统幻灯片4_第4页
第4页 / 共70页
操作系统幻灯片4_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《操作系统幻灯片4》由会员分享,可在线阅读,更多相关《操作系统幻灯片4(70页珍藏版)》请在金锄头文库上搜索。

1、1,软件技术基础,电子科技大学通信与信息工程学院 软件技术基础课题组 教师:孟中楼 Email:,2,操作系统内容概要,操作系统的几大基本的管理功能 处理机管理 作业管理 存储器管理 设备管理 文件管理,3,第四章 存储器管理,存储管理的基本概念 连续分配方式 分区存储管理 离散分配方式 分页式 分段式 段页式 虚拟存储器,4,存储管理的基本概念,4.1存储管理的基本概念 存储管理的对象内存 一、内存与外存,大,小,高,低,快,慢,顺序,随机,几百M,几十G,ns级,ms级,5,存储管理的研究课题,二、存储管理的主要研究课题 前提:多道程序在内存 (1)内存的分配和回收 为进程分配足够的内存空

2、间 管理内存分配表;制定分配策略;内存区域的划分方式 (2)内存空间的共享 (3)存贮空间保护 多进程之间不会越界访问 (4)地址变换 (5)主存的“扩充”问题 虚拟内存管理。,6,地址,三、地址变换的基本概念 1)什么是“地址” 地址是以字节为单元的存储器编号 内存空间(绝对空间)与物理地址 整个系统从0开始,即从0号存储单元开始 程序空间(相对空间)与逻辑地址 程序由机器代码组成,以字节为单位 每个程序都从0开始,8,程序空间例:,用UltraEdit打开的debug.exe程序,9,地址变换,2)为什么要进行地址变换 多道程序并发执行: 相对空间到绝对空间的映射 3)如何进行地址变换 重

3、定位 基地址是程序在内存中的定位 逻辑地址转换为物理地址就是地址映射或重定位,逻辑地址,基地址,+,物理地址,0,0,0,0,Memory,10,地址变换,重定位: 静态重定位 装入内存时一次性完成地址变换,运行过程地址不变 优点:无需硬件支持 缺点:不易实现程序共享 动态重定位 动态改变基地址 优点:内存使用灵活、可对内存进行非连续分配 缺点:需要硬件支持,实现较复杂,11,装入和链接,四、程序的装入和链接 从用户源程序到内存中可执行的代码将经历: 编译: 完成用户源程序从高级语言到机器可理解代码的转换 根据任务的需要可能形成若干相对独立的目标模块 链接: 将任务所需的目标模块链接起来,如标

4、准库、系统库 形成一个完整的装入模块 装入: 由系统的装入操作将装入模块装入内存,12,装入,程序的装入 涉及: 放到内存什么地方 如何内存中找到所需的逻辑单元 装入方法的类型: 绝对装入 可重定位装入 动态装入,内存空间的分配,地址空间的映射,地址的变换,13,绝对装入,A、绝对装入方式 装入模块的地址与内存实际地址完全相同 系统装入程序时工作最简单,直接分配,不变换地址 要求: 用户使用绝对地址编程 用户了解程序在内存中的存放位置 用户控制内存使用情况,14,可重定位装入,B、可重定位装入方式 装入模块中使用从0开始的相对地址 装入时 由系统分配内存空间, 并完成装入模块中相对地址变换为绝

5、对地址,逻辑地址,基地址,+,物理地址,装入模块中的相对地址,装入后实际的内存地址,15,装入时的地址变换,MOV ax , 2500,365,0,1000,2500,10000,11000,12500,MOV ax , 2500,365,程序空间,内存空间,0,12500,12500 10000+2500,物理地址,基地址,相对地址,16,动态装入,C、动态装入方式 在具有中级调度的系统中,进程出入内存的次数不只一次 装入模块中使用相对地址,装入时不变换地址,在执行时才完成地址的变换 地址的变换仍利用重定向机制 特点 方便了模块的动态装入,加载 为减少执行时间,需使用特殊的硬件支持,17,内

6、存连续分配,4.2连续分配存储管理方式 特点:为一个用户程序分配一个连续的内存空间 程序空间本来就是连续的 用连续的内存装入连续的程序,减少管理工作的难度,18,单一连续分配,4.2.1单一连续分配 适用于单用户系统 1)基本思想: 内存分为系统区和用户区 用户程序占据整个用户区仅允许一个用户,OS区,用户区,或,OS区,用户区,或,OS区,用户区,OS区,0,系统在低端内存,系统在高端内存,19,单一连续分配算法,2)单一连续分配算法,作业用户区?,给作业分配存贮空间,装入程序,Y,不能分配,N,20,单一连续分配的存储保护,3)单一连续分配的存贮保护 存贮保护: 保护系统区不被用户错误占用

7、 (1)设置界限寄存器: 判别地址是否超界 (2)把CPU工作状态分为“管”态和“目”态 管态:CPU只访问OS区 目态:只访问用户区,21,固定分区分配,4.2.2固定分区分配 适应多用户系统。 1)基本思想 内存分区 每个分区装入一道作业,同时可装入多道作业 对分区进行存贮保护 2)实现方法:分区说明表,分区号,大小,起始地址,状态,1,4K,0000H,未分配,2,8K,4000H,已分配,3,12K,12000H,未分配,相等分区法,不等分区法,22,内零头与外零头,内存分配性能评价的一类重要指标 内零头: 分配给用户但用户没有使用的空间 “多分配的空间” 外零头: 没有分配但无法分配

8、的空间 太小而无法分配,“分不出去的空间” 单一连续分配有较大的内零头 分区分配有小于一个分区的内零头, 如果分区太小就成为外零头,23,动态分区分配,4.2.3动态分区分配(可变分区分配) 引入 固定分区分配会造成大量的内零头 1)基本思想 分配分区时,仅将进程需要的大小分配出去,其余的仍然留在空白内存表里。 空白内存表线性数据结构 索引 链表,24,动态分区分配的实现方法,2)实现方法,(1)分区的数目一定,但大小可变,(2)分区的数目和大小均可变,空白分区说明表,空白分区链表,25,动态分区分配的过程,3)分配过程,选,用户需要 的大小,从空白分区链表中选取适当分区m,m.size u.

9、size minsize,u:用户装入模块 minsize:最小分区,从m中划出u.size大小的分区给用户 m.size = m.size u.size,将分区分配给用户,将分区从链表中 移出,N,Y,可能形成 外零头,存在内零头,分配过程的流程图,27,动态分区分配的算法,4)分配算法(空白分区选择) 从多个目标中选取一个 A、首次适应(First Fit) B、循环首次适应 C、最佳适应 D、最差适应,28,首次适应,A、首次适应 第一次遇到可装入程序的分区就分配的算法 步骤: (1)将空白分区按地址递增顺序链接 (2)从链首开始查找适合的分区 (3)从选中的分区中分出所需的大小,其余部

10、分仍留在空白分区链表里 特点:优先分配内存中低地址部分 优点:简单 缺点:在低地址部分会积累大量外零头,作业1,作业2,作业3,作业4,2,3,4,1,0,0,1,0,2,3,4,1,5,0,在低地址部分会积累大量外零头,30,循环首次适应,B、循环首次适应 在首次适应算法的基础上,均衡利用整个内存空间 实现: 将空白区链表首尾相接形成环形, 每次查找从上一次停留的位置开始 特点 可以均衡利用高址和低址内存 减慢了外零头形成的速度 外零头虽然不集中在低址部分,但未得到有效解决。,31,最佳适应,C、最佳适应(Best Fit) 选取最适合大小的空白分区 空白分区按照分区大小递增排列 遇到的第一

11、个可分配空白分区就分配 特点: 优点:保证总有大分区可分配(排在后面) 缺点: 效率不高,排在前面的分区不断变小,能被分出去的概率也就越来越低 外零头形成速度快,32,X,最差适应,D、最差适应(Worst Fit) 选取分区中最大的一个最不适合的 空白分区按大小递减排列 遇到的第一个可分配的空白分区就分配 特点: 优点:查找效率显著提高,一次就找到 缺点:大作业容纳能力会下降,33,动态分区分配的内存回收,5)内存回收 用户使用完的内存将形成新的空白分区插入到系统空白分区链表中。 如果新回收的分区在空白分区链表中有邻接分区时 实行分区拼接消灭外零头,状态,大小,前一块,状态,大小,后一块,状

12、态,大小,前一块,状态,大小,后一块,状态,大小,前一块,回收区,状态,大小,后一块,34,4.2.4动态重定位分区分配 引入:拼接仅在相邻空白分区之间进行,而散布在内存中的外零头不便拼接。 基本思想紧凑 在系统中搬移作业,将空白分区凑在一起 合并小分区形成大分区 搬移作业需要利用重定位技术,以将搬移后的作业重新定位,大量消灭外零头,动态重定位分区分配,作业1,作业2,作业3,作业4,移动作业,拼接出大分区,35,紧凑,紧凑时机 当回收区找不到与之相邻的空白区时,启动紧凑 随即随拼 当存储分配找不到满足作业需求的空间时,进行紧凑生成一个足够大的分区 按需拚接,36,覆盖与交换,4.3覆盖与交换

13、(自学) 什么是覆盖与交换 两个程序模块使用同一个内存分区 为什么要进行覆盖与交换 节约内存,提高内存利用率 怎样进行覆盖与交换 对换区 换入、换出 相关知识: 挂起 中级调度,内存,磁盘,交换,对换区,37,离散分配,4.4分页存储管理方法 离散分配方式 1)离散分配方式的引入 连续分配方式有大量的内/外零头。 为解决零头问题又要进行拼接等高开销活动 2)什么是离散分配 程序在内存中不一定连续存放 3)怎样离散分配 分配方式的详细纪录空间映射关系 灵活的地址变换方式,38,4.4.1分页存储管理基本思想 1)离散的基础 分页:将程序地址空间分页 分块:将内存空间分块 页/块:几K几十K字节

14、2)离散分配的体现 内存一块可以装入程序一页 连续的多个页不一定装入连续的多个块中 注:系统中页块的大小是不变的。,分页存储管理基本思想,0,1,2,n,用户程序,0,1,2,m,内存,39,分页存储管理,3)离散分配的优点 没有外零头 不受连续空间限制,每块都能分出去 仅有小于一个页面的内零头 程序大小一般不是页大小的整数倍,40,分页存储管理实现的方法,4.4.2分页存储管理的基本方法 解决两个基本问题: 1)如何建立程序空间与主存空间的映射 2)如何进行地址变换 从程序逻辑地址到内存物理地址,0,1,2,m,程序空间 逻辑空间 相对地址,内存空间 物理空间 绝对地址,内存,0,1,2,n

15、,用户程序,0,1,2,n,3,m-2,1,m-1,页表,页号,块号,0,1,2,3,41,分页存储的三种表格,1)建立并管理以下三种表格,(1)作业表(JT) 整个系统一个,记 录作业的页表情况。 (2)页表(PT) 每个进程一个,记录进程的程序页与块的关系 (3)存储分块表(MBT),JT,PT,42,分页存储的三种表格,(3)存储分块表(MBT) 整个系统一个,记录空白块 N:可用的空白块总数 Fptr:空白块链表表首指针 每个空白块记录了下一个空白块的块号,因此形成了空白块链表,N,Fptr,OS区,作业1,作业5,作业1,2)地址变换机构:实现逻辑地址(相对地址)到物理地址的变换,程序,0,1,2,相对地址,0,1,2,3,4,5,6,7,8,9,分页号,5,分块块号,物理地址,30,100,1000,120,121,122,123,400,401,402,403,4001,4002,MOV bx,1,401,JMP 401,44,分页存储的地址变换机构,逻辑地址,基地址,+,物理地址,相对地址,页号,页内地址,+,块号,块内地址,物理地址寄存器,有效地址寄存器 页号 页内地址,越界?,5,1,1,100,1,100*4 + 1 = 401,设块大小为4,45,分页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号