![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
「已注销」
小白程序员
展开
-
存储器管理问题整理一:为什么要配置层次存储器
对于通用计算机而言,存储层次至少应该分为三级:最高层次为CPU寄存器,中间为主存,最底层为辅存。在如今大部分计算机有着更加精细的分级:寄存器,高速缓存,主存储器,磁盘缓存,固定磁盘,可移动存储介质等。在存储结构中,层次越高(靠近cpu),存储介质的访问速度越快,价格也越高,容量越小,反之亦然。寄存器、高速缓存、主存储器和磁盘缓存均属于操作系统的管辖范畴,掉电后信息不在存在;底层次的...原创 2019-06-29 17:05:49 · 6642 阅读 · 0 评论 -
四、存储器管理问题整理二:程序装入内存的方式及使用场景
用户程序要在系统中运行,必须先将它装入内存,然后再将其转变为一个可执行的程序,通常经过以下几个步骤:(1)编译:在编译程序对用户源程序进行编译,形成若干个目标模块。(2)链接:由连接程序将编译后的一组目标模块以及他们所需的库函数链接在一起,形成一个完整的装入模块。(3)装入:由装入程序将装入模块装入内存程序的装入分为以下三种方式:一、绝对装入方式编译后产生绝对地址的目标代码...原创 2019-06-29 18:40:17 · 3411 阅读 · 0 评论 -
四、存储器管理问题整理三:何谓静态链接,静态链接时需要注意的两个问题
静态链接:在程序运行之前先将各目标模块以及他们的库函数链接成一个完整的装配模块,以后不再拆开。静态链接需解决以下两个问题:(1)对相对地址进行修改:在由编译产生的目标模块中,使用的都是相对地址,起始地址为0,每个模块中的地址都是相对于起始地址计算的。在链接成一个装入模块后,起始地址变为L而其他地址也要做处相应的改变(L+M)(2)变换外部调用符号:将每个模块中用的外部调用符号也都变换为...原创 2019-06-30 13:22:10 · 2013 阅读 · 0 评论 -
四、存储器管理问题整理四:何谓装入时动态链接,装入时动态链接有何优点?
装入时动态链接是指:用户源程序编译后,得到一组目标模块,在装入内存时,采用边装入,边链接的方式。即在装入一个目标模块时,若发生一个外部模事件,将引起装入程序去找出相应的外部目标模块,并将他装入内存。优点主要分为两点:(1)便于修改和更新:对于静态链接,如果需要修改获更新某个目标模块,需要重新打开装入模块,这不仅仅是效率问题,而在很多时候甚至是不可能的。而采用动态链接方式,由于个目标模块是分...原创 2019-06-30 13:31:24 · 3370 阅读 · 0 评论 -
四、存储器管理问题整理五:何谓运行时动态链接,运行时动态链接有何优点?
运行时动态链接:将对某些模块的链接推迟到程序执行时才进行。在执行过程中当发现一个被调用模块尚未装入内存时,立即由操作系统去寻找该模块,并将其装入内存,将其链接到调用者模块上。优点:许多情况下,应用程序在运行时,每次要运行的模块可能是不相同的,但由于事先无法清楚的知道本次要运行哪些模块,所以只能将所有可能运行的模块全部装入内存,并在装入时连接在一起。但在运行时动态链接过程中,在执行过程中都未用到...原创 2019-06-30 13:37:54 · 5174 阅读 · 1 评论 -
四、存储器管理问题整理六:为什么要引入动态重定位?如何实现?
为了方便对内存进行紧凑,使若干程序从内存某处移至另一处时,不需要对程序进行任何修改。实现方法:为使地址的转换不会影响到指令的执行速度,必须有硬件地址变换机构的支持,在系统中设置一个重定位寄存器,用他来存放程序在内存中的起始地址,在执行时,真正访问的时相对地址与重定位寄存器中的地址相加而形成的。...原创 2019-06-30 14:03:40 · 9986 阅读 · 0 评论 -
四、存储器管理问题整理七:什么是基于顺序搜索的动态分区算法?它可以有哪几种?
所谓顺序搜索,指的是依次搜索空闲分区链上的空闲分区,去寻找一个其大小能满足要求的分区。主要包含以下四种:(1)首次适应算法(FF):FF要求空闲分区链以地址递增的顺序链接,从链首开始查找,直至找到第一个满足要求的分区,然后按照作业的大小,从该分区中划出一片内存空间。若从链首到链尾都找不到一个空闲分区,则分配失败。(2)循环首次适应算法(NF):为避免低址部分留下许多小的空闲分区,以及减...原创 2019-06-30 14:29:20 · 3315 阅读 · 0 评论