• 66、在执行malloc申请内存的时候,操作系统是怎么做的?


    从操作系统层面上看,malloc是通过两个系统调用来实现的: brk和mmap

      brk是将进程数据段(.data)的最高地址指针向高处移动,这一步可以扩大进程在运行时的堆大小

      mmap是在进程的虚拟地址空间中寻找一块空闲的虚拟内存,这一步可以获得一块可以操作的堆内存。

    通常,分配的内存小于128k时,使用brk调用来获得虚拟内存,大于128k时就使用mmap来获得虚拟内 存。

    进程先通过这两个系统调用获取或者扩大进程的虚拟内存,获得相应的虚拟地址,在访问这些虚拟地址 的时候,通过缺页中断,让内核分配相应的物理内存,这样内存分配才算完成。

  • 相关阅读:
    border-color
    animation
    servlet injection analysis
    事务隔离级别
    write RE validation
    Filter
    Annotation
    Injector
    gradle的安装
    Build tool
  • 原文地址:https://www.cnblogs.com/crbhf/p/15140809.html
Copyright © 2020-2023  润新知