#include
#include
#include
#include
#include
static int i=0,j=100;
struct task_struct *MyThread1=NULL;
struct task_struct *MyThread2=NULL;
static int myVar = 0;
static int count = 0;
spinloc...
分类:
系统相关 时间:
2014-09-30 11:34:29
阅读次数:
239
do_fork()实现一、在分析do_fork()之前,我们需要对进程要有一定的认识,因为do_fork()是创建进程的。进程四要素:1、有一段程序供其执行;2、有进程专用的系统堆栈空间,即内核栈;3、有进程控制块task_struct结构体;4、有独立的存储空间,专用的用户空间,即用于虚存管理的m..
分类:
其他好文 时间:
2014-09-24 20:52:28
阅读次数:
228
Linux对于内存的管理涉及到非常多的方面,这篇文章首先从对进程虚拟地址空间的管理说起。(所依据的代码是2.6.32.60)
无论是内核线程还是用户进程,对于内核来说,无非都是task_struct这个数据结构的一个实例而已,task_struct被称为进程描述符(process descriptor),因为它记录了这个进程所有的context。其中有一个被称为'内存描述符‘(memory de...
分类:
系统相关 时间:
2014-09-24 12:32:06
阅读次数:
365
cpuset子系统为cgroup中的任务分配独立CPU(在多核系统)和内存节点。cpuset_cgroup的cpus_allowed和mems_allowed定义
了该cpuset包含的cpu和内存节点,其中进程的task_struct->cpus_allowed与进程所属cpuset的cpus_allowed保持一致,在进程分配
物理页框时(alloc_pages系函数),通过cpuset_...
分类:
其他好文 时间:
2014-08-13 18:53:47
阅读次数:
152
进程的管理与调度
进程管理
进程描述符及任务结构
进程存放在叫做任务队列(tasklist)的双向循环链表中。链表中的每一项包含一个具体进程的所有信息,类型为task_struct,称为进程描述符(process descriptor),该结构定义在文件中。
Linux通过slab分配器分配task_struct结构,这样能达到对象复用和缓存着色(cache colorin...
分类:
系统相关 时间:
2014-08-09 13:29:07
阅读次数:
993
1.进程的基本概念 1.1操作系统有三大抽象概念: a)进程:程序的执行过程; b)文件: IO; c)虚拟内存:可用的地址空间; 1.2 进程在内核中是一种数据结构 task_struct(定义见/usr/src/linux-headers-3.8.0-29/include/...
分类:
系统相关 时间:
2014-08-02 23:19:24
阅读次数:
378
众所周知,进程调度使用schedule()函数来完成,下面我们从分析该函数开始,代码如下(kernel/sched/core.c):1 asmlinkage __visible void __sched schedule(void)2 {3 struct task_struct *tsk =...
分类:
系统相关 时间:
2014-08-02 17:58:03
阅读次数:
396
进程:
传统上,Linux操作系统下运行的应用程序,服务器和其他程序都称为进程。当然进程不仅仅表示一段处于执行期的可执行代码,还包括其他资源,例如打开的文件,挂起的信号和内核内部数据等。其实还有个概念叫,线程或者说轻量级进程,不过在Linux中线程和进程其实是类似的。可以把线程看做和其他进程共享某些数据和资源的进程。
进程的表示:
通常进程是由一个叫task_struct的结构表示的,或者叫...
分类:
系统相关 时间:
2014-08-01 23:15:23
阅读次数:
442
1.进程描述符 struct task_struct { volatile long state; ....... struct list_head tasks; ....... struct mm_struct *mm, *active_mm; ....... struct v...
分类:
系统相关 时间:
2014-07-22 22:47:52
阅读次数:
371
//函数原型:版本linux-3.0.8
struct task_struct *__switch_to(structtask_struct *,
struct thread_info *, struct thread_info *);
#define switch_to(prev,next,last) ...
分类:
其他好文 时间:
2014-07-09 09:28:09
阅读次数:
362