
linux内核
文章平均质量分 78
大宝1985猪猪
我是大宝猪
展开
-
由关于malloc的一个争论引起的探究
<br />前几天,在听一节课时,关于malloc返回的地址是物理地址还是线性地址,跟人进行了激烈的讨论。当时脑子也不知怎么了,硬是觉得返回的是物理地址,还写了一个程序进行验证。<br />#include <stdio.h><br />#include <stdlib.h><br />int main()<br />{<br />char * p = (char *)malloc(sizeof(char));<br />printf("address=%x/n",p);<br />retu转载 2010-10-28 13:10:00 · 389 阅读 · 0 评论 -
中断服务下半部之workqueue详解
【摘要】本文详解了中断服务下半部之工作队列实现机制。介绍了工作队列的特点、其与tasklet和softirq的区别以及其使用场合。接着分析了工作队列的三种数据结构的组织形式,在此基础之上分析了工作队列执行流程。最后介绍了工作队列相关的API,如何编写自己的工作队列处理程序及定义一个work对象并向内核提交等待调度运行。 【关键字】中断下半部,工作队列,workqueue_struct,work_struct,DECLARE_WORK,schedule_work,schedule_delaye原创 2010-10-28 14:57:00 · 1393 阅读 · 0 评论 -
内核空间和用户空间 进程上下文和中断上下文
内核空间和用户空间Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~ 4G。Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为“内核空间”。而将较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF),供各个进程使用,称为“用户空间)。因为每个进程可以通过系统调用进入内核,因此,Linux内核由系统内的所有进程共享。于是,从具体进程的角度来看,每个进原创 2010-10-28 15:15:00 · 631 阅读 · 0 评论 -
对Linux内核中进程上下文和中断上下文的理解
内核空间和用户空间是操作系统理论的基础之一,即内核功能模块运行在内核空间,而应用程序运行在用户空间。现代的CPU都具有不同的操作模式,代表不同的级别,不同的级别具有不同的功能,在较低的级别中将禁止某些操作。Linux系统设计时利用了这种硬件特性,使用了两个级别,最高级别和最低级别,内核运行在最高级别(内核态),这个级别可以进行所有操作,而应用程序运行在较低级别(用户态),在这个级别,处理器控制着对硬件的直接访问以及对内存的非授权访问。内核态和用户态有自己的内存映射,即自己的地址空间。正是有了不同转载 2010-10-28 14:00:00 · 446 阅读 · 0 评论 -
对 Softirq,tasklet和workqueue做一个简单的总结和分析
<br />今天看了《深入理解Linux内核》的中断和异常一章,对Softirq,tasklet和workqueue做一个简单的总结和分析。<br /> 其实softirq和taskled都属于软中断,而工作队列是和软中断无关,仅仅是内核中的一个内核线程在等待工作任务,工作队列可以发送工作任务。不过他们还是有个共同点,就是都有延后执行的作用。<br /> <br />1.首先看 do_softirq如何被调用和如何处理。<br />#ifdef __ARCH_IRQ_EXIT_IRQS转载 2010-10-28 14:31:00 · 747 阅读 · 0 评论 -
中断服务下半部之tasklet详解
<br />【摘要】本文详解了中断服务下半部之tasklet实现机制。介绍了tasklet链表的组织形式tasklet_vec,在此基础之上分析了tasklet执行流程。最后介绍了tasklet相关的API,如何编写自己的tasklet处理程序及定义一个tasklet对象并向内核提交等待调度运行。 <br /><br />【关键字】中断下半部,tasklet,tasklet_vec,tasklet_schedule,TASKLET_SOFTIRQ<br /><br />1原创 2010-10-28 17:06:00 · 690 阅读 · 0 评论 -
关于中断上下文不能阻塞的一个猜想
今天突然想到,为什么中断上下文不能阻塞呢一个进程在运行过程中,遭到中断打断,这时候用户空间保存其被打断时候的状态,然后处理器模式切换,切换到中断模式这个进程不是阻塞,而是被中断!而在中断上下文中,如果出现了阻塞,那么调度器不知道去调度谁,因为调度不能发生在中断上下文中而且中断上下文和进程上下文没有任何关系原创 2010-11-06 00:01:00 · 882 阅读 · 0 评论