1,参考答案:
(1)存储分配问题:主要讨论主存的分配和共享。
(2)地址变换问题:主要讨论各种地址变换机构,以及静态和动态地址重定位方法。
(3)"扩充"主存容量问题:借助于提供虚拟存储器或自动覆盖技术来达到扩充主存容量的目的,并非指硬件设备上的扩充。
(4)存储保护问题:主存内即有系统程序又有若干道用户程序,为了避免相互干扰和破坏,必须提供保护功能。
2,参考答案:
静态分配,在装配程序把目标模块进行连接装入时确定它们在主存中的位置。这种静态存储分配方式,要求在一个作业装入时必须分配所需的全部存储空间;如果没有足够的存储空间,就不能装入该作业。
动态分配,同静态分配时一样,作业在存储空间的位置,也是在装入时确定的;但在其执过程中可根据需要申请附加的存储空间。而且一个作业已占用的部分存储空间不再需要时,可以要求归还给系统。
3,参考答案:
地址重定位,把作业地址空间中使用的逻辑地址变换成主存中物理地址的过程。
静态重定位是在程序运行之前由装配程序完成的,动态重定位是在程序执行过程中由硬件地址变换机构实现的。
静态重定位主要优点是,无需增加硬件地址变换机构,因而可在一般计算机上实现。
静态重定位主要缺点有:
①要求给每个作业分配一个连续的存储空间,且在作业的整个执行期间不能再移动,因而也就不能实现重新分配主存。不利于主存空间的充分利用。
②用户必须事先确定所需的存储量,若所需的存储量超过可用存储空间时,用户必须考虑覆盖结构。
③用户之间难以共享主存中的同一程序副本。
动态重定位的主要优点有:
①用户作业不要求分配连续的存储空间。
②用户作业在执行过程中,可以动态申请存储空间和在主存中移动。
③有利于程序段的共享。
动态重定位的主要缺点有:
①需要附加的硬件支持。
②实现存储管理的软件算法比较复杂。
与静态重定位相比较,动态重定位的优点是非常明显的,且现在一般计算机在不同成度上都提供有动态重定位所需的硬件支持,因此动态重定位方法得到了普遍应用。
4,参考答案:
(1)单一连续区管理原理:
优点是:方法简单,易于实现;
缺点是:它仅适用于单道程序,因而不能使处理机和主存得到充分利用。
(2)固定式分区管理,主要优点是简单易行,特别是对于作业大小可以事先知道的专用系统,这种方法比较实用。
(3)可变分区存储管理:
优点:消除固定式分区分配造成的"内零头"。缺点:主存中经常可能出现大量的不能充分利用的小空闲区。
(4)可重定位分区存储管理,
优点:减少碎片,使存储器的利用率提高。 缺点,需要硬件支持,提高了计算机成本,同时拼接也将降低计算机的处理速度。
5,参考答案:
(1)最佳适应算法:为一作业选择分区时总是寻找其大小最接近于作业所要求的存储空间。
优点是:如果存储空间中具有正好是所要求大小的空闲区,则必然被选中;如果不存在这样的空闲区,也只对比要求稍大的空闲区划分,而绝不会去划分一个更大的空闲区。
(2)最坏适应算法:为作业选择存储空间时,总是寻找最大的空闲区。
(3)首次适应算法:将空闲区按其在存储空间中的起始地址递增的顺序排列。为作业分配存储空间时,从空闲区链的始端开始查找,选则第一个满足要求的空闲区,而不管它究竟有多大。
6,参考答案:
(1)分配给用户而未被利用的部分(各分区中的空闲部分),称作存储器的"内零头"。造成的原因是分区的大小不是跟据每个作业的大小划分的。减少内零头的方法是根据作业的实际需要动态地划分存储空间,即分区的个数和大小都是不固定的。
(2)存在于各分区之间的不能再充分利用的小的空闲区称为"外零头"。产生外零头的一个主要原因是,分区分配要求作业运行前一次全部装入主存,且必须占用连续的存储空间。
解决办法是:①把程序分成几部分装入不同的分区(在虚拟存储管理中讨论);②采用"拼接"技术,把零头集中起来形成一个大的空闲区。
7,参考答案:
实现原理:
(1)等分主存:把主存的存储空间划分成大小相等的片。
(2)用户逻辑地址空间的分页:把用户的逻辑地址空间(虚地址空间)划分成若干个与存储块大小相等的片,称之为页面或页(Page)。
(3)逻辑地址的表示:在分页系统中,每个虚拟地址(相对地址)用一个数对(p,d)来表示。其中p是页号,d是该虚拟地址在页面号为p的页中的相对地址,称为页内地址(位移量)。
(4)主存分配原则:分页情况下,系统以存储块为单位把主存分给作业或进程,并且分给一个作业的各存储块不一定是相邻和连续的。进程或作业的一个页面装入系统分给的某个存储块中,所以页面与存储块对应。
(5)页表和页表地址寄存器:为了便于管理和保护,系统为每个装入主存的作业建立一张相应的页表,一旦这个作业被调度执行,把它的页表始址及大小装入特定的页表寄存器中。
作业执行过程中CPU产生的每一个逻辑地址,由硬件地址变换机构自动将其分成两部分:一部分为页号,另一部分是页内位移量。如果页访问是合法的,则由页表始址和页号计算出所对应的物理块号;将物理块号与逻辑地址中的位移量拼接,形成最终访问的物理地址。
8,参考答案:
为了加速查找过程,超高速缓存构造成按内容可寻址的存储器,这种结构也称为联想存储器(Associative memory)。引入联想存储器是为了提高地址变换速度,且不增加太多的硬件投资。
9,参考答案:
(1) 13位 (2) 15位
(3) 当使用主存页表进行地址转换时至少访问主存两次,而利用联想寄存器进行地址转换并成功时则至少访问主存一次,失败时仍至少访问主存两次。
10,参考答案:
引入虚拟存储器是为了满足用户对存储器容量的巨大需求而虚构的一个非常大的地址空间,从而使用户在编程序时无需耽心存储器之不足。
11,参考答案:
请求页式管理在作业或进程开始执行之前,不要求把作业或进程的程序段和数据段一次性地全部装入主存,而只把当前需要的一部分页面装入主存,其它部分在作业执行过程中需要时,再从辅存上调入主存。
当调用页不在主存时发生缺页中断。若主存中没有空闲块时,首先按照某种策略选择某页进行淘汰。以腾出空闲块供本次调入的页占用。若被选中淘汰的页面中的信息修改过(修改位=1)还必须将其写入辅存。如主存中有空闲块,则根据该页在辅存的地址,调入所需页面,并更新页表,最后恢复被中断的指令重新执行。
12,参考答案:
13,参考答案:
局部化的含义是指进程对主存的访问远不是均匀的,而是高度地表现出局部性。
14,参考答案:
段式管理把一个进程的虚地址空间设计成二维结构,即段号S与段内相对地址W。一个用户作业的程序按其逻辑结构可划分为若干段,根据需要,段长可动态增长。
地址变换过程:当访问不在主存中的分段时,便产生一缺段中断信号。操作系统处理该中断后,按申请分区类似的方式,在主存中找到一块足够大的分区,以便容纳所要的分段。如没有这样的分区,则检查未分配分区的总和,确定是否要对分区进行拼接,或者移出一个(或几个)分段后再将所需段装入主存。
15,参考答案:
(1) 参考答案:参考本章6.5.1、6.5.2
(2)
[0,430] 219+430=649
[1,10] 3300+10=3310
[2,500] 非法地址访问,自陷到操作系统
[3,400] 1237+400=1637
(3) 2次访问主存
16,参考答案:
一个大的进程可能包含很多个程序模块。对它们进行连接要花费大量的CPU时间,而实际执行时则可能只用到其中的一少部分模块。因此,从减少CPU开销和减少存储空间浪费的角度来看,静态连接是不合适的,因此引入动态分段存储管理。
它与请求页式存储管理的区别:
(1)分页的作业地址空间是单一的线性地址空间,而分段作业的地址空间是二维的。
(2)"页"是信息的"物理"单位,大小固定;"段"是信息的逻辑单位,其长度不定。
(3)分页管理实现的是单段式虚拟存储系统,而分段存储管理实现多段式虚拟存储系统。
17,参考答案:
为了获得分段在逻辑上的优点和分页在管理存储空间方面的优点,兼用分段和分页两种方法,设计出了段页式存储管理技术来实现对存储器的管理。
地址变换过程如下:
①由段表控制寄存器确定段表在主存中的位置。
②将虚地址中的段号和控制寄存器中的段表大小比较,以确保其访问的有效性。
③硬件地址转换机构根据虚地址中的段号S,得到欲访问段在该作业的段表中的表目。并验证存取权限,以确保本次存储访问是允许的。然后,检查分段存在标识(判状态位),如果访问的段在主存,则通过段表找到该段的页表存放地址,再根据虚地址中的页号P查页表,找到该页所对应的内存块号与虚地址中的页内地址d相加形成物理地址;若访问的分段不在主存,则由硬件产生缺段中断。如果一完整的分段不在主存,则说明该段所有的页面均不主存,因而也没有相应的页表。操作系统对缺页中断响应后,必须重新构造其页表,并装入一页或多个所需的页面。此时,开始继续执行本次的存储访问。当页表的位置和大小确定后,其存储访问过程如先前描述过的页面系统一样进行。
(1)存储分配问题:主要讨论主存的分配和共享。
(2)地址变换问题:主要讨论各种地址变换机构,以及静态和动态地址重定位方法。
(3)"扩充"主存容量问题:借助于提供虚拟存储器或自动覆盖技术来达到扩充主存容量的目的,并非指硬件设备上的扩充。
(4)存储保护问题:主存内即有系统程序又有若干道用户程序,为了避免相互干扰和破坏,必须提供保护功能。
2,参考答案:
静态分配,在装配程序把目标模块进行连接装入时确定它们在主存中的位置。这种静态存储分配方式,要求在一个作业装入时必须分配所需的全部存储空间;如果没有足够的存储空间,就不能装入该作业。
动态分配,同静态分配时一样,作业在存储空间的位置,也是在装入时确定的;但在其执过程中可根据需要申请附加的存储空间。而且一个作业已占用的部分存储空间不再需要时,可以要求归还给系统。
3,参考答案:
地址重定位,把作业地址空间中使用的逻辑地址变换成主存中物理地址的过程。
静态重定位是在程序运行之前由装配程序完成的,动态重定位是在程序执行过程中由硬件地址变换机构实现的。
静态重定位主要优点是,无需增加硬件地址变换机构,因而可在一般计算机上实现。
静态重定位主要缺点有:
①要求给每个作业分配一个连续的存储空间,且在作业的整个执行期间不能再移动,因而也就不能实现重新分配主存。不利于主存空间的充分利用。
②用户必须事先确定所需的存储量,若所需的存储量超过可用存储空间时,用户必须考虑覆盖结构。
③用户之间难以共享主存中的同一程序副本。
动态重定位的主要优点有:
①用户作业不要求分配连续的存储空间。
②用户作业在执行过程中,可以动态申请存储空间和在主存中移动。
③有利于程序段的共享。
动态重定位的主要缺点有:
①需要附加的硬件支持。
②实现存储管理的软件算法比较复杂。
与静态重定位相比较,动态重定位的优点是非常明显的,且现在一般计算机在不同成度上都提供有动态重定位所需的硬件支持,因此动态重定位方法得到了普遍应用。
4,参考答案:
(1)单一连续区管理原理:
优点是:方法简单,易于实现;
缺点是:它仅适用于单道程序,因而不能使处理机和主存得到充分利用。
(2)固定式分区管理,主要优点是简单易行,特别是对于作业大小可以事先知道的专用系统,这种方法比较实用。
(3)可变分区存储管理:
优点:消除固定式分区分配造成的"内零头"。缺点:主存中经常可能出现大量的不能充分利用的小空闲区。
(4)可重定位分区存储管理,
优点:减少碎片,使存储器的利用率提高。 缺点,需要硬件支持,提高了计算机成本,同时拼接也将降低计算机的处理速度。
5,参考答案:
(1)最佳适应算法:为一作业选择分区时总是寻找其大小最接近于作业所要求的存储空间。
优点是:如果存储空间中具有正好是所要求大小的空闲区,则必然被选中;如果不存在这样的空闲区,也只对比要求稍大的空闲区划分,而绝不会去划分一个更大的空闲区。
(2)最坏适应算法:为作业选择存储空间时,总是寻找最大的空闲区。
(3)首次适应算法:将空闲区按其在存储空间中的起始地址递增的顺序排列。为作业分配存储空间时,从空闲区链的始端开始查找,选则第一个满足要求的空闲区,而不管它究竟有多大。
6,参考答案:
(1)分配给用户而未被利用的部分(各分区中的空闲部分),称作存储器的"内零头"。造成的原因是分区的大小不是跟据每个作业的大小划分的。减少内零头的方法是根据作业的实际需要动态地划分存储空间,即分区的个数和大小都是不固定的。
(2)存在于各分区之间的不能再充分利用的小的空闲区称为"外零头"。产生外零头的一个主要原因是,分区分配要求作业运行前一次全部装入主存,且必须占用连续的存储空间。
解决办法是:①把程序分成几部分装入不同的分区(在虚拟存储管理中讨论);②采用"拼接"技术,把零头集中起来形成一个大的空闲区。
7,参考答案:
实现原理:
(1)等分主存:把主存的存储空间划分成大小相等的片。
(2)用户逻辑地址空间的分页:把用户的逻辑地址空间(虚地址空间)划分成若干个与存储块大小相等的片,称之为页面或页(Page)。
(3)逻辑地址的表示:在分页系统中,每个虚拟地址(相对地址)用一个数对(p,d)来表示。其中p是页号,d是该虚拟地址在页面号为p的页中的相对地址,称为页内地址(位移量)。
(4)主存分配原则:分页情况下,系统以存储块为单位把主存分给作业或进程,并且分给一个作业的各存储块不一定是相邻和连续的。进程或作业的一个页面装入系统分给的某个存储块中,所以页面与存储块对应。
(5)页表和页表地址寄存器:为了便于管理和保护,系统为每个装入主存的作业建立一张相应的页表,一旦这个作业被调度执行,把它的页表始址及大小装入特定的页表寄存器中。
作业执行过程中CPU产生的每一个逻辑地址,由硬件地址变换机构自动将其分成两部分:一部分为页号,另一部分是页内位移量。如果页访问是合法的,则由页表始址和页号计算出所对应的物理块号;将物理块号与逻辑地址中的位移量拼接,形成最终访问的物理地址。
8,参考答案:
为了加速查找过程,超高速缓存构造成按内容可寻址的存储器,这种结构也称为联想存储器(Associative memory)。引入联想存储器是为了提高地址变换速度,且不增加太多的硬件投资。
9,参考答案:
(1) 13位 (2) 15位
(3) 当使用主存页表进行地址转换时至少访问主存两次,而利用联想寄存器进行地址转换并成功时则至少访问主存一次,失败时仍至少访问主存两次。
10,参考答案:
引入虚拟存储器是为了满足用户对存储器容量的巨大需求而虚构的一个非常大的地址空间,从而使用户在编程序时无需耽心存储器之不足。
11,参考答案:
请求页式管理在作业或进程开始执行之前,不要求把作业或进程的程序段和数据段一次性地全部装入主存,而只把当前需要的一部分页面装入主存,其它部分在作业执行过程中需要时,再从辅存上调入主存。
当调用页不在主存时发生缺页中断。若主存中没有空闲块时,首先按照某种策略选择某页进行淘汰。以腾出空闲块供本次调入的页占用。若被选中淘汰的页面中的信息修改过(修改位=1)还必须将其写入辅存。如主存中有空闲块,则根据该页在辅存的地址,调入所需页面,并更新页表,最后恢复被中断的指令重新执行。
12,参考答案:
13,参考答案:
局部化的含义是指进程对主存的访问远不是均匀的,而是高度地表现出局部性。
14,参考答案:
段式管理把一个进程的虚地址空间设计成二维结构,即段号S与段内相对地址W。一个用户作业的程序按其逻辑结构可划分为若干段,根据需要,段长可动态增长。
地址变换过程:当访问不在主存中的分段时,便产生一缺段中断信号。操作系统处理该中断后,按申请分区类似的方式,在主存中找到一块足够大的分区,以便容纳所要的分段。如没有这样的分区,则检查未分配分区的总和,确定是否要对分区进行拼接,或者移出一个(或几个)分段后再将所需段装入主存。
15,参考答案:
(1) 参考答案:参考本章6.5.1、6.5.2
(2)
[0,430] 219+430=649
[1,10] 3300+10=3310
[2,500] 非法地址访问,自陷到操作系统
[3,400] 1237+400=1637
(3) 2次访问主存
16,参考答案:
一个大的进程可能包含很多个程序模块。对它们进行连接要花费大量的CPU时间,而实际执行时则可能只用到其中的一少部分模块。因此,从减少CPU开销和减少存储空间浪费的角度来看,静态连接是不合适的,因此引入动态分段存储管理。
它与请求页式存储管理的区别:
(1)分页的作业地址空间是单一的线性地址空间,而分段作业的地址空间是二维的。
(2)"页"是信息的"物理"单位,大小固定;"段"是信息的逻辑单位,其长度不定。
(3)分页管理实现的是单段式虚拟存储系统,而分段存储管理实现多段式虚拟存储系统。
17,参考答案:
为了获得分段在逻辑上的优点和分页在管理存储空间方面的优点,兼用分段和分页两种方法,设计出了段页式存储管理技术来实现对存储器的管理。
地址变换过程如下:
①由段表控制寄存器确定段表在主存中的位置。
②将虚地址中的段号和控制寄存器中的段表大小比较,以确保其访问的有效性。
③硬件地址转换机构根据虚地址中的段号S,得到欲访问段在该作业的段表中的表目。并验证存取权限,以确保本次存储访问是允许的。然后,检查分段存在标识(判状态位),如果访问的段在主存,则通过段表找到该段的页表存放地址,再根据虚地址中的页号P查页表,找到该页所对应的内存块号与虚地址中的页内地址d相加形成物理地址;若访问的分段不在主存,则由硬件产生缺段中断。如果一完整的分段不在主存,则说明该段所有的页面均不主存,因而也没有相应的页表。操作系统对缺页中断响应后,必须重新构造其页表,并装入一页或多个所需的页面。此时,开始继续执行本次的存储访问。当页表的位置和大小确定后,其存储访问过程如先前描述过的页面系统一样进行。