美文网首页
操作系统之内存

操作系统之内存

作者: 知而乐者 | 来源:发表于2020-03-15 12:12 被阅读0次

内存物理地址问题

由于程序载入内存过程中不知道具体要放在哪块内存,所有代码中的地址只能是相对地址,只有在真正执行是才能知道实际的物理地址,由于在执行过程中可能有换入和换出的功能所以只有在载入时完成重定位才合适
交换图:


image.png image.png

基地址放在PCB中,每次载入时进行修改

分段内存使用问题

不是将整个程序放在一块内存区域中,是有分段的概念,所以还需要维护一个段号的表


image.png

由于也不可能将整个断放入一块连续的存储空间,所以引入分页的概念
为什么不能将分段放入一块空间内?
比如,段需要1M空间,但是剩余的只有600K和800K的不连续空间(由于可能有回收等),所以就无法进行分配,导致内存的浪费,如果进行空间整理,则耗费时间长会响应慢,如 果复制速度1M/1秒,则1G内存 的紧缩时间为1000秒»17分钟

分页的话就是将内存以4K为单位进行划分,然后减段进行拆分进行内存使用
所以就需要一个段和页的映射表


image.png

分段内存段和页的映射表过大问题

image.png

所以只存储用到的逻辑页,但是就会存在页号不连续,导致查找映射的时候查找时间过长。
采用多级页表的思想:


image.png

上图分段,为什么总共需要16K?
页目录4K+3*4K=16K(页目录中有效页的数量为3)

时间上多级页表还需要多次查找,引入TLB概念,相当于缓存,因为程序访问的特性一般都是在一块连续区间滑动


image.png

程序查找物理内存地址


image.png

相关文章

  • JS内存图

    Get Started • 操作系统• 进程与线程• JS引擎• 瓜分内存• JS入门三座大山之原型 操作系统常识...

  • 虚拟内存

    内存管理之虚拟内存 内存管理是计算机操作系统中最复杂、重要的内容之一,虽然内存的容量在不断地增大,但是还是不足以将...

  • 内存

    操作系统对内存管理哪些内容: 1. 操作系统负责内存空间的分配和回收 2. 操作系统需要提供某种技术从逻辑上内内存...

  • 内存与性能

    申请与释放内存 申请内存的过程 用户态使用malloc向操作系统申请内存 操作系统查找页面是否有空闲内存,如果有则...

  • 【操作系统】3.1 内存管理基础

    1.内存管理的介绍 问题:操作系统的内存管理主要是做什么? 操作系统的内存管理主要负责①内存的分配与回收(mall...

  • 内存管理——分页、分段

    参考 怎样通俗的理解操作系统中内存管理分页和分段?计算机操作系统 - 内存管理

  • linux操作系统基础知识有哪些

    内容来源(公众号:PHP版WEB项目)linux操作系统基础知识:1、操作系统区分物理内存和虚拟内存;2、了解内存...

  • 内存

    操作系统的物理内存: —— 常说的 “内存条”数据从磁盘中加载到内存后,才能被CPU访问。【操作系统的代码和数据...

  • Android内存泄漏问题

    一、垃圾回收 一般来说,程序使用内存遵循先向操作系统申请一块内存,使用内存,使用完毕之后释放内存归还给操作系统。然...

  • Linux C 内存管理

    32位操作系统内存最大空间为 2^32 = 210*2102^104 = 4GB; 64位操作系统的内存分布 ​ ...

网友评论

      本文标题:操作系统之内存

      本文链接:https://www.haomeiwen.com/subject/hgnbshtx.html