进程与线程相关概念
进程与程序的关系
- 程序是包含可执行代码以及执行代码需要的数据等信息的文件,存放在磁盘等介质上。
- 当程序被操作系统装载到内存并分配给它一定资源后,此时可称为进程,伴随着资源的分配和释放.
- 程序是静态概念,进程是动态概念
进程与程序的组成
| 程序 | 进程 |
|---|---|
| text(代码段) | text()代码段 |
| rodata(只读数据段) | rodata(只读数据段) |
| data(数据段) | data(数据段) |
| bss(未初始化的段) | bss(未初始化的段) |
| 堆,栈,系统相关的信息(命令行参数,环境变量等) |
Linux下的进程结构
- 主要进程标示:
- 进程号: PID,PID可以唯一地标识一个进程,可以理解为人的身份证
- 父进程号: PPID,PPID反应进程之前的关系
- Linux中的进程包含三个阶段
- 数据段
存放全局变量,常量等 - 正文段
存放程序代码 - 堆栈段
存放函数的返回地址,函数的参数以及程序的局部变量.
- 数据段
- 进程状态(主要)
- 就绪态:进程所需要的条件已经准备完成,等待CPU调度
- 运行态( R): 进程占用CPU,并在CPU上运行
- 可中断的阻塞状态(S): 进程正在休眠,等待某个资源来唤醒它…可以被其他信号中断
- 不可中断的阻塞状态(D): 进程正在休眠,等待某个资源来唤醒它…不能被其他信号中断
- 暂停状态(T): 此时进程暂停接受某种处理
- 僵死状态(Z): 进程已经结束,但是还没有释放进程资源
- 消亡状态:最终状态,父进程调用wait函数族回收后,子进程彻底由系统删除

进程与线程相关命令
- pstree:
- 功能:以树形结构显示进程信息
- 参数: -p 在现实进程树时显示pid号
- 显示内容太长,查找需要的信息:
pstree -p 1> process_tree.txt
- ps (process status)
- 功能: 查看当前系统进程的工具
- 参数: (ps命令部分选项不能加 - )
- a 显示一个终端的所有进程,除去会话引线外
- u 显示进程的归属用户及内存的使用情况
- x 显示没有控制终端的进程
- j 显示进程状态信息
- -e 显示所有进程
- -f 全格式
- 常用:
ps aux 查看系统中所有进程
ps -ef 查看全格式的全部进程
- kill
- 功能: 给指定PID进程发送信号
- 参数: - l 查看所有的信号
- 使用方法
kill -信号的宏名 PID
kill -信号的编号 PID - 常用的宏/编号:
| 宏名 | 编 号 | 功能 |
|---|---|---|
| SIGKILL | 9 | 杀死进程 |
| SIGCONT | 18 | 让进程继续运行 |
| SIGSTOP | 19 | 让进程停止 |
| SIGCHLD | 17 | 子进程结束的时候,给父进程发送该信号 |
- killall
- 功能
- 用于杀死指定名字的进程
- kill杀死指定进程pid进程要使用grep配合使用,killall把这两个过程合二为一.
- 使用方法
killall -signame <command name>killall -signum <command name>
- eg:
killall -STGSTOP a.out
- 功能
- bg(backgroud)
- 功能:将一个挂起的进程再后台运行
- 使用方法:
bg job号 - eg:

- fg(foregroud)
- 功能:将后台的进程到前台运行.
- jobs—查看job号
- 进程地址的空间组成

1万+

被折叠的 条评论
为什么被折叠?



