apue中:其中进程表项内部的数组又称为 进程打开文件表 另外一个角度:从linux内核角度开:task_struct是进程描述符对应上面的进程表项,在task_struct描述符中有struct file_struct*类型的变量file,指向struct file_struct结构。1.file...
分类:
系统相关 时间:
2015-06-25 19:28:18
阅读次数:
216
linux上进程有5种状态:1. 运行(正在运行或在运行队列中等待)2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)5. ...
分类:
系统相关 时间:
2015-06-19 16:43:17
阅读次数:
128
进程描述符中包含的数据能完整地描述一个正在执行的程序:他打开的文件,进程的地址空间,挂起的信号,进程的状态等。?1:分配进程描述符linux通过使用slab分配器分配task_struct结构,这样能够达到对象复用和缓存着色的目的。现在只需在栈底或栈顶创建一个新的结构struct thread_info结构即可。首先我们先看一下thread_info的结构:struct thread_info {...
分类:
系统相关 时间:
2015-06-16 09:20:54
阅读次数:
193
1.进程描述符及任务结构
Linux内核把进程存放在叫做任务队列的双向循环链表中。链表中的每一项都是类型为task_struct,称为进程描述符的结构。进程描述符包含一个具体进程的所有信息。
task_struct相对较大,在32位的机器长,它大约有1.7K字节。进程描述符中的数据能完整的描述一个正在执行的程序:它打开的文件、进程的地址空间、挂起的信号、进程的状态,还有其他...
分类:
系统相关 时间:
2015-05-29 18:11:24
阅读次数:
241
switch_to:这是一个宏,有三个参数prev,next,last局部变量prev,next:指向进程描述符的内存地址首先明确的是:last和prev是同一个,用last只是为了理解方便,完全可以用两个参数prev,next。因为last就是prevswitch_to宏用于进程切换,给定了前一个...
分类:
系统相关 时间:
2015-04-16 23:20:44
阅读次数:
566
进程的描述ulk那个大图 for task_struct提纲挈领,看代码前总览
序言 进程控制块PCB——task_struct为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息。
struct task_struct数据结构很庞大Linux进程的状态与操作系统原理中的描述的进程状态似乎有所不同,比如就绪状态和运行状态都是TASK_RUNNING,为什么呢...
分类:
系统相关 时间:
2015-04-07 23:33:39
阅读次数:
382
linux系统中每个进程由一个进程id标识,在内核中对应一个task_struct结构的进程描述符,系统中所有进程的task_struct通过链表链接在一起,在内核中,经常需要通过进程id来获取进程描述符,最简单的方法可以通过遍历task_struct链表并对比id的值来获取,但这样效率太低,尤其当...
分类:
系统相关 时间:
2015-03-11 21:30:48
阅读次数:
246
linux上进程有5种状态:1. 运行(正在运行或在运行队列中等待)2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)5. ...
分类:
系统相关 时间:
2015-01-21 14:41:44
阅读次数:
264
先抄录网上一段对僵死进程的描述:
僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。在每个进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等。 但是仍然为其保留一定的信息(包括进程号the process ID,退出状态the termi...
分类:
系统相关 时间:
2014-12-17 14:36:59
阅读次数:
355
进程管理工具htop/glances/dstat的使用Linux中进程的相关知识 1、什么是进程呢?通俗的来说进程是运行起来的程序。唯一标示进程的是进程描述符(PID)。2、进程的分类1)根据在linux不同模式下运行分为:核心态:这类进程运行在内核模式下,执行一些内核指令(Ring 0)。用户态:...
分类:
系统相关 时间:
2014-11-29 23:05:48
阅读次数:
456