您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文档 > 自考《02326操作系统2007》笔记4-20170514
第四章操作系统信息的二级存储(P82~83):重定位(P84~86):把相对地址转换成绝对地址的工作称为重定位或地址转换。单用户连续存储管理(P86~88):单用户连续存储管理是一种最简单的存储管理方式。固定分区存储管理(P88~90):主存中可分配的用户区预先划分若干连续分区,每个分区只能装入一个作业。可变分区存储管理(P90~98):主存空间足够时,按作业需求量划出一个分区分配给该作业。页式存储管理(P98~102):虚拟存储器(P103~110):UNIX系统中页式虚拟存储管理(P112):★★★原创作者:雷神4.1概述回顾在第2章中,已讲到现代计算机系统都采用多级存储体系。多级存储体系主要包括四部分,分别是:主存储器、辅助存储器、高速缓冲存储器和寄存器。其中,寄存器是处理器的组成部分,用来存放处理器的工作信息;高速缓冲存储器的作用是减少对主存的访问时间,加快程序执行速度;主存储器和辅助存储器的作用是用来存放大量的程序和数据;主存可被处理器直接访问,但处理器不能直接访问辅存。在输入/输出控制系统的管理下,主存和辅存之间可以进行信息传送。划分主存:主存空间=系统区+用户区注意区分:存储管理是对主存空间的用户区进行管理,其目的是尽可能地方便用户和提高主存空间利用率。而关于辅存空间的管理属于文件系统的范畴。4.1.1信息的二级存储存储管理功能如下:1.主存空间的分配与回收2.实现地址转换3.主存空间的共享与保护4.主存空间的扩充磁盘CPU主存辅助存储器磁带二级存储系统示意@@@@@@@@@@简要说明:1.主存空间的分配与回收•主存允许同时容纳多个软件和作业,但必须解决主存空间如何分配的问题。对不同的存储管理方式,采用的主存空间分配策略是不同的,而且受到多种因素的影响,尤其取决于硬件设计。采用任何方式都要有硬件的支持。•系统必须建立一张“主存空间分配表”,记录主存空间的分配情况。我们把尚未占用的空间称为空闲区(或称自由区)。2.实现地址转换•由于用户程序中使用的地址是相对地址(也称逻辑地址),而处理器执行程序时要按主存的绝对地址(也称物理地址)访问主存,所以存储管理必须配合地址转换工作,把一组相对地址转换成绝对地址,以保证处理器的正确执行。3.主存空间的共享与保护•若干个作业在执行时可能要调用同一个程序(第3章中已提到,称为可再入程序),而该程序被存放在某个主存区域中,各个作业要调用时就要访问这个主存区域,因此,这个主存区域就成了各作业的共享区域。•为了防止各作业相互干扰和保护各区域内的信息不被破坏,必须实现存储保护。一般地说,对主存区域的保护可采取如下措施:•(1)程序执行时,若访问属于自己主存区域中的信息,则允许它既可读,又可写。•(2)对共享区域中的信息只可读,不可写。•(3)程序执行时,不允许访问分配给其他程序的主存区域,即对非共享区域或非自己主存区域的信息既不可读,也不可写。4.主存空间的扩充•存储管理利用磁盘作为主存的后援,当一个大型程序要装入主存时,仅先把当前需要的部分装入,其余部分暂时留在磁盘上。程序执行中要用到不在主存中的信息时,再由操作系统将其装入主存。如果主存空间不够,可可由操作系统采用覆盖技术。这样用户就感到计算机系统提供了容量极大的主存空间。•实际上,这个容量极大的主存空间不是物理意义上的主存储器,而是操作系统的一种存储管理方式。这种方式为用户提供的是一个虚拟存储器。虚拟存储器的容量比主存容量要大,起到了扩充主存空间的作用。4.2重定位1绝对地址和相对地址把主存空间的地址编号称为主存储器的绝对地址,而绝对地址对应的主存空间称为物理地址空间。把用户程序中使用的地址称为相对地址,而与相对地址对应的存储空间称为逻辑地址空间。2重定位的方式重定位的方式可以有静态重定位和动态重定位两种:①静态重定位...+032...3465......装入程序......+032...3465.........逻辑地址空间主存08032124100108132224②动态重定位采用动态重定位的系统支持程序浮动,即作业执行时,被改变了存放区域的作业仍然能正确执行,而采用静态重定位时,由于装入主存储器的作业信息已经都是用绝对地址指示,故作业在执行过程中是不能移动位置的。...+032...3465......装入程序......+132...3465.........逻辑地址空间主存......+032...3465...08032124主存100基址寄存器100108132224100108CPU+相对地址032绝对地址132(a)作业的装入(b)地址转换@@@@@@@@@@@简要说明:1绝对地址和相对地址•主存的存储单元以字节(KB)为编址单位,每个存储单元都有一个地址与其对应。假定主存容量为n,则该主存就有n个存储单元(即n个字节的存储空间),其地址编号为:0,1,2,3,···,n-1。从而定义了绝对地址、物理地址空间。•采用多道程序设计技术后,往往在主存中同时存放多个用户作业,而每个用户不能预先知道自己的作业将被放到主存中的什么位置。这样用户编制程序时就不能使用绝对地址。为了方便用户,每个用户都可以认为自己作业的程序和数据存放在一组从“0”地址开始的连续空间中。从而定义相对地址、逻辑地址空间。2重定位的方式•程序浮动,在第3章中已讲到,是采用多道程序设计技术应注意的三方面问题之一。•当用户作业进入计算机系统执行时,存储管理就要为其分配一个合适的主存空间,这个分配到的主存空间可能是从某单元开始的一组连续地址空间。该主存空间的起始地址是不固定的。这样就会出现两个问题:•一是作业中的相对地址经常与分配到主存空间的绝对地址不一致。•二是每个相对地址也没有一个固定的绝对地址与其对应。•例如,当某作业被装到主存中A单元开始的区域中时,若作业程序中指定访问k单元,则实际应访问贮存的额A+k单元。但是,当该作业被装入到主存中B单元开始的区域中时,则作业程序中指定的K单元实际对应地在主存中的实际位置应该是B+k单元。可见程序执行时不能按照其相对地址到主存中存取信息,处理必须按照绝对地址取访问主存才能保证程序的正确执行。把相对地址转换成绝对地址的工作,称为重定位或地址转换。•把地址转换工作在作业执行之前集中一次全部完成的方式,称为静态重定位。•硬件设置一个基址寄存器,当存储管理为作业分配到一个主存区域后,装入程序原封不动地把作业装入到所分配的区域中,并把该主存区域的起始地址存入相应作业进程的PCB中。当该进程被选中去占用处理器时,随同现场信息的恢复,主存区域的起始地址也被送入基址寄存器中。在作业执行过程中,由硬件的地址转换机构动态地进行地址转换,处理器每执行一条指令时只要把相对地址与基址寄存器中的值相加就可得到绝对地址。这种定位方式是在指令执行过程中进行的,称为动态重定位。4.3单用户连续存储管理4.3.1存储空间的分配单用户连续存储管理是一种最简单的存储管理方式。在这种管理方式下,除操作系统占用的一部分主存空间外,其余剩下的主存空间都分配给了一个作业使用,即在任何时刻主存储器最多只有一个作业,故适合于单道运行的计算机系统。个人计算机上可采用这种管理方式。处理器为该管理方式设置一个界限寄存器(BoundaryRegister),用于存放当前可供用户使用的主存区域的起始地址,并且一般情况下是不会改变的。只有当系统功能扩充或修改时,才需要更新界限寄存器内容。作业执行时,处理器要对每条指令中的绝对地址进行检查,若主存最大地址≥绝对地址≥界限地址即可执行,否则地址错误,形成“地址越界”的程序性中断事件。采用静态重定位的方式进行地址转换。@@@@@@@@@单用户连续存储管理每次只允许一个作业装入主存,因此不必考虑作业在主存中的移动问题。这样也就不支持程序浮动,但也有好处,就是限定了作业在规定的主存区域内执行,避免破坏操作系统的信息,达到存储保护的目的。它有3个主要缺点:(1)当作业执行中出现了等待事件时,处理器就处于空闲状态,不能被利用。(2)一个作业独占主存中的用户区,当主存中有空闲区时,也不能被其他作业利用,降低了主存空间的利用率。(3)外设也不能被充分利用。在20世纪70年代,小型计算机和微型计算机的主存容量不大。例如,IBM7094FORTRAN监督系统、CP/M系统、DJS0520系统就采用单用户连续存储管理方式。如果作业的逻辑地址空间大于用户区,那么又该怎么做呢?覆盖技术。@@@@@@@@@@@@@4.3.2覆盖技术首先,要求用户把作业划分成若干段,其中有一个主段是作业执行过程中经常要用到的信息,而其他段是不可以同时工作的。然后,在作业执行期间,让主段始终保留在主存的驻留区中。其他的段保留在辅存(磁盘)上,当需要执行某段时,操作系统再把它装入。由于除主段外的各段不会同时工作,所以这些段实际上是轮流被装入主存的。因而,它们执行时可被装入到主存的覆盖区中。(用户区划分:用户区=驻留区+覆盖区)采用覆盖技术时,要求用户把作业如何分段和作业可覆盖的情况写成一个覆盖描述文件,随同作业一起交给操作系统。操作系统按用户的说明来控制各段的覆盖。采用覆盖技术,实现一个大作业能在小空间中运行。@@@@@@@@@@@@覆盖技术示意4.3.3对换技术操作系统驻留区用户区0abc覆①盖②区③(地址空间大于用户区的作业。程序执行时,主段始终保留在驻留区。)初始段处理段输出段可覆盖的段0ac操作系统作业1作业2主存磁盘换进换出用户区在分时操作系统中,采用对换方式让多个用户作业轮流进入主存执行。系统必须要有一个大容量的高速辅存(如磁盘)。如右所示为时间片轮转法。作业的对换示意4.4固定分区存储管理(分区,partition)4.4.1基本原理4.4.2主存空间的分配与回收固定分区存储管理方式是把主存储器中可分配的用户区域预先划分成若干个连续区,每个连续区成为一个分区。每个分区能且只能用来装入一个作业。怎样知道主存中哪个分区已被占用,哪个分区是空闲的呢?设置“分区分配表”。作业1作业2作业3作业队列...操作系统分区1分区2分区3主存0abcd2bcCPU当前运行作业所在分区下限寄存器上限寄存器固定分区存储管理示意分区分配表的长度应根据主存中被划分的分区多少来决定。@@@@@@@@@@@@当作业队列中有作业要装入主存时,存储管理采用“顺序分配算法”进行主存空间的分配。也就是,顺序查找分区分配表,看是否有能满足该作业长度要求的且标志位“0”(即空闲)的分区。该算法流程图详情翻阅P90。4.4.3地址转换和存储保护地址转换采用静态重定位方式。装入程序只要把作业中的相对地址与分区的下限地址相加,便得到相应的绝对地址。为了实现存储保护,处理器设置了一对寄存器,即“下限寄存器”和“上限寄存器”。对每条指令中的地址都要核对:下限地址≤绝对地址≤上限地址若上式不成立,硬件产生“地址越界”程序性中断事件,停止执行该指令以达到存储保护的目的。4.5可变分区存储管理4.5.1主存空间的分配与回收1.分区的划分当有若干作业要装入主存,并且主存中有足够的空间能满足需求时,根据各个作业对主存空间的需求量,从空闲区(整个用户区)中逐个划出与作业长度一致的分区来装入作业,剩余部分仍为空闲区。2.主存空间的分配算法①最先适应分配算法②最优适应分配算法③最坏适应分配算法3.主存空间的回收算法四种情形划分:有无上邻空闲区+有无下邻空闲区如果归还区与原空闲区相邻,则应合并为一个空闲区登记,只要修改原空闲区的始址和长度即可。始址长度标志aL1作业AcL3作业B空...始址长度标志bL2未分配dL4未分配空...已分配区表空闲区表★简要说明:1.分区的划分分区的大小、分区的个数,都不是预先确定的。按实际需求量来定,能克服固定分区中分区空间不能被充分利用的缺陷。2.主存空间的分配算法为了便于存储管理,使用分区分配表。由两张表格组成,一张是“已分配区表”,另一张是“空闲区表”。@@@@@@@@@@@@①最先适应分配
本文标题:自考《02326操作系统2007》笔记4-20170514
链接地址:https://www.777doc.com/doc-1354769 .html