linux 内核设计与实现
张先生123456
这个作者很懒,什么都没留下…
展开
-
linux内核设计与实现---中断和中断处理(7)
一、中断:终端是一种电信号,由硬件设备生成,并直接送入中断控制器的输入引脚中——终端控制其是一个简单的电子芯片,其作用是将多路中段管线,采用复用技术只通过一个和处理器相连接的管线与处理器通信。(异步)—由硬件产生的异步中断。 异常:与中断不同,它在产生时不需要考虑与处理器时钟同步。也称为同步中断。在处理器执行到由于编程失误而导致的指令错误(如除0)的时候,或者是执行期间出现特殊情况(如缺页),必须原创 2017-08-11 22:47:26 · 356 阅读 · 0 评论 -
linux内核设计与实现---内核同步介绍(9)
在使用共享内存的应用程序中,程序员必须特别留意保护共享资源,防止共享资源并发访问。内核也不例外。共享资源之所以要防止并发访问,是因为如果多个执行线程同时访问和操作数据,就有可能发生各线程之间相互覆盖共享数据的情况,造成共享数据处于不一致状态。 单一处理器的时候,只有在中断发生时,或在内核代码明确的请求重新调度、执行另一个任务的时候,数据才可能并发访问。 从2.0版开始,内核开始支持对称多处理器,意味原创 2017-07-27 21:57:35 · 207 阅读 · 0 评论 -
Linux内核设计与实现---下半部分和推后执行的工作(8)
中断处理程序上半部的局限性: 中断处理程序以异步方式执行,并且它有可能会打断其他重要代码(甚至是中断处理程序)的执行。因此越短越好。 如果一个中断执行,最好情况下(IRQF_DISABLED没有被设置),与该中断同级的中断被屏蔽,最坏情况下(设置IRQF_DISABLED),当前处理器所有中断被屏蔽。中断被禁用,因此越快越好。 与硬件打交道,所以有时限要求。 不在进程上下文执行,不能阻塞,限制了它们原创 2017-08-12 14:50:56 · 229 阅读 · 0 评论 -
linux内核设计与实现---定时器和时间管理(11)
相对于事件驱动(事件驱动其实也是一种事件驱动,但发生频率非常高,对内和至关重要)而言,内核中有大量的函数都是基于事件驱动的。其中有些函书是周期性执行。周期性产生的事件—–由系统定时器驱动。系统定时器是一种可编程硬件控制芯片,它能以固定频率产生中断。就是所谓的定时器中断。它所对应的中断处理程序负责更新系统时间,也负责执行需要周期运行的任务。 系统定时器和时钟中断处理程序是Linux系统内核管理机制中的原创 2017-08-18 15:26:04 · 318 阅读 · 0 评论 -
linux内核设计与实现---内核同步方法(10)
一、原子操作—其他同步方法的基石。 原子操作可以保证指令以原子的的方式执行—-执行过程不被打断。 内核提供了两组原子操作接口:一组针对整数进行操作、一组针对单独的位进行操作。 原子整数操作 针对整数的原子操作只能对atomic_t类型的数据进行处理。 采用新类型的原因:让原子操作只接受atomic_t类型的操作数。保证该数据类型不会被传递给任何非原子函数。使用atomic _t类型确保编译器不对原创 2017-07-28 22:18:39 · 264 阅读 · 0 评论