进程

进程的基本概念

PCB通常记载进程之相关信息,包括:

程序计数器:接着要运行的指令地址。
进程状态:可以是new、ready、running、waiting或 blocked等。
CPU暂存器:如累加器、索引暂存器(Index register)、堆栈指针以及一般用途暂存器、状况代码等,主要用途在于中断时暂时存储数据,以便稍后继续利用;其数量及类因电脑架构有所差异。
CPU排班法:优先级、排班队列等指针以及其他参数。
存储器管理:如标签页表等。
会计信息:如CPU与实际时间之使用数量、时限、账号、工作或进程号码。
输入输出状态:配置进程使用I/O设备,如磁带机。

进程控制块PCB的组织方式:
1.线性表方式:不论进程的状态如何,将所有的PCB连续地存放在内存的系统区。这种方式适用于系统中进程数目不多的情况。
2.索引表方式:该方式是线性表方式的改进,系统按照进程的状态分别建立就绪索引表、阻塞索引表等。
3.链接表方式:系统按照进程的状态将进程的PCB组成队列,从而形成就绪队列、阻塞队列、运行队列等。


如果想查看包含其他使用者的进程,和PID,CPU占有率,记忆体使用情况,运行状态等,可以输入ps -au

USER:进程拥有者,示例中是root。

PID:进程ID,用户ID为UID,父进程ID为PPID

%CPU:占用的CPU使用率,ID号为1的进程为0

%MEM:占用的物理内存百分比,ID号为1的进程为0

VSZ:占用的虚拟内存量,ID号为1的进程为194184

RSS:占用的固定的内存量,ID号为1的进程为6536

TTY:终端的次要装置号码(minor device number of tty),示例中的TTY列都是“?”,是表示这些进程不属于任何TTY,因为它们是由系统启动的,tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。

STAT:该进程的状态,有下一个板块的几个状态,D,R,S,T,Z是ps指令标识进程的5种状态码

TIME:进程已消耗的CPU时间

CMD:启动进程的命令

其中

NI:谦让度

WCHAN:正在等待的进程资源

Linux上进程的五种状态:

1.R——Runnable(运行):正在运行或在运行队列中等待

2.S——sleeping(中断):休眠中,受阻,在等待某个条件的形成或接收到信号

3.D——uninterruptible sleep(不可中断):收到信号不唤醒和不可运行,进程必须等待直到有中断发生

4.Z——zombie(僵死):进程已终止,但进程描述还在,直到父进程调用wait4()系统调用后释放

5.T——traced or stoppd(停止):进程收到SiGSTOP,SIGSTP,SIGTOU信号后停止运行

Linux进程5种状态之间的转换关系

状态后缀表示:

<:优先级高的进程

N:优先级低的进程

L:有些页被锁进内存

s:进程的领导者(在它之下有子进程)

l:ismulti-threaded (using CLONE_THREAD, like NPTL pthreads do)

+:位于后台的进程组

一、 僵尸进程

僵尸进程: 一个父进程利用fork创建子进程,如果子进程退出,而父进程没有利用wait 或者 waitpid 来获取子进程的状态信息,那么子进程的状态描述符依然保存在系统中。

二、孤儿进程

孤儿进程:一个父进程退出, 而它的一个或几个子进程仍然还在运行,那么这些子进程就会变成孤儿进程,孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集的工作

posted @ 2019-07-22 15:04  独孤剑—宇枫  阅读(243)  评论(0编辑  收藏  举报