
linux
文章平均质量分 79
kobbee9
这个作者很懒,什么都没留下…
展开
-
Linux中brk()系统调用,sbrk(),mmap(),malloc(),calloc()的异同
Linux中brk(),sbrk(),mmap(),malloc(),calloc()的异同 brk和sbrk主要的工作是实现虚拟内存到内存的映射.在GNUC中,内存分配是这样的: 每个进程可访问的虚拟内存空间为3G,但在程序编译时,不可能也没必要为程序分配这么大的空间,只分配并不大的数据段空间,程序中动态分配的空间就是从这一块分配的。如果转载 2012-03-26 22:38:26 · 19060 阅读 · 0 评论 -
Linux中等待队列的实现
Linux中等待队列的实现 在软件开发中任务经常由于某种条件没有得到满足而不得不进入睡眠状态,然后等待条件得到满足的时候再继续运行,进入运行状态。这种需求需要等待队列机制的支持。Linux中提供了等待队列的机制,该机制在内核中应用很广泛。 在Linux内核中使用等待队列的过程很简单,首先定义一个wait_queue_head,然后如果一个task想等待某种事转载 2012-04-06 21:08:51 · 390 阅读 · 0 评论 -
Linux的软中断处理实现
Linux的软中断处理实现 一、概念 首先我们要知道为什么中断需要下半部 。我们可以想象一下,如果没有下半部的概念,一个网卡中断过来了以后会是什么样的情况。首先,我们会从网卡硬件buffer中把网卡收到的packet拷贝到系统内存中,然后对这个packet进行TCP/IP协议栈的处理。我们知道TCP/IP协议栈是一个比较复杂的软件模块,里面对packet的处理会经过非常多的步转载 2012-04-06 21:07:52 · 502 阅读 · 0 评论 -
Workqueue机制的实现
Workqueue机制的实现 Workqueue机制中定义了两个重要的数据结构,分析如下:cpu_workqueue_struct结构。该结构将CPU和内核线程进行了绑定。在创建workqueue的过程中,Linux根据当前系统CPU的个数创建cpu_workqueue_struct。在该结构主要维护了一个任务队列,以及内核线程需要睡眠的等待队列,另外还维护了一个任务上下文,即tas转载 2012-04-06 21:10:07 · 469 阅读 · 0 评论 -
_IO, _IOR, _IOW, _IOWR 宏的用法与解析
IOCTL _IO,_IOW,_IOWR _IO, _IOR, _IOW, _IOWR 宏的用法与解析在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域:bit31~bit30 2位为 “区别读写” 区,作用是转载 2012-04-10 11:04:57 · 373 阅读 · 0 评论