linux设置优先级继承linux设置优先级
linux进程调度的三种策略是什么?
进程调度策略就是调度系统种哪一个进程来CPU运行。
这种调度分2层考虑。
第一层,进程状态这个是最优先考虑的,也就是说优先级最高的。
在linux中只有就绪态的进程才有可能会被调度选中然后占有CPU,其它状态的进程不可能占有的到CPU。
下面是linux中进程的状态TASK_RUNNING:就绪状态,得到CPU就可以运行。
TASK_INTERRUPTIBLE:浅度睡眠,资源到位或者受到信号就会变成就绪态。
TASK_UNINTERRUPTIBLE:深度睡眠,资源到位就会进入就绪态,不响应信号。
TASK_ZOMBIE:僵死态,进程exit后。
TASK_STOPPED:暂停态,收到SIG_CONT信号进入就绪态。
第二层,其实真正在操作系统中的实现,就是所有就绪态进程链接成一个队列,进程调度时候只会考虑这个队列中的进程,对其它的进程不考虑,这就实现了第一层中的要求。
接下来就是就绪队列内部各个进程的竞争了。
Linux采用3种不同的调度政策,SCHED_FIFO(下面简写成FIFO,先来先服务),SCHED_RR(简写成RR,时间片轮流),SCHED_OTHER(下面简写成OTHER)。
这里大家就能看出一个问题,采用同等调度政策的进程之间自然有可比性,Linux3种调度政策并存,那么不同调度政策间的进程如何比较呢?可以说他们之间根本就没有可比性。
其实在调度时候,调度只看一个指标,那就是各个进程所具有的权值,权值最大的且在可执行队列中排在最前面的就会被调度执行。
而权值的计算才会设计到各方面因素,其中调度政策可以说在计算权值中,份量是最重的。
为什么Linux要这么干呢?这是由于事务的多样性决定的,进程有实时性进程和非实时性的进程2种,FIFO和RR是用来支持实时性进程的调度,我们看一下这3种政策下权值的计算公式就明白了:FIFO和RR计算公式,权值=1000+进程真正的运行时间OTHER计算公式,当时间片为0时,权值=0.当时间片不为0时候,权值=剩余时间片+20-nice,同时如果是内核线程有+1的小加分,这是因为内核线程无需用户空间的切换,所以给它加了一分,奖励他在进程切换时候开销小的功劳。
时间片好理解,那么nice这个值,用过linux系统的人都知道,这是一个从unix下继承过来的概念,表示谦让度,是一个从20~-19的数,可以通过nice和renice指令来设置。
从代码中也能看到值越小就越不会谦让他人。
从这里我们看出FIFO和RR至少有1000的基数,所以在有FIFO和RR调度政策进程存在时,OTHER进程是没有机会被调度的到的。
从权值计算公式同时也能看出,FIFO先来先服务的调度政策满足了,但RR这个时间片轮流的调度如果按照这种权值计算是不能满足时间片轮流这一概念的。
这里只是权值的计算,在调度时候对RR政策的进程特殊处理。
以上都是权值计算,下面看看真正的调度过程,首先是对RR政策进程的特殊处理,如果当前进程采用的RR政策,那么看他的时间片是否用完,用完了就踢到就绪队列尾部,同时恢复他的时间片。
然后是便利整个就绪队列,找到第一个权值最大的进程来运行。
整体调度效果就是:如果有FIFO和RR政策的进程,就优先调度他们2个,他们之间看已执行时间长短决定胜负,而2种政策内部则遵守各自调度政策。
而OTHER只有在前面2种不存在于就绪队列时候才有可能执行,他们实际也是轮流执行,但他们之间是靠剩余时间和NICE值来决定胜负。
同时就绪队列中排在最前面的最优先考虑在同样权值情况下。
linux内核由哪几部分组成,简述各部分作用?
一个完整的Linux内核一般由5部分组成,它们分别是内存管理、进程管理、进程间通信、虚拟文件系统和网络接口。
1、内存管理
内存管理主要完成的是如何合理有效地管理整个系统的物理内存,同时快速响应内核各个子系统对内存分配的请求。
Linux内存管理支持虚拟内存,而多余出的这部分内存就是通过磁盘申请得到的,平时系统只把当前运行的程序块保留在内存中,其他程序块则保留在磁盘中。在内存紧缺时,内存管理负责在磁盘和内存间交换程序块。
2、进程管理
进程管理主要控制系统进程对CPU的访问。当需要某个进程运行时,由进程调度器根据基于优先级的调度算法启动新的进程。:Linux支持多任务运行,那么如何在一个单CPU上支持多任务呢?这个工作就是由进程调度管理来实现的。
3、进程间通信
进程间通信主要用于控制不同进程之间在用户空间的同步、数据共享和交换。由于不用的用户进程拥有不同的进程空间,因此进程间的通信要借助于内核的中转来实现。
一般情况下,当一个进程等待硬件操作完成时,会被挂起。当硬件操作完成,进程被恢复执行,而协调这个过程的就是进程间的通信机制。
4、虚拟文件系统
Linux内核中的虚拟文件系统用一个通用的文件模型表示了各种不同的文件系统,这个文件模型屏蔽了很多具体文件系统的差异,使Linux内核支持很多不同的文件系统。
5、网络接口
网络接口提供了对各种网络标准的实现和各种网络硬件的支持。网络接口一般分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。
Linux采用了哪几种调度方法?各用于哪类进程的调度?
你问的是进程调度吧Linux进程调度采用的是抢占式多任务处理,所以进程之间的挂起和继续运行无需彼此之间的协作。调度方式:时间片,优先级,还有就是时间片加优先级混合,默认是第三种
linux下top命令参数解释?
-d:number代表秒数,表示top命令显示的页面更新一次的间隔。默认是5秒。
-b:以批次的方式执行top。
-n:与-b配合使用,表示需要进行几次top命令的输出结果。
-p:指定特定的pid进程号进行观察。
在top命令显示的页面还可以输入以下按键执行相应的功能(注意大小写区分的):
?:显示在top当中可以输入的命令
P:以CPU的使用资源排序显示
M:以内存的使用资源排序显示
N:以pid排序显示
T:由进程使用的时间累计排序显示
k:给某一个pid一个信号。可以用来杀死进程
r:给某个pid重新定制一个nice值(即优先级)
q:退出top(用ctrl+c也可以退出top)
linux提升进程优先级重启进程是否有影响
提升进程优先级影响的是进程对CPU使用的频率。不要调太高就不会影响到正常的进程。一部分系统进程是需要一直占用CPU的,当你调到最高时,将那些进程从运行态挤到阻塞态,那样你的系统就会被影响到。我们现在CPU都是多核的,所以一般没必要调整进程的nice值。
linux中怎么用C语言设置程序优先级
linu上的c语言优先级和一般的C语言优先级是一样的。一般是 算术 位 (<<>>)关系 位 逻辑 。这么一个优先级顺序 。
linux提升进程优先级重启进程是否有影响
提升进程优先级影响的是进程对CPU使用的频率。不要调太高就不会影响到正常的进程。一部分系统进程是需要一直占用CPU的,当你调到最高时,将那些进程从运行态挤到阻塞态,那样你的系统就会被影响到。我们现在CPU都是多核的,所以一般没必要调整进程的nice值。
...linux系统进程优先级最高优先级是-20,最低优先级是19吗?
linux系统的优先级数确实是这样的。需要注意的是普通用户只能在0~19之间调整应用程序的优先权值,只有超级用户有权调整更高的优先权值(从-20~19)。linux系统属于这种数值越小优先级越高,数值越大优先级越低的系统。windows属于那种优先数值大的优先级高的系统。windows是优先数值大的优先级高的系统...
Linux编程线程优先级,主程序创建了两个线程A、B
可以通过设置线程优先级。在创建线程前使用pthread_attr_init对创建线程的参数pthread_attr_t进行初始化,其中包括优先级参数,然后在创建线程时传入参数即可。具体使用方法可以参考man手册
Linux里面nice值作用是什么?
NICE值. nice值应该是熟悉Linux\/UNIX的人很了解的概念了,我们都知它是反应一个进程“优先级”状态的值,其取值范围是-20至19,一共40个级别。. 这个值越小,表示进程”优先级”越高,而值越大“优先级”越低。. 我们可以通过nice命令来对一个将要执行的命令进行nice值设置,方法是:. [root@...
Linux系统中的进程调度介绍
在linux下,用户程序可以通过sched_setscheduler系统调用来设置进程的调度策略以及相关调度参数;sched_setparam系统调用则只用于设置调度参数。这两个系统调用要求用户进程具有设置进程优先级的能力(CAP_SYS_NICE,一般来说需要root权限)(参阅capability相关的文章)。通过将进程的策略设为SCHED_FIFO或SCHED_RR,使得进程变为...
linux 路由优先级的问题
路由表中的信息有优先级的。netmask位数高的优先级高。高 掩码是30的内网eth1路由 中 掩码是29的外网eth0路由 低 掩码是0的default默认路由 除非eth0和eth1工作在桥接模式,否则不会出现多个网卡同时出现广播的情况。
linux查看线程优先级命令
数字越大,表示进程的优先级越低。默认时候,进程的优先级是0。查看进程优先级有两个办法:ps和top。top命令显示的NI列的值。或者可以使用ps -efl来查看,也是在ni列表示了进程的优先级。《Linux就该这么学》 一起学习,进程的优先级可以在程序运行的时候设置,也可以在程序运行过程中动态的修改。
【Linux】RedHat能像Windows2003那样给系统进程设置优先级吗?
可以, renice,详细 RENICE(8) BSD System Manager's Manual RENICE(8)NAME renice -- alter priority of running processesSYNOPSIS renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...] renice -n increment [[-p] pid ...] [[-g] pgrp ...]...
文邰复脉: 可以用nice和renicenice设定进程相对优先级 -20~19 共40个级别,nice值越大,优先级越低renice 重新设定优先级 renice [nice level] [PID] -n:指定权限-u:指定用户姓名或ip -g:指定组 -p:进程PID例: renice +1 987 -u test root -p 32 ##更改PID为987和32的nice level,外加所有root和test拥有的进程
和顺县15514514596: linux操作系统设置优先级的问题 - ?
文邰复脉: linux下调整进程优先级进程的优先级决定了进程是否优先被cpu分配资源进行处理.在cpu资源十分充足时,每个正在运行的进程都能分配到足够的资源进行处理,此时调整进程的优先级是没有什么意义的;如果cpu资源紧张时,top查看cpu使...
和顺县15514514596: linux是实时还是分时操作系统,什么是实时操作系统,什么是分时操作系统?他们的区别是什么? - ?
文邰复脉: 实时操作系统 英文称Real Time Operating System,简称RTOS. 1.实时操作系统定义 实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处...
和顺县15514514596: linux内核线程怎么设置优先级 - ?
文邰复脉: Linux内核的三种调度策略:1,SCHED_OTHER 分时调度策略,2,SCHED_FIFO实时调度策略,先到先服务.一旦占用cpu则一直运行.一直运行直到有更高优先级任务到达或自己放弃3,SCHED_RR实时调度策略,时间片轮转.当进程的时...
和顺县15514514596: 装双系统时linux如何设定优先启动? - ?
文邰复脉: 实现Windows与Linux双重引导有多种方法:◆ 对于具有双硬盘的用户,可以将Linux安装在第二个硬盘上(Windows自然是安装在第一个硬盘上),并且确保将GRUB(LILO)安装在第二个硬盘的主引导扇区,然后每次开机时在BIOS里指定从哪个...
和顺县15514514596: 在Linux下怎么修改当前线程的优先级 - ?
文邰复脉: # renice -5 –p pid #修改现有进程的优先级 # nice -5 ls #设定执行程序的优先级
和顺县15514514596: linux6如何让文件自动继承上级文件夹的属主和属组 - ?
文邰复脉: 给目录添加sgid权限,可以使在该目录下创建文件或文件的所属组继承该目录的所属组 例如: chmod g+s /home/admins
和顺县15514514596: linux中进程的三种启动方式 - ?
文邰复脉: 不知道你要求的启动方式是从什么角度说.通常可以用rc[0-3].d下加自动启动脚步,或者用用户登录直接运行进程,或者在运行进程后面加“&”符号.
和顺县15514514596: linux怎么选择启动内核的顺序 - ?
文邰复脉: 单独定义一个优先级,把afe相关的初始化都放到那里面去, 这样,就可以保证,其他没什么相关的冲突了. 最后证实,这样是可以实现目的的.具体添加一个新的优先级的步骤如下:1.定义新的优先级include\linux\init.h中:#define ...
和顺县15514514596: Linux下调节CPU使用的几种方法 - ?
文邰复脉: 一,使用taskset充分利用多核cpu,让cpu的使用率均衡到每个cpu上#taskset-p, 设定一个已存在的pid,而不是重新开启一个新任务-c, 指定一个处理,可以指定多个,以逗号分隔,也可指定范围,如:2,4,5,6-8.1,切换某个进程到指定的cpu...