进程的概念&&进程的描述&&进程控制块(task_struct)

进程概念:

   OS :程序的⼀一个执⾏行实例。

   正在执⾏行的程序。

   能分配处理器并由处理器执⾏行的实体。 内核观点:担当分配系统资源(CPU时间,内存)的实体。 进程的两个基本元素是程序代码(可能被执⾏行相同程序的其他进程共享)和代码相关联的 数据集。进程是⼀一种动态描述,但是并不代表所有的进程都在运⾏行。(进程在内存中因策 略或调度需求,会处于各种状态)

进程描述

   广义上,所有的进程信息被放在⼀一个叫做进程控制块的数据结构中,可以理解为进程属性 的集合。

   进程控制块

   每个进程在内核中都有⼀一个进程控制块(PCB)来维护进程相关的信息,Linux内核的 

   进程控制块是task_struct结构体。现在我们全⾯面了解⼀一下其中都有哪些信息。

   在Linux中,这个结构叫做task_struct。    

    task_struct是Linux内核的⼀一种数据结构,它会被装载到RAM⾥里并且包含着进程的信息。 每个进程都把它的信息放在task_struct 这个数据结构⾥里,task_struct 包含了这些内容:    

    标⽰示符 : 描述本进程的唯⼀一标⽰示符,⽤用来区别其他进程。  

    状态     :任务状态,退出代码,退出信号等。       

    优先级   :相对于其他进程的优先级。    

    程序计数器:程序中即将被执⾏行的下⼀一条指令的地址。    

    内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针    

    上下⽂文数据:进程执⾏行时处理器的寄存器中的数据。    

    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这些⽤用户级⼯工具来获取。










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章