Linux 2.4 内核说明文档(进程与中断管理篇)(7)
再有一节:2.10.原子操作2.10.原子操作目前有两种类型的原子操作:bitmaps和atomic_t。对于维护“已分配”或者“释放”单位(这些单位来自于某些大型的以数字标识每个单位的集合)的概念,bitmaps非常便利。释放inodes和块就是例子。这也在某些简单锁中有广泛的应用,例如提供打开设
Linux 2.4 内核说明文档(进程与中断管理篇)(6)
[quote]原帖由"SirFang"]我怎么记得linux下进程数是有限制的,不仅仅要足够的内存分配task_struct结构,还关系到GDT表,Linux不使用LDT,所以,GDT中的entry个数也就决定了进程总数。其中第0项不用,1~4项被指定为KernelCS/DS,Useractive.
Linux 2.4 内核说明文档(进程与中断管理篇)(5)
2.6.内核时钟现在我们来看看内核时钟。内核时钟常用来为细节函数(时钟处理函数)分派执行时间。主数据结构timer_list定义在include/linux/timer.h文件中:structtimer_list{structlist_headlist;unsignedlongexpires;uns
Linux 2.4 内核说明文档(进程与中断管理篇)(4)
2.5.等待队列当进程要求内核完成一件当前不会发生但稍后可能发生的事情时,它就进入休眠并在事件条件符合时被唤醒。内核实现机制的其中之一就被称为“等待队列”。Linux实现允许通过TASK_EXCLUSIVE标记来唤醒。对于等待队列,你可以采用通用的队列,然后简单地sleep_on/sleep_on_
Linux 2.4 内核说明文档(进程与中断管理篇)(3)
2.3.Linux调度程序调度程序的任务就是从多个进程中挑选一个访问当前CPU,它在kernel/sched.c中实现,对应的被每个内核源文件都引用的头文件定义在include/linux/sched.h。任务结构中对应调度的字段为:p->;need_resched:如果schedule()
Linux 2.4 内核说明文档(进程与中断管理篇)(2)
2.2.创建和中止任务与内核线程不同的操作系统书籍,从一个“正在执行的程序的实例”到“由clone或者fork系统调用产生的任务”等不同方式定义了“进程”。在linux下,共有三种类型程序:空线程;内核线程;用户任务;空线程在为第一个CPU引导时创建,然后依靠定义在arch/i386/kern
Linux 2.4 内核说明文档(进程与中断管理篇)(1)
[list=]本文档是《Linux2.4内核说明文档》中的第二部分。以下是整个文档大致目录:1,启动(http://bbs.chinaunix.net/forum/viewtopic.php?t=557946)2,进程和中断管理3,虚拟文件系统4,Linux页缓冲5,IPC机制本篇文档的目录为:2.
完全公平调度(CFS)(3)
组调度先说一下提纲1关于groupschedule的文档2关于组调度的认识3一些与组调度相关的数组结构4组调度结构图5具体的操作函数6后记1按照文档的解释,完全公平调度并不仅仅针对单一进程,也应该对组调度。例如有两个用户wxc1,wxc2,以用户userid来分,调度器分配给两个组的时间是公平的,w
完全公平调度(CFS)(2)
6)静悄悄地过来,看看这个经常调用的函数,到底做了啥捏?staticinlinevoid__update_curr(structcfs_rq*cfs_rq,structsched_entity*curr,unsignedlongdelta_exec)传进来的执行时间{unsignedlongdelt
完全公平调度(CFS)(1)
总结了篇关于cfs调度器的文档喜欢pdf的可以查看档案~CFS调度器--wxc200大家好哈,兄弟最近在学习调度器,有点儿心得,更多得是迷惑,写出心得来与大家分享,贴出迷惑来请大家解答。呵呵linux自2.6.23后引入了一种新的调度器,叫'CompletelyFairScheduler'(wiki
Unreliable Guide to Locking -by Rusty Russell-中文版2
第8章.加锁速度在考虑使用锁的代码的速度问题上,主要有三件事需要关注。首先是并发性:当锁被别人持有时,有多少事情是我们需要等待的。其次是,需要花多少时间来获取与释放一把无争议的锁。第三呢,是尽量使用更少的──或曰更灵活的──锁。当然,这里我已经假定锁的使用非常频繁,否则你都不用担心效率问题的。并发性
Unreliable Guide to Locking -by Rusty Russell-中文版1
KernelLocking中文版UnreliableGuideToLockingRustyRussell<rusty@rustcorp.com.au>翻译:albcamus<albcamus@163.com>Copyright©2003RustyRussellThisdocu
内核源码kfifo分析(原创)
从2.6.10开始,Linux内核提供了一个通用的环形缓存(我喜欢称为环形队列);它的头文件是<linux/kfifo.h>,kfifo.c是实现代码。在设备驱动中环形缓存出现相当多.网络适配器,特别地,常常使用环形缓存来与处理器交换数据(报文)[LDD3]。见下面的图“LDD3中描述的
基于NETLINK的内核与用户空间共享内存的实现
基于NETLINK的内核与用户空间共享内存的实现author:bripengandreEmail:bripengandre@126.com一、前言前些日子,开发中用到了netlink来实现内核与用户空间共享内存,写点笔记与大家分享。因为我对这块也不了解,写出来的东西一定存在很多错误,请大家批评指正~
Linux 用户态与内核态的交互——netlink 篇
Linux用户态与内核态的交互——netlink篇作者:Kendo2006-9-3这是一篇学习笔记,主要是对《Linux系统内核空间与用户空间通信的实现与分析》中的源码imp2的分析。其中的源码,可以到以下URL下载:http://www-128.ibm.com/developerworks/cn/
linux2.6.29 swtich_to 详细分析(一)
linux内核进程切换最重要的一个部分就是宏定义switch_to,下面从几个方面来详细讲解一下:(1)内嵌汇编(2)memory破坏描述符(编译器优化)(3)进程切换的标志是什么?(4)堆栈切换的标志是什么?(5)为什么switch_to提供了三个参数?(6)汇编参数的传递?带着这几个问题,先来大
linux2.6.29 swtich_to 详细分析(一)
linux内核进程切换最重要的一个部分就是宏定义switch_to,下面从几个方面来详细讲解一下:(1)内嵌汇编(2)memory破坏描述符(编译器优化)(3)进程切换的标志是什么?(4)堆栈切换的标志是什么?(5)为什么switch_to提供了三个参数?(6)汇编参数的传递?带着这几个问题,先来大
MySQL底层数据结构--大白话理解演变过程
利用假期,将之前看的零零散散的数据库底层组织结构串联起来,梳理了:二叉树,平衡二叉树,Hash索引,BTree,B+树的区别,用大白话梳理了为啥要发展出后者,进行逐次不断的迭代进化,用大白话解读,仅涉及原理的理解,供自己理清框架,也供小白们参考借鉴。首先声明:我只是百度、CSDN、知友们的搬运工,站
netlink socket编程之why & how (转)
netlinksocket编程之why&how作者:KevinKaichuanHe@2005-1-5翻译整理:duanjigang@2008-9-15<duanjigang1983@126.com>原文:http://www.linuxjournal.com/article/73
[内核模块] 用户空间内核空间ipc总结(sockopt,ioctl,mmap,netlink,pr
用户空间内核空间ipc总结(sockopt,ioctl,mmap,netlink,proc,seq,file,copy_user)原作者:ubuntuer多数的Linux内核态程序都需要和用户空间的进程交换数据,但Linux内核态无法对传统的Linux进程间同步和通信的方法提供足够的支持!本文就总结