网站全局搜索如何做,网店代运营需要多少钱,首页重庆网站建设,开发app学什么编程语言进程
在linux系统中#xff0c;触发任何一个事件时系统会将其定义为一个进程#xff08;一个程序开始执行#xff09;#xff0c;系统会给这个进程分配一个进程ID统称为PID。 程序#xff1a;通常是二进制文件#xff0c;放置于存储媒介如硬盘中。
进程#xff1a;当存…进程
在linux系统中触发任何一个事件时系统会将其定义为一个进程一个程序开始执行系统会给这个进程分配一个进程ID统称为PID。 程序通常是二进制文件放置于存储媒介如硬盘中。
进程当存储在硬盘中的程序被触发即由用户调用开始执行时会将其加载到内存中开始与cpu交互即开始执行这个程序执行中的程序就称为进程。
进程pcb 如图当我们打开计算机时操作系统会自动加载然后我们查看进程就能看到如此多的进程已经是在运行中了。而我们计算机运行的本质就是一个个进程执行的结果。操作系统也就是一个功能更多更复杂的一个进程。
但是如此多的进程计算机当然需要对其进行管理不同功能的进程会有优先级的不同状态的不同CPU一次就只能处理少量的进程就算是八核十六核CPU也不可能并行处理如此多的进程而且进程需要空间存放相应的数据所以操作系统就会对所有的进程进行整合与管理使用PCB的数据结构模式对每一个进程进行描述和组织。
而进程不是一个个相同的数据不能如同整形和字符型数据一样简单的定义所以linux操作系统使用一个结构体去定义描述一个进程struct task_struct{........}里面包含进程IDPID进程状态优先级信息等非常多的对进程的描述这里只是列举了很少的几点。这个结构体也叫进程控制块PCB:process control bolck没创建一个进程的时候操作系统就会为这个进程创建一个PCB讲所有的PCB通过链表的形式链接起来通过对PCB的管理从而实现对进程的管理。
进程管理
查看进程
ps指令ps指令是静态指令可以查看某个时间点下的进程。 ps aux指令可以查看系统中所有的进程。 ps -lA指令也是查看系统的所有进程但是显示的属性是不同的这些属性都是来自PCB中截取。
选项参数
-A所有的进程均显示与-e有同样的效果
-a不显示与终端有关的所有进程。
-u有效使用者(effective user)相关的进程。
x通常与a一起使用可列出比较完整的信息。
输出格式
l较长较详细的将该PIF的信息列出。
j任务的格式(job format)。
-f做一个比较完整的输出。
一般最常使用的指令是ps -l 可以只查看自己bash的进程。ps aux 可以查看系统所有运行中的进程。
进程状态 当我们使用ps -l查看进程时看到显示出了多种进程的属性
F代表进程标识(process flags)说明这个进程的权限4代表root管理员权限。1代表此子进程仅执行复制(fork)没有实际执行(exec)。
S代表这个进程的状态(STAT),主要的状态有
1、R:running运行中可能正在执行也可能是在执行队列中都用R标识
2、Ssleep睡眠状态该进程没有在执行但是进程PCB还在资源也没有释放是可以被唤醒的。
3、Ddisk sleep不可被唤醒的深度睡眠。通常这个进程可能在等待I/O的情况。这种进程只能被资源唤醒即使我们使用kill -9也杀不掉。
4、T停止状态我们可以使用kill -19让一个进程进入停止状态进程处于停止状态通常是由于接收了一个信号例如SIGSTOPCtrl-Z产生的SIGTSTP信号或者SIGTSTP通常由shell的暂停命令引发。这种状态下的进程被挂起暂时停止执行但可以通过发送SIGCONT信号来恢复执行。
tracing Stop跟踪停止状态 进程处于跟踪停止状态通常是由于调试器如GDB或者ptrace系统调用的作用。在这种状态下进程被调试器所追踪通常是因为调试器在进行单步执行、观察或者修改进程的内存等操作。这种状态下的进程暂时停止执行直到调试器允许其继续执行。这两种都是属于T停止状态。
5、Zzombie 僵尸状态进程已经终止但是无法被删除至内存外一般由于子进程结束并发送状态码给父进程但是父进程一直没有接收。这样会导致进程的内存泄漏一般尽量避免。
IDUID:拥有者 PID:进程号唯一用以区分不同进程 PPID父进程的PID。
Ccpu使用率
PRI/NIpriority代表优先级此值小优先级越高nice值与PRI一起标识一个进程的优先级nice值加上PRI值就是完整的优先级因为进程在执行过程中无法对优先级进行调整所以引入nice值就是优先级数值的调整值。
ADDR/SZ/WCHAN内存有关的属性addr是kernel function 指出该进程在内存的哪个部分如果是R一般显示【-】。sz代表占用了多少的内存。wchan代表目前进程是否运行与addr一样运行中就显示【-】。
TTY登录者的终端位置若是远程登陆则使用动态终端接口名称(pts/n)。
TIME使用的cpu时间进程实际花费cpu运行的时间而不是系统时间。
CMDcommand表示造成该进程触发的进程的命令是什么。