目录
1、PCB(Processing Control Block)
一、进程概述
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