zoukankan      html  css  js  c++  java
  • linux内存管理

    linux的内存管理

    早期计算机中,程序是直接运行在物理内存上的,换句话说就是程序在运行过程中访问的都是物理地址,如果这个系统只运行一个程序,只要这个程序所需的内存不要超过该机器的物理内存就好,但系统都是支持多任务,多进程的,这个时候我们就要考虑到将系统内有限的物理内存如果有效第分配给多个程序了,这个事情我们称之为内存管理

    先要知道几个技术点:

    1)进程地址空间不能隔离;

    2)内存使用的效率低;

    3)程序运行的地址不能确定
    linux引入了虚拟内存。就是程序和物理内存之间引入了虚拟内存的这个概念。程序只能看见虚拟内存,不能访问物理内存,每个程序都有自己独立的进程地址空间,这样给予做到了进程隔离
    现在需要解决怎么从虚拟地址映射到物理地址。因为i程序最终是要运行到物理内存中的,主要有分段和分时技术两种技术;

    分段技术

    基本思路就是将程序所需的内存地址空间大小的虚拟空间映射到某个物理地址空间
    分段技术解决了进程之间控制隔离和程序地址重定位的问题,但是对于内存映射仍然是以程序交换为单位的,内存的使用效率仍然很低。

    分页机制

    就是把内存地址空间分为若干个很小的固定大小的页,每一页的大小由内存决定,这样做是为了提高内存和磁盘的利用率,
    linux中一般页的大小是4KB,我们把进程的地址空间按页分割,把常用的数据和代码装载到内存中,不常用的代码和数据保存在磁盘中。
    分页机制的实现需要硬件的实现,这个硬件的名字叫做MMU,专门负责从虚拟地址到物理地址的转换。

  • 相关阅读:
    如果经常访问国外站
    CouchDB降临Android
    ubuntu server操作流程百岁版
    开源HTML解析工具包jsoup 1.3.1发布
    LEMP aka LNMP
    VC编译选项
    gae地址
    feedparser 同步博客园rss到 qq zone
    跨系统共享键盘鼠标利器分享:synergy
    支持ff,ie的回车提交
  • 原文地址:https://www.cnblogs.com/hanfei-1005/p/5678685.html
Copyright © 2011-2022 走看看