发布时间:2016-10-11 09:49:47
为了速度和正确性,请对齐你的数据. 概述:对于所有直接操作内存的程序员来说,数据对齐都是很重要的问题.数据对齐对你的程序的表现甚至能否正常运行都会产生影响.就像本文章阐述的一样,理解了对齐的本质还能够解释一些处理器的"奇怪的"行为. 内存存取粒度 程序员通常倾.........【阅读全文】
发布时间:2016-08-18 17:09:21
一、中断注册方法在linux内核中用于申请中断的函数是request_irq(),函数原型在Kernel/irq/manage.c中定义:int request_irq(unsigned int irq, irq_handler_t handler, &nbs.........【阅读全文】
发布时间:2015-12-25 10:18:31
我们知道,在32位机器上linux操作系统中的进程的地址空间大小是4G,其中0-3G是用户空间,3G-4G是内核空间。其实,这个4G的地址空间是不存在的,也就是我们所说的虚拟内存空间。 那虚拟内存空间是什么呢,它与实际物理内存空间又是怎样对应的呢,为什么有了虚拟内存技术,我们就能运行比实际物理内存大的应用程序,它是.........【阅读全文】
发布时间:2015-12-06 16:02:46
一个线程的结束有两种途径,一种是象我们下面的例子一样,函数结束了,调用它的线程也就结束了;另一种方式是通过函数pthread_exit来实现。另外需要说明的是,一个线程不能被多个线程等待,也就是说对一个线程只能调用一次pthread_join,否则只有一个能正确返回,其他的将返回ESRCH 错误。在Linux中,默认情况下是在.........【阅读全文】
发布时间:2015-12-06 15:39:40
#include <stdio.h>#include <unistd.h>#include <string.h>#include <stdlib.h>#include <pthread.h>#define MAX_ITEM 3 /* 每次最多取三个任务 */typedef struct job * Job;/* 链表结点结构 */struct job{pthread_t tid; /* 线程ID */Job next; /* 下一个链表结点 */int val; /* 结点值 */};pthread_mut.........【阅读全文】