• 内存映像


    转自:http://bbs.chinaunix.net/thread-2021818-1-1.html

     Linux下程序转化成进程的步骤:
       1) 内核将程序读入内存,并为程序分配一定的内存空间;
       2) 内核为进程分配一个PID,还有其他一些相关资源;
       3) 内核为进程保存PID和相应的状态信息,把进车功能放入到运行队列中等待运行。
       基本上也就这3个步骤了。下面顺便记记进程的内存映像:
       
       首先,什么叫做内存映像呢? 进程的内存映像,指的是内核在内存中如何存放可执行程序文件。注意了,这里的可执行程序文件和内存映像是有区别的,,具体是:
       1) 可执行程序是位于硬盘上的,而内存映像位于内存上;
       2) 可执行程序没有堆栈,因为只有当程序被加载到内存上的时候才会分配相应的堆栈
       3) 可执行程序是静态的,因为它还没运行,但是内存映像是动态的,数据是随着运行过程改变的;
       
       Linux下的内存映像布局一般有如下几个段(从低地址到高地址):
       1) 代码段: 即二进制机器代码,代码段是只读的,可以被多个进程共享;
       2) 数据段: 存储已初始化的变量,包括全局变量和初始化了的静态变量;
       3) 未初始化数据段: 存储未被初始化的静态变量,也就是BSS段;
       4) 堆: 用于存放动态分配的变量;
       5) 栈: 用于函数调用,保存函数返回值,参数等等;

  • 相关阅读:
    数据库中的float在实体中对应的竟是double
    VS2010让开发者受益新功能深入解读
    .net 缩略图 高品质
    不错.net图片水印类
    [转] asp.net url重写
    进制转换方法汇总
    c#中如何TextBox中輸入的換行符存入access數據庫
    .net高品质缩略图和低品质缩略图
    SQL Server中获得EXEC后面的sql语句或者存储过程的返
    C#动态创建图像的方法
  • 原文地址:https://www.cnblogs.com/crane-practice/p/3640164.html
Copyright © 2020-2023  润新知