01 2013 档案

linux并发控制之总章
摘要:一.概念 1.并发(concurrency)指多个执行单元同时,并行被执行。 2.并发的执行单元对共享资源,(比如说,硬件资源,全局变量,静态变量等)访问很容易导致竞态(race conditions)。 举个简单事例,古代皇帝有很多妃子,皇帝第一个时辰是宜妃的,第二个时辰是萱妃,最后时间是皇... 阅读全文

posted @ 2013-01-31 17:24 胡永光 阅读(121) 评论(0) 推荐(0) 编辑

linux并发控制之原子操作
摘要:原子操作指的是在执行过程中不会被别的代码路径所中断的操作。 分为两类:整型原子操作 和 位原子操作。 特点: 1.任何情况下操作都是原子的。 2.都依赖底层的CPU的原子操作来实现,所以和CPU架构密切相关。 注意: 1.原子操作在不同体系架构实现的方法不同,基本采用汇编实现 ... 阅读全文

posted @ 2013-01-31 17:23 胡永光 阅读(287) 评论(0) 推荐(0) 编辑

linux并发控制之中断屏蔽
摘要:在单CPU范围内避免竞态的一个简单方法。 注意: 中断对系统正常运行很重要,长时间屏蔽很危险,所以中断屏蔽后应尽可能快的执行完毕。 宜与自旋锁联合使用。 使用 local_irq_disable() local_irq_enable() 只能禁止和使能本... 阅读全文

posted @ 2013-01-31 17:22 胡永光 阅读(231) 评论(0) 推荐(0) 编辑

linux并发控制之顺序锁
摘要:顺序锁是对读写锁的一种优化。 1.读执行单元绝对不会被写执行单元阻塞。即读执行单元可以在写执行单元对被顺序锁保护的共享资源进行写操作的同时仍然可以继续读,而不必等待写执行单元完成之后再去读,同样,写执行单元也不必等待所有的读执行单元读完之后才去进行写操作 2.写执行单元与写执行单... 阅读全文

posted @ 2013-01-31 17:19 胡永光 阅读(167) 评论(0) 推荐(0) 编辑

linux并发控制之RCU
摘要:RCU:读-拷贝-更新 众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了广泛的使用,但是它存在两个问题。 1.它的开销相对于CPU速度而言就越来越大 随着计... 阅读全文

posted @ 2013-01-31 17:16 胡永光 阅读(228) 评论(0) 推荐(0) 编辑

linux并发控制之读写自旋锁
摘要:读写自旋锁(rwlock)是一种比自旋锁粒度更小的自旋锁机制,它保留了“自旋”的概念。 但是在写操作方面,只能最多有一个写进程,在读方面,同时可拥有多个执行单元,当然读和写也不能同时进行。 一句话:防写不防读 理解推荐: http://blog.sina.com.cn/s/blog_6d7... 阅读全文

posted @ 2013-01-31 17:15 胡永光 阅读(448) 评论(0) 推荐(0) 编辑

linux并发控制之自旋锁
摘要:自旋锁是一种对临界资源进行互斥访问的典型手段,其名来源于它的工作方式。 通俗的讲,自旋锁就是一个变量,该变量把一个临界区标记为“我当前在运行,请等待”或者标记为“我当前不在运行,可以被使用”, 如果A执行单元首先获得锁,那么当B进入同一个例程时将获知自旋锁已被持有,需等待A释放后才能进入,所以... 阅读全文

posted @ 2013-01-31 17:14 胡永光 阅读(164) 评论(0) 推荐(0) 编辑

linux并发控制之完成量
摘要:完成量:表示一个执行单元需要等待另一个执行单元完成某事后方可执行。 1.它是一种轻量级机制,为了完成进程间的同步而设计 2.使用完成量等待时,调用进程是以独占睡眠方式进行等待的 3.不是忙等待 理解: 定义于#include 其结构体为 struct completion { unsign... 阅读全文

posted @ 2013-01-31 17:12 胡永光 阅读(242) 评论(0) 推荐(0) 编辑

linux并发控制之读写信号量
摘要:读写信号量与信号量之间的关系类似于自旋锁与读写自旋锁。 读写信号量可能会引起进程阻塞,但是它允许N个读执行单元同时访问共享资源,而最多只允许有一个写执行单元访问共享资源;因此,读写信号量是一种相对放宽条件的、粒度稍大于信号量的互斥机制。 注意: 信号量不允许任何操作之间有并发。 理解: 定义... 阅读全文

posted @ 2013-01-31 17:11 胡永光 阅读(297) 评论(0) 推荐(0) 编辑

linux并发控制之信号量
摘要:信号量(semaphore)是用于保护临界区的一种常用方法,它的使用方式与自旋锁类似 与自旋锁相同的是:只有得到信号量的进程才能执行临界区的代码 与自旋锁不同的是:当获取不到信号量的时候,进程不会在原地打转,而是进入休眠等待状态; 理解: 定义于#include struct semaphor... 阅读全文

posted @ 2013-01-31 17:08 胡永光 阅读(202) 评论(0) 推荐(0) 编辑

制作yaffs2文件系统
摘要:由于内核里没有yaffs2文件系统生成功能,所以需要添加补丁。 1. fsMakefile.path in fs_yaffs2.tgz is the patch for kernel/fs/Makefile 在 kernel/fs/Makefile中添加如下内容 [root@local... 阅读全文

posted @ 2013-01-30 12:06 胡永光 阅读(316) 评论(0) 推荐(0) 编辑

mount命令详解
摘要:命令格式: mount [-t vfstype] [-o options] device dir 其中: 1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有: 光盘或光盘镜像:iso9660 DOS fat... 阅读全文

posted @ 2013-01-30 12:02 胡永光 阅读(150) 评论(0) 推荐(0) 编辑

ext2文件系统错误
摘要:attempt to access beyond end of device ram0: rw=0, want=16482, limit=8192 ... 阅读全文

posted @ 2013-01-30 12:01 胡永光 阅读(388) 评论(0) 推荐(0) 编辑

内核配置中 ramdisk 大小修改
摘要:1.修改内核配置选项 进入内核源码目录linux-2.6.32.2目录 #cp config_mini2440_x35 .config #make menuconfig ARCH=arm (1).打开配置菜单,修改两个配置项,分别是: a):General setup-->选择 Initial ... 阅读全文

posted @ 2013-01-30 11:36 胡永光 阅读(2297) 评论(0) 推荐(1) 编辑

mke2fs 制作ext2文件系统image
摘要:方法1: 利用/dev/ram1: linux下有很多ram,我们用ram1,首先把ram1格式化成ext2文件系统 [root@gucuiwen babylinux]# sudo mkfs.ext2 -m0 /dev/ram1 将ram1挂装到文件系统中: 先建立一个挂装点: #mkdi... 阅读全文

posted @ 2013-01-30 11:32 胡永光 阅读(256) 评论(0) 推荐(0) 编辑

nandwrite 参数
摘要:$ nandwrite -h nandwrite: invalid option -- 'h' Usage: nandwrite [OPTION] MTD_DEVICE [INPUTFILE|-] Writes to the specified MTD device. -a, --auto... 阅读全文

posted @ 2013-01-30 11:30 胡永光 阅读(898) 评论(0) 推荐(0) 编辑

stat---文件状态信息结构体
摘要:1. stat 结构体用来表示相关文件状态信息。 stat 结构题定义于个体系架构下的 stat.h 文件中, 如x86下,是 arch/x86/include/asm/stat.h arm下, 是 arch/arm/include/asm/stat.h, 下面以x86为例,stat 结构... 阅读全文

posted @ 2013-01-30 10:56 胡永光 阅读(278) 评论(0) 推荐(0) 编辑

dirent和DIR 结构体 --- 表示文件夹中目录内容信息
摘要:1. dirent --- 用来表示某文件夹的目录内容。 我猜是directory content 的缩写. dirent 定义于 /include/bits/dirent.h 中: [cpp] view plaincopyprint? struct dirent { ... 阅读全文

posted @ 2013-01-30 09:09 胡永光 阅读(619) 评论(0) 推荐(0) 编辑

摄像机的几个重要的技术指标
摘要:(1)清晰度 清晰度是一个摄像机的最重要指标,在监控系统中对图像的清晰度有很高的要求,如在交通监控中,对车辆要能看清车牌号码,对行人要能看清脸部特征,如果这些都看不清楚,那么监控将失去意义。线数的多少决定着清晰度,线数越高看到的图像也就越清晰,与CCD芯片及尺寸也是有一定关系的。高速球型... 阅读全文

posted @ 2013-01-29 21:42 胡永光 阅读(721) 评论(0) 推荐(0) 编辑

照度/感光度(Lux)
摘要:何谓照度?照度(LUX)数值达到多少为低照度?多少数值能适应摄取影像的周围环境? 照度是反映光照强度的一种单位,其物理意义是照射到单位面积上的光通量,照度的单位是每平方米的流明(Lm)数,也叫做勒克斯(Lux):1Lux=1Lm/平方米上式中,Lm是光通量的单位,其定义是纯铂在熔化温度(约1... 阅读全文

posted @ 2013-01-29 21:41 胡永光 阅读(2753) 评论(0) 推荐(0) 编辑

伽玛校正(Gamma Correction)
摘要:γ校正(Gamma Correction,伽玛校正):所谓伽玛校正就是对图像的伽玛曲线进行编辑,以对图像进行非线性色调编辑的方法,检出图像信号中的深色部分和浅色部分,并使两者比例增大,从而提高图像对比度效果。计算机绘图领域惯以此屏幕输出电压与对应亮度的转换关系曲线,称为伽玛曲线(Gamma ... 阅读全文

posted @ 2013-01-29 21:39 胡永光 阅读(569) 评论(0) 推荐(0) 编辑

红眼消除
摘要:red eye removal: 闪光灯正对人眼拍摄时,视网膜底部反光,在照片上眼睛中间出现红点——红眼。 消除红眼有两种: 拍摄阶段:闪光灯先预闪一下,被拍摄者眼睛瞳孔收缩,眼底反光自然就减少了。 后期阶段:通过软件去除红点。 现在的相机基本都有了“防红眼模式”。就是在室内、暗... 阅读全文

posted @ 2013-01-29 21:37 胡永光 阅读(248) 评论(0) 推荐(0) 编辑

HDMI_VGA_CBVS同时显示
摘要:STi7105同一时间只能播放一个视频文件。 但是可以用2个播放处理器同时播放该视频文件。一个高清通道(主),一个标清通道(辅)。 每个通道,可以设置不同的VTG(即分辨率格式)。 HDMI和VGA共用一个主通道。CVBS用辅通道。 ST7105 > VID_INJSTART 1 "/18... 阅读全文

posted @ 2013-01-29 13:57 胡永光 阅读(214) 评论(0) 推荐(0) 编辑

I帧,P帧,B帧
摘要:视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。 I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面)。 P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存... 阅读全文

posted @ 2013-01-29 13:55 胡永光 阅读(183) 评论(0) 推荐(0) 编辑

隔行扫描和逐行扫描(interlace and progressive )
摘要:隔行和逐行扫描 隔行扫描方式源于早期的模拟电视广播技术,这种技术需要对图像进行快速扫描,以便最大限度地降低视觉上的闪烁感,但是当时可以运用的技术并不能以如此之快的速度对整个屏幕进行刷新。 于是,将每帧图像进行“交错”排列或分为两场,一个由奇数扫描线构成,而另一个由偶数扫描线构成,如图4 所... 阅读全文

posted @ 2013-01-29 11:30 胡永光 阅读(678) 评论(0) 推荐(0) 编辑

音视频处理中的硬压缩与软压缩
摘要:视音频的压缩是视音频处理中的核心部分,压缩通常分两种途径来实现,1.嵌入式CPU进行软压缩,2. 采用硬件芯片进行硬压缩。 软压缩的图像采集通过图像采集芯片完成。即以若干个图像采集芯片为核心,配合周边电路和元件,完成图像采集功能,而图像压缩则是通过软件实现,即通过CPU运算完成。这种方... 阅读全文

posted @ 2013-01-29 11:28 胡永光 阅读(215) 评论(0) 推荐(0) 编辑

VGA管脚定义
摘要:VGA管脚定义: 1红基色 red 2 绿基色 green 3 蓝基色 blue 4 地址码 ID Bit 5 自测试 ( 各家定义不同 ) 6 红地 7 绿地 8 蓝地 9 保留 ( 各家定义不同 ) 10 数字地 11 地址码 12 地址码 13 行同步 14 场同步 15 地址码 (... 阅读全文

posted @ 2013-01-29 11:25 胡永光 阅读(229) 评论(0) 推荐(0) 编辑

VGA 输出调试
摘要:程序修改: /apilib/config/chip/7105.h add: [cpp] view plaincopyprint? /*PIO5 CONFIG8------------add by xxh-------------------------------------... 阅读全文

posted @ 2013-01-29 11:20 胡永光 阅读(210) 评论(0) 推荐(0) 编辑

分辨率与行场同步信号的关系
摘要:当CRT显示器显示一幅图像时,电子枪是从左到右、从上到下来扫描屏幕的。由电子枪打出的电子经由偏转线圈的偏转得以打到屏幕的不同点上。电子束在从左到右扫描完一行后,需要回到起始方向进行下一行的扫描,这个返回的工作由回程转换器来完成。 这一系列动作要想很精确,就得使电子枪、偏转线... 阅读全文

posted @ 2013-01-29 11:01 胡永光 阅读(266) 评论(0) 推荐(0) 编辑

帧率、码流与分辩率之间关系
摘要:码流概念 码流(Data Rate),是指视频文件在单位时间内发送的数据流量,也叫码率,是他是视频编码中画面质量把持中最主要的部分。同样辨别率下,视频文件的码流越大,紧缩比就越小,画面质量就越高。 码流是经过视频压缩后每秒发送的数据量,而压缩是去掉图像的空间冗余和视频的时光冗余。... 阅读全文

posted @ 2013-01-29 10:56 胡永光 阅读(634) 评论(0) 推荐(0) 编辑

HDMI接口原理图
摘要: 阅读全文

posted @ 2013-01-29 10:37 胡永光 阅读(802) 评论(0) 推荐(0) 编辑

VGA接口原理图
摘要: 阅读全文

posted @ 2013-01-29 10:36 胡永光 阅读(542) 评论(0) 推荐(0) 编辑

RGB565 与RGB888的区别
摘要:正常的RGB24是由24位即3个字节来描述一个像素,R、G、B各8位。而实际使用中为了减少图像数据的尺寸,如视频领域,对R、G、B所使用的位数进行的缩减,如你所说的RGB565和RGB555。 RGB565 就是R-5bit,G-6bit,B-5bit RGB555 就是R-5bit,G-5... 阅读全文

posted @ 2013-01-29 10:33 胡永光 阅读(2535) 评论(0) 推荐(0) 编辑

谈谈RGB、YUY2、YUYV、YVYU、UYVY、AYUV
摘要:计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R(Red)、G(Green)、B(Blue)相加混色的原理:通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。这种色彩的表示方法称为RGB色彩空间表示(它也是多媒体计算机技术中用得最多的一种色彩空间表示方法... 阅读全文

posted @ 2013-01-29 10:32 胡永光 阅读(2008) 评论(0) 推荐(0) 编辑

视频图像大小格式汇总
摘要:视频图像大小格式汇总 XGA(Extended Graphics Array)是一种计算机显示模式。显示模式指计算机显示器的性能,特别指最大色彩数以及最大的图像分辨率。在现在的个人电脑系统中,可找到多个显示模式,例如VGA、SVGA、XGA、SXGA、UXGA等。 WSXGA+:1680... 阅读全文

posted @ 2013-01-29 10:23 胡永光 阅读(496) 评论(0) 推荐(0) 编辑

YUV422 to YUV420sp color invert
摘要:最近在做camera模块,出现了几个bug很有意思。 1. 颜色翻转,红色 变成了 蓝绿色。分析后是YUV422 to YUV420SP的时候,算法出现问题。后来把cb,cr互换了一下,颜色就对了。真的很奇怪。 2. 转换video quality的时候,从high quality 切换... 阅读全文

posted @ 2013-01-29 10:21 胡永光 阅读(301) 评论(0) 推荐(0) 编辑

YUV 和 YCbCr 的差别
摘要:1. YCbCr 则是在世界数字组织视频标准研制过程中作为ITU - R BT1601 建议的一部分, 其实是YUV经过缩放和偏移的翻版。 其中Y与YUV 中的Y含义一致, Cb , Cr 同样都指色彩, 只是在表示方法上不同而已。 在YUV 家族中, YCbCr 是在计算机系统中应用最多... 阅读全文

posted @ 2013-01-29 10:17 胡永光 阅读(639) 评论(0) 推荐(0) 编辑

Flash设备驱动
摘要:今天又看了一遍Flash驱动,以下是一些总结。 Flash 设备驱动 一.MTD Linux系统中,用了MTD系统来建立flash对linux的接口。 MTD---memory technology device,内存技术设备。 MTD可以分为四个层: 1, 硬件驱动层:最底层,负... 阅读全文

posted @ 2013-01-29 10:00 胡永光 阅读(264) 评论(0) 推荐(0) 编辑

高端内存的映射 -- 永久映射和临时映射
摘要:高端内存(Highmem)中的页不能永久地映射到内核地址空间,因此,通过alloc_pages()函数,以__GFP_HIGHMEM标志分配的页不可能有虚拟地址。 X86体系结构中,高于896MB的所有物理内存都是高端内存,这些物理内存页不会永久的或自动的映射到内核地址空间。这些页需要被分配之后... 阅读全文

posted @ 2013-01-28 22:09 胡永光 阅读(763) 评论(0) 推荐(0) 编辑

虚拟地址_物理地址_逻辑地址_页表_内存映射
摘要:1. 虚拟地址和物理地址: 虚拟地址关系到进程的用户空间和内核空间,而物理地址则用来寻址实际可用的内存。 linux用页表来为物理地址分配虚拟地址。 进程的虚拟地址空间,都被内核划分为很多等长的部分,这样的部分成为页。物理内存也划分为同样大小的页。 2. 页表 页表是一种数据结构,用来将虚拟地... 阅读全文

posted @ 2013-01-28 22:02 胡永光 阅读(419) 评论(0) 推荐(0) 编辑

内核空间_用户空间_特权级别
摘要:1. linux将虚拟地址空间划分为两部分,内核空间和用户空间。 一般32位处理器,虚拟内存大小= 2的32次方 B = 4GB. 现在的64位处理器可以支持 虚拟内存 = 2的64次方 B = 16GB. 用户空间地址范围 0 --- TASK_SIZE. 内核空间地址范围 TASK_SIZ... 阅读全文

posted @ 2013-01-28 22:00 胡永光 阅读(125) 评论(0) 推荐(0) 编辑

Linux下GCC生成和使用静态库和动态库详解(二)
摘要:2.1准备好测试代码hello.h、hello.c和main.c; hello.h(见程序1)为该函数库的头文件。 hello.c(见程序2)是函数库的源程序,其中包含公用函数hello,该函数将在屏幕上输出"Hello XXX!"。 main.c(见程序3)为测试库文件的主... 阅读全文

posted @ 2013-01-28 20:04 胡永光 阅读(191) 评论(0) 推荐(0) 编辑

Linux下GCC生成和使用静态库和动态库详解(一)
摘要:一、基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库。 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。 由于windows和linux的平台不同(主要是编译器、汇编器和连接器的不同),因此二者库的二进制是不兼容的。 本文仅限于介绍... 阅读全文

posted @ 2013-01-28 20:03 胡永光 阅读(286) 评论(0) 推荐(0) 编辑

GCC动态库和静态库混合使用
摘要:今天,一个同事编译静态库,我也趁此机会在温习一下,先google一下,然后在自己实验。 首先,在网上抄个例子,内容如下 1:建静态库 /* hellos.h */ #ifndef _HELLO_S_H #define _HELLO_S_H void printS(char* s... 阅读全文

posted @ 2013-01-28 19:40 胡永光 阅读(158) 评论(0) 推荐(0) 编辑

gcc g++ Linux下动态库_静态库
摘要:关于Unix静态库和动态库的分析 基本概念 库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。 例如:libhello.so libhello.a 为了在同一系统中使用不同版本的库,可以在库文件名后加上版本号为后缀,例如: libhello.so.1.0,由于程序连接默认以... 阅读全文

posted @ 2013-01-28 19:10 胡永光 阅读(183) 评论(0) 推荐(0) 编辑

make linux内核
摘要:make linux内核的命令: 可以先执行: cp arch/arm/configs/xxxx_defconfig .config //make menuconfig 会检测.config来配置选项。 make ARCH=arm CROSS_COMPILE=arm-linux- ... 阅读全文

posted @ 2013-01-28 17:05 胡永光 阅读(178) 评论(0) 推荐(0) 编辑

makefile
摘要:1. makefile 文件描述了整个工程的编译,链接等规则。 规则:用于说明如何生成一个或多个目标文件,规则格式如下: targets: prerequisites command 目标 : 依赖 命令 (命令需要以[TAB]键开始) 例: main.o: m... 阅读全文

posted @ 2013-01-28 17:02 胡永光 阅读(154) 评论(0) 推荐(0) 编辑

gdb
摘要:GDB 是GNU发布的一款功能强大的调试程序工具。 1. GDB主要完成下面3个功能: a. 启动被调试的程序 b. 让被调试的程序在指定位置停住 c. 当程序被停住时,可以检查程序状态。 2. 使用gdb流程: a. 编译生成可执行文件: gcc -g test.c -o tes... 阅读全文

posted @ 2013-01-28 17:00 胡永光 阅读(132) 评论(0) 推荐(0) 编辑

gcc
摘要:1. gcc: 全名 GNU C Compiler gcc编译器 能将C, C++, 汇编程序编译,链接成可执行文件。 在linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。 2. gcc编译程序时,编译过程可以被细分为4个阶段: a.预处理(pre-p... 阅读全文

posted @ 2013-01-28 16:56 胡永光 阅读(174) 评论(0) 推荐(0) 编辑

C++ 中的插入迭代器以及其迭代器适配器
摘要:C++ 中有三类迭代器,分别是插入迭代器(inserter),反向迭代器(reverse_iterator)和流迭代器. 这里(vs2003为例)介绍插入迭代器,插入迭代器分别是std::inserter_iterator,std::back_inserter_iterator,std::fro... 阅读全文

posted @ 2013-01-28 16:54 胡永光 阅读(224) 评论(0) 推荐(0) 编辑

linux线程函数大全
摘要:以下内容来源于网络,本人仅收集用于学习之用,如原作者有任何意见,可以给我留言,我会尽快将其删除。 索引: 1.创建线程pthread_create 2.等待线程结束pthread_join 3.分离线程pthread_detach 4.创建线程键pthread_key_create 5.删... 阅读全文

posted @ 2013-01-28 16:06 胡永光 阅读(335) 评论(0) 推荐(0) 编辑

mysql的空值与NULL的区别
摘要:Mysql数据库是一个基于结构化数据的开源数据库。SQL语句是MySQL数据库中核心语言。不过在MySQL数据库中执行SQL语句,需要小心两个陷阱。 陷阱一:空值不一定为空 空值是一个比较特殊的字段。在MySQL数据库中,在不同的情形下,空值往往代表不同的含义。这是MySQL数据库... 阅读全文

posted @ 2013-01-22 14:24 胡永光 阅读(135) 评论(0) 推荐(0) 编辑

Linux创建静态库和动态库
摘要:第1步:编辑得到举例的程序--hello.h、hello.c和main.c; hello.h为该函数库的头文件。 hello.c是函数库的源程序,其中包含公用函数hello,该函数将在屏幕上输出"Hello XXX!"。 main.c为测试库文件的主程序,在主程序中调用了公用函数hello。... 阅读全文

posted @ 2013-01-16 14:56 胡永光 阅读(120) 评论(0) 推荐(0) 编辑

用g++编译生成动态连接库*.so的方法及连接
摘要:用g++编译生成动态连接库*.so的方法及连接 1、动态库*.so的编译 这里我们用到4个文件,它们分别为:SoDemoTest.h、one.cpp、two.cpp、three.cpp。它们的内容如下: SoDemoTest.h [cpp] view plaincopyprint? ... 阅读全文

posted @ 2013-01-16 14:50 胡永光 阅读(233) 评论(0) 推荐(0) 编辑

线程程序里不准使用fork ?
摘要:其实这是 UNIX上C++程序设计守则3 准则3:多线程程序里不准使用fork 在多线程程序里,在”自身以外的线程存在的状态”下一使用fork的话,就可能引起各种各样的问题.比较典型的例子就是,fork出来的子进程可能会死锁.请不要,在不能把握问题的原委的情况下就在多线程程序里fork子进程.... 阅读全文

posted @ 2013-01-16 13:25 胡永光 阅读(224) 评论(0) 推荐(0) 编辑

sigsuspend 与sigwait 的区别
摘要:sigsuspend 与sigwait 的区别 sigsuspend(const sigset_t *mask):设置阻塞信号为mask,等待其他信号(除mask之外的信号)的发生,若信号发生且对应的handler已执行,则返回-1,并设置相应的errno(已发生的信号值)。 注意:sigsu... 阅读全文

posted @ 2013-01-16 13:24 胡永光 阅读(252) 评论(0) 推荐(0) 编辑

子进程和线程的区别
摘要:1、相同点: (a)二者都具有ID,一组寄存器,状态,优先级以及所要遵循的调度策略。 (b) 每个进程都有一个进程控制块,线程也拥有一个线程控制块。 (c) 线程和子进程共享父进程中的资源;线程和子进程独立于它们的父进程,竞争使用处理器资源;线程和子进程的创建者可以在线程和子进程上实行某些控制,... 阅读全文

posted @ 2013-01-16 12:09 胡永光 阅读(242) 评论(0) 推荐(0) 编辑

线程和线程同步(pthread)
摘要:pthread ==> clone() pthread_create() pthread_join()的作用是接受返回值 ... 阅读全文

posted @ 2013-01-12 15:04 胡永光 阅读(121) 评论(0) 推荐(0) 编辑

堆和栈的区别
摘要:堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能... 阅读全文

posted @ 2013-01-12 14:22 胡永光 阅读(112) 评论(0) 推荐(0) 编辑

堆和栈究竟有什么区别?
摘要:主要的区别由以下几点: 1、管理方式不同; 2、空间大小不同; 3、能否产生碎片不同; 4、生长方向不同; 5、分配方式不同; 6、分配效率不同; 管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于... 阅读全文

posted @ 2013-01-12 14:17 胡永光 阅读(130) 评论(0) 推荐(0) 编辑

面试中几个基本的重要问题总结
摘要:1、堆和栈的区别,堆和栈的最大限制 堆主要用来分配动态内存,操作系统提供了malloc等内存分配机制来供程序员进行堆内存的分配,同时,堆内存的释放需要程序员来进行。malloc分配的是虚拟地址空间,和用到的实实在在的物理内存是两码事,只有真正往空间里写东西了,os内核会触发缺页异常,... 阅读全文

posted @ 2013-01-12 14:05 胡永光 阅读(119) 评论(0) 推荐(0) 编辑

浅谈pthread和Linux调度策略
摘要:这是一年前的一个周总结: 由于下周要带的微机原理与接口实验的课程设计设计中有一个pthread编程的实验,就顺便了解了一下pthread。 Pthread,是POSIX thread简称。 现代处理器都支持多线程编程,但不同的硬件厂商对线程的支持和实现不同, 标准委员提出了PO... 阅读全文

posted @ 2013-01-12 13:14 胡永光 阅读(114) 评论(0) 推荐(0) 编辑

linux 技术网站
摘要:http://www.linuxforum.net/forum/postlist.php?Cat=&Board=embedded Linux Forum http://linux.chinaunix.net/ ... 阅读全文

posted @ 2013-01-12 13:02 胡永光 阅读(137) 评论(0) 推荐(0) 编辑

列举几种系统调用
摘要:操作系统实现的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。是应用程序同系统之间的接口。 Linux系统调用,包含了大部分常用系统调用和由系统调用派生出的的函数。 一、进程控制: fork 创建一个新进... 阅读全文

posted @ 2013-01-11 12:07 胡永光 阅读(283) 评论(0) 推荐(0) 编辑

linux core文件设置
摘要:1.ulimit -c 查看当前系统配置的core文件大小ulimit -c unlimited 修改core文件大小为无限制2./proc/sys/kernel/core_uses_pid 改成1, 设置成可以控制产生core文件的文件名。修改文件的方法,必须使用 echo "1" > /pro... 阅读全文

posted @ 2013-01-08 13:12 胡永光 阅读(219) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示