易截截图软件、单文件、免安装、纯绿色、仅160KB

linux 2.6源代码情景分析笔记之进程3

为内核寻找新进程在cpu上运行时,必须只考虑可运行进程(TASK_RUNNING)。
提高调度程序运行速度的诀窍是建立多个可运行进程链表,每种进程优先权对应一个不同的链表。每个task_struct描述符包含一个list_head类型的字段run_list。如果进程的优先权等于k(0-139),run_list字段把该进程链入优先权为k的可运行进程的链表中。
内核必须为系统中每个运行队列保存大量的数据,不过运行队列的主要结构还是组成运行队列的进程描述符表,所有这些链表都由一个单独的prio_array_t数据结构来实现。
185 struct prio_array {
186         unsigned int nr_active;             链表中进程描述符的数量
187         unsigned long bitmap[BITMAP_SIZE];  优先权位图:当且仅当某个优先权的进程链表不为空时设置相应的位标志
188         struct list_head queue[MAX_PRIO];   140个优先权队列的头结点
189 };
static void enqueue_task(struct task_struct *p, prio_array_t *array)
{
        sched_info_queued(p);
        list_add_tail(&p->run_list, array->queue + p->prio);
        __set_bit(p->prio, array->bitmap);
        array->nr_active++;
        p->array = array;
}
此函数将进程描述符插入某个运行队列链表。于此函数对应的是dequeue_task(p,array)
进程描述符的prio字段存放进程的动态优先权,而array字段则是一个指针,指向当前运行队列的prio_array_t数据结构。
程序创建的进程具有父/子关系。如果一个进程创建多个子进程时,则子进程之间具有兄弟关系。进程0和进程1是由内核创建的。进程1(init)是所有进程的祖先。
real_parent:指向创建了p进程的描述符,如果p的父进程不再存在,就指向进程1(init)的描述符(如果用户运行一个后台进程而且退出了shell,后台进程就会成为init的子进程)
parent:指向p的当前父进程(这种进程的子进程终止时,必须向父进程发信号)。它的值通常与real_par


相关文档:

实战Linux Bluetooth编程 (七) SDP协议

Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......

Linux设备模型之input子系统详解

一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......

linux svn命令大全


1、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co
2、往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文 ......

有趣的linux命令(English)

Some humorous things to do to a UNIX system:
from the csh (c shell):
 
% make love
Make: Don't know how to make love. Stop.
 
% got a light?
No match.
 
% sleep with me
bad character
 
% man: Why did you get a divorce?
man:: Too many arguments.
 
% rm God
rm: ......

linux修改屏幕刷新率

1、先备份好:
  sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
  2、打开xorg.conf:
  sudo gedit /etc/X11/xorg.conf
  3、请找到以下一段在这改:
  Section "Monitor"
  Identifier "Generic Monitor"
  Option "DPMS"
  HorizSync 28-70
  VertRefr ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号