Linux中进程的优先级

Linux採用两种不同的优先级范围,一种是nice值。还有一种是实时优先级。

1.nice值

nice值得范围是-20~19,默认值是0。

越大的nice值意味着更低的优先级。也就是说nice值为-20的优先级最高。

2.实时优先级

实时优先级的范围是0~99。其值得意义与nice值相反。即:越高的实时优先级数值意味着进程优先级越高。

Linux的进程可分为普通进程和实时进程。实时进程都是一些对响应时间要求比較高的进程。因此实时进程的优先级比普通进程的优先级要高。

3.优先级比較

Linux中的这两种优先级划分,是不是难以理解?究竟哪种优先级高?假设一个进程同一时候含有上述两种优先级呢?

对于上述的两个问题。最好的回答方式就是用代码说话。

Linux 3.6内核中,关于进程的优先级。include/linux/sched.h文件里有例如以下的一段描写叙述:

1597 /*
1598  * Priority of a process goes from 0..MAX_PRIO-1, valid RT
1599  * priority is 0..MAX_RT_PRIO-1, and SCHED_NORMAL/SCHED_BATCH
1600  * tasks are in the range MAX_RT_PRIO..MAX_PRIO-1. Priority
1601  * values are inverted: lower p->prio value means higher priority.
1602  *
1603  * The MAX_USER_RT_PRIO value allows the actual maximum
1604  * RT priority to be separate from the value exported to
1605  * user-space.  This allows kernel threads to set their
1606  * priority to a value higher than any user task. Note:
1607  * MAX_RT_PRIO must not be smaller than MAX_USER_RT_PRIO.
1608  */
1610 #define MAX_USER_RT_PRIO    100
1611 #define MAX_RT_PRIO     MAX_USER_RT_PRIO
1612 
1613 #define MAX_PRIO        (MAX_RT_PRIO + 40)
1614 #define DEFAULT_PRIO        (MAX_RT_PRIO + 20)

通过上述的描写叙述和代码。我们能够看出:

1)
实时优先级的范围是0~99,nice值得范围是100~139。

2)实时优先级的优先级别要高于nice值。

那么假设几个进程同一时候含有上述两种优先级会怎么样呢?

优先级,而普通进程相应的则是nice值。这种话,理论上就不会出现一个进程同一时候含有两种不同的优先级。那事实是不是这种呢?再反复一遍上面的一句话:Linux中的进程分为实时进程和普通进程。当中实时进程相应的就是实时优先级。而普通进程相应的则是nice值。这种话,理论上就不会出现一个进程同一时候含有两种不同的优先级。

那事实是不是这种呢?

能够使用例如以下命令来查看进程的优先级:

ps -eo state,uid,pid,ppid,rtprio,time,comm

在我的机器上运行结果为:

[[email protected] linux-3.6]$ ps -eo state,uid,pid,ppid,rtprio,ni,time,comm
S   UID   PID  PPID RTPRIO  NI     TIME COMMAND
S     0     1     0      -   0 00:00:03 init
S     0     2     0      -   0 00:00:00 kthreadd
S     0     3     2     99   - 00:00:00 migration/0
S     0     4     2      -   0 00:00:00 ksoftirqd/0
S     0     5     2     99   - 00:00:00 migration/0
S     0     6     2     99   - 00:00:00 watchdog/0
S     0     7     2     99   - 00:00:00 migration/1
S     0     8     2     99   - 00:00:00 migration/1
S     0     9     2      -   0 00:00:00 ksoftirqd/1
S     0    10     2     99   - 00:00:00 watchdog/1

当中RTPRIO表示的是实时优先级,NI即nice值。我们能够非常清楚的看出。实时优先级和nice值是绝对不会反复存在的。

时间: 2024-10-15 02:46:17

Linux中进程的优先级的相关文章

android中进程的优先级

android中进程的优先级

Linux中进程控制块PCB-------task_struct结构体结构

Linux中task_struct用来控制管理进程,结构如下: struct task_struct { //说明了该进程是否可以执行,还是可中断等信息    volatile long state;   //Flage 是进程号,在调用fork()时给出 unsigned long flags;   //进程上是否有待处理的信号 int sigpending;    //进程地址空间,区分内核进程与普通进程在内存存放的位置不同 mm_segment_t addr_limit; //0-0xBF

linux中进程和计划任务的管理

前言: 在linux中,为了更好的了解和使服务器有序运行,管理员需要对进程和计划任务做相应的操作,以便能够更好的完成维护任务. 这里我们做一些简单的练习. 一.管理系统中的进程. (1)启动系统中的portmap服务,然后使用kill命令终止它的运行. Kill  进程的PID号 (2)查找系统中CPU占用率超过80%的进程,并强行终止该进程. 系统中一般是没有CPU超过80%的进程,可以从http://www.cpuburnin.com/downloads/cpuburn-in.tar.gz网

Linux中进程的管理

1.什么时进程?程序放置在存储媒体中(如硬盘,光盘,软盘,磁带等),为实体文件的型态存在进程:程序被触发后,执行者的权限与属性,程序的程序码与所需数据等都会被载入内存中,操作系统并给与这个内存内的单元一个识别码(pid),可以说,进程就是一个正在运行的程序.2.进程的状态R(Running):正在运行S(Sleep):程序最小化状态目前正在睡眠状态,但可唤醒(signal)D:不可被唤醒的睡眠状态,通常进程可能在等待I/O情况.T:停止状态(stop),可能是在工作控制(背景暂停)或除错(tra

linux中进程管理的三大工具及进程查看命令

1.进程概念 通俗的讲进程就是一个运行起来的程序,只占用系统的内存空间,并且有唯一的进程标识符(PID),但和程序又有区别,程序是指令加数据,是一个进程指令的集合,可以启用一个或者多个进程,是静态的,而且长久保存.进程是动态的,有生命周期,是动态产生的,进程一旦消失,内存空间就会跟着释放. linux内核存储进程的信息的格式是task_struct,多个task_struct组成链表task_list,通过这个两个来定义和管理进程. 进程的分类: 1.根据不同模式: 1.1.守护进程 :系统一开

Linux基础进程管理优先级

一.进程优先级 Linux进程调度及多任务 每个cpu(或者cpu核心)在一个时间点上只能处理一个进程,通过时间片技术,Linux实际能够运行的进程(和线程数)可以超出实际可用的cpu及核心数量.Linux内核进程调度程序将多个进程在CPU核心上快速切换,从而给用户多个进程在同时运行的印象: 相对优先级nice 由于不是每个进程都与其他进程同样重要,可告知进程调度程序为不同的进程使用不同的调度策略,常规系统上运行的大多数进程所使用的调度策略为 SCHED_OTHER(也称为SCHED_NORMA

Linux中进程与线程的概念以及区别

linux进程与线程的区别,早已成为IT界经常讨论但热度不减的话题.无论你是初级程序员,还是资深专家,都应该考虑过这个问题,只是层次角度不同罢了.对于一般的程序员,搞清楚二者的概念并在工作中学会运用是其思考的主要问题:对于资深工程师,如何在系统层面实现两种技术及其各自的性能和实现代价是其思考的主要问题.由此可见进程和线程在IT界的重要地位. 进程和线程是操作系统的基本概念,它们之间既有区别又有联系.从定义来看,它们比较抽象,很难理解.今天给大家打个比方,教大家用类比的方法去理解它,掌握它.其实,

linux中进程和计划任务的管理(二)命令补充

Ps命令:查看静态的进程统计信息   Ps :不带任何参数将只显示当前用户会话中打开的进程 . Ps  aux :将以简单列表的形式显示出所有进程信息 注释: User:启动该进程的用户账号的名称 Pid:该进程在系统中的数字ID号,在当前系统中是唯一的 Tyy:表明该进程在哪个终端上运行,"?"表示未知或不需要终端 Stat:显示该进程的状态,S(休眠),R(运行),Z(僵死),〈 (高优先级),N(低优先级),s(父进程),+(前台运行),对处于僵死状态的进程应该予以手动终止 St

Linux中进程在前后台的切换

把进程放入后台执行 tar -zcf etc.tar.gz /etc &把进程放入后台暂停 在命令执行的过程中,按下ctrl+z 查看后台的命令 jobs[[email protected] temp]# jobs[1]+ Stopped top[2]- Done tar -zcf etc.tar.gz /etc 将后台暂停的工作回复到前台执行 fg 工作号 将后台暂停的工作回复到后台执行 bg 工作号