操作系统 内存管理

操作系统要做的事情

  1. 内存空间的分配与回收
内存分配
   优点缺点
连续内存分配单一连续分配

内存被分为系统区和用户区

内存中只能有一道用户程序,独占整个用户区空间

实现简单

无外部碎片

可以采用覆盖技术扩充内存

不一定要内存保护

只能用于单用户和单任务的操作系统中

y有内部碎片

存储器利用率低

固定分区分配

将整个用户区划分为若干个固定大小的分区,在每个分区中只装入一道作业,用于支持多道程序系统

固定大小的意思时该分区大小不变,但不同分区可能大小不一样

建立一个分区说明表,来实现各个分区的分配与回收,每个表项包括该分区的大小,起始地址,状态

实现简单

无外部碎片

当程序太大时,所有分区都无法满足该要求,要采用覆盖技术来解决

会产生内部碎片,内存利用率低

动态分区分配

不会预先划分内存分区,而是在进程进入内存时,根据进程的大小动态建立分区,并使大小刚好适合。

常用数据结构:1.空闲分区表 2.空闲分区链 

没有内部碎片有外部碎片
离散内存分配    

TIPS:

  1. 内部碎片:分配给某些进程时,有部分内存该进程没有用上
  2. 外部碎片:内存中某些空闲内存分区由于太小而难以利用
  1. 采用某种技术从逻辑上对内存空间进行扩充
    1. 覆盖技术
    2. 交换技术
    3. 虚拟存储技术
内存扩充
 思想缺点
覆盖技术

将程序分成多个段,常用的段常驻内存"固定区",不常用的段需要时再调入内存"覆盖区",不用时调出

内存中分一个“固定区”和若干个“覆盖区”

让不可能同时调用的程序段共享一个覆盖区

 对用户不透明,增加编程负担

(适用于早期的操作系统)

交换技术

当内存空间紧张时,可将某些进程暂时换出到外存(变成挂起态),把外存中已经满足运行条件的进程换入到内存中 (PCB要常驻内存)

通常把磁盘(也就是外存)分为文件区和对换区

可优先换出阻塞或优先级低的进程,有时考虑内存驻留时间

 
虚拟存储技术(在下一篇博客中单独进行记录) 
  1. 地址重定位(逻辑地址到物理地址)
    1. 三种装入方式
       时期方式
      绝对装入单道程序阶段编译时产生绝对地址
      可重定位装入早期多道批处理阶段装入时将逻辑地址转换为物理地址
      动态运行时装入现代操作系统运行时将逻辑地址转换为物理地址,需设置重定位寄存器
  2. 内存保护功能(两种方法)
    1. 在cpu中设置一对上下限寄存器,存放进程的上下限地址,用于检测指令是否越界
    2. 采用重定位寄存器(基址寄存器)和界地址寄存器(限长寄存器)进行越界检查

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值