进程基础知识

从程序到进程做了什么事情?

(1)未执行的程序是静态文件,存放在磁盘里面,当程序开始执行时,内核将程序读入内存,为程序镜像分配内存空间。
(2)内核为该进程分配进程标志符PID。
(3)内核为该进程保存PID及相应的进程状态信息。
(4)每一个进程在内核当中都有一个维护进程相关内容的进程控制块(pcb),linux下的pcb是一个stack_struct的结构体。

进程运行的虚拟内存

这里写图片描述

栈是由高地址向低地址生长的,而堆是由低地址向高地址生长的。

虚拟内存分段&变量存储空间

段名组成来源
代码段.text可执行文件
数据段.data bss可执行文件
堆栈段heap stack请求
变量位置
经过初始化的全局变量和静态变量.data
未经初始化的全局变量和静态变量.bss
函数内部声明的局部变量stack
const修饰的全局变量.text
const修饰的局部变量stack
字符串常量.text

.bss(Block Started by Symbol)存放程序中未初始化的全局变量和静态变量,程序执行之前BSS段会自动清0。

进程的状态

(1)初始态
(2)就绪态 (等待cpu,抢时间碎片,这个时间很短很短,你几乎察觉不到。)
(3)运行态 (此时进程已经获得cpu了,有执行权。)
(4)挂起态(sleep的时候就是挂起态,此时没有执行权。
终止态)
(5)终止态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值