进程状态以及环境变量

一、进程状态
1、正在运行的进程有以下几种状态
—— R运行状态(running):表示程序要么在运行中要么在运行队列里
—— S睡眠状态(sleeping):意味着进程在等待事件的完成(也叫做可中断睡眠)
—— D磁盘休眠状态(Disk sleep):这个状态的进程通常会等待I/O的结束(不可中共断睡眠)
—— T停止状态(stopped):通过发送SIGSTOP信号
来停止进程,被暂停的进程可以通过发送SIGCONT信号来让程序继续运行
—— X死亡状态(dead):是一个返回状态,不会在任务列表里看到这个状态
 
 S 和 T 的区别:S状态表明的是这个进程做的事情就是睡眠本身,T状态则表示这个进程没有做任何事情

2、 僵尸状态(Zombies):
当进程退出并且子进程没有读取到子进程退出的返回代码时,就会产生僵尸进程
僵尸进程会以终止状态保持在进程表中,并且会一直等待父进程读取退出状态代码,因此,只要子进程退出,父进程还在运行,但父进程没有读取子进程状态,则子进程进入Z状态
僵尸进程的危害:
如果子进程退出而父进程不读取子进程的状态,这时子进程的状态就必须被维持下去,
而维护退出状态需要用数据维护,这部分的数据属于进程基本信息,保存在task_struct(PCB)中,
如果一个父进程创建了很多子进程,都没有回收,这时,就会造成资源的浪费(内存泄漏)

3、孤儿进程:
如果一个子进程任在运行,而他的父进程提前退出,那么等到子进程运行完成后,就没有父进程来回收他了,这时,子进程就成为“孤儿进程”
孤儿进程被1号init进程领养,即由init进程回收

进程状态以及环境变量_第1张图片

二、进程优先级
1、概念
cpu资源分配的先后顺序就是指进程的优先权(priority)
优先权高的程序有优先执行的权利
2、查看系统进程

UIP:执行者的身份
PID:进程代号
PPID:其父进程代号
PRI:进程优先级,其值越小越早被执行
NI:nice值,表示进程可被执行的优先级的修正数值

三、环境变量
1、基本概念:
环境变量:一般值在操作系统中用来指定操作系统运行环境的一些参数
2、常见环境变量:
PATH*:指定路径的搜索命令
HOME*:指定用户的主工作目录(登陆到Linux时的默认目录)
HISTSIZE*:指保存历史命令的条数
SHELL*:当前Shell,他的值通常是/bin/bash

你可能感兴趣的:(linux)