Linux下进程相关概念

进程从何而来:进程的出现最初是在UNIX下,用于表示多用户、多任务的操作系统环境下,应用进程在内存环境中基本执行单元的概念。进程是UNIX操作系统基本概念,是操作系统资源的分配的最小单位,UNIX操作系统下的用户管理和资源分配等工作几乎都是操作系统通过对应进程的控制来实现的。

进程的定义
1.一个正在计算机上执行的程序实例
2.担当分配系统资源(CPU时间片、内存等)的实体
3.由一组执行的指令,一个当前的状态和一组相关的系统资源表征的活动单元

区别一下进程与程序之间的区别
1.进程有一定的声明周期,而程序是时指令的集合,本身并无“运动”的含义。没有建立进程的程序不能作为一个独立的单位得到操作系统的认可。
2.一个进程只能对应一个程序,而一个程序可以对应多个进程。

Linux下的进程
每一个进程的描述信息都放在一个结构体中—PCB(process control block)进程控制块。Linux中描述进程控制块的结构体叫做:task_struct

进程的描述信息
1.标识符:PID,操作系统通过PID快速找到进程;CPU以PID来调度进程。
2.状态:任务状态,退出码,退出信号等
3.优先级:相对于其他进程的优先级
4. 程序计数器:程序中即将被执行的下一条指令的地址
5. 内存指针:包括程序代码和进程相关数据的指针,还有其他进程共享的内存块的指针
6. 上下文数据:进程执行时处理器的寄存器中的数据。
7. I/O状态信息:包括显示的I/O请求,分配给进程的I/O设备和进程使用的文件列表。
8. 记账信息:可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
等等

Linux下进程状态
1.R运行状态:并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列里。
2. S睡眠状态(可中断):意味着进程在等待事件完成(这里的睡眠有时候也叫做可中断睡眠状态)
3. D不可中断睡眠状态:在指定任务没有完成之前,进程的睡眠状态时不可被打断的
4. T停止状态:可以通过发送SIGSTOP信号给进程来停止该进程的运行。这个被暂停的进程可以通过发送SIGCONT信号让进程继续运行 (ctrl z)。
5. t跟踪状态:不做讨论。
6. X死亡状态:这个状态只是一个返回状态,你不会在任务列表里看到他(它存在的时间非常短暂)。
7. Z僵尸状态:详解在后。。。

僵尸进程
1.子进程先于父进程退出
2.子进程退出为了保存自己的退出原因,因此这个退出后资源不会被完全释放,等待父进程来获取退出状态,然后释放子进程所有资源

孤儿进程(Linux下没有实际存在的孤儿进程,只是被描述成这样)
父进程先于子进程退出,子进程会被1号(init)进程收养。init进程是操作系统的进程,负责回收子进程

进程优先级PRI与NI
PRI:进程的优先级,此值越小进程的优先级越高。
NI:我们所说的nice值,表示进程可被执行的优先级的修正数值。加入nice之后,PRI = PRI(new) = PRI(old) + nice(NI的取值范围是-20至19)

//进程调试前使用
nice -n -5 ./test
//进程调试中使用
renice -5 -p (pid)
//top命令更改已经存在进程的NI值
  top后按“r”->输入进程的PID->输入NI值

如果你觉得这些东西太简单了,一点实际用处也没有,你可以点进来看看这一篇进阶用法

你可能感兴趣的:(Linux下进程相关概念)