您的位置:首页 > 其它

操作系统(三)

2020-04-05 07:26 477 查看

存储器管理应具有的功能

存储管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以 及从逻辑上扩充存储器,故应具有以下功能:
内存的分配和回收:实施内存的分配,回收系统或用户释放的内存空间。
地址变换:提供地址变换功能,将逻辑地址转换成物理地址。
扩充内存:借助于虚拟存储技术活其他自动覆盖技术,为用户提供比内存空间大的地址空间,从逻辑 上扩充内存。
存储保护:保证进入内存的各道作业都在自己的存储空间内运行,互不干扰。

虚拟存储器,以及相关算法。

基于局部性原理,应用程序在运行之前,仅将那些当前要运行的少数页面或段先装入内存便可运行,其余 部分暂时留在盘上。程序运行时,如果它要访问的页已调入内存,便可继续执行下去;但如果程序要访问 的页或段尚未调入内存(即缺页),此时程序应利用请求调入功能将它们调入内存,以使程序能继续执行下 去。如果此时内存已满,无法装入新的页或段,则需要利用页面置换功能,将内存中暂不使用的页面或段 调至盘上,腾出空间用于页面调入内存,是程序继续执行下去。这样,就实现了大的用户程序能在较小的 内存空间里运行,也可以在内存中同时装入更多的进程使它们并发运行。从用户角度出发,该系统的内存 容量比实际内存容量大很多,故成这样的存储器为虚拟存储器(简而言之,运行过程需要的进去,满了就把不需要的换出去)

相关算法: 页面置换算法

  1. 最佳置换算法(Optimal):置换选择的对象是以后永久不使用的或最长时间内不再被访问的页面
  2. 先进先出页面置换算法(FIFO):总淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面
  3. 最近最久未使用置换算法(LRU):选择最近最久未使用的页面进行淘汰
  4. Clock置换算法:每页设置一个访问位,再将内存中的所有页面都通过链接指针链接成循环队列,某页面被访问,访问位置1,在选择淘汰页面时,若为1,则重新将他置0,暂不换出,按照FIFO算法检查下一个页面,直到找到为0的页面将其置换。是LRU和FIFO的折中
    改进型clock算法:增加一修改位。未被访问且未被修改过的页面是最佳置换页。
  5. 最少使用置换算法
  6. .页面缓冲算法

虚拟存储器的特征

1.多次性:一个作业被分成多次调入内存运行
2.对换性:进程运行期间,允许将那些暂时不使用的程序和数据,从内存调换至外存
3.虚拟性:从逻辑上扩充内存容量,使用户看到内存容量远大于实际容量

分页系统与分段系统的区别是什么

1、页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率;或者说,分页仅仅是由于系统管理的需要,而不是用户的需要。

段是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好的满足用户的需要

2、页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而一个系统只能有一种大小的页面。

段的长度却不固定,决定于用户所编写的程序,通常由编辑程序在对源程序进行编辑时,根据信息的性质来划分

3、分页的作业地址空间是一维的,即单一的线性空间,程序员只须利用一个记忆符,即可表示一地址。

分段的作业地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址

程序的装入


装入方式:
绝对装入:在编译时就知道程序将要驻留在内存的物理地址,编译程序产生含有物理地址的目标代码, 不适合多道程序设计。
② 可重定位装入:根据内存当前情况,将装入模块装入到内存的适当位置,地址变换通常在装入时一次 完成,之后不再改变,也称静态重定位。当操作系统为程序分配一个以某地址为起始地址的连续主存 区域后,重定位时将程序中指令或操作数的逻辑地址加上这个起始地址就得到了物理地址。
③ 动态运行装入:允许程序运行时在内存中移动位置,把装入模块装入到内存后的所有地址都是相对地 址,在程序执行过程中每当访问到相应指令或数据时,才将要访问的程序或数据的相对地址转换为物 理地址。动态重定位的实现要依靠硬件地址变换机构。

程序的链接

1.静态链接:在程序运行前,将目标模块及所需的库连接成一个完整的连接模块
2.装入时动态连接:将目标模块装入内存时,边装入边连接
3.运行时动态连接:程序执行需要该目标模块时,才对他进行连接

对换

所谓对换是指把内存中暂时不能运行的进程或暂时不用的程序调出到外存,以便腾出足够的空间。
(1)进程的换出:系统首先选择处于阻塞状态且优先级低的进程作为换出进程,然后启动硬盘,将该进程的程序和数据传送到磁盘对换区上。
(2)进程的换入:系统定时地查看所有进程的状态,从中找出就绪状态但已换出的进程。

交换技术,覆盖技术,以及两者的区别

覆盖技术:把一个大的程序划分为一系列覆盖,每个覆盖是一个相对独立的程序单位,把程序执行时并不 要求同时装入内存的覆盖组成一组,成为覆盖段,这个覆盖段分配到同一个存储区域,这个存储区域成为 覆盖区,它与覆盖段一一对应。覆盖段的大小由覆盖段中最大的覆盖来确定。(为了解决内存容量太小的问 题,打破了必须将一个程序全部信息装入内存后才能运行的限制)

交换技术:把暂时不用的某个程序及数据部分从内存移到外存中去,以便腾出必要的内存空间;或者把指 定的程序或数据从外存读到相应的内存中,并将控制权交给他,让其在系统上运行的一种内存扩充技术。 处理器的中级调度就是采用交换技术。

区别:

① 与覆盖技术相比,交换技术不要求程序员给出的程序段之间的覆盖结构;
② 交换技术主要在进程和作业之间进行,覆盖技术主要在同一个进程或作业中进行;
③ 覆盖技术只能覆盖于覆盖程序段无关的程序段,交换进程由换出和换入两个过程组成。

什么是段寄存器?

把一个作业空间作业分成若干个段,每个段定义了一组逻辑信息,根据用户的需要来划分

连续分区分配和非连续分区分配的比较

连续内存分配
首次适配:空闲分区以地址递增的次序链接。分配内存时顺序查找,找到大小能满足要求的第一个空闲分区。
最优适配:空闲分区按容量递增形成分区链,找到第一个能满足要求的空闲分区。
最坏适配:空闲分区以容量递减的次序链接。找到第一个能满足要求的空闲分区,也就是挑选出最大的分区。
非连续内存分配
分页式存储管理介绍:
用户程序逻辑地址空间->页(连续)

物理内存空间->块(离散)

页表(内存中):key=页号,value=块号(内存中的物理块)

快表(高速缓冲区存储器中):key=页号,value=块号(内存中的物理块)

基本思想:用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,实现了离散分配
分段式存储管理
基本思想:将用户程序地址空间分成若干个大小不等的段,每段可以定义一组相对完整的逻辑信息。存储分配时,以段为单位,段与段在内存中可以不相邻接,也实现了离散分配

什么是页表?有什么作用。

为了便于在内存中找到进程的每个页面所对应的物理块,系统为每个进程建立一张页面映射表。 页表由页表项组成,页表项页号块号组成,根据页表项就可以找到每个页号对于物理内存中物理块的 块号。

什么叫拼接技术?

分区管理方式下,系统运行一段时间后,内存中会出现相当一部分的碎片,拼接技术是解决碎片问题的 方法。 即将存储器中所有已分配分区移动到主存的一端,使本来分散的多个小空闲区连成一个大的空闲区,这种 通过移动把多个分散的小分区拼接成一个大分区的方法即为拼接技术。

内部碎片和外部碎片

内部碎片:分配给作业的存储空间中未被利用的部分。 外部碎片:系统中无法利用的小存储块,比如通过动态内存分配技术从空闲内存区上分配内存后剩下的那 部分内存块。

常用的存储保护方法

1)界限寄存器 上下界寄存器方法 基址、限长寄存器方法
2)存储保护键:给每个存储块分配一个单独的存储键,它相当于一把锁。

内存连续分配管理方式有哪些?

① 单一连续分配(静态分配) ② 固定分区分配(分区大小可以不等,但事先必须确定,运行时不能改变) ③ 动态分区分配

什么叫原子操作?

不可被中断的一个或一系列操作,要么全部执行完,要么全部不执行。

实时调度算法

1.最早截止时间优先EDF:截止时间越早,优先级越高
2.最低松弛度优先LLF:根据任务的紧急情况,来确定优先级

  • 点赞
  • 收藏
  • 分享
  • 文章举报
一只很菜但是好学的猪 发布了38 篇原创文章 · 获赞 1 · 访问量 1565 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: