进程调度

Linux进程调度:

在linux2.5内核系列中,开始采用O(1)调度程序,但是其缺少交互进程。在2.6内核系统开发初期,引入新的进程调度算法-反转楼梯最后期限调度算法(Rotating Staircase Deadline scheduler)(RSDL)。该算法吸取了队列理论,将公平调度的概念引入了Linux调度程序,最终在2.6.23内核版本中替代了O(1)调度算法。被称为“完全公平调度算法”,简称CFS.

策略:

  进程优先级:

linux采用两种不同的优先级范围:

1)nice值。范围是-20~19,默认值是0,nice值越大,优先级越低-nice似乎意味着对系统中其他进程更“优待”。nice值越小,优先级越高,会获得更多的CPU使用时间。

2)实时优先级。其值可配置,范围是0~99,默认是0,与nice值意义相反,实时优先级数值越大表示进程优先级越高,任何实时优先级的进程都比普通进程的优先级高。

ps -l看到当前正在运行的进程的详细信息其中

 

F:表示进程旗标,标识进程所拥有的权限,当我切换到root的时候为4表示拥有root权限,为0仅有fork()权限

S:表示进程当前的状态

    R:当前正在运行(RUNNING)

    S:睡眠(SLEEP)

    D:不可中断

    T:停止(STOP)

    Z:僵尸进程(ZOMBIE)

UID:拥有该进程用户的用户ID

PID:进程号

PPID:该进程父进程的进程好

C:CPU使用百分比

PRI:优先级

NI:nice值

ADDR/SZ/WCHAN:都与内存有关

TTY:登陆者的终端,和远程登陆有关

TIME:占用CPU时间

CMD:造成此进程的命令

 时间片:

时间片是一个数值,表示一个进程在被抢占之前持续运行的时间。在多数操作系统中,默认的时间片很短,通常是10ms。但是Linux的CFS(完全公平调度)调度器并不是将时间片直接分配给进程,而是将处理器的使用比划分给进程。这个值与系统负载密切相关,还受到nice值的影响,nice值越大(优先级越低),比重越低;更小nice值(优先级越高)将获得更高的比重。

在多数操作系统,是否将一个进程立刻投入运行(即抢占当前进程),完全取决于进程优先级和是否有时间片。Linux使用CFS调度器,抢占时机取决于新的可运行程序消耗了多少处理器使用比。如果消耗使用比比当前进程小(即nice值越大优先级较低的进程),则可以立即投入运行,抢占当前进程,否则,推迟其运行。

 

 

 

posted @ 2018-04-23 11:21  feifeizhuzhu  阅读(122)  评论(0编辑  收藏  举报