Bootstrap

操作系统段页操作以及置换算法

一.  存储分配的方式

1.直接分配:程序员在编写程序时,或编译程序对源程序进行编译时,直接使用实际的存储地址。

前提:事先确定一个作业在主存中的位置

缺点:存储空间的利用率不高,且不方便

2.静态分配:程序装入内存时才确定在内存中的位置,且在其整个运行期间不能在内存中移动,也不能再申请内存空间。

前提:程序装入内存时必须分配所要求的全部存储量,且退出前不释放

缺点:在多道程序系统中不能有效地共享存储器资源

3.动态分配:程序装入内存时才确定它们在内存中的位置,但在其整个运行期间可以再申请内存空间,也可在内存中移动。一个程序已占有的存储区不再需要时,可以归还给系统。

二 界限保护

上界/下界寄存器

• 所有访问地址必须在上下界之间

– 基址/限长寄存器

• 所有访问地址必须在界限范围内

三 虚拟存储技术的分类

根据地址空间结构的不同分为三类:

• 页式管理

• 段式管理

• 段页式管理

四 动态分区分配算法的关键

1.最先匹配法(first-fit):按分区起始地址的递增次序,从头查找,找到符合要求的第一个分区。

2.最佳匹配法(best-fit):按分区大小的递增次序,查找,找到符合要求的第一个分区。

3.最坏匹配法(worst-fit):按分区大小的递减次序,从头查找,找到符合要求的第一个分区。

五 三种分配算法的比较

• 最先(首次)适应算法

– 尽可能地利用了低地址空间,从而保证高地址有较大的空闲区来放置要求内存较多的进程或作业。

– 该算法的分配和释放的时间性能较好

• 最佳适应算法

– 利用最接近于所要求的内存大小。若存储空间中有正好等于所要求大小的空白区,则必然被选中。

– 由于空白区一般不可能正好和要求的的相等,这往往使剩下的空白区都比较小,形成“碎片”。

– 寻找一个较大空白区时,要花费较多的时间;回收一个分区时,为了把它插入到空白区链中合适的位置上开销较大。

• 最坏适应算法

– 避免了空闲区越分越小、留下碎片的问题,即每次分配时,总是将最大的空闲区切去一部分分配给请求者(使分配后的剩余部分可能仍是一个较大的空闲区,仍能进行再分配)。

六 页式地址映射举例

虚地址以十进制数给出:

• 页号=INT[虚地址/页大小]

• 位移量=虚地址 mod 页大小

• 根据题意产生页表

• 以页号查页表,得到对应的内存块号

• 内存地址=块号×页大小+位移量

 

 

 

七  请求页式管理中的置换算法

• 常见的置换算法有4种:

(1) 随机淘汰算法

(2) 轮转法(RR)和先进先出(FIFO)

(3) 最近最久未使用页面置换算法LRU(Least Recent Used)

(4) 理想型淘汰算法OPT(Optimal Replacement Algorithm)

 

 

 

 

点赞  关注 下期不迷路 

;