免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 912 | 回复: 0
打印 上一主题 下一主题

Linux进程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-26 11:29 |只看该作者 |倒序浏览
为了使L i n u x可以管理系统中的进程,每个进程通过一个t a s k _ s t r u c t数据结构表示(任务
( t a s k )和进程( p r o c e s s )是L i n u x中两个互相通用的术语)。Ta s k向量是一个指向系统中所有
t a s k s t r u c t数据结构的指针数组。这意味着系统中最大进程受限于Ta s k向量的大小,缺省情况
下它有5 1 2项。当进程被创建时,从系统内存中分配一个新的t a s k s t r u c t并把它加入到t a s k向量
中。为了便于查找,当前运行的进程由c u r r e n t指针来指向。
除了普通类型的进程, L i n u x还支持实时进程。这些进程必须对外部事件反应迅速(从而得
到名字“实时” ),并且它们被调度器区别于普通用户进程对待。尽管t a s k s t r u c t数据结构很
大很复杂,但它的字段可以被分成几个功能区。
• 状态随着进程执行,它根据其环境改变状态。L i n u x进程有以下状态:
a. 运行进程或者正在运行(它是系统中的当前进程)或者已经准备好运行(等待被分配到系
统的一个C P U上)。
b. 等待进程正在等待一个事件或一个资源。L i n u x区分两种类型的进程;可中断的和不
可中断的。可中断等待进程可以被信号中断,而不可中断等待进程直接等待硬件条件,并且在
任何环境下都不会被中断。
c. 停止进程停止了,通常是通过接收一个信号。一个正在被调试的进程可以处于停止状
态。
d. 死亡这是一个被终止的进程,由于某种原因,仍在t a s k向量中有一个t a s k s t r u c t数据
结构,正像其名字那样,它是一个死去的进程。
• 调度信息调度器需要这些信息以公平地决定系统中哪个进程最值得运行。
• 标识系统中每个进程有一个进程标识。进程标识不是t a s k向量的索引,它只是一个简
单的数。每个进程还有用户和组标识,这些被用来控制本进程对系统中文件和设备的访
问。
• 进程间通信L i n u x支持经典的UNIXTM IPC机制如信号、管道和信号灯,以及System V
I P C机制如共享内存、信号灯和消息队列。L i n u x支持的I P C机制在第4章描述。
• 链接在L i n u x系统中没有哪个进程与其他进程完全独立。除了初始进程,系统中每个
进程都有一个父进程,新的进程不是被创建,它们是从先前的进程被复制(或说克隆)。
每一个表示一个进程的t a s k s t r u c t都有指针指向其父进程及其兄弟进程(和它具有相同父
进程的进程)以及它自己的子进程。你可以用p t r e e命令查看L i n u x系统中运行的进程之间
的家族关系:
另外系统中所有的进程都保存在一个双向链表中,它的根是i n i t进程的t a s k s t r u c t数据结
构。这个链表使得L i n u x可以查看系统中每一个进程,它需要这样来为一些命令如p s或k i l l提
供支持。
• 时间和时钟内核记住进程的创建时间以及在它生存期内消耗的C P U时间。每次时钟“滴答”时,内核更新保留在j i ff i e s中的时间量,表示当前进程花费在系统和用户态下的
时间。L i n u x还支持进程相关的间隔定时器。进程可以用系统调用来设置定时器,以便
当定时器超时时给进程自己发送信号。定时器可以是一次触发的或周期性多发的。
• 文件系统进程在需要的时候可以打开和关闭文件;进程的t a s k s t r u c t包含每个打开的
文件的描述符指针以及两个V F S索引节点的指针。每个V F S索引节点唯一地描述文件系
统中的一个文件或目录,并提供一个底层文件系统的统一接口。L i n u x对文件系统的支
持将在第7章描述。两个V F S索引节点指针第一个指向进程的根目录,第二个指向其当
前的或称p w d目录。p w d从U N I X命令p w d—打印工作目录(print working directory)而
来。这两个V F S索引节点使自己的c o u n t字段( f i e l d )递增来表示一个或多个进程在引用它
们。这就是为什么不能删除被一个进程设成p w d的目录的原因。同样的原因,也不能删
除它的子目录。
• 虚拟内存大多数进程有一些虚拟内存(内核线程和守护进程没有),并且L i n u x必须跟踪
虚拟内存如何映射到系统物理内存。
• 处理器相关上下文一个进程可以被认为是系统当前状态的总和。每当一个进程运行时,
它要使用处理器的寄存器、栈等等,这是进程的上下文( c o n t e x t )。并且,每当一个进程
被暂停时,所有的C P U相关上下文必须被保存在该进程的t a s k s t r u c t中。当进程被调度
器重新启动时其上下文将从这里恢复。

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/99707/showart_1977968.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP