上接第一部分:
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_58153897/article/details/127232353
————————————————
版权声明:本文为CSDN博主「Shining0596」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_58153897/article/details/127232353
计算机操作系统学习(四)存储管理(1)_Shining0596的博客-CSDN博客
目录
概念辨析:
1.绝对地址
主存储器以字节(每个字节为8个二进制位)为编址单位,每个字节都有一个地址与其对应。假定主存储器的容量为n,则该主存储器就有n个字节的存储空间,其地址编号为0, 1,2,…,n-1。这些地址称为主存储器的"绝对地址"。
2.逻辑地址
用户程序中使用的地址称"逻辑地址"。
3.重定位
把逻辑地址转换成绝对地址的工作称"重定位"或"地址转换"。
4.静态重定位
由于地址转换工作是在作业开始执行前集中完成的,所以在作业执行过程中就无需再进行地址转换工作,这种地址转换方式称"静态重定位"。
5.动态重定位
在作业执行过程中,每当执行一条指令时都由硬件的地址转换机构将指令中的逻辑地址转换成绝对地址。这种方式的地址转换是在作业执行时动态完成的,故称"动态重定位"。
6.碎片
在主存空闲空间分配过程中,如果作业需要的空间大小比系统分配的空间小,则可能会把大的主存空间分割成许多小的分区,在主存储器中形成许多不连续的空闲区,我们把这些不连续的内存空闲区称为"碎片"。
7.系统开销
我们把操作系统所占用的系统资源和所需的处理器时间称为"系统开销"。
8.抖动
刚被调出的页面又立即要用,因而又要把它装入,而装入不久又被选中调出,调出不久又被装入,如此反复,使调度非常频繁。这种现象称为"抖动"或称"颠簸"。
9.段页式虚拟存储管理
如果技段页式存储管理的方式,把每一段再分成若干页面,那么,每一段不必占用连续的存储空间,甚至,当主存块不够时,可只将一段中的部分页面装入主存。这种管理方式称为"段页式虚拟存储管理"。
9.覆盖
一个作业的若干程序段,或几个作业的某些部分共享某一个存储空间。
10.系统抖动
当给进程分配的内存小于所要求的工作集时,由于内存外存之间交换频繁,交换次数大大增加,会造成CPU因等待数据交换而使空闲时间增长。此现象为系统抖动。
11.程序局部性
所谓程序局部性,是指程序在一段时间内的执行只涉及到程序的一部分,整个程序的执行是从一个局部到另一个局部的过程。
小结:
主存储器是硬件系统中除CPU之外的另一重要资源,任何程序只有装入主存才能运行。特别是在多道程序系统下,主存储器被多道程序共享,会引起一系列复杂的问题,所以操作系统必须对主存实施有效的管理。
主存储器是可被处理器直接访问的,处理器是按绝对地址访问主存储器的。为了使用户编制的程序能存放在主存储器的任意区域执行,用户使用逻辑地址编辑程序,即用户使用了逻辑上的主存储器。存储管理必须为用户分配一个物理上的主存空间,于是,就有一个从逻辑空间到物理空间的转换问题。具体地说,是要把逻辑地址转换成绝对地址,把这样的地址转换工作称为重定位。
存储管理的目的:(1)保证多道程序安全、有效地共享主存;(2)提高主存利用率;(3)为用户提供充分大且易于使用的存储空间。存储管理必须合理地分配主存空间,为了避免主存中的各程序相互干扰还必须实现存储保护,为了有效利用主存空间允许多个作业共享程序和数据,各种存储管理方式实现这些功能的方法是不同的,并且都要有相应的硬件作支撑。
由于程序有局部性原理,表现在:空间局部性和时间局部性,所以能够实现虚拟存储。实现虚拟存储器后,从系统的角度看提高了主存空间的利用率,从用户的角度看,编制程序不受主存实际容量的限制。虚拟存储器的容量由地址结构决定,若地址用。位表示,则虚拟存储器的最大容量为2n。虚拟存储器的实现借助于大容量的辅助存储器(例如,磁盘)存放虚存中的实际信息,操作系统利用程序执行在时间上和空间上的局部性特点把当前需用的程序段和数据装入主存储器,且利用表格(例如,页表、段表)构造一个用户的虚拟空间。硬件根据建立的表格进行地址转换或发出需进行调度的中断信号(例如,缺页中断、缺段中断)。操作系统处理这些中断事件时,选择一种合适的调度算法对主存储器和辅助存储器中的信息进行调出和装入,尽可能地避免"抖动"。
练习:
1.存储管理的目的是( )。
A.方便用户
B.提高内存利用率
C.方便用户和提高内存利用率
D.增加内存实际容量
参考答案
C
2.把逻辑地址转变为内存的物理地址的过程称作( )。
A.编译;
B.连接;
C.运行;
D.重定位。
参考答案
D
3.碎片现象的存在使得( )。
A.内存空间利用率降低
B.内存空间利用率提高
C.内存空间利用率得以改善
D.内存空间利用率不影响
参考答案
A
4.下列( )存储管理方式能使存储碎片尽可能少,而且使内存利用率较高。
A.固定分区
B.可变分区
C.分页管理
D.段页式管理
参考答案
D
5.虚拟内存的容量只受( )的限制。
A.物理内存的大小
B.磁盘空间的大小
C.数据存放的实际地址
D.计算机地址位数
参考答案
D
1.存储管理的功能主要有下列四个方面:(1)主存空间的分配和去配,以主存空间分配表为依据作主存分配,并在作业撤离后回收主存空间。(2)实现逻辑地址到绝对地址的转换,这种转换需要与硬件配合完成。(3)主存空间的共享与保护。(4)主存空间的扩充,采用某些技术,为用户提供一个虚拟存储器。
2保存主存空间中的信息一般采用以下措施:(1)程序执行时访问属于自己主存区域中的信息,允许它既可读,又可写。(2)对共享区域中的信息只可读,不可修改。(3)对非共享区或非自己的主存区域中的信息既不可读,也不可写。
3.由于程序中的逻辑地址和实际分配后主存储器的绝对地址往往是不一致的,为使处理器能按实际地址正确地访问主存,必须做地址转换,即"重定位"。静态重定位是在装入一个作业时,把作业指令地址和数据地址全部转换成绝对地址。动态重定位在装入作业时,不进行地址转换,而是在执行过程产,每执行一条指令时,由硬件的地址转换机构将指令中的逻辑地址转换成绝对地址。
4.覆盖技术:把用户作业分成若干段,使主段成为作业执行过程中经常使用的信息,其他段不同时工作。作业执行时,把主段常驻主存区,其他段轮流装入覆盖区执行之。对换技术:让多个用户作业轮流进入主存器(转入、转出)执行。
5.可采用下列方法:(1)划分分区时按从小到大顺序排列,并依次登录到主存分配表中,这样总是找到一个满足作业要求的最小空闲区分配给作业。(2)根据经常出现的作业大小和频率划分分区。(3)按作业对主存空间的需求量排成多个作业队列,防止小作业进入大分区。
6.常用的主存分配算法有:最先适应分配算法,最优适应算法和最坏适应算法。
7.采用移动技术可把分散的空闲区集中起来,以容纳新的作业。这样提高了主存的利用率,还能为作业动态扩充主存空间提供方便。对于正在等待外设传输信息的作业是不能移动的,这是因为外设与主存储器之间的信息交换是按确定了的主存绝对地址进行传输的,如果这时改变了作业的存放区域,则作业就得不到从外围设备传送来的信息,或不能把正确的信息传送到外围设备。
8.页表指出逻辑地址中的页号与所占主存块号的对应关系。页式存储管理在用动态重定位方式装入作业时、要利用页表做地址转换工作。快表就是存放在高速缓冲存储器的部分页表。它起页表相同的作用。由于采用页表做地址转换,读写内存数据时cPu要访问两次主存。有了快表,有时只要访问一次高速缓冲存储器,一次主存,这样可加速查找并提高指令执行速度。
9.页式存储管理提供连续的逻辑地址.由系统进行分页;而段式存储管理中作业的分段是由用户决定的,每段独立编程,因此段间的逻辑地址是不连续的。
10.把作业信息保留在磁盘上,当作业请求装入时,只将其中一部分先装入主存储器,作业执行时若要访问的信息不在主存中,则再设法把这些信息装入主存。这就是虚拟存储器的工作原理。
11.操作系统处理缺页中断的方法为:(1)查主存分配表找一个空闲主存块,若无空闲块,则由页面调度解决;然后查页表找出该页在磁盘上的位置,启动磁盘读出该页信息。(2)从磁盘上读出的信息装入找到的主存块中。〔3)修改页表中相应表目,表示该页已在主存中。(4)重新执行被中断的指令。
操作系统处理缺段中断的方法是:(1)查主存分配表,找出一个足够大的连续区以容纳该分段。如果找不到,则检查空闲区总和;若空闲区总和能满足该段要求,那么进行适当移动将分散的空闲区集中。 (2)若空闲区总和不能满足要求,可把主存中一段或几段调出,然后把当前要访问的段装入主存。(3)段被移动、调出和装入后,都要对段表中的相应表目做修改。(4)新的段装入后,让作业重新执行被中断的指令。
12.常用的页面调度算法有:先进先出调度算法(FIFO),最近最少用调度算法(LRU)和最近最不常用调度算法(LFU)。
13.影响缺页中断率的因素有四个:(1)分配给作业的主存块数多则缺页率低,反之则缺页中断率就高。(2)页面大,缺页中断率低;页面小缺页中断率高。 (3)程序编制方法。以数组运算为例,如果每一行元素存放在一页中,则按行处理各元素缺页中断率低;反之,按列处理各元素,则缺页中断率高。 (4)页面调度算法对缺页中断率影响很大,但不可能找到一种最佳算法。