操作系统内存管理问题集锦
1. 可采用哪几种方式将程序装入内存?它们分别适用于何种场合?
a. 首先由编译程序将用户源代码编译成若干目标模块,再由链接程序将编译后形成的目标模块和所需的-库函数链接在一起,组成一个装入模块,再由装入程序将装入模块装入内存;
b. 装入模块的方式有: 绝对装入方式,可重定位方式和动态运行时装入方式;
c. 绝对装入方式适用于单道程序环境下;
d. 可重定位方式适用于多道程序环境下;
e. 动态运行时装入方式也适用于多道程序环境下.
2. 何谓静态链接及装入时动态链接和运行时的动态链接?
a. 静态链接是指事先进行链接形成一个完整的装入模块,以后不再拆开的链接方---式;
b. 装入时动态链接是指目标模块在装入内存时,边装入边链接的链接方式;
c. 运行时的动态链接是将某些目标模块的链接推迟到执行时才进行.
3. 在进行程序链接时,应完成哪些工作?
a. 对相对地址进行修改;
b. 变换外部调用符号.
4. 在动态分区分配方式中,可利用哪些分区分配算法?
a. 首次适应算法;
b. 循环首次适应算法;
c. 最佳适应算法.
5. 在动态分区分配方式中,应如何将各空闲分区链接成空闲分区链?
应在每个分区的起始地址部分,设置一些用于控制分区分配的信息,以及用于链接各分区的前向指针;在分区尾部则设置一后向指针,通过前,后向指针将所有的分区链接成一个双向链.
6. 为什么要引入动态重定位?如何实现?
a. 为了在程序执行过程中,每当访问指令或数据时,将要访问的程序或数据的逻辑地址转换成物理地址,引入了动态重定位.
b. 可在系统中增加一个重定位寄存器,用它来装入(存放)程序在内存中的起始地址,程序在执行时,真-正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的,从而实现动态重定位.
7. 在采用首次适应算法回收内存时,可能出现哪几种情况?应怎样处理这些情况?
a. 回收区与插入点的前一个分区相邻接,此时可将回收区与插入点的前一分区合并,不再为回收分区分配新表项,而只修改前邻接分区的大小;
b. 回收分区与插入点的后一分区相邻接,此时合并两区,然后用回收区的首址作为新空闲区的首址,大-小为两者之和;
c. 回收区同时与插入点的前后两个分区邻接,此时将三个分区合并,使用前邻接分区的首址,大小为三区之和,取消后邻接分区的表项;
d. 回收区没有邻接空闲分区,则应为回收区单独建立一个新表项,填写回收区的首址和大小,并根据其首址,插入到空闲链中的适当位置.
8. 在系统中引入对换后带有哪些好处?
能将内存中暂时不运行的进程或暂时不用的程序和数据,换到外存上,以腾出足够的内存空间,把已具备运行条件的进程或进程所需的程序和数据换入内存,从而大大地提高了内存的利用率.
9.为实现对换,系统应具备哪几方面功能?
a. 对对换空间的管理;
b. 进程的换出;
c. 进程的换入.
10.在以进程为单位进行对换时,每次是否都将整个进程换出?为什么?
a. 以进程为单位进行对换时,每次都将整个进程换出;
b. 目的为了解决内存紧张的问题,提高内存的利用率.
11.请较详细地说明,引入分段存储管理是为了满足用户哪几方面的需要?
a. 方便了编程;
b. 实现了分段共享;
c. 实现了分段保护;
d. 实现了动态链接;
e. 实现了动态增长;
12.在具有快表的段页式存储管理方式中,如何实现地址变换?
首先,必须配置一段表寄存器,在其中存放段表始址和段长TL. 进行地址变换时,先利用段号S,与段长TL进行比较,若STL,表示未越界,(若S=TL,表示段号太大,访问越界,产生越界中断信号)于是利用段表始址和段号来求出该段对应的段表项在段表中的位置,从中求出该段的页表始址,并利用逻辑地址中的段内页号P来获得对应页的页表项位置,从中读出该页所在的物理块号b,再用块号b和页内地址构成物理地址.
13.为什么说分段系统较之分页系统更易于实现信息共享和保护?
a. 对于分页系统,每个程序段是分散存储的,一个程序段可能对应着几个不同的页。为了实现信息共享和保护,则页面之间需要一一对应起来,为此需要建立大量的页表项;
b. 而对于分段系统,每个段都从0开始编址,并采用一段连续的地址空间,这样在实现共享和保护时.只需为所要共享和保护的程序设置一个段表项,将其中的基址与内存地址一一对应起来即可.
14.分页和分段有何区别?
a. 分页和分段都采用离散分配的方式,且都要通过地址映射机构来实现地址变换,这是它们的共同点;
b. 对于它们的不同点有三,第一,从功能上看,页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率,即满足系统管理的需要,而不是用户的需要;而段是信息的逻辑单位,它含有一组其意义相对完整的信息,目的是为了能更好地满足用户的需要;
c. 页的大小固定且由系统确定,而段的长度却不固定,决定于用户所编写的程序;
d. 分页的作业地址空间是一维的,而分段的作业地址空间是二维的.
15.试全面比较连续分配和离散分配方式.
a. 连续分配是指为一个用户程序分配一个连续的地址空间,包括单一连续分配方式和分区式分配方式,前者将内存分为系统区和用户区,系统区供操作系统使用,用户区供用户使用,是最简单的一种存储方式,但只能用于单用户单任务的操作系统中;分区式分配方式分为固定分区和动态分区,固定分区是最简单的多道程序的存储管理方式,由于每个分区的大小固定,必然会造成存储空间的浪费;动态分区是根据进程的实际需要,动态地为之分配连续的内存空间,常用三种分配算法: 首次适应算法FF,该法容易留下许多难以利用的小空闲分区,加大查找开销;循环首次适应算法,该算法能使内存中的空闲分区分布均匀,但会致使缺少大的空闲分区;最佳适应算法,该算法也易留下许多难以利用的小空闲区;
b. 离散分配方式基于将一个进程直接分散地分配到许多不相邻的分区中的思想,分为分页式存储管理,分段存储管理和段页式存储管理. 分页式存储管理旨在提高内存利用率,满足系统管理的需要,分段式存储管理则旨在满足用户(程序员)的需要,在实现共享和保护方面优于分页式存储管理,而段页式存储管理则是将两者结合起来,取长补短,即具有分段系统便于实现,可共享,易于保护,可动态链接等优点,又能像分页系统那样很好的解决外部碎片的问题,以及为各个分段可离散分配内存等问题,显然是一种比较有效的存储管理方式;c. 综上可见,连续分配方式和离散分配方式各有各自的特点,应根据实际情况加以改进和利用.
操作系统内存管理问题集锦相关推荐
- 操作系统内存管理-Linux版
引言 操作系统内存管理:总的来说,操作系统内存管理包括物理内存管理和虚拟内存管理. 物理内存管理: 包括程序装入等概念.交换技术.连续分配管理方式和非连续分配管理方式(分页.分段.段页式). 虚拟内存 ...
- 操作系统内存管理——分区、页式、段式管理
操作系统内存管理--分区.页式.段式管理 标签: 内存管理操作系统数据结构算法 2010-07-05 11:26 20805人阅读 评论(5) 收藏 举报 分类: 操作系统(4) 版权声明:本文为博主 ...
- 操作系统内存管理-原理
任何新技术都是在一点一点的积累中成熟并呈现在世人的面前,就像猿人进程成人也不是一簇而就的,而是在漫长的岁月中一点一点的进化与完善.还比如现代的吸尘器,当前发明吸尘器的那个人只是用了一台风扇的电机和叶片 ...
- 计算机操作系统 - 内存管理
计算机操作系统 - 内存管理 目录 计算机操作系统 - 内存管理 虚拟内存 分页系统地址映射 页面置换算法 1. 最佳 2. 最近最久未使用 3. 最近未使用 4. 先进先出 5. 第二次机会算法 6 ...
- 操作系统内存管理及虚拟内存技术
一.内存管理 操作系统的内存管理主要负责内存的分配与回收(malloc 函数:申请内存,free 函数:释放内存),另外地址转换也就是将逻辑地址转换成相应的物理地址等功能也是操作系统内存管理做的事情. ...
- 4、操作系统内存管理——页面的换入换出
注:参考哈工大李治军老师公开课. 对于用户而言,用户看到的是一个整体的内存入4G,而且用户可以随便访问4G内存空间的任意位置:但是对于真实的物理内存可能只有1G大小,当用户访问内存时,如果内存里面有需 ...
- 内存与操作系统内存管理
内存与操作系统内存管理 文章目录 内存与操作系统内存管理 一.内存的基础知识 二.内存管理 2.1 内存空间扩充 2.2 内存空间的分配与回收** Java.大数据开发学习要点(持续更新中-) 一.内 ...
- 操作系统 内存管理单元MMU TLB
前言 在了解操作系统 内存管理 分页/分段/段页式管理.操作系统 虚拟内存技术两篇文章后,接下来继续看看现代操作系统基本内存管理方式,本文详细介绍Linux操作系统下的内存管理单元MMU和TLB. d ...
- 操作系统 内存管理总结
目录 内存管理介绍 什么是虚拟内存(Virtual Memory)? 逻辑(虚拟)地址和物理地址 CPU 寻址了解吗?为什么需要虚拟地址空间? 局部性原理 操作系统是如何管理虚拟地址与物理地址之间的关 ...
最新文章
- 【视频】视频方面大神博客总结
- VisualStudio2008+水晶报表的使用
- 在QT搭建的播放器外壳中嵌入SDL的窗口
- HTML marquee标签详解
- MySQL远程工具链接报错—1130
- 【数据库系统】数据库与SQL
- NOIP1996复赛 普及组 第二题 python
- 删除单链表中倒是第K个结点
- DAM的内涵正在改变
- bootstrap时间格式化
- 不贵难得之货,使民不盗
- [biztalk笔记]-1.Hello World!
- 6. PHP之适配器模式
- oracle里的字符串类型,Oracle中的字符串類型及相關函數詳解
- 如何添加、管理和删除PDF高亮文本?
- 【学习笔记】Baby Step Giant Step算法及其扩展
- Python 实现一个自动下载小说的简易爬虫
- CMake入门教程【手册篇】CMake生成与编译项目
- android从入门到精通-项目实战(心得及源码)
- 区别:秒s、毫秒ms、微秒μs、纳秒ns、皮秒ps、飞秒fs每两级之间的换算以及之间的关系
热门文章
- 属性加密测试用例相关问题的分析
- 将读写锁放到共享内存,实现进程之间对于同一文件的读写操作
- 启动linux的rpc服务的命令
- linux使用openssl查看文件的md5数值
- 安卓EditText
- vs2015 支持Android arm neon Introducing Visual Studio’s Emulator for Android
- 科​目​三​智​能​考​试​系​统​实​际​道​路​考​试​项​目​评​判​标​准
- 为什么我要转载文章?
- 钱线观察:货币基金T+0驾到 活期存款将死?
- linux 安装 maven 、解决:bash: mvn: command not found