Linux2.6内核实现的是NPTL】的更多相关文章

NPTL是一个1×1的线程模型,即一个线程对于一个操作系统的调度进程,优点是非常简单.而其他一些操作系统比如Solaris则是MxN的,M对应创建的线程数,N对应操作系统可以运行的实体.(N<M),优点是线程切换快,但实现稍复杂 转 Linux2.6内核实现的是NPTL线程模型,依然是用进程来模拟线程,但新引入了线程组(进程组)的概念,使得实现效率更好. 在2.4内核中,不存在线程组的概念,当运行一个多线程得程序时,使用ps命令,可以看到有许多个进程,在ps命令看来,线程基本上是等同于进程,在信…
文章来自:www.ibm.com/developerworks/cn/linux/l-k26initrd/ 1.什么是 Initrd initrd 的英文含义是 boot loader initialized RAM disk,就是由 boot loader 初始化的内存盘.在 linux内核启动前, boot loader 会将存储介质中的 initrd 文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的 initrd 文件系统.在 boot loader 配置了 initr…
from: https://www.ibm.com/developerworks/cn/linux/l-k26initrd/ 简介: Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然的不同.本文首先介绍了什么是 initrd 技术,然后分别介绍了 Linux2.4 内核和 2.6 内核的 initr…
参考的是ULK第三版,Linux2.6.11.12内核版本. 调度程序依靠几个函数来完成调度工作,其中最重要的第一个函数是scheduler_tick函数,主要步骤如下: /** * 维持当前最新的time_slice计数器 * 每次时钟节拍到来时,scheduler_tick函数将被调用,以执行与调度相关的操作. */ void scheduler_tick(void) { int cpu = smp_processor_id(); runqueue_t *rq = this_rq();//宏…
从1991年Linux的第1版到后来的2.4内核系列,Linux的调度程序都相当简陋,设计近乎原始,见0.11版内核进程调度.当然它很容易理解,但是它在众多可运行进程或者多处理器的环境下都难以胜任. 正因为如此,在Linux2.5开发系列的内核中,调度程序做了大手术.开始采用了一种叫做O(1)调度程序的新调度程序——它是因为其算法的行为而得名的.它解决了先前版本Linux调度程序的许多不足,引入了许多强大的新特性和性能特征.O(1)调度程序虽然对于大服务器的工作负载很理想,但是在有很多交互程序要…
一.内核原型(linux2.6.28-7) long (*compat_ioctl)(struct tty_struct *tty, struct file * file,                      unsigned int cmd, unsigned long arg);      implement ioctl processing for 32 bit process on 64 bit system      Optional 二.What is compat_ioctl…
一.        链表数据结构简介      链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式.相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据.链表的开销主要是访问的顺序性和组织链的空间损失.      通常链表数据结构至少应包含两个域:数据域和指针域,数据域用于存储数据,指针域用于建立与下一个节点的联系.按照指针域的组织以及各个节点之间的联系形式,…
题记 很久之前就分析过这部分内容,但是那个时候不够深入,姑且知道这么个东西存在,到底怎么用,来龙去脉咋回事就不知道了.前段时间工作上遇到了一个initrd的问题,没办法只能再去研究研究,还好,有点眉目,索性整理了一下. 网络上流传着很多关于ramdisk.initrd的各种版本的分析,我的这篇源于对他们的理解,非常感谢那些前辈的无私奉献,要不然我们这些晚辈学起东 西来该是多么艰难呀.在这里需要特别声明的是如果文中有引用了您的思想而没有给出参考文献,请您原谅我的疏忽.晚辈就是需要站在像您这种巨人的…
转自:http://blog.csdn.net/bonnshore/article/details/7979705 写在前面的话: 博主新开了个人站点:你也可以在这里看到这篇文章,点击打开链接 本文是博主学习linux驱动移植整整两周后通过查阅资料并结合自己的一些观察所做的一些记录,旨在作为日后温习材料,由于博主尚无太多经验文中内可能会出现一些谬误,希望看到的热心朋友能拍砖指正. 在我前面的日中已经提到了我所做的SC16C550的串口移植,本来是没有什么技术难度,但对于新人来讲了解内核代码的结构…
转自:http://hnniyan123.blog.chinaunix.net/uid-29917301-id-4989879.html 在Linux2.6版本的内核中,我们经常可以看到下面的结构体的定义和初始化.这在以前的C语言书中是极少见到的.下面的一个结构体来自到Linux内核中的一部分.在这个结构体中我们可以看到有普通的整型变量,也有函数的指针. struct net_proto_family { int family; int (*create)(struct net *net, st…