进程

1.进程(process):

进程是程序的一次执行的过程(一个程序可以对应多个进程)

进程是程序的实例         进行中的程序------正在运行中的程序

程序是静态的存放在硬盘中      进程是动态的存放在内存中

2.为什么需要进程?

为了描述和管理程序运行的动态过程

操作系统为了管理程序的动态运行过程,引入了进程

PCB(Process control block)进程控制块

3.程序的组成

程序的构成:.c // 程序源代码

a.out // 可执行程序

程序 = 代码 + 数据

标准 c程序 在内存中布局 //C标准规定的

linux下程序在内存中的典型布局:

堆(动态区)(a.out执行后才产生)

bss(未初始化的全局变量)

data(已初始化的全局变量)

text

进程 = PCB + 进程实体(text | data | bss | 堆栈)

PID // Process ID // 进程的id号

S // stauts // 进程状态

4.进程的生命周期

ps aux | grep 程序名 //主要查看某个儿进程的pid号及信息

ps -elf | grep 程序名 //主要查看 父子进程 包含PID PPID // parent pid

pstree -sp pid号  查看父子进程间的关系(以树状图的方式展现 包含pid号)

kill  --- 给进程发信号

当前进行状态:   R:运行或可运行(就绪态)

                            S:可中断 的睡眠态

                            D: 不可中断的睡眠态

                            T:暂停态

                            Z:僵尸态

kill -l:     查看kill可发送的信号

kill -9:        给指定的pid号发送终结信息

kill -18:             发送恢复

kill -19:                发送暂停

5.进程编程

进程 ---为了实现多任务

//1.创建进程

//2.进程的执行

//3.进程结束

//4.进程结束时资源回收 --- 僵尸态

6.进程的创建

fork:创建一个进程(child process 子进程)      通过复制 调用进程 复制的子进程

成功在父进程返回子进程的pid号     子进程返回0     失败返回-1且子进程没有被创建

pid号为一个非负整数,最小为1

7.父子进程间,数据相互独立,不受影响

父子进程运行的顺序不确定,取决于操作系统 ---先调度谁

n个fork同时前后运行:一共2的n次方个进程,新生成2的n次方-1个进程

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值