摘要: 哥今生不想再看到这段代码!!!#define switch_to(prev, next, last) \do { \/* \ * Context-switching clobbers(彻底击败) all registers, so we clobber \ * them explicitly, via unused output variables. \ * (EAX and EBP is not listed because EBP is saved/restored \ * explicitly for wchan access and EA... 阅读全文
posted @ 2011-12-10 23:50 visayafan 阅读(8991) 评论(0) 推荐(0)
摘要: Table of Contents1 时间类型。 2 时间操作 3 延时函数 1 时间类型。Linux下常用的时间类型有4个:time_t,struct timeval,struct timespec,struct tm。time_t是一个长整型,一般用来表示用1970年以来的秒数。truct timeval有两个成员,一个是秒,一个是微妙。struct timeval{ long tv_sec; long tv_usec;};struct timespec有两个成员,一个是秒,一个是纳秒。struct timespec{ time_t tv_sec; long tv_... 阅读全文
posted @ 2011-12-10 17:28 visayafan 阅读(2584) 评论(1) 推荐(1)
摘要: 转自:http://www.ibm.com/developerworks/cn/linux/l-affinity.html简单地说,CPU 亲和性(affinity)就是进程要在某个给定的 CPU 上尽量长时间地运行而不被迁移到其他处理器的倾向性。Linux 内核进程调度器天生就具有被称为软 CPU 亲和性(affinity)的特性,这意味着进程通常不会在处理器之间频繁迁移。这种状态正是我们希望的,因为进程迁移的频率小就意味着产生的负载小。2.6 版本的 Linux 内核还包含了一种机制,它让开发人员可以编程实现硬 CPU 亲和性(affinity)。这意味着应用程序可以显式地指定进程在哪个( 阅读全文
posted @ 2011-12-10 16:04 visayafan 阅读(14078) 评论(1) 推荐(1)
摘要: 转自:http://www.ibm.com/developerworks/cn/linux/kernel/l-kn26sch/index.html1. 前言Linux 的市场非常广阔,从桌面工作站到低端服务器,它都是任何商用操作系统的有力竞争对手。目前,Linux 正全力进军嵌入式系统和高端服务器系统领域,但它的技术缺陷限制了它的竞争力:缺乏对实时任务的支持,多处理机可扩展性差。在 2.4 内核中,造成这两个弱项的关键原因之一就是调度器设计上的缺陷。2.6 调度系统从设计之初就把开发重点放在更好满足实时性和多处理机并行性上,并且基本实现了它的设计目标。主要设计者,传奇式人物 Ingo Moln 阅读全文
posted @ 2011-12-10 11:47 visayafan 阅读(731) 评论(0) 推荐(0)
摘要: 转自http://www.ibm.com/developerworks/cn/linux/l-cn-schldom/Scheduling Domains 引入的背景Scheduling Domains 是现代硬件技术尤其是多 CPU 多核技术发展的产物。现在,一个复杂的高端系统由上到下可以这样构成:它是一个 NUMA 架构的系统,系统中的每个 Node 访问系统中不同区域的内存有不同的速度。同时它又是一个 SMP 系统。由多个物理 CPU(Physical Package) 构成。这些物理 CPU 共享系统中所有的内存。但都有自己独立的 Cache 。每个物理 CPU 又由多个核 (Core) 阅读全文
posted @ 2011-12-10 00:04 visayafan 阅读(4923) 评论(0) 推荐(1)