操作系统学位复习



《操作系统学位复习》由会员分享,可在线阅读,更多相关《操作系统学位复习(57页珍藏版)》请在文档大全上搜索。
1、第8章 实存储器管理技术2022-6-11物理主存 主存为操作系统、各种系统程序和用户程序所共享,任何程序的执行最终都要从主存中存取指令和数据,都必须和主存打交道; 现代操作系统可区分两类主存:物理主存和逻辑主存; 共享的基础是物理主存; 物理主存由0(m-1)个物理地址组成; 物理地址是计算机主存单元的真实地址,又称为绝对地址或实地址,处理器依据绝对地址可以随机存取存放在其内的信息; 物理地址的集合所对应的空间组成了主存空间; 而主存中的一个区域是物理地址集合的一个递增整数序列子集(如n,n+1,n+m)所对应的主存空间。2022-6-12逻辑主存 如果直接以物理地址提交给用户使用,对用户来
2、说是十分困难的事情; 采用了多道程序设计技术之后,多个用户程序共享主存,由用户自行分配主存更是不可能的事; 因此,为支持多道程序运行,方便用户,系统必须为每个用户提供0(n-1)的一组逻辑地址,即提供一个虚拟地址空间; 用户的程序地址(指令地址或操作数地址)均为逻辑地址,或称为相对地址; 根据逻辑地址不能直接到主存中去存取信息; 逻辑地址与物理地址之间有一定的映射关系,程序执行时,必须将逻辑地址正确地转换为物理地址,这就叫做地址映射。2022-6-13主存储器的物理组织 主存的结构组织和实现方法,很大程度上决定了计算机系统的功能; 主存的功能: 存放内核和用户程序的指令和数据; 每一项信息都存
3、放在主存的特定位置上; 信息在主存是按“位”存放的; 编址; 目前多数计算机以字节为单位进行编址。2022-6-14计算机系统存储器层次寄存器高速缓存主存储器磁盘缓存固定磁盘可移动存储介质2022-6-15主存储器管理功能(1) 主存分配 可以使多个程序同时驻留在主存中,以提高CPU利用率; 保证系统的高性能,提高存储利用率和提高主存的分配和释放(回收)速度,以加快任务的执行; 地址转换和重定位 程序不必事先约定存放地址,可在执行过程中移动; 可以运行只装入了一部分的程序,缩短程序的启动时间; 研究和使用各种有效的地址转换技术以及相应的地址转换机构;2022-6-16主存储器管理功能(2) 存
4、储保护和主存共享 研究如何保护各存储区中信息不被破坏和偷窃; 由于许多不同的任务可能要执行同一个程序,进程中多个合作进程要访问相同的数据结构,所以存储保护机制要提供进程对某些主存区共享的灵活性; 存储扩充 使用有效的存储管理技术来实现逻辑上的扩充即虚拟存储技术; 运行的程序应不受主存大小的限制,理想情况下应能运行任意大小的程序。2022-6-17主存映射 什么是地址映射? 首先,在多用户共享主存时,需要由系统分配主存; 一般情况下,一个作业程序分配到的存储空间和它的地址空间是不一致的; 因此作业的相应进程在处理器上运行时,所要访问的指令和数据的实际地址和地址空间中的地址是不同的; 所以,处理器
5、在执行指令时,必须把逻辑地址转换为绝对地址后,方能访问信息。 地址映射方式 编程或编译时确定地址映射关系 如果虚实地址间的对应关系是在程序编写或者程序编译时实现的,则结果为一个不能浮动的程序模块,它必须被放在主存某一确定的地址中,而且永不会改变,因为它所包含的全部地址都是主存地址,在这种情况下,把这样一个程序装入主存,就必须在申请主存时,具体地提出申请的主存容量和主存地址,因此主存分配程序在分配时将没有什么活动余地。 静态地址映射 动态地址映射2022-6-18程序的逻辑组织 传统计算机的主存储器是一个一维的存储空间,它的地址从零开始到主存上界顺序编号,这是存储器的组织方式; 程序一般有两种组
6、织方式 程序的地址空间是一维线性的 所有的程序和数据经编译、连接后成为一个连续的地址空间; 程序的地址空间是二维段式结构 将程序分成若干模块或过程,并把可修改的数据和不可修改的数据分开,一个程序可由代码段、数据段、栈段、特别分段等组成,编译时就明确加以区分,经编译、连接后成为可执行代码,系统有指向各分段的指针,在程序执行时可方便地实现地址变换。 把地址空间逻辑上划分成对应的程序段和数据段的优点: 首先,它符合人们的习惯; 其次,只要增加少量开销就能对不同的段赋予不同的保护级别; 另外,还可实现动态连接,即对分段单独进行编译,只有当某一段要调用另一分段时,才由系统在运行时动态连接。2022-6-
7、19固定分区存储管理(1) 把主存分成若干个固定大小的存储区(又称存储块),每个存储区分给某一个作业使用,直到该作业完成后才把该存储区归还系统; 分单道作业和多道作业两种情况; 单用户、单道作业情况(教材图8.2) 多道作业情况(教材图8.3) 操作系统区、用户使用的分区 主存中分区的区数是固定不变的,每区的大小也是固定不变的 分给每个作业一块大于或等于作业大小的主存分区,不允许两个作业同时放于同一个分区中; 问题:分区中常有未用的、剩下的空闲部分,即存储碎片,降低了主存的利用率; 存储分块表:主存分区情况说明信息,存储区的使用状况信息,包括大小、位置和状态三项信息。2022-6-110固定分
8、区存储管理(2)操作系统区作业i的程序、数据等界限地址栅栏寄存器作业2作业1界限地址 + 逻辑地址装入程序采用静态重定位的单用户连续存储管理采用静态重定位的单用户连续存储管理 操作系统区用户区界限地址定位寄存器逻辑地址CPU绝对地址采用动态重定位的单用户连续存储管理采用动态重定位的单用户连续存储管理 2022-6-111固定分区存储管理(3) 存储分块表 大小:指出该存储块的大小,以字节为单位; 位置:指出该存储块在主存中的起始地址; 状态:表明该存储块是否已被使用。 存储保护功能 一对“界地址寄存器”,如果处理器要访问主存某单元时,系统硬件自动将该单元地址与界限寄存器的内容进行比较,以判断此
9、次访问是否合法; 优点:简单,要求的硬件支持只是一对界地址寄存器,软件算法简单; 缺点:主存利用率不高。2022-6-112固定分区存储管理的地址转换(1) 固定分区存储管理的地址转换可以采用静态定位方式,装入程序在进行地址转换时检查其绝对地址是否在指定的分区中,若是,则可把程序装入,否则不能装入,且应归还所分得的存储区域; 固定分区方式的主存去配很简单,只需将主存分配表中相应分区的占用标志位置成“0”即可。2022-6-113固定分区存储管理的地址转换(2)固定分区存储管理的地址转换也可以采用动态定位方式,如下图示;系统专门设置一对地址寄存器上限/下限寄存器; 当一个进程占有CPU执行时,操
10、作系统就从主存分配表中取出相应的地址占有上限/下限寄存器; 硬件的地址转换机构根据下限寄存器中保存的基地址B与逻辑地址得到绝对地址; 硬件的地址转换机构同时把绝对地址和上限/下限寄存器中保存的相应地址进行比较,而实现存储保护。B下限寄存器逻辑地址CPU绝对地址操作系统区用户分区1用户分区2用户分区3B+L2上限寄存器B+L2越界中断用户分区1用户分区2用户分区32022-6-114可变分区存储管理概念 所谓可变分区,是指主存事先并未划分成一块块分区,而是在作业进入主存时,按该作业的大小建立分区,分给作业使用; 特点: 分区个数是可变的,每个分区的大小也是不固定的; 主存中分布着个数和大小都是变
11、化的空闲分区或碎片,这些空闲分区有些可能相当大,而有些则相当小。2022-6-115数据基的组织方法(1) 存储分块表(教材图8.5) 这种存储分块表存在两个缺点: 由于分区个数是变化的,所以表长不好确定,造成表格管理上的困难,若给该表留的空间不足,又无法登记各分区的情况,若留的空间过大,造成浪费; 分配主存时,为查找一块合适的空闲分区所需扫描的表目增加了,查找速度变慢了; 分开设置两个存储管理表(教材图8.6) 用已使用分区表(UBT)和空闲分区表(FBT)分别登记和管理系统中的已分分区和空闲分区; 减少存储分配和释放时查找表格的长度,提高查找速度;2022-6-116数据基的组织方法(2)