Linux进程与线程
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-03-31
1、进程与线程的概念:略 2、Linux进程结构 Linux使用一个称为进程控制块的数据结构task_struct来代表一个进程(注:task_struct在include\Linux\sched.***件中定义),主要成员包括: 1.进程状态(volatile long state):进程有可运行状态(0),不可运行状态(-1),暂停状态(>0) 2.运行标志(unsigned long flags):描述进程管理信息或过度状态,可取值:a.#define PF_STARTING 0x00000002 /*进程被创建*/ b.#define PF_EXITING 0x00000004 /*进程开始关闭*/ c.PF_FORKNOEXEC:刚创建还没开始运行 d.PF_SUPERPRIV:超级用户特权 e.PF_DUMPCORE:标志进程是否清空core文件 f.PF_SIGNALED:进程被信号终止 g.PF_MEMALLOC:进程正在分配主寸 h.PF_VFORK:用vfork()创建,退出前在唤醒父进程 i.PF_USEDFPU:该进程使用FPU,此标志只在SMP时使用 3.跟踪标志(unsigned long ptrace):包括以下几个状态:a.PF_PTRACED:进程跟踪标志; b.PF_TRACESYS:正在跟踪函数; c.PF_DTRACE:进程延期跟踪标志 4.进程优先级(int prio,static_prio,normal_prio/*动态,静态和正常优先级*/;unsigned long rt_priority:实时进程优先级) 5.进程进入就绪态原因 6.运行时间片剩余大小 总结:写了这么多,只是想告诉你,进程的实现是十分复杂的!!! 3、进程标识符信息: #include<sys/types.h> #include<unistd.h> uid_t getpid() /* 获取进程id */ uid_t getppid() /* 获取父进程id */ pid_t getpgrp() /* 获取进程组id */ pid_t getpgid(pid_t pid) /* 获得指定pid进程所属组的id */ uid_t getuid() /* 获得进程所有者id */ uid_t geteuid() /* 获得进程有效所有者id */ git_t getegid() /* 获取进程的有效组id */ 代码getpidtest.c显示获取进程id方法 4、Linux进程状态 task_struct中的state成员表示,linux定义了7种进程状态:TASK_RUNNING(0,正在运行的进程或者等待被调度的进程)、TASK_INTERRUPTIBLE(1)、TASK_UNINTERRUPTIBLE(2)、TASK_STOPPED(4)、TASK_TRACED(8)、TASK_ZOMBIE(16)、TASK_DEAD(32) 关于这些进程状态的不同以及如何转化,![]() ![]() 本文出自 “Change” 博客,请务必保留此出处http://name110.blog.51cto.com/3279958/615783 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 在 linux上面搭建PPPoE不能上网下一篇: Centos5 搭建独立版本库SVN
关于Linux进程与线程的所有评论