进程与线程

进程与线程

1.进程(process)

定义:进行中的程序 - - 正在运行中的程序

进程 --- 程序的一次执行的过程

进程 是程序的一个实例

2.进程 vs 程序      

1)进程是运行后的程序

2)一个程序可以对应多个进程

3)./ a.out是程序与进程的枢纽

4)程序在内存上运行变为进程

3.进程的作用,为什莫需要进程

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

2)是为了操作系统 管理 程序动态运行的过程

3)知道程序运行到什么位置 PCB(Process Control Block)

4.进程的组成

程序的组成

.c //程序源代码

a.out // 可执行程序

程序 = 代码 + 数据

1)代码区: 标准 c程序 在内存中的布局

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

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

栈 堆 bss data text

PCB

5.进程的生命周期

进程的工作状态(三态模型)

进程状态

linux系统

R ---- 运行或可运行 ---就绪态

S ----- 可中断的睡眠态

D ----- 不可中断的睡眠态

T ---- 暂停态

Z -----僵尸态

1)表现形式:宏观并行,微观串行

深度睡眠:不可中断态

浅度睡眠:可中断态

命令符: PS 反应当前状态进程的信息

PStree 进程之间的关系

ps aux | grep 程序名

主要查看 某个进程的pid号 及 状态信息

ps - elf | grep 程序名

主要查看 父子进程 包含 pid ppid

pstree -sp uid号 查看父子进程之间的关系

kill //杀死----给进程发信号

kill -l 查看kill 的可以发送信息

kil -9 uid 号 结束uid 对应的程序

kill -19 uid号 暂停uid对应的程序

kill -18 uid号 继续运行暂停的Uid对应的程序

killall 对全部进程进行操作

格式为: killall -操作序号 对应程序名//

加号表示程序运行的 前台 ,前景 。是对进程状态的修饰

进程的创建

1.fork()

pid_t fork(void)

功能: 创建一个子进程()

返回值:

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

注意: pid号 实际上是一个 非负 整数

最小的pid号 --- 1

!!创建成功会返回两次,一次在父进程,返回大于0

一次在子进程返回0

32位的平台,每个进程拥有独立的4G空间(3G用户空间,1G内核空间)(虚拟的)

2.每个进程拥有自己独立的4G空间

3.父子进程间数据互相独立。各自拥有独立的空间。

4.父子进程运行顺序,不确定。取决于操作系统—先调度谁。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值