一.进程的基本概念
进程是程序在操作系统上运行的实例。
二.描述进程-------PCB(process control block)
1.进程管理
用结构体描述一个进程的属性。
用一个数据结构把多个进程的结构体组织到一起描述多个进程。
进程信息被放到一个叫做进程控制块(即PCB)的数据结构中,在Linux操作系统中的PCB是task_struct结构体。
2.task_struct结构体包含的内容有:
(1)进程ID(pid):进程的身份标识,在同一台主机的N个进程的ID不会相同。
(2)一组内存指针:存放代码和代码依赖的数据的地址。用来告诉进程对应的代码和依赖的数据在哪。
(3)辅助操作系统进行进程调度的属性:
a.进程的优先级:决定进程被调度到CPU的先后顺序。
b.上下文:保存进程上次在CPU中执行的现场。
c.记账信息:决定进程什么时候需要占用CPU,什么时候放弃CPU以及指令执行的条数。(统计一个进程什么时候让出CPU)
d.进程的状态。
(4)IO相关信息。(文件描述符表)
(5)信号相关的信息。
三.查看进程的信息
1.ps aux:查看所有进程的详细信息。(包括进程占用CPU和内存的情况,进程的状态,创建时间等)
2.ps aux | grep 要查看的进程名:只查看需要查看的进程的详细信息。eg:ps aux | grep hello:查看hello进程的信息。
3.ps -l:查看系统进程。输入此命令后会出现
第一行的UID表示执行者的身份。
PID:代表这个进程的代号。
PPID:表示父进程的代号。
PRI:代表该进程可被执行的优先级。数字越小,优先级越高,越早被执行。
NI:表示这个进程的nice值。nice值为正数,降低优先级;nice值是负数,提高优先级。调整优先级,就是调整进程的nice值。
四.进程的状态
(1)R:就绪状态。表示进程正在执行或即将执行。
(2)S:睡眠状态。(进程正在等待被执行)
(3)D:磁盘休眠状态,也叫不可中断睡眠状态。这个状态进程通常会等待IO的结束。
(4)T:停止状态。可以发送SIGSTOP信号停止进程,而被暂停的进程可以通过发送SIGCONT信号让进程继续运行。
(5)X:死亡状态。不会在任务列表里看到这个状态。
(6)Z:僵尸状态。