上一页 1 ··· 97 98 99 100 101 102 103 104 105 ··· 121 下一页

2013年4月15日

内核中断,异常,抢占总结篇

摘要: 一、基本概念 中断分为同步中断和异步中断。同步中断是由CPU控制单元产生的,“同步”是指只有在一条指令执行完毕后,CPU才会发出中断,而不是发生在代码指令执行期间,比如系统调用。而异步中断是由其他硬件设备依照CPU时钟信号产生的,即意味着中断能够在指令之间发生,例如键盘中断。 按照Intel的微... 阅读全文

posted @ 2013-04-15 11:13 疯子123 阅读(235) 评论(0) 推荐(0) 编辑

深入理解linux内核自旋锁

摘要: 最近在内核频繁使用了自旋锁,自旋锁如果使用不当,极易引起死锁,在此总结一下。 自旋锁是一个互斥设备,它只有两个值:“锁定”和“解锁”。它通常实现为某个整数值中的某个位。希望获得某个特定锁得代码测试相关的位。如果锁可用,则“锁定”被设置,而代码继续进入临界区;相反,如果锁被其他人获得,则代码进入忙... 阅读全文

posted @ 2013-04-15 11:09 疯子123 阅读(391) 评论(0) 推荐(0) 编辑

软中断小结

摘要: 内核处理的任务中有的不是那么紧迫的,在必要的时间可以把它们延迟一段时间,这就是软中断形成的背景。这对于哪些期望它们的中断能在几毫秒内得到处理的“急迫”应用来说是非常重要的。由此,硬中断负责处理紧急的任务,软中断负责处理不是那么紧迫的任务。 Linux 2.6内核提供了两种非紧迫、可中断函数:所... 阅读全文

posted @ 2013-04-15 11:09 疯子123 阅读(124) 评论(0) 推荐(0) 编辑

Linux 中断总结

摘要: Linux中断分为硬中断和软中断。 硬中断是由硬件设备触发的中断。I/O设备要产生硬中断时,会由中断控制器发送一个电信号,内核的设备驱动程序接收到这个电信号,就会调用相应的中断处理函数对这个中断进行处理。硬中断可以在任何时刻到来,它代表的系统必须马上处理的紧急任务,也简称为中断的上半部,与此对应... 阅读全文

posted @ 2013-04-15 11:07 疯子123 阅读(198) 评论(0) 推荐(0) 编辑

在用户空间发生中断时,上下文切换的过程

摘要: 先引用一篇博文,再总结一下相关问题。 所谓上下文切换,实质就是寄存器堆的切换过程。这其中一部分需要硬件来切换,一部分需要软件来处理。 当在用户空间发生中断时,首先由 x86 CPU 从硬件角度进行处理,然后才是 linux 内核的处理。当中断处理完毕,返回到用户空间时,最后的步骤也是交给 CP... 阅读全文

posted @ 2013-04-15 11:06 疯子123 阅读(257) 评论(0) 推荐(0) 编辑

Linux内核抢占实现机制分析

摘要: Linux内核抢占实现机制分析 【摘要】本文详解了Linux内核抢占实现机制。首先介绍了内核抢占和用户抢占的概念和区别,接着分析了不可抢占内核的特点及实时系统中实现内核抢占的必要性。然后分析了禁止内核抢占的情况和内核抢占的时机,最后介绍了实现抢占内核所做的改动以及何时需要重新调度。 【关键字】... 阅读全文

posted @ 2013-04-15 11:03 疯子123 阅读(323) 评论(0) 推荐(0) 编辑

【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】Linux内核抢占实现机制分析

摘要: Linux内核抢占实现机制分析 【摘要】本文详解了Linux内核抢占实现机制。首先介绍了内核抢占和用户抢占的概念和区别,接着分析了不可抢占内核的特点及实时系统中实现内核抢占的必要性。然后分析了禁止内核抢占的情况和内核抢占的时机,最后介绍了实现抢占内核所做的改动以及何时需要重新调度。 【关键字... 阅读全文

posted @ 2013-04-15 11:00 疯子123 阅读(156) 评论(0) 推荐(0) 编辑

2013年4月13日

Linux 2.6 内核定时器

摘要: 一、定义: /include/linux/timer.h struct timer_list { struct list_head entry; unsigned long expires; void (*function)(unsigned long); unsig... 阅读全文

posted @ 2013-04-13 13:46 疯子123 阅读(301) 评论(0) 推荐(0) 编辑

内核源码学习:伙伴算法

摘要: 1.原理 Linux的伙伴算法把所有的空闲页面分为10个块组,每组中块的大小是2的幂次方个页面,例如,第0组中块的大小都为20 (1个页面),第1组中块的大小为都为21(2个页面),第9组中块的大小都为29(512个页面)。也就是说,每一组中块的大小是相同的,且这同样大小的块形成... 阅读全文

posted @ 2013-04-13 13:45 疯子123 阅读(183) 评论(0) 推荐(0) 编辑

内存管理简介之Buddy算法和slab分配

摘要: 1.Buddy算法 linux对空闲内存空间管理采取buddy算法, Buddy算法: 把内存中所有页面按照2^n划分,其中n=0~5,每个内存空间按1个页面、2个页面、4个页面、8个页面、16个页面、32个页面进行六次划分。划分后形成了大小不等的存储块,称为页面块,简称页块,包含一个页面的页... 阅读全文

posted @ 2013-04-13 13:45 疯子123 阅读(722) 评论(0) 推荐(1) 编辑

上一页 1 ··· 97 98 99 100 101 102 103 104 105 ··· 121 下一页

导航