仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 457|回复: 7
打印 上一主题 下一主题

[CentOS(社区)] 来一发熟悉Linux中的历程号

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:23:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!1.概述
尽人皆知,历程(process)是一个可实行步伐的实例,可是在Linux中历程能够从头改写为,历程是由内审定义的笼统的实体,并为该实体分派用以实行步伐的各项体系资本。从内核的角度看,历程由用户内存空间(user-spacememory)和一系列内核数据布局构成,个中用户内存空间包括了步伐代码及代码所利用的变量,而内核数据布局则用于保护历程形态信息。纪录在内核数据布局中的信息包含很多与历程相干的标识号(IDs)、假造内存表、翻开文件的形貌符表、旌旗灯号传送及处置的有关信息、历程资本利用及限定、以后事情目次及大批其他信息。
2.历程形貌符
每个历程都有一个历程号(PID),历程号是一个负数,用以独一标识体系中的某个历程。对各类体系挪用而言,历程号偶然能够作为传进参数,偶然能够作为前往值。好比,体系挪用kill(()同意挪用者向具有特定历程号的历程发送一个旌旗灯号。当必要创立一个对某历程而言独一标识符时,历程号就会派上用处。罕见的例子是将历程号作为与历程相干文件名的一局部(日记文件名)。在散布式体系中可使用ip:port:start_time:pid来辨别全部集群中的历程,如许能够完整包管独一性,也能够在出成绩后能疾速定位。
体系挪用getpid()前往挪用历程的历程号,声明以下:
#include<unistd.h>
//AlwayssuccessfullyreturnsprocessIDofcaller
pid_tgetpid(void);

3.历程形貌符的体系限制
Linux内核限定历程号必要小于即是32767。新历程创立时,内核会按按次将下一个可用的历程号分派给其利用。每当历程号抵达32767的限定时,内核将重置历程号计数器,以便从小整数从头入手下手分派。该分派体例详细以下:
一旦历程号抵达32767,内核会将历程号计数重视置为300,而不是1。之以是云云,是由于低数值的历程号为体系历程和保卫历程临时占用,在此局限内搜刮还没有利用的历程号只会是华侈工夫。
在Linux2.4版本及更早版本中,历程号的下限是32767,由内核常量PID_MAX所界说。在Linux2.6版本中,情形有所改动。只管历程号的默许下限还是32767,可是能够经由过程Linux体系独有的/proc/sys/kernel/pid_max文件来举行调剂(其值=最猛进程+1)。在32位平台中,pid_max文件的最年夜值为32767,可是在64位平台中,该文件的最年夜值能够高达2^22次方(约400万),体系可包容的历程数目会十分复杂。

4.父历程号
每一个历程都有一个创立本人的父历程。利用体系挪用getppid()能够猎取父历程的历程号,该函数声明以下:
#include<unistd.h>
//AlwayssuccessfullyreturnsIDofparentofcaller
pid_tgetppid(void)
实践上,每一个历程的父历程号属性反应了体系上一切历程间的树状干系。每一个父历程的父历程又有本人的父历程,以此类推,回溯到1号历程——init历程,即一切历程的鼻祖。利用pstree下令能够检察这一树状干系。
假如子历程的父历程停止了,则子历程会酿成“孤儿”,init历程随行将收养该历程,子历程后续对getppid()的挪用将前往历程号1。经由过程检察由Linux体系所独有的/proc/PID/status文件所供应的PPid字段,能够获知每一个历程的父历程。



欢迎大家来到仓酷云论坛!
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-16 16:12:47 | 只看该作者

来一发熟悉Linux中的历程号

然我们对Linux的学习首先是通过对它的产生,发展,到今天仍然在不断完善开始的。
爱飞 该用户已被删除
板凳
发表于 2015-1-25 20:52:03 | 只看该作者
linux鸟哥的私房菜,第三版,基础篇,网上有pdf下的,看它的目录和每章的介绍就行了,这个绝对原创!
只想知道 该用户已被删除
地板
发表于 2015-2-4 12:59:00 | 只看该作者
我想即使Linux高手也很难快速准确精练的回答你。
谁可相欹 该用户已被删除
5#
发表于 2015-2-9 22:48:47 | 只看该作者
学习Linux应具备的。[书籍+网络资源]
冷月葬花魂 该用户已被删除
6#
发表于 2015-3-9 23:36:40 | 只看该作者
再次,Linux是用C语言编写的,我们有学习C语言的基础,读程序和编写代码方面存在的困难小一点,也是我们能较快掌握的原因之一。?
精灵巫婆 该用户已被删除
7#
 楼主| 发表于 2015-3-17 04:26:28 | 只看该作者
不同于Windows?系统需要花钱购买,因为Linux的核心是免费的,自由使用的,核心源代码是开放的。
老尸 该用户已被删除
8#
发表于 2015-3-23 23:11:06 | 只看该作者
期间我阅读了不少关于Linux的相关资料,其中也不乏一些有趣的小故事,这既丰富了我的课余生活,也让我加深了对一些术语的理解,比玩游戏强多了。?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-27 23:24

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表