lionel chang

导航

2012年8月21日 #

从task_struct开始学习linux内核

摘要: 一。数据结构进程控制块PCB(Process Control Block)是进程存在和运行的唯一标志,在Linux中用task_struct这个结构体来表示。这个结构体中有很多数据项,查看源代码时没必要理解全部的数据项,只需要在以后使用时再理解。struct task_struct { .... };下面重点介绍几个基本的数据项:1。进程状态task_struct中用一个长整形state表示进程的状态。volatile long state;在linux中有四种基本的进程状态:(1)就绪态(TASK_RUNNING):包括了运行态的进程。这是为了方便管理,因为任意时刻处于就绪态的进... 阅读全文

posted @ 2012-08-21 16:27 woshizyl 阅读(208) 评论(0) 推荐(0) 编辑

C语言中几个关键字(inline,volatile,static)

摘要: 一。inlineinline关键字一般用于定义内联函数,所谓内联函数与一般函数的区别是:1.内联函数一般比较短小,只有几行代码2.调用内联函数没有调用一般函数所必需的保护堆栈的开销,调用时直接把它嵌入到调用函数中。inline与宏定义十分相似,但是必须知道它们之间的区别:调用inline时会进行类型检查,而宏定义是没有类型检查的二。volatilevolatile在英语中的意思是”易变的“,用它定义的变量在程序编译阶段不做优化,每次都不必须从内存中读取变量的值。volatile有以下几个方面的应用: i.并行设备的硬件寄存器(如:状态寄存器)ii。一个中断服务子程序中会访问到的非自动变量iii 阅读全文

posted @ 2012-08-21 15:36 woshizyl 阅读(680) 评论(0) 推荐(0) 编辑