进程的概念&&进程的描述&&进程控制块(task_struct)
2016-07-24 06:54
453 查看
进程概念:
OS :程序的⼀一个执⾏行实例。
正在执⾏行的程序。
能分配处理器并由处理器执⾏行的实体。 内核观点:担当分配系统资源(CPU时间,内存)的实体。 进程的两个基本元素是程序代码(可能被执⾏行相同程序的其他进程共享)和代码相关联的 数据集。进程是⼀一种动态描述,但是并不代表所有的进程都在运⾏行。(进程在内存中因策 略或调度需求,会处于各种状态)
进程描述
广义上,所有的进程信息被放在⼀一个叫做进程控制块的数据结构中,可以理解为进程属性 的集合。
进程控制块
每个进程在内核中都有⼀一个进程控制块(PCB)来维护进程相关的信息,Linux内核的
进程控制块是task_struct结构体。现在我们全⾯面了解⼀一下其中都有哪些信息。
在Linux中,这个结构叫做task_struct。
task_struct是Linux内核的⼀一种数据结构,它会被装载到RAM⾥里并且包含着进程的信息。
每个进程都把它的信息放在task_struct 这个数据结构⾥里,task_struct 包含了这些内容:
<
4000
p>
标⽰示符 : 描述本进程的唯⼀一标⽰示符,⽤用来区别其他进程。
状态 :任务状态,退出代码,退出信号等。
优先级 :相对于其他进程的优先级。
程序计数器:程序中即将被执⾏行的下⼀一条指令的地址。
内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
上下⽂文数据:进程执⾏行时处理器的寄存器中的数据。
I/O状态信息:包括显⽰示的I/O请求,分配给进程的I/O设备和被进程使⽤用的⽂文件列表。
记账信息:可能包括处理器时间总和,使⽤用的时钟数总和,时间限制,记账号等。
(ps:关于task_struct谈到进程管理时再详说)
保存进程信息的数据结构叫做 task_struct,并且可以在 include/linux/sched.h ⾥里找到它。
所有运⾏行在系统⾥里的进程都以 task_struct 链表的形式存在内核⾥里。
进程的信息可以通过 /proc 系统⽂文件夹查看。要获取PID为400的进程信息,你需要查看 / proc/400 这个⽂文件夹。⼤大i多数进程信息同样可以使⽤用top和ps这些⽤用户级⼯工具来获取。
相关文章推荐
- java-基础-计算数组的转置(横向输出)
- [JAVA]String StringBuffer StringBuilder
- 第49课:Spark中的新解析引擎Catalyst源码Optimizer彻底详解.
- 15个Java的报表工具简介
- java-抽象类和接口的作用
- 源码推荐(0724):直播类送礼动画,将Storyboard生成约束代码
- Google百分比布局支持库----让屏幕适配更简单
- String to Integer (atoi)
- Eclipse中,No compiler is provided in this environment. Perhaps you are running on a JRE rather than a
- 教学引导师培训
- 让孩子一生不后悔
- MarginTop 为何影响父元素的 MarginTop(转)
- Linux基础命令一
- 12. Integer to Roman && 13. Roman to Integer && 273. Integer to English Words
- 343. Integer Break
- Android多线程操作——线程池管理综述
- Palindrome Permutation
- Min Stack
- Burst Balloons
- Intersection of Two Arrays II