Linux编程之历程优先级和历程nice值?仓酷云
只要了解了Linux的基础之后,应该就可以很轻易的解决掉这方面的问题。而有些朋友们常常一接触Linux就是希望构架网站,根本没有想到要先了解一下Linux的基础。这是相当困难的。起首,我想用一个复杂的命令来引发这个议题。不管在linux大概unix体系中,用ps–l命令则会相似输入以下几个内容:
#ps–l---这里用的是linux测试
FSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD
4S020538205340750-1063wait4pts/200:00:00bash
4R020663205380750-828-pts/200:00:00ps我们很简单注重到个中的几个主要信息,有下:
UID:代表实行者的身份
PID:代表这个历程的代号
PPID:代表这个历程是由哪一个历程开展衍生而来的,亦即父历程的代号
PRI:代表这个历程可被实行的优先级,其值越小越早被实行
NI:代表这个历程的nice值
这里的后面的三个信息,我们都是对照好简单了解的,可是前面的两个奇异的信息,一个是PRI,一个是NI,这究竟是甚么工具?绝对而言,PRI也仍是对照好了解的,即历程的优先级,大概普通点说就是程序被CPU实行的前后按次,此值越小历程的优先级别越高。那NI呢?就是我们所要说的nice值了,其暗示历程可被实行的优先级的修改数值。如后面所说,PRI值越小越快被实行,那末到场nice值后,将会使得PRI变成:PRI(new)=PRI(old)+nice。如许,当nice值为负值的时分,那末该程序将会优先级值将变小,即其优先级会变高,则其越快被实行。
历程在创立时并非同等的,他们被付与分歧的优先级值,比方有些对盘算机自己的操纵相当主要的程序必需比其他主要的程序具有更高的优先级(则其有更小的优先级值)。而如后面所说,nice的值是暗示历程优先级值可被修改数据值,因而,每一个历程都在其企图实行时被付与一个体系nice值,如许体系就能够依据体系的资本和详细历程的各种资本损耗情形,自动干涉历程的优先级值。这个历程,用户也可手工干涉个中,可是要被付与响应的权限。
在UNIX体系大概LINUX体系中,利用从-20到+19的一个可变数值来暗示这个nice值(LINUX和AIX是这类情形,HP-UX体系的值局限是从0到39),而且在一般情形下,子历程会承继父历程的体系nice值。具有最高优先级的程序,其nice值最低,以是在UNIX和LINUX体系中,值-20使得一项义务变得十分主要(HP-UX为0);与之相反,假如义务的nice为+19(HP-UX为39),则暗示它是一个崇高的、忘我的义务,同意一切其他义务比本人享有可贵的CPU工夫的更年夜利用份额,这也就是nice的称号的领悟来意。
在体系启动的过程当中,init历程会被付与0(HP-UX体系值会被付与20),其他一切历程承继了这个nice值(由于其他的历程都是init的子历程)。关于用户,从他们入手下手上岸初始化历程,其他在其底下衍生出来的子历程也会付与该nice值。原始用户,只能将其底下的实行历程的nice值变年夜(相对其自己nice值而言)而不克不及变小;若想变小,得要有响应的权限,如root用户能够设置变小,以下:
$nice
0
$nice-n3ls
agentbinimportant_baklogsstatistics_import.logTMP_FORUM_STATS.dmpTMP_TAOBAO_STATS.dmpTMP_TBCAT_STATS.dmptop.dmpworksh
$
$nice-n-3ls
nice:cannotsetpriority:Permissiondenied而root用户就能够给其子历程付与更小的nice值,以下:
#nice
0
#nice-n-3ls
192.168.205.191.txtanaconda-ks.cfgclariion.logDesktopdisk1emc.shFile_sortinstall.loginstall.log.sysloglogOPSrhel_os_softroot_link_name关于背景历程,其nice会在其被显现付与的值事后再加上4。如“nice12command&”命令实行时,则其会以nice=36值来运转程序(HP-UX体系)。这里有个成绩,即假如用户设置的nice值凌驾了nice的界限值(LINUX和AIX为-20到19,HP-UX为0到39)会如何,则体系就取nice的界限值作为历程的nice值。
与历程的nice相干的命令有2个,分离是nice和renice。
nice命令就是设置一个要实行command历程的nice值,其命令格局是nice–nadjustmentcommandcommand_option,这里就设置要实行的command的nice,假如这里不指定adjustment,则默许为10。
renice命令就是设置一个已在运转的历程的nice值,如假定一运转历程原本nice值为0,renice为3后,则这个运转历程的nice值就为3了。renice的实行必需要有响应的权限方可实行。它能够依据用户、历程ID、历程组来设置历程的nice值。
对nice值一个抽象比方,假定在一个CPU轮转中,有2个runnable的历程A和B,假如他们的nice值都为0(假如是HP-UX则为20),加上内核会给他们每人分派1k个cpu工夫片。可是假定历程A的为0,可是B的值为-10,那末此时CPU则会大概分离给A和B分派1k和1.5k的工夫片。故能够抽象的了解为,nice的值影响了内核分派给历程的cpu工夫片的几,工夫片越多的历程,其优先级越高,其优先级值越低。
从利用top、ps等命令看到的nice值,就是历程所具有的nice值,利用iostat等看到的%nice,就是用户历程空间中改动过优先级的历程的占用CPU的百分比,如上例中就说0.5k/2.5k=1/5=20%。
到今朝为止,更必要夸大一点的是,历程的nice值不是历程的优先级,他们不是一个观点,可是历程nice值会影响到历程的优先级变更。
--EOF--
本文来自:http://rdc.taobao.com/blog/dba/html/261_proccess_pri_nice.html
看不懂man文档的人.在linux中,命令可分为系统基本命令和应用程序命令.系统基本命令是所有的unix类系统都支持的命令,走到哪都不变,只要是unix类系统上就肯定有. 我们自学,就这个循环的过程中,我们学习了基本操作,用vi,shell,模拟内存的分配过程等一些OS管理。 笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机 这种补充有助于他人在邮件列表/新闻组/论坛中搜索对你有过帮助的完整解决方案,这可能对他们也很有用。 即便是非英语国家的人发布技术文档,Linux也都首先翻译成英语在国际学术杂志和网络上发表。 即便是非英语国家的人发布技术文档,Linux也都首先翻译成英语在国际学术杂志和网络上发表。 Windows有MS-DOS?方式,在该方式下通过输入DOS命令来操作电脑;Linux与Windows类似,也有命令方式,Linux?启动后如果不执行?X-WINDOWS,就会处于命令方式下,必须发命令才能操作电脑。? 掌握硬件配置,如显卡,声卡,网卡等,硬件只要不是太老或太新一般都能被支持,作为一名Linux系统管理员建议多阅读有关硬件配置文章,对各种不支持或支持不太好的硬件有深刻的了解。 熟悉操作是日常学习Linux中的三大法宝。以下是作者学习Linux的一些个人经验,供参考: 为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。 其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。 永中office 2004增强版安装只需要默认安装即可使用并操作大多与win系统雷同,打印机的配置和管理,记录光盘等。 学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。 感谢老师和同学们在学习上对我的帮助。 再次,Linux是用C语言编写的,我们有学习C语言的基础,读程序和编写代码方面存在的困难小一点,也是我们能较快掌握的原因之一。? Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。 写学习日记,这是学习历程的见证,同时我坚持认为是增强学习信念的法宝。 我学习Linux的心得体会 ,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。 Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问。 生成新的unispimsp.ksc。”另外得到回复后如果问题解决,向帮助过你的人发个说明,让他们知道问题是怎样解决的。
页:
[1]
2