1、可把存储器分为:寄存器、、主存储器和高速缓冲存储器、辅助存储器(包括磁带、软盘、硬盘、光盘等)三个层次。
2、寄存器是计算机系统中价格最昂贵的寄存器。它的存取速度最快,但容量小,一般每个寄存器只能存储一个字长的信息,故只用来存放临时的工作数据和控制信息。常用的寄存器有:(1)指令寄存器:用于存放当前从主存储器中读出的指令;
(2)通用寄存器:用于存放当前参加运行的操作数、运算结果等;
(3)控制寄存器:用于存放控制信息以保证程序的正确执行和系统的安全。
主存储器:存储容量较大,存取速度也很快。
高速缓冲存储器:存取速度快于主存储器,但造价要比主存储器高,因而存储容量不大。
辅助存储器:存储容量大,可长期存储,处理器不能直接读写,必须把信息读到主存储器中才能被访问。
3、由于操作系统自身必须占用主处理器的一部分存储空间,用来存放操作系统的程序、数据、管理信息(PCB)以及操作系统与硬件的接口信息(新、旧PSW)等,我们把这部分空间称为系统区;除系统区外的其余主存空间可用来存放用户的的程序和数据,称为用户区。存储管理是对主存储器中的用户区域进行管理,包括主存空间的分配与回收、主存空间的共享与保护、地址转换以及主存空间的扩充等工作。
4、绝对地址:把主存空间的地址编号称为主存储器的绝对地址,与绝对地址对应的主存空间称为物理地址空间
5、逻辑地址:为了方便用户,每个用户都可以认为自己作业的程序和数据存放在一组从“0”地址开始的连续空间中。用户程序中使用的地址称为逻辑地址,与逻辑地址对应的存储空间称为逻辑地址空间。
6、把逻辑地址转换成绝对地址的工作称为重定位或地址转换。重定位的方式可以有静态重定位和动态重定位两种。
7、静态重定位:在装入一个作业时,把作业中的指令地址和数据地址全部转换成绝对地址。由于地址转换工作是在作业执行前集中一次完成的,所以在作业执行过程中就无须再进行地址转换工作,这种地址转换方式称为静态重定位。
8、动态重定位:需要由软件和硬件相互配合来实现,在作业执行过程中,由硬件的地址转换机构动态的进行地址转换,在执行指令时只要把逻辑地址与基址寄存器的值相加就可得到绝对地址,这种定位方式是在执行指令过程中进行的,所以称为动态重定位。
9、单用户连续存储管理是一种最简单的存储管理方式,在这种管理方式下,操作系统占了一部分主存空间,其余剩下的主存空间都分配给一个作业使用,即在任何时刻主存储器中最多只有一个作业,因此不必考虑作业在主存储器中的移动问题,于是可采用静态重定位方式进行地址转换,即在作业被装入到主存储器时一次性的完成地址转换。
10、处理器在执行指令时要检查其绝对地址知否≥界限地址,且≤最大地址。若绝对地址在规定的范围内,则可执行,否则产生一个“地址越界”中断事件,由操作系统进行处理,以达到存储保护的目的。
11、固定分区存储管理是把主存储中可分配的用户区域预先划分成若干个连续区,每一个连续区称为一个分区。一旦划分好后,主存储器中分区的个数就固定了。每个分区的大小可以相同,也可以不同,但每个分区的大小不变。每个分区可以装入一个作业,所以当有多个分区时,就可同时在每个分区中装入一个作业,但不允许多个作业同时存放在同一个分区中。这种管理方式称为固定分区存储管理
12、固定分区存储管理主存空间的分配与回收:设置“分区分配表”用来说明各分区的分配和使用情况。表中指出各分区的起始地址和长度,并为每个分区设置一个标志位。当标志位为“0”时,表示分区空闲,当标志位非“0”时,表示分区已被占用。
13、固定分区存储管理地址转换:由于固定分区管理方式是预先把主存划分成若干个区,每个区只能用来装入一个作业,因此作业在执行过程中是不会改变存放区域的,于是可以采用静态重定位的方式把作业装入到所分配的分区中去。
14、固定分区存储管理存储保护:设置下限寄存器和上限寄存器,当一个已经被装入主存储器的作业得到处理器运行时,进程调度应记录当前运行作业所在的分区号,且把该分区的下限地址和上线地址分别送入下限寄存器和上限寄存器中处理器执行改作业的指令时必须核对:下限地址�Q绝对地址<上限地址。如果不等式不成立,则为防止破坏其他分区中的信息,硬件产生“地址越界”中断事件,停止执行该指令,已达到存储保护的目的。
15、提高固定分区存储管理的主存空间的利用率:(1)根据经常出现的作业的大小和数量来划分分区,尽可能使各个分区被充分利用;(2)划分分区时按分区的大小顺序排列,低地址部分是较小的分区,高地址部分是较大的分区;(3)按作业对主存空间的需求量排成多个作业队列。
注:采用多个作业队列的固定分区法能有效地防止小作业进入大分区,从而减少闲置的空间量。但是划分分区时应特别注意可能出现的作业大小和作业出现的频率,如果划分不得当,会造成某个作业队列经常是空队列,反而影响分区的使用效率。
16、可变分区存储管理不是预先把主存储器中的用户区域划分成分区,而是在作业要求装入主存储器时,根据作业需要的主存空间的大小和当时主存空间使用情况来决定是否为作业分配一个分区。因此分区的长度不是预先固定的,而是按作业的实际需求来划分的;分区的个数也不是预先确定的,而是由装入的作业数决定的。
17、可变分区存储管理主存空间的分配:(1)当有作业要装入主存储器时,根据作业对主存空间的需要量,从空闲区中划出一个与作业长度一致的分区来装入作业,剩余部分仍为空闲区;(2)当空闲区能满足需求时,作业可装入,当作业对主存空间的需要量超过空闲区长度时,则作业暂时不能装入。
18、可变分区存储管理主存空间的回收:(1)当作业结束时,它的占用分区被收回。这个空闲区又可以根据新作业的大小重新用于分配,所以主存中的已占分区和空闲区的数目和大小都是在变化的;(2)可以用“空闲区表”来记录和管理,记录空闲区的起始地址和长度。
19、可变分区存储管理的主存分配算法:(1)最先适应分配算法;(2)最优适应分配算法;(3)最坏适应分配算法。
20、最先适应分配算法:每次分配时总是顺序查找空闲区表,找到第一个能满足作业长度要求的空闲区,分割这个能找到的空闲区,一部分分配给作业,另一部分仍作为空闲区。
21、最优适应分配算法:按作业要求从所有的空闲区中挑选一个能满足作业要求的最小空闲区,这样可保证不去分割一个更大的区域,使装入大作业时比较容易满足。
22、最坏适应分配算法:总是挑选一个最大的空闲区分割一部分给作业使用,使剩下的部分不至于太小,仍可供分配使用。
23、可变分区存储管理地址转换:(1)采用动态重定位方式装入作业,也就是每读一条指令,都要变换一次地址;(2)变换要靠硬件支持,主要是两个寄存器:基址寄存器,限长寄存器以及一些加法线路、比较线路等;(3)基址寄存器存放作业所占分区的起始地址,限长寄存器则存放作业所占分区的最大地址,这两个值确定了一个分区的位置和大小。(4)作业执行过程中,处理器每执行一条指令,都把该指令中的逻辑地址与基址寄存器中的值相加,即得到绝对地址。
24、可变分区存储管理存储保护:地址转换时将逻辑地址加上基址寄存器中的值就得到了绝对地址,基址寄存器内容≤绝对地址≤限长寄存器内容,满足上式,表示访问地址合法否则形成“地址越界”中断,达到存储保护的目的。
25、把作业从一个存储区域移到另一个存储区域的工作称为移动。
26、采用移动技术有以下两个目的(优点):(1)集中分散的空闲区;(2)便于作业动态扩充主存。
27、采用移动技术需注意的问题(缺点):(1)移动会增加系统开销;(2)移动是有条件的。移动一道作业时,应先判定它是否与外围设备交换信息,若为否,则可以移动改作业,若为是,则暂时不能不能移动改作业,必须等信息交换结束后才可移动。
注:于是,在采用移动技术的系统中,应尽可能的减少移动,以降低系统开销,提高系统效率。为此,可以改变作业装入主存储器的方式来达到减少移动的目的。采用两头装入作业的方式可减少移动的作业数和信息量。
28、页式存储管理是把主存储器分成大小相等的许多区,每个区成为一块。与此对应,编制程序的逻辑地址也分成页,页的大小与块的大小相等。
29、页式存储管理把主存储器的可分配区域按页面大小分成若干块,主存空间按块为单位进行分配。可用一张主存分配表来记录已分配的块和尚未分配的块以及当前剩余的空闲块数。由于块的大小是固定的,所以可以用一张“位示图”来构成主存分配表。
30、式主存空间的分配:进行主存分配时,先查空闲块数能否满足作业要求。若不能满足,则作业不能装入。若能满足,则找出为“0”的一些位,智商占用标志“1”,从空闲块数中减去本次占用块数,按找到的位计算出对应的块号,作业可装到这些块中。根据为“0”的位所在的字号和位号,按如下公式可计算出对应的块号:块号=字号×字长�位号
31、页式主存空间的回收:当一个作业执行结束时,应收回作业所占的主存块。根据归还的块号计算出该块在位示图中对应的位置,将占用标志改为“0”,再把归还块数加到空闲块数中。假定归还块的块号为i,则在位示图中对应的位置为:字号=【i/字长】,位号=i mod 字长 注:其中【】表示取i被字长除后的整数部分,而mod表示取其余数部分。
32、当主存中空闲块数能满足作业要求时,存储管理就找出这些空闲块分配给作业,同时为作业建立一张页表,指出逻辑地址中页号与主存中块号的对应关系。页表的长度由作业所占页的多少而定。
33、页式存储管理的地址转换:采用动态重定位的方式装入作业,作业执行时由硬件的地址转换机构来完成从逻辑地址到绝对地址的转换工作。在作业执行过程中,处理器每执行一条指令时,都要让地址转换机构按逻辑地址中的页号查页表,得到该页对应的主存块号,再按逻辑地址中的页内地址换算出欲访问的主存单元的绝对地址。由于块的长度都是相等的,所以地址转换的一般公式为:绝对地址=块号*块长+页内地址
34、利用高速缓冲存储器存放页表的一部分,把存放在高速缓冲存储器中的部分页表称为快表。采用快表的方法后,使得地址转换的时间大大下降。
35、页式存储管理有利于实现多个作业共享程序和数据。共享信息在主存中只有一个副本,页表中有关表目指向共享信息所在的主存块。页的共享可以节省主存空间,但实现信息共享必须解决共享信息的保护问题。通常的办法是在页表中增加一些标志,指出该页的信息可读/写或只读或可执行,等等。
36、当用户作业进入计算机系统时,不把作业的全部信息同时装入主存储器,而是将其中一部分先装入主存储器,另一部分暂时存放在磁盘上,作业执行过程中要用到那些不在主存储器中的信息时,再把它们装到主存储器中。当主存空间小于作业需求量时,作业也能执行,这就使得主存空间能被充分利用,进而用户编制程序时可以不必考虑主存储器的实际容量,允许用户的逻辑地址空间大于主存储器的绝对地址空间,对用户来说,好像计算机系统具有一个容量很大的主存储器,称为虚拟存储器。
37、页式虚拟存储管理的实现原理:是在页式存储管理的基础上实现的,首先把作业信息作为副本存放在磁盘上,作业调度选中一个作业时,先把作业的部分信息装入主存储器。作业执行时,若所访问的页面已经在主存中,则进行地址转换,得到绝对地址;否则产生“缺页中断”,由操作系统把当前所需的页面装入主存。
38、为此需要对页表进行改造,首先应在页表中指出哪些页已在主存储器中,哪些页还没装入主存储器,并且指出每一页副本在磁盘上的位置,例如,可将页表修改成如下形式:
页号 |
标志位 |
主存块号 |
磁盘上的位置 |
注:标志位用来指出对应页是否已经装入主存储器。如果某页对应栏的标志位为“1”,则表示该页已经在主存储器中。此时从“主存块号”中可得知该页在主存储器中占用的是哪一块。如果标志位为“0”,则表示该页不在主存储器中。这时根据在磁盘上的位置可从磁盘上找到该页信息,必要时把它装入主存储器。
39、发生“缺页中断”时,就要从辅存上把所需要的页面调入内存。如果如果欲调入一页时,主存储器中已没有空闲块,则必须先调出已在主存储器中的某一页,再将当前所需的页调入同时对页表做相应的修改。采用某种算法选择一页暂时调出,把它存放到磁盘上去,让出主存空间,用来存放当前要使用的页面,这一过程称为页面调度。
40、刚被调出的页又立即要用,因而又要把它调入;而调入不久又被调出;调出不久又再次被调入。如此反复,使调度非常频繁,以至于使大部分时间都花费在来回调度上,这种现象称为抖动,又称颠簸。
41、为减少和避免抖动现象,应该选择一种好的调度算法。常用的页面调度算法:(1)先进先出调度算法FIFO(总是把先进入主存储器的页面先调出);(2)最近最久未使用调度算法LRU(距当前最长时间内没有使用过的页面先调出);(3)最近最不经常使用调度算法LFU(在最近一段时间内使用次数最少的页面先调出);(4)最佳置换算法(OPT)等。
42、当一张页表非常庞大时,可以建立多级页表。例如,建立二级页表,第一级是页面组表(称为一级页表),第二级是组内页表(称为二级页表)。一级页表指出二级页表的存放地址,二级页表指出页的存放地址。
43、采用多级页表的优缺点:采用多级页表结构后,不需把页表一次性装入主存储器,且各页表可以分散存放在主存块中,必要时还可把当前暂时不用的页表调出主存,有利于主存空间的利用。但是在进行地址转换时增加了访问主存的次数,会影响指令执行速度。在进行页面调入调出时也会增加系统开销。注:在采用多级页表的系统中,均会采用高速缓冲存储器来加快地址转换过程。