内存管理

1. 单片机

  • 单片机没有操作系统
  • 单⽚机的 CPU 是直接操作内存的「物理地址」

2. MMU(内存管理单元)

  • 分段内存:

进程持有的虚拟地址会通过 CPU 芯⽚中的内存管理单元(MMU)的映射关系,来转换变成物理地址,然后再通过物理地址访问内存

3. 内存分段

  • 由代码分段、数据分段、栈段、堆段组成
  • 段表保存在内存中。每个进程有一份

段基地址:指向段内存的起始位置

段界限

特权等级DPL

  • 虚拟地址由两部分组成段选择子和段内偏移量

段选择子:可以确定段表中指向的段号,在寄存器中

段内偏移量:有效内存的长度,段基地址~段基地址+偏移量,就是实际的内存段地址

  • 段表也叫全局描述符(GDT),一个处理器只有一个。局部描述表(LDT),一个进程一个LDT,是GDT的子表
  • 优点:

每个段有逻辑(实际)意义

方便编程:通常一个作业是由多个程序段和数据段组成的,一般情况下,用户希望按逻辑关系对作业分段,并能根据名字来访问程序段和数据段

信息共享:共享是以信息的逻辑单位为基础的。页是存储信息的物理单位,段却是信息的逻辑单位

信息保护:段式管理中,可以以信息的逻辑单位进行保护

  • 缺点:

第⼀个就是内存碎⽚的问题

第⼆个就是内存交换的效率低的问题

4. 内存分页

  • 4kb一个页
  • ⻚表存储在内存⾥(每个进程都有一份),内存管理单元(MMU)就做将虚拟内存地址转换成物理地址的⼯作
  • 虚拟内存到页表查不到,就产生缺页异常。进行页面置换
  • 置换效率高:释放的内存都是以⻚为单位释放的,也就不会产⽣⽆法给

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

后端开发面试高频八股+算法 文章被收录于专栏

涵盖各大厂考官最爱问知识点,22年最新整理!

全部评论

相关推荐

安静的垂耳兔在泡澡:ks已经第八次投递了,它起码挂了还让你再投,不错了
点赞 评论 收藏
分享
评论
4
6
分享
牛客网
牛客企业服务