task_struct结构描述

来源:互联网 发布:unity3d户型模型 编辑:程序博客网 时间:2024/04/30 04:04

1、Linux中的进程状态:
这里写图片描述
可运行状态
处于这种状态的进程,要么正在运行、要么正准备运行。正在运行的进程就是当前进程(由current所指向的进程),而准备运行的进程只要得到CPU就可以立即投入运行,CPU是这些进程唯一等待的系统资源。系统中有一个运行队列(run_queue),用来容纳所有处于可运行状态的进程,调度程序执行时,从中选择一个进程投入运行。在后面我们讨论进程调度的时候,可以看到运行队列的作用。当前运行进程一直处于该队列中,也就是说,current总是指向运行队列中的某个元素,只是具体指向谁由调度程序决定。
等待状态
处于该状态的进程正在等待某个事件(event)或某个资源,它肯定位于系统中的某个等待队列(wait_queue)中。Linux中处于等待状态的进程分为两种:可中断的等待状态和不可中断的等待状态。处于可中断等待态的进程可以被信号唤醒,如果收到信号,该进程就从等待状态进入可运行状态,并且加入到运行队列中,等待被调度;而处于不可中断等待态的进程是因为硬件环境不能满足而等待,例如等待特定的系统资源,它任何情况下都不能被打断,只能用特定的方式来唤醒它,例如唤醒函数wake_up()等。
暂停状态
此时的进程暂时停止运行来接受某种特殊处理。通常当进程接收到SIGSTOP、SIGTSTP、SIGTTIN或 SIGTTOU信号后就处于这种状态。例如,正接受调试的进程就处于这种状态。
僵死状态
进程虽然已经终止,但由于某种原因,父进程还没有执行wait()系统调用,终止进程的信息也还没有回收。顾名思义,处于该状态的进程就是死进程,这种进程实际上是系统中的垃圾,必须进行相应处理以释放其占用的资源。
2、进程调度信息
调度程序利用这部分信息决定系统中哪个进程最应该运行,并结合进程的状态信息保证系统运转的公平和高效。这一部分信息通常包括进程的类别(普通进程还是实时进程)、进程的优先级等等。
进程调度的策略
这里写图片描述
3、标识符
这里写图片描述
4、进程通信有关信息
为了使进程能在同一项任务上协调工作,进程之间必须能进行通信即交流数据。Linux支持多种不同形式的通信机制。它支持典型的Unix 通信机制(IPC Mechanisms):信号(Signals)、管道(Pipes),也支持System V 通信机制:共享内存(Shared Memory)、信号量和消息队列(Message Queues)
这里写图片描述
5、 进程链接信息(Links)

程序创建的进程具有父/子关系。因为一个进程能创建几个子进程,而子进程之间有兄弟关系,在task_struct结构中有几个域来表示这种关系。
在Linux系统中,除了初始化进程init,其他进程都有一个父进程(parent process)或称为双亲进程。可以通过fork()或clone()系统调用来创建子进程,除了进程标识符(PID)等必要的信息外,子进程的task_struct结构中的绝大部分的信息都是从父进程中拷贝,或说“克隆”过来的。系统有必要记录这种“亲属”关系,使进程之间的协作更加方便,例如父进程给子进程发送杀死(kill)信号、父子进程通信等,就可以用这种关系很方便地实现。
每个进程的task_struct结构有许多指针,通过这些指针,系统中所有进程的task_struct结构就构成了一棵进程树,这棵进程树的根就是初始化进程init的task_struct结构(init进程是Linux内核建立起来后人为创建的一个进程,是所有进程的祖先进程)。
这里写图片描述

6、时间和定时器信息(Times and Timers)
一个进程从创建到终止叫做该进程的生存期(lifetime)。进程在其生存期内使用CPU的时间,内核都要进行记录,以便进行统计、计费等有关操作。进程耗费CPU的时间由两部分组成:一是在用户模式(或称为用户态)下耗费的时间、一是在系统模式(或称为系统态)下耗费的时间。每个时钟滴答,也就是每个时钟中断,内核都要更新当前进程耗费CPU的时间信息。
这里写图片描述
这里写图片描述

7、文件系统信息
这里写图片描述
8、虚拟内存信息(Virtual Memory)
这里写图片描述

9、页面管理信息
这里写图片描述
10、对称多处理机(SMP)信息
这里写图片描述

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 油画棒染衣服怎么办 风油精泼白墙上怎么办 壁纸涂上油画棒怎么办 心里不能装事怎么办 做事做不快心急怎么办 焦虑症不想上班怎么办 总是忘事应该怎么办 vary渲染太黑怎么办 su一直未响应怎么办 草图大师版本低打不开怎么办 重要纸上滴上油了怎么办 水拓画颜料滴太多怎么办 微信语音撤不回怎么办 kido手表关机了怎么办 玩具店不想开了怎么办 幼儿不拉粑粑怎么办 幼儿拉绿色粑粑怎么办 幼儿拉青粑粑怎么办 小孩龋齿牙疼怎么办 宝宝刷牙不张嘴怎么办 宝宝爱吃棒棒糖怎么办 孩子不刷牙洗脸怎么办 宝宝害怕拉大便怎么办 狗狗不喜欢刷牙怎么办 10小孩不刷牙怎么办 孩子做事磨叽怎么办 一岁半宝宝不愿意刷牙怎么办 两岁半宝宝不愿意刷牙怎么办 小孩牙齿长蛀牙怎么办 2周岁宝宝龋齿怎么办 小孩刷牙吞牙膏怎么办 孩子12不肯刷牙怎么办 小孩牙齿空了怎么办 孩子掉了牙不长怎么办 小朋友不敢看牙医怎么办 小孩不喜欢洗脸刷牙怎么办 宝宝洗澡老是哭怎么办 孩子越来越怕打针怎么办 16孩子不爱洗澡怎么办 死手系统出问题怎么办 死手系统地震怎么办