专栏首页算法与编程之美聊一聊内存管理(二)

聊一聊内存管理(二)

欢迎点击「算法与编程之美」↑关注我们!

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

在上一讲聊一聊内存管理(一)重点介绍了什么是内存管理,对内存管理有了整体的认识。简单来说就是,程序的运行需要内存,你如何管理并给这些程序分配内存。

本节介绍最简单的一种内存管理方案:单一连续区分配。为什么说这种内存分配是最简单的呢?接下来做详细的介绍。

单一连续区内存分配的基本思想是一段时间内只有一个进程在内存。将4G的内存分为两部分,一部分存放操作系统内核,另外一部分存放用户程序,且一段时间内只有一个用户程序在内存中。如图1-1所示:

图1 单一连续区内存分配

T1时刻有进程P1,需要512MB的内存,那么将内存分配给P1,如图1-2所示;

T2时刻有进程P2,需要1GB的内存,由于单一连续区内存分配的特点,此时用户区已经有了P1在执行,即时剩余内存充足,P2也无法运行,只有在P1运行结束并释放内存之后才能运行P2。

图2 进程 P1的内存分布

从上面的分析大家可以看到这种内存分配方式非常的简单,可以说没有什么方法比这种还要简单的了。但是缺点也非常明显:

  • 一段时间内只能运行一个程序,因此无法实现多道程序;
  • 在运行一个进程后,即使有足够的剩余内存也无法执行新的进程,而只有等待该进程运行结束后才能继续执行,因此内存的利用率相当的低;
  • 如果进程所需的内存大于用户程序的总大小,则该进程将无法得到运行,因此对要运行的进程有很大的限制条件,不是什么进程都可以运行的。

相信看到这里,大家应该都能感受到,当我们遇到问题的时候,根据我们的经验积累会想到一种简单的解决思路,但是经过分析我们会发现这种解决问题的方法会有很多的问题,那么接下来我们就会分析这些问题,并提出新的的方法,如此反复,不断的提出新问题,不断的提出新方案解决新的问题,科技因此才不断的进步。

关于内存管理,你有什么更好的思路呢?欢迎留言。

where2go 团队


微信号:算法与编程之美

长按识别二维码关注我们!

温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发!

本文分享自微信公众号 - 算法与编程之美(algo_coding),作者:gongsuochen

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 聊一聊内存管理(一)

    在我们的日常生活中,经常会遇到这样的对话。当电脑运行程序变得很慢很卡的时候,就会听到身边的朋友建议我们去增加电脑的内存。这是为什么呢?内存在计算机体系结构中起了...

    算法与编程之美
  • 谈一谈|不知道这些难怪你的电脑卡

    随着电脑使用时间的增加,软件数量的增加,电脑越用越卡,除了它真的“老”了以外,还有可能是因为一些其它的“拖累”。接下来就针对使用较多的Windows 10系统,...

    算法与编程之美
  • JavaWeb|浅谈Cookie

    Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经...

    算法与编程之美
  • 腾讯云服务器内存型M1实例 满足内存密集型大业务部署

    内存型 M1 是 CPU 内存比在 1:8 左右的机型,满足高性能数据库、分布式内存缓存等需要大量的内存操作、查找和计算的应用。这种实例比较大的特点是内存超大,...

    魏艾斯博客www.vpsss.net
  • Linux vmstat命令详解

    vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。是对系统的整体情况进...

    用户5807183
  • Linux页框分配器之内存碎片化整理

    指分配给用户的内存空间中未被使用的部分。例如进程需要使用3K bytes物理内存,于是向系统申请了大小等于3Kbytes的内存,但是由于Linux内核伙伴系统算...

    刘盼
  • *** glibc detected *** malloc(): memory corruption

    在Linux Server上不好模拟出来:不过若是先malloc,再越界memset,再free此内存块,然后malloc新内存块就会出现类似错误。

    Dabelv
  • 数据湖应用解析:Spark on Elasticsearch一致性问题

    在《Java虚拟机规范》的规定里,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生 OutOfMemoryError 异常的可能。

    不会飞的小鸟
  • 常见的 OOM 异常分析(硬核干货)

    在《Java虚拟机规范》的规定里,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生 OutOfMemoryError 异常的可能。

    Java3y
  • 10种常见OOM分析——手把手教你写bug

    在《Java虚拟机规范》的规定里,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生 OutOfMemoryError 异常的可能。

    海星

扫码关注云+社区

领取腾讯云代金券