Linux内核学习
文章平均质量分 59
hello_yang_123
这个作者很懒,什么都没留下…
展开
-
Linux进程调度
Linux进程调度1. 早期调度算法及其缺陷在早期内核版本,Linux的调度算法很简单。当需要调度时调度函数就扫描整个可运行队列并计算进程的优先级,从中选出优先级最高的进程以替代当前占用CPU的进程。这种调度方式在设计和实现上非常简单,只需将可运行进程组织成一个队列,然后遍历就可以了。但它有一个非常致命的缺陷,随着进程数量的增加,扫描所花费的时间也随之增加。原创 2015-11-18 13:38:23 · 718 阅读 · 0 评论 -
中断处理程序与中断服务例程
1. 什么是中断简单来说中断就是硬件设备与处理器的一种交流方式,比如当我按下一个键时,只有当处理器知道我按下了这个键并且做出相应的处理时,按键这个操作才是有效的。我们知道处理器的速度远远高于外围设备的速度,处理器与外设选择合适的交流方式就格外重要。轮询是一种方式,这种方式是内核周期性地对设备状态进行查询并作出相应的的动作,但这种方式会让内核做大量的无用功,这显然是不明智的。更好的方式是让外原创 2015-11-18 13:41:22 · 8368 阅读 · 1 评论 -
伙伴算法
内存分配中的伙伴算法1.几个重要的概念节点:在某些体系结构中CPU对内存不同位置的访问所需的时间不相同。Linux支持这种被称为非一致内存访问模式(Non-Uniform Memory Access,NUMA),相应的也就存在这样一种情况:CPU对内存的单元的访问都需要相同的时间(UMA)。正因为存在NUMA这种情况,系统的物理内存被划分为几个节点,在一个节点中任意给定原创 2015-11-18 13:39:31 · 521 阅读 · 0 评论 -
内核同步措施
内核同步措施1.内核同步的引入假设一种情况,只有一个cpu并且cpu处理任务是串行的,也就是严格地执行完一个再执行下一个。这种情况下内核中的共享数据不需要特殊的规则也能达到我们预期。然而这种情况肯定是不能满足我们对计算机的要求,因为它太慢而且如果有一个任务出问题了那么后面任务将无法执行。现实的情况是多CPU并行处理任务,即使是单核cpu,任务也是可调度的。那么对于共享数原创 2016-03-08 15:56:58 · 352 阅读 · 0 评论