c/c++:进程(PCB进程控制块、进程状态、exec族函数、进程控制)

目录

一、进程概述

1、PCB(Processing Control Block)

2、进程状态

二、进程创建

2.1 进程ID

2.2 进程的创建

2.3 父子进程

三、exec族函数

四、进程控制

4.1 结束进程

4.2 孤儿进程

4.2 僵尸进程

4.3 进程回收

wait

waitpid


 

一、进程概述

1、PCB(Processing Control Block)

Linux内核的进程控制块是task_struct结构体。理解该结构体中包含的如下信息:


进程id。系统中每个进程有唯一的id,在C语言中用pid_t类型表示,其实就是一个非负整数。
进程的状态,有就绪、运行、挂起、停止等状态。
进程切换时需要保存和恢复的一些CPU寄存器。
描述虚拟地址空间的信息。
描述控制终端的信息。
当前工作目录(Current Working Directory)。
umask掩码。
文件描述符表,包含很多指向file结构体的指针。
和信号相关的信息。
用户id和组id。
会话(Session)和进程组。
进程可以使用的资源上限(Resource Limit)。

 

2、进程状态

进程有五种状态, 分别是: 创建态, 就绪态, 运行态, 阻塞态, 退出态。

创建态  == 初始态
阻塞态  == 挂起态

创建态: 初始化系统资源
就绪态: 不能运行, 因为没有cpu资源, 和别的进程抢cpu
运行态: 进程抢到了cpu, 将cpu时间使用完之后, 会再次失去cpu -> 就绪态
阻塞态: 运行的进程(有cpu资源), 受到了某些条件的干扰, 失去了cpu -> sleep(10), 睡醒了之后 -> 就绪态

 

二、进程创建

 

2.1 进程ID

  • 查看进程
 ps aux / ajx
  	a: 显示当前终端下的所有的程序, 包括所有的用户
  	u: 显示用户信息
  	x: 打印和tty终端先关的信息
  	j: 显示更多的用户信息
  • 杀死进程
 $ kill -l
   1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
   6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
  11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
  16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
  21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
  26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
  31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
  38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
  43) SI
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值