一方面,简答题存储管理的基本任务是为同时运行多个程序提供良好的存储环境。 请问:“良好的存储环境”包括哪些方面?
(1)独立性)各过程应具有独立的地址空间,动作互不干扰。
(2)容量充足)存储容量大小应满足流程需要。
)存储管理便于流程访问、共享、链接、安全和动态增长新信息。
)4)存储利用率高。 内存保护完全可以通过软件实现吗? 为什么?
不能。
如果在进程访问内存时进行地址映射,则很可能会频繁地检查地址是否越界,如果用硬件实现,则会变慢。 请说明什么是重新配置。 为什么要重新配置?
将虚拟逻辑地址映射到实际存在的物理地址。
进程中的所有地址都是从0开始的虚拟地址,在多路径程序环境中,必须依赖重定位寄存器将逻辑地址映射到物理地址。 动态重新配置的实现方法有几种?
(1)基于重配置寄存器连续分配的动态重配置。
(2)基于段或页面离散分配的动态重新定位。 可以用什么方法将程序加载到内存中? 分别适用于什么情况?
(1)绝对加载)单批次系统。
)可重定位加载(加载时进行地址映射) :在多个环境中且加载后进程的位置不能更改
)3)动态运行时读取)运行时进行地址映射) :需要定位寄存器的支持。 静态链接是什么? 对于静态链接,是否要解决这两个问题?
静态链接:链接在程序运行前编译的模块和库函数,链接后不分离。
问题1:修改相对地址:将每个模块的相对地址修改为整体相对地址。
问题2:更改调用符号:将外部调用模块的起始地址更改为相对地址。 编写程序需要通过编译链接生成目标代码,但什么是链接? 链接主要解决什么问题? 简要说明链接的主要类型及其优缺点吗?
链接:链接到可以加载已编译的目标模块和库函数的模块。
问题解决方案:链接目标模块和库函数。 目标函数只有调用的库函数名称、参数等,没有实际内容。 链接后就是完整的函数。
静态链接:已经拥有所需的所有库函数,运行速度快,但体积大,有很多冗馀代码。
加载时动态链接:内存加载时加载的同时链接,加载时发生调用时,加载调用的模块修改地址。 易于修改和更新,易于共享模块,但会降低运行时的性能
动态运行时链路:体积小,读取速度快。 执行时的性能受到损害。 为什么要引进交换技术? 交换可分为什么类型?
为了释放内存,将有执行条件的工作导入内存。
交换、交换技术的交换空间管理目标和交换空间管理目标有什么不同?
文件区域是为了提高空间的利用率。
交换区域是为了提高呼叫的调用速度而进行的。 为什么分段系统比分页系统更容易共享和保护信息?
段中的内容基本一致,可以用一个标志位保护整个段。
分页系统、文件存储分布、所需徽标过多如何提高内存利用率?
内存利用率低主要是由于以下原因:
)1)内存碎片化多)将连续分配变为离散分配
)2)存储共享机制(具有大量冗馀信息和重复复制)
)2)大流程阻塞:虚拟化技术、动态链接技术
)4)长期不使用资源占用内存)交换技术2 .计算问题1.250.4 0.22(1)页码5位,页内地址11位
)2) 32项9位
(3)页码不变,页面内地址少一位)1) 1023 1024*2
2500-2k 6k
3500-3k 7k
过境
)将逻辑地址1023分为页码0、页内地址1023后,判断为页码0没有越界,
然后,从页表项目的0号开始找到块编号2,将块编号和页内地址连接起来就是物理地址。 64-12-10-10-10-10-10-2
共计6楼(1) 50k 137
)2) 40003k过境中断
)3) 70k 3600
(4) 54越界中断三)综合应用问题有手就好)1) )有手就好
)3)正常申请爆内存最优自适应算法。