摘要: 多线程程序设计头文件:pthread.h连接时需要用到的库文件:libpthread.a创建线程函数原型#include int pthread_creat(pthread_t *tidp,const pthread_attr_t *attr,void *(*start_rtn)(void),void *arg)tidp:线程idattr:线程属性start_trn:线程要执行的函数arg: start_rtn的参数编译由于pthread库不是linux系统的库,编译时要加上-lpthread示例代码如下:gcc filename -lthread示例代码如下:thread_create.c 阅读全文
posted @ 2013-02-16 21:42 retacn_yue 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 信号量又名信号灯,保护临界资源,进程可以根据它判断是否能够访问某些共享资源除了用于访问控制外,还用于进程同步分类:二值信号量 值只能取0或1,有点像互斥锁计数信号量 信号量的值可以取任意非负值创建/打开#include #include #include int semget(key_t key,int nsems,int semflg)key:键值,由ftok取得nsems:指定信号灯的数目semflg:标识,同消息队列对信号量进行控制int semop(int semid,struct sembuf *sops,unsigned nsops)semid:信号量集的idsops:是一个操作数 阅读全文
posted @ 2013-02-16 21:41 retacn_yue 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 消息队列信号能够传送的信息量有限管道只能传送无格式的字节流消息队列就是一个消息链表,消息可以看作是一个记录,具有特定的格式消息队列的分类:posix(可移植的操作系统接口)消息队列系统v消息队列:是随内核持续的,只有在内核重起或者人工删除时,该消息队列才会被删除键值每个消息队列都在系统范围内对应唯一的键值,也是获得消息队列描述字的方法返回文件名对应的键值#include #include key_t ftok(char *pathname,char proj)pathname:文件名proj:项目名(不为0即可)打开、创建#include #include #include int msgge 阅读全文
posted @ 2013-02-16 21:40 retacn_yue 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 共享内存通信被多个进程共享的一部分物理内存,是进程间共享数据的一种最快的方法一个进程向共享内存区域写入数据,共享这个内存区域的所有进程都可以立刻看到其中的内容实现共享内存分为两个步骤:1 创建共享内存,使用shmget函数 函数原型:int shmget(key_t key,int size,int shmflg)key:标识共享内存的键值 0 如果shmflg设置为IPC_PRIVATE,同样会创建一块新的共享内存 IPC_PRIVATE 创建一块新的共享内存 如果成功返回共享内存标识符,失败返回-1 2 映射共享内存,将这段创建的共享内存映射到具体的进程空间中,... 阅读全文
posted @ 2013-02-16 21:40 retacn_yue 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 信号通信用户按某些键时,产生信号硬件异常产生信号进程用kill函数将信号发送给另一个进程可以用kill函数将信号发送给其他进程信号的类型1 sighup 从终端上发出的结束信号2 sigint 来自键盘的中断信号(ctrl-c)3 sigquit4 sigill5 sigtrap6 sigiot7 sigbus8 sigfpe9 sigkill 结束接收信号的进程10 sigusr111 sigsegv12 sigusr213 sigpipe14 sigalrm15 sigterm kill命令发出的信号17 sigchld 标识子进程停止或结束的信号18 sigcont19 sigstop 阅读全文
posted @ 2013-02-16 21:39 retacn_yue 阅读(149) 评论(0) 推荐(0) 编辑
摘要: arm指令集跳转指令 实现流程的跳转专门的跳转指令b 跳转指令 格式:B{条件}目标地址 示例代码如下:当cpsr寄存器中的z条件码置位时,程序跳转到标号label处执行CMP R1,#0BEQLable指令条件指令条件 标志位 含义EQ Z置位 相等NE Z清零 不相等CS C置位 无符号数大于或等于CC C清零 无符号数小于MI N置位 负数PL N清零 正数或零VS V置位 溢出VC V清零 ... 阅读全文
posted @ 2013-02-16 21:32 retacn_yue 阅读(505) 评论(0) 推荐(0) 编辑
摘要: 工作状态arm状态 32位指令thumb状态 16位指令存储器的格式最大寻址空间为4gb大端格式:字数据的高字节存储在低地址中,低字节存放在高地址中小端格式:与大端格式相反axd查看寄存器=================================================================arm寻址方式(貌似计算机原理中学过)处理器根据指令中给出的地址信息来寻找物理地址的方式立即寻址立即数寻址示例代码如下:add r0,r0,#1; r0<--r0+1add r0,r0,#0x3f; r0<--r0+0x3f 以十六进制表示的立即数要加0x或&寄 阅读全文
posted @ 2013-02-16 21:31 retacn_yue 阅读(220) 评论(0) 推荐(0) 编辑
摘要: arm概述及其基本编程模型arm体系结构的版本及命名方法arm体系统构的6个版本的特点arm体系的变种1 thumb指令集(t变种)2 长乘法指令(M变种)3 增强型dsp指令(E变种)4 java加速器jazelle(J变种)5 arm媒体功能扩展(SIMD变种)arm/thumb体系版本的命名格式1 字符串ARMv2 ARM指令的版本号 1-63 表示变种的字符 版本4之后M变种成为标准功能,不需要列出来4 使用x表示排除某种写功能arm处理器系列arm7arm9arm9e arm920T ARM922T ARM9440Tarm10esecurCoreintel的Xscaleintle的S 阅读全文
posted @ 2013-02-16 21:30 retacn_yue 阅读(730) 评论(0) 推荐(0) 编辑