本文共 1025 字,大约阅读时间需要 3 分钟。
目录
- 进程状态表(stat)
- 进程简介
- 进程调度(nice 值,renice / nice 命令)
进程状态表(stat)
STAT代码 | 说明 |
S | 睡眠。通常是在等待某个事件的发生,如一个信号或有输入可用 |
R | 运行。严格说,是‘可运行’,即在运行队列中,处于正在执行或即将运行状态 |
D | 不可中断的睡眠(等待)。通常是在等待输入或输出完成 |
T | 停止。通常是被 shell 作业控制所停止,或者进程正处于调试器的控制之下 |
Z | 死(Defunct)进程或僵尸(zombie)进程 |
N | 低优先级任务,nice |
W | 分页。(不适用于 2.6 版本开始的 Linux 内核) |
s | 进程是会话期首进程 |
+ | 进程属于前台进程组 |
l(小写‘L’) | 进程是多线程的 |
< | 高优先级任务 |
进程
- 进程是动态的,相对于静态的程序文本文件。
- 一个进程是:一个或多个线程以及这些线程所需要的系统资源的集合。
进程调度
- 在一台单处理器计算机上,同一时间只能有个一进程可以运行,其他进程处于等待运行状态。每个进程轮到的运行时间(即:时间片)是相当短暂的,这就给人一种多个程序在同时运行的假象。
- Linux 内核用进程调度器来决定下一个时间片应该分配给哪个进程。它的判断依据是进程的优先级。优先级高的进程运行得更为频繁。而其他进程,如低优先级的后台任务运行的就不是非常频繁。在 Linux 中,进程的运行时间不可能超过分配给它们的时间片,它们采用的是抢占式多任务处理,所以进程的挂起和继续运行无需彼此之间的协作。但早一些的系统,如微软的 Windows 3.x,通常需要进程明确地退出时间片,然后其他进程才能继续运行!
- 在一个如 Lunix 这样的多任务系统中,多个程序可能会竞争使用同一个资源。在这种情况下,执行短期的突发性工作并暂停运行来等待输入的程序,要比持续占用处理器来进行计算或不断轮询系统来查看是否有新的输入到达的程序要更好。我们称表现良好的程序为 nice 程序。操作系统根据进程的 nice 值来决定它的优先级,一个进程的 nice 值默认为 0 并将根据这个程序的表现而不断变化。长期不间断运行的程序的优先级一般会比较低,而(例如)暂停来等待输入的程序会得到奖励。这可以帮助与用户进行交互的程序保持及时的响应性。在程序等待用户输入时,系统会增加它的优先级,这样,当它准备继续运行时,它就会有比较高的优先级而能优先执行。
- nice 值相关的命令:nice / renice
转载地址:http://fclsi.baihongyu.com/