linux 优先级必须为整数,进程友好性(优先级)设置对Linux没有影响

您看到的行为几乎可以肯定是因为Linux 2.6.38(2010年)中添加了自动组功能.据推测,当您描述运行这两个命令时,它们在不同的终端窗口中运行.如果你在同一个终端窗口中运行它们,那么你应该看到nice值有效.这个答案的其余部分详细阐述了这个故事.

内核提供了一种称为自动分组的功能,可以在多进程,cpu密集型工作负载(如构建具有大量并行构建过程的Linux内核(即make(1)-j标志)的情况下提高交互式桌面性能.

创建新会话时会创建新的自动组

通过setsid(2);例如,当启动新的终端窗口时会发生这种情况. fork(2)创建的新进程继承了它

父母的自动组成员资格.因此,一个过程中的所有过程

session是同一个autogroup的成员.

启用自动分组时,自动组合的所有成员

被放置在相同的内核调度程序“任务组”中. Linux内核调度程序采用一种均衡分布的算法

cpu跨任务组循环.可以通过以下示例描述此对交互式桌面性能的好处.

假设有两个自动组竞争同一个cpu

(即,假定单个cpu系统或使用任务集(1)

将所有进程限制在SMP系统上的同一cpu中).

第一组包含来自内核的十个cpu绑定进程

build以make -j10开头.另一个包含一个

cpu绑定过程:视频播放器.自动分组的效果是

这两组将分别接收一半的cpu周期.那是,

视频播放器将获得50%的cpu周期,而不是

只有9%的周期,这可能会导致视频质量下降

回放. SMP系统的情况比较复杂,但是

一般效果是相同的:调度程序分配cpu周期

跨任务组,以便包含大的自动组

cpu绑定进程的数量最终不会占用cpu周期

以牺牲系统上的其他工作为代价.

漂亮的价值和团队安排

在调度非实时进程(例如,那些已调度的进程)时

在默认的SCHED_OTHER政策下),

调度程序采用称为“组调度”的技术,在该技术下,线程被安排在“任务组”中.

任务组是在各种情况下形成的,相关案例在这里是自动分组.

如果启用了自动分组,那么所有线程都是

(隐含地)放在一个自动组中(即同一个会话,如

由setsid(2)创建)形成一个任务组.每个新的自动组都是

因此是一个单独的任务组.

在组调度下,线程的nice值会产生效果

调度决策仅相对于同一个中的其他线程

任务组.这有一些令人惊讶的后果

UNIX系统上很好的值的传统语义.特别是,如果启用了自动分组(这是各种Linux发行版中的默认设置),那么

在一个过程中使用nice(1)会产生影响

仅用于相对于在其中执行的其他进程的调度

相同的会话(通常:相同的终端窗口).

相反,对于(例如)鞋底的两个过程

不同会话中的cpu绑定进程(例如,不同的终端

windows,每个作业都绑定到不同的autogroup),

在其中一个会话中修改进程的nice值

对调度程序相对于调度的决策没有影响

在另一个会话中处理.这可能是您看到的情景,但您没有明确提到使用两个终端窗口.

如果要防止自动分组干扰此处所述的传统良好行为,可以禁用该功能

echo 0 > /proc/sys/kernel/sched_autogroup_enabled

请注意,这也会导致禁用自动组功能旨在提供的桌面交互性的好处(参见上文).

自动组很好的价值

可以通过查看进程的自动组成员资格

文件/ proc / [pid] / autogroup:

$cat /proc/1/autogroup

/autogroup-1 nice 0

此文件还可用于修改分配的cpu带宽

到一个自动组.这是通过在“好”中写一个数字来完成的

范围到文件以设置自动组的好值.允许的

范围从19(低优先级)到-20(高优先级).

autogroup nice设置与进程具有相同的含义很好的价值,但适用于cpu周期的分配autogroup作为一个整体,基于其他的相对好的值autogroups.对于自动组内的进程,cpu会循环它接收将是自动组的良好价值的产物(比较到其他autogroup)和过程的好价值(与…相比)同一自动组中的其他进程).

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506842.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

欧框语言框架标准C2,CEFR欧洲语言共同参考框架

http://www.v4.cc/News-3997660.htmlCEFR全称是Common European Framework of Reference for Languages,是由欧洲语言测试者协会(ALTE)于2001年首次发布的一套建议标准,用来评估语言学习者在所学语言的成就,同时也给予一个教育上的评估方针。…

车羊问题c语言编程,C语言-人狼羊菜问题-最容易看懂的解决方法及代码

题目描述:农夫需要把狼、羊、菜和自己运到河对岸去,只有农夫能够划船,而且船比较小,除农夫之外每次只能运一种东西,还有一个棘手问题,就是如果没有农夫看着,羊会偷吃菜,狼会吃羊。请…

c语言简短的泡沫排序法编程,冒泡排序--简单(c语言)

//// main.cpp// bubble//// Created by duanqibo on 2019/7/17.// Copyright © 2019年 duanqibo. All rights reserved.// 冒泡排序 c语言#include #include #include #include #define N 4typedef struct student{int num;char name[20];char sex[2];int age;}stu[…

c语言求a1到an的和,C语言菜鸟基础教程之a++与++a

(一)a在C语言或其它语言中,符号表示“自加”,就是变量在原来的基础上加1。例1:a 0;a;则此时a的值为1。同样的道理,--表示”自减”。例2:a 100;a--;则此时a的值为99。注意,程序语言里没有”自乘”和”自除…

c语言 u16 printf,C 语言printf打印各种数据类型的方法(u8/s8/u16/s16.../u64/double/float)(全)...

u16首先必须知道u8,s8等数据类型的定义:typedef signed char s8;typedef unsigned char u8;typedef signed short s16;typedef unsigned short u16;typedef signed int s32;typedef unsigned int u32;typedef signed long long s64;typedef unsigned long long u64;…

算法与数据结构c语言版PPT,C语言算法与数据结构.ppt

C语言算法与数据结构.ppt第十二章 算法与数据结构12.1 算法的基本概念,该节知识点所占试题比重为12,属于重点考查对象,基本上每次必考,主要考查算法的定义和对算法复杂度的理解。历次试题分值在04分之间波动。,12.1.1 考点1 算法的定义,算法是…

android 应用自动重启,Android 应用崩溃后自动重启的方法

public class HKApplication extends Application {private List activityList new ArrayList();Overridepublic void onCreate() {super.onCreate();// 以下用来捕获程序崩溃异常if (!Config.debug) {Thread.setDefaultUncaughtExceptionHandler(restartHandler); // 程序崩溃…

android+自定义版本号,Android打包版本号设置方法

之前没有设置过打包的命名,每次打包都是默认的"app-realease.apk",之后手动修改名字来显示出它是一个新版本。晚上学习了如何配置打包名称,很简单,修改build.gradle里的代码就行。详细记录如下:1、打开app这…

android工程师饱和,Android开发是否饱和了?你所不了解的Android开发

原标题:Android开发是否饱和了?你所不了解的Android开发Android开发是否饱和了?是很多人关心的问题,对于想要从事Android开发的人更是头等大事。如今,就业难成横亘在求职者面前的难题,而与 之相反是互联网行业的高薪多…

android的读取xml配置文件,android中XMl文件的读取

废话不多说了直接上代码:新建一个Xml文件用于读取:test.xmljavaEclipseSwiftXcodeC#Visual Studio后台:import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.util.Log;import android.widget.TextView…

android 获取wifi的加密类型,wifi加密类型

最近开发wifi方面的功能,需要根据wifi加密类型来展现UI。遇到了一个比较蛋疼的问题:如何判断wifi加密类型wifi的管理需要通过WifiManager来操作WifiManager mWifiManager (WifiManager) context.getSystemService(Context.WIFI_SERVICE);开启和关闭wifi…

android编译的tool版本有多少,macOS Mojave(10.14.2)系统上编译LunarG/VulkanTools工程的Android版本...

$ cd ~$ git clone https://github.com/LunarG/VulkanTools.git$ cd VulkanTools$ cd build-android$ export ANDROID_SDK_HOME~/Library/Android/sdk$ export ANDROID_NDK_HOME~/Library/Android/sdk/ndk-bundle# 当前的版本需要Android SDK 23.0.0,但是需要Java 11以下版本的…

android底部导航栏软件,三步搞定android应用底部导航栏

很多android应用底部都有一个底部导航栏,方便用户在使用过程中随意切换。目前常用的做法有三种:一种是使用自定义tabHost,一种是使用activityGroup,一种是结合FrameLayout实现。笔者再做了多款应用后,为了节约开发周期&#xff0c…

html列表滑动字母索引,js实现做通讯录的索引滑动显示效果和滑动显示锚点效果...

只做实现。。完全没考虑性能优化。所以我实现了以后特别卡。第一个是在通讯录右边的索引条上进行滑动,滑动到相应字母就跳转到相应字母的锚点上。思路:监听touchmove事件,获取clientX和clientY,传入到elementFromPoint&#xff0c…

html一行中怎么写空格,html – 用一行填写空格

如何创建一个下划线,填充文本行末尾和DIV宽度结束之间的空白区域.我正在尝试以下方法:我希望当屏幕变小时,产品线会中断.我希望价格保持在右边,并加下划线.最后一个单词(Mayo)和价格之间的空格必须自动填充下划线.大屏幕:老奶酪 – 沙拉,牛油果,鸡蛋,草药…

android 屏幕飘动,Android自定义View实现飘动的叶子效果(三)

上一篇对自定义View及一些方法有所了解,下面做一个简单的叶子飘动的例子主要技术点1、添加背景图片canvas.drawBitmap()2、Matrix动画类3、Matrix添加到画布上步骤1、添加黄色背景颜色public LeafView(Context context, AttributeSet attrs) {super(context, attrs)…

html加入购物车的动画,vue实现加入购物车动画

预备基础整体思路定义商品列表,设置点击的元素(点击后触发加入购物车的函数addToShopCart)注:这里要把$event传递过去,方便得到target定义一个component用来放购物车和运动的小球定义一个component用来放运动的小球,里面包含多个b…

html 美化input file,Input[type=”file”] 显示效果美化方法 | 智慧宫

Html中input可以作为上传图片代码如下但是演示非常不好看,下面做一番美化处理,效果如下:文件上传美化前后对比美化方法隐藏 input 标签使用 label 标签在input标签位置显示;用js获取 input 中上传的文件名称,并在 labl…

html 进入效果,用css3实现简单的进入效果

这是一个比较简单的小例子,实现如图效果仅仅用css3就可以达到这种效果,代码如下:.div {position: relative;top: 20px;height: 300px;width: 200px;margin: 0 auto;background: blue;float: left;margin-left: 20px;}.div2 {position: relati…

计算机专业中agp是什么意思,计算机中AGP是什么意思及其特性介绍

AGP (Accelerated Graphic Ports 或者 Advanced Graphic Ports) 是当前已经被淘汰的图形系统接口。这项技术始于十四年以前,当时的3D图形加速技术开始流行并且迅速普及,为了使系统和图形加速卡之间的数据传输获得比PCI总线更高的带宽,AGP便应…