上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 25 下一页

2013年8月16日

linux cfs调度器

摘要: 在抽象模型中vruntime决定了进程被调度的先后顺序,在真实模型中决定被调度的先后顺序的参数是由函数entity_key决定的。 static inline s64 entity_key(struct cfs_rq *cfs_rq, struct sched_entity *se){ return se->vruntime - cfs_rq->min_vruntime;}enqueue_task_fair---->enqueue_entity---->__enqueue_entity---->entity_key决定插入就绪队列的位置。普通进程分为40个等级,每 阅读全文

posted @ 2013-08-16 15:25 阿加 阅读(2195) 评论(0) 推荐(0) 编辑

2013年8月15日

运算符重载

摘要: 我们知道如何在遵循C++语法条件下实现"虚函数、重载运算符函数"。我认为当我们尝试来实现重载运算符的虚函数时需要知道:函数签名、redefine、overload、override、虚表、RTTI、编译器默认的插入行为。(此处没有使用虚基类,因此不需要虚表表的知识)和 同学 以及 ”EA娘家人“分别讨论了这个问题,均没有得出详细的解答,不知到android源码中有没有,没仔细找。参考:http://stackoverflow.com/questions/669818/virtual-assignment-operator-chttp://www.icu-project.or 阅读全文

posted @ 2013-08-15 15:08 阿加 阅读(422) 评论(0) 推荐(0) 编辑

2013年8月14日

linux cfs调度器_模型实现

摘要: 调度器真实模型的主要成员变量及与抽象模型的对应关系I、cfs_rq结构体 a) struct sched_entity *curr 指向当前正在执行的可调度实体。调度器的调度单位不是进程,而是可调度的实体。每个task_struct都嵌入了一个可调度实体sched_entity,所以每个进程是一个可调度实体。可以将多个进程捆绑在一起作为一个调度单位(即调度实体)进行调度。因此,可调度实体可以是一个进程,也可以是多个进程构成的一个组。为了简化,暂时把curr理解为指向当前正在运行的进程。 d) struct rboot tasks_timeline cfs就绪队列是用红黑树来组织的,tasks. 阅读全文

posted @ 2013-08-14 08:40 阿加 阅读(1098) 评论(0) 推荐(0) 编辑

2013年8月13日

linux cfs调度器_理论模型

摘要: 参考资料:《调度器笔记》Kevin.Liu 《Linux kernel development》 《深入Linux内核架构》 version: 2.6.32.9 下文中对于红黑树或链表组织的就绪队列,统称为用队列组织的就绪队列。 linux中用struct rq将处于ready状态的进程组织在一起。 struct rq结构体包含cfs和rt成员,分别表示两个就绪队列:cfs就绪队列用于组织就绪的普通进程(这个队列上的进程用完全公平调度器进行调度);rt就绪队列用于组织就绪的实时进程(该队列上的进程用实时调度器调度)。 在多核cpu系统中,每个cpu对应一个struct rq结构体实例。 核.. 阅读全文

posted @ 2013-08-13 08:52 阿加 阅读(2976) 评论(3) 推荐(4) 编辑

2013年8月12日

jiffies存放

摘要: 固然书本上讲明jiffies是jiffies_64的低32位,但是我还是自己测试了下,重点在于链接脚本的写法。此处只是为了测试,因此简化链接脚本。 /* link.lds */1 ENTRY(_start) 2 3 jiffies = jiffies_64; 4 5 SECTIONS 6 { 7 8 . = 0x0; 9 10 . = ALIGN(4);11 .t... 阅读全文

posted @ 2013-08-12 09:15 阿加 阅读(346) 评论(0) 推荐(0) 编辑

2013年8月11日

在C++中实现不可继承的类

摘要: 逛下bbs,“在C++中实现不可继承的类”,瞒有意思的。class NoInherite { friend class Seal; private: NoInherite(void) {} ~NoInherite(void) {}};class Seal: virtual private NoInherite{ public: Seal(v... 阅读全文

posted @ 2013-08-11 20:52 阿加 阅读(265) 评论(0) 推荐(0) 编辑

装饰模式(Decorator Pattern)--------结构型模式

摘要: 装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为。装饰模式降低类系统的耦合度,可以动态地增加或删除对象的职责,并使得需要装饰的具体构件类和具体装饰类可以独立变化,以便增加新的具体构件类和具体的装饰类。在装饰模式中既可以调用待装饰的原有类的方法,还可以增加新的方法,以扩充原有类的功能。在装饰模式中,为了系统具有更好的灵活性和可扩展性,通常会定义一个抽象装饰类,而将具体的装饰类作为它的子类。在装饰模式中结构图中包含4个角色(1)、Component(抽象构件):它是具体构件和抽象装饰类的共同父类,声明了在具体构件中实现的业务方法。它的引入可以使客户端以一致的方式处理未被装饰的对象 阅读全文

posted @ 2013-08-11 19:12 阿加 阅读(291) 评论(0) 推荐(0) 编辑

How to use base class's assignment operator in C++

摘要: 看了android下的代码,好长时间没看了,有个关于C++的知识点不是很清楚,查了下:如何使用基类中的赋值运算符?引述自http://stackoverflow.com/questions/1226634/how-to-use-base-classs-constructors-and-assignment-operator-in-c参考:《C++ Primer》4ed_CN p_495编译器的默认设置:struct base{ base() { std::cout << "base()" << std::endl; } base( base cons 阅读全文

posted @ 2013-08-11 14:19 阿加 阅读(347) 评论(0) 推荐(0) 编辑

组合模式(Composite Pattern) ------------结构型模式

摘要: 组合模式使用面向对象的思想来实现树形结构的处理和构件,描述了如何将容器对象和叶子对象进行递归组合,实现简单,灵活性好。组合模式(Composite Pattern):组合多个对象形成树形结构以表示具有“整体——部分”关系的层次结构。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性,组合模式又可以称为“整体——部分”(Part-While)模式,它是一种对象结构型模式。组合模式的关键是定义了一个抽象构件类,它既可以代表叶子,也可以代表容器,而客户端针对该抽象构建类进行编程,无须知道它到底表示的是叶子还是容器,可以对其进行统一处理。同时容器对象与抽象构件类之间还建立了一个聚 阅读全文

posted @ 2013-08-11 09:07 阿加 阅读(306) 评论(0) 推荐(0) 编辑

2013年8月7日

what's the help of "unnecessary" pointer comparison

摘要: 引述自http://c-programming.itags.org/q_c-programming-language_191518.html源代码中的宏min中使用了 (void) (&_x == &_y); ( c89不支持typeof )有如下解释Assuming (as the name "typeof" implies) that _x has the same type asx, and _y has the same type as y, comparing the addresses of _x and _yis legal if and on 阅读全文

posted @ 2013-08-07 14:37 阿加 阅读(317) 评论(0) 推荐(0) 编辑

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 25 下一页

导航