操作系统之内存模型

本文详细介绍了操作系统的内存管理方案,包括分区管理、页式存储、段式存储、伙伴系统以及虚拟内存机制。此外,还探讨了页面置换算法,如最佳置换、FIFO、LRU和LFU等,并讨论了它们的优缺点。最后,文章阐述了进程调度算法,如FCFS、SJF、优先级调度、高响应比优先以及时间片轮转等,分析了各自适用场景和影响系统性能的因素。
摘要由CSDN通过智能技术生成

一、内存管理方案

1、分区:固定分区、可变分区

固定分区--->内存分为若干分区,每个分区大小可不同但固定不变,而且只能装载一个进程,容易产生内部碎片

可变分区--->根据进程需要分割内存并分配,剩余部分成为新的空闲区,容易产生外部碎片【只有外部碎片才可以碎片整理】

碎片问题:碎片:很小的,不易利用的空闲区,导致内存利用率下降
解决方案:紧缩技术(memory compaction)
在内存移动程序,将所有小的空闲区合并为较大的空闲区
又称:压缩技术、紧致技术、搬家技术
紧缩时要考虑的问题:系统开销,移动时机

2、页式存储管理方案

用户进程地址空间被划分为大小相等的部分,称为页(page)或页面,从0开始编号

内存分配规则以页为单位,按进程需要的页数分配,逻辑上相邻的页,物理上不一定相邻

页式存储存在的问题:会造成最后一页的部分空间浪费,即产生内碎片

3、段式存储管理方案

与页式存储相似,只不过内存的划分是不等长的,用空闲区表和已分配表管理内存分配

4、伙伴系统 BUDDY SYSTEM
一种经典的内存分配方案,主要思想:将内存按2的幂进行划分,组成若干空闲块链表;查找该链表找到能满足进程需求的最佳匹配块,Linux底层内存管理采用,一种特殊的分离适配算法

5、虚拟内存 + 交换分区

地址转换的过称为,逻辑地址先拿到段号,去段表查到段号所对应的页表起始地址,再通过页号查页表所在的页,然后把页内地址加到页的起始地址上得到真实的物理地址

虚拟内存:  虚拟内存技术
虚拟地址空间  :是一块数据区域,虚假的内存地址空间
虚拟地址:  虚拟地址是虚拟地址空间上的一个值

逻辑地址:指由程序产生的段内偏移地址。逻辑地址与虚拟地址二者之间没有明确的界限。
线性地址:指虚拟地址到物理地址变换的中间层,是处理器可寻址的内存空间(称为线性地址空间)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值