1.为什么要配置层次式存储器
层次 |
---|
寄存器 |
高速缓存 |
主存储器 |
磁盘缓存 |
固定磁盘 |
在理想情况下,存储器的速度应该非常快,能够跟上处理机的速度,容量非常大,而且价格便宜,但目前无法同时满足这三个条件,于是现代计算机系统中,存储器采用层次式结构来组织。
- 设置多个存储器可以使存储器两端的硬件并行工作。
- 采用多级存储系统,特别是Cache技术,是减轻存储器带宽对系统性能影像的最佳结构方式。
- 在微处理机内部设置各种缓冲寄存器,能够减轻存储器存取的压力。
- 增加CPU中寄存器的数量能大大缓解对存储器的压力。
2.采用哪几种方式装入内存?分别适用于怎样的场合。
-
绝对装入
程序中的逻辑地址与实际地址完全相同,仅仅适用于单道程序环境,而且必须事先已知用户程序驻留在内存中的位置。 -
可重定位装入
可重定位装入方式可以将装入模块装入内存中允许的任何位置,适用于多道程序环境,但是不允许程序在内存中移动位置,在程序装入时一次性的完成地址的变换。 -
动态运行时装入
适用于多道程序环境,动态运行时的装入程序把装入模块装入内存后,并不立即把装入模块中的相对地址变为绝对地址,而是把这种转换推迟到程序真正要执行时才进行。
因此装入内存后的所有地址仍是相对地址。
适用于经常需要换入换出,或程序在内存中的位置经常要改变的情况。
3.何谓静态链接,静态链接需要解决的问题是什么。
- 定义
在程序运行之前先将各个目标模块以及他们需要的库函数,链接成一个完整的装配模块,以后不再拆开。 - 解决问题
- 修改相对地址(起始地址+相对地址)
- 变换外部调用符号(CALL B ->JSR“L”)
4.何谓装入时动态链接,装入时动态链接方式有何优点?
- 定义
用户源程序经过编译后所得到的目标模块,是在装入内存时边装入边链接的,即在装入一个目标模块时,若发生一个外部模块调用事件,将引起转入程序去找相应的外部目标模块,并将他装入内存。 - 优点
- 便于修改和更新
采用动态链接方式,各个目标模块是分开存放的,所以要修改和更新各个目标模块是件非常容易的事情。 - 便于实现对目标模块的共享
采用装入时动态链接的方式,OS很容易将一个目标模块连接到几个应用模块上,实现多个应用程序对该模块的共享。
- 便于修改和更新
5.何谓运行时动态链接,运行时动态链接方式有何优点?
- 定义
运行时动态链接是对装入时动态链接的一种改进,是指对某些目标模块的链接是在程序执行需要时,才对他进行链接的链接方式,对某些模块的链接推迟到程序执行时才进行链接。亦即,在程序执行过程中发现一个目标模块尚未装入内存中时,立即由OS去寻找并将之装入内存,把他链接到调用者的模块上。凡是执行过程中未被用到的目标模块,都不会被调入内存和被链接到目标模块上。 - 优点
- 加快程序的装入过程
- 节省大量的内存空间
7.为什么要引入动态重定位?如何实现?
- 原因
在连续分配方式中,必须把一个系统或者用户程序装入一连续的存储空间中,时常需要采用到“紧凑”技术,将内存中的作业移动使他们全部都相邻,这样可以使原来分散的多个小分区,拼接成一个大分区。
在每次”紧凑“后,都需要对移动了的程序和数据进行“重定位” - 实现
在运行时动态装入中,作业装入内存后的所有地址都是逻辑地址(相对地址),将相对地址转换为物理地址,推迟到程序指令要真正运行时进行,为了使地址的转换不会影响指令的执行速度,必须有硬件变换机构的支持,即必须在系统中增设一个重定位寄存器,用它来存放程序或“数据”在内存中的起始地址。
程序在执行时真正访问的地址是(重定位寄存器中的地址+相对地址)。
18.什么是页面?什么是物理块?页面的大小如何确定?
- 页面
分页存储管理将进程中的逻辑地址分成若干个页,并对各页加以编号。 - 物理块
将内存的物理空间分成若干个物理块,并对他们加以编号。 - 页面的大小
页的大小固定由系统决定,太大会导致内碎片,太小页表会过长,占用大量内存,降低页面换入换出的效率。通常采用1KB-8KB。
19.什么是页表?页表的作用。
- 定义
页表是分页式存储管理使用的数据结构,一个进程分成多少页,它的页表就有多少行,每一行记录的是它存放的物理块的块号对应关系。 - 作用
页表用于地址变换。
20.为实现分页式存储管理,需要哪些硬件。
- 页表机制
配置了页表后,进程执行时,通过查找该表即可以找到每页在内存中的物理块号。页表的作用是实现从页号到物理块号的地址映射。 - 地址变换机构
地址变换机构的基本任务就是实现从逻辑地址到物理地址,由于页内地址和物理地址是一一对应的,因此地址变换机构的任务实际上就是将逻辑地址中的页号,转换为内存中的物理块号,又因为页表的作用就是实现页号到物理块号的变换,因此地址变换任务是通过页表来实现的。
21.在分页系统中是如何实现地址变换的
- 当进程要访问某个逻辑地址,分页地址变换机构会自动将有效地址(相对地址)分为页号和页内地址两部分。
- 以页号检查页表寄存器,如果页号大于等于页表的长度则本次所访问的地址已经超越进程的地址空间,于是,这一错误被系统发现,并产生一地址越界中断;若未产生越界错误,将页表始址+页号*页表项长度,得到该表项在页表中的位置,于是可以得到该页的物理块号,将之装入物理地址寄存器中。
- 将相对地址寄存器中的页内地址送到物理地址的寄存器的块内地址段中,这样便完成了逻辑地址向物理地址的转换。
21.具有快表时是如何实现地址变换的?
- 在CPU给出有效地址后,分页地址变换机构会自动将有效地址(相对地址)分为页号和页内地址两部分。并且由地址变换机构将页号P送入高速缓冲寄存器中,将此页号与告诉缓冲寄存器的所有页号进行比较,若其中有与此相匹配的页号,则表示所要访问的页表项在快表中。
- 直接从快表中读出该页所对应的物理块号,送到物理地址寄存器中,如果在快表未找到相应的页表项,则还须再访问内存中的页表,找到后,再读出页表项该页所对应的物理块号,送到物理地址寄存器中。
- 将相对地址寄存器中的页内地址送到物理地址的寄存器的块内地址段中,这样便完成了逻辑地址向物理地址的转换。
- 将页表项存入快表中的一个寄存器单元中,即重新修改快表。若联想寄存器已满,则OS必须找到一个老的且已经被认为不需要的页表项,将其换出。
23.引入分段存储管理是为了满足用户的那几方面的要求。
- 方便编程
用户把自己的作业按照逻辑关系划分为若干个段,每个段从0开始编址,并都有自己的名字和长度,因此希望访问的逻辑地址是由段名和段内偏移量决定的。 - 信息共享
实现程序和数据的共享时,是以信息的逻辑单位为基础的,分页系统中的页是存放信息的物理单位,并无完整意义,不便于共享。然而段是信息的逻辑单位。由此可见,为了实现段的共享,希望存储管理能与用户程序的分段相适应。 - 信息保护
信息保护同样对信息的逻辑单位进行保护,因此,分段管理方式能更有效和更方便的实现信息保护。 - 动态增长
在实际应用中,往往有些段,特别是数据段,在使用过程中会不断的增长,而事先无法确切的知道会增长多大,分段存储管理能够较好解决这一问题。 - 动态链接
动态链接是以段作为管理单位的。
25.为什么说分段比分页更容易实现信息的保护
- 分页系统中每个页面都是分散存储的,为了实现信息共享和保护,页面之间需要一一对应,为此需要建立大量的页表项。
- 分段系统中每个段都从0编址,采用一段连续的地址空间,在实现信息的保护时只需要为共享和保护的程序设置一个段表项,将基址与页内地址一一对应就能实现信息的共享和保护。
26.分段和分页存储管理的区别
分页 | 分段 |
---|---|
页是信息的物理存储单位 | 段时信息的逻辑单位 |
分页是实现离散分配方式,消除内存外碎片 | |
管理系统的需要 | 用户需要 |
页的大小固定且由系统决定 | 段的长度不固定,取决于用户编写的程序 |
一维 | 二维 |