赞
踩
进程指的是一个程序在操作系统中的动态执行,进程是操作系统资源分配和调度的基本单位。
线程是程序执行的最小单位,一个进程中会有一个或者多个线程。
进程与线程的最大区别在于: 进程是系统资源分配的基本单位,线程是系统调度的基本单位。
linux进程中有5个数据段:
BSS段(bss segment): 通常指用来存放程序中未初始化的全局变量中的一块内存区域。BSS段属于静态内存分配。
数据段(data segment): 通常指用来存放程序中已初始化的全局变量中的一块内存区域,也属于静态内存分配。
代码段(code segment/text segment): 中场指用来存放程序执行代码的一块内存区域,这部分区域的大小在程序运行前就已经确定,并且内存区域通常会被设置为只读权限,当然在某些架构中也允许代码段可写,即允许修改程序,在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。
堆(heap): 用于存放进程运行中被动态分配的内存段,大小并不固定,可动态扩张或缩减,当进程调用malloc等函数分配时,新分配的内存就被动态的添加到堆上,当调用free等函数释放内存时,被释放的内存就会从堆中被剔除(堆被缩减)。
栈(stack): 又称为堆栈,是用户存放程序临时创建的局部变量,当函数被调用时,其参数(本质是寄存器,eax,ebx)会被压入堆栈中,待调用函数执行完毕后,被压入堆栈的参数就会被pop出来。另外函数体中定义的临时变量会被存放于堆栈中,堆栈是由操作系统分配
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。