进程与线程

进程与线程相关概念

进程与程序的关系

  • 程序是包含可执行代码以及执行代码需要的数据等信息的文件,存放在磁盘等介质上。
  • 当程序被操作系统装载到内存并分配给它一定资源后,此时可称为进程,伴随着资源的分配和释放.
  • 程序是静态概念,进程是动态概念

进程与程序的组成

程序进程
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
    • 常用的宏/编号:
宏名编 号功能
SIGKILL9杀死进程
SIGCONT18让进程继续运行
SIGSTOP19让进程停止
SIGCHLD17子进程结束的时候,给父进程发送该信号
  • 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号
  • 进程地址的空间组成
    进程地址的空间组成
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值