自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

无忧的专栏

每天积累一点点

  • 博客(15)
  • 收藏
  • 关注

原创 浅析嵌入式Linux系统的构成和启动过程

在我们的周围,大量的嵌入式设备都是基于Linux系统来构建的,嵌入式Linux与主机Linux相比有着自己的一些特点,本文就嵌入式Linux系统的构成和启动过程做一些总结。 一、嵌入式Linux系统构成上图是一个嵌入式Linux系统的典型结构,划分成了4个区:1、Bootloader区存放的是Bootloader,它负责嵌入式系统最初的硬件初始化、驱动和内核加载。2、参

2013-09-11 14:08:19 6950 1

原创 ACE框架解读 - 特性篇

ACE是一个很著名的网络服务开发框架,最近学习它,发现里面有一些框架特有的概念,下面我就对这些概念的理解做一下总结。 1、网络接口的C++包装通过给网络编程API进行外观模式的封装,向用户提供简单的网络接口对象,简化用户编程。 2、OS并发机制的OO封装封装了操作系统的锁对象,并且通过智能指针把锁对象封装起来,以实现在函数任意地方退出时的锁对象自动释放。

2013-09-07 18:04:24 3194

原创 ACE框架解读 - 源码篇

最近学习ACE框架的源码,先考虑选取最新版本ACE6.0来阅读,但是发现代码量有30多万行,规模太大了花的时间会比较多,所以考虑选取旧一些的版本,最后选取ACE4.5版本来阅读,代码量13万行比较适中。下面是我学习时的一些总结,把所有的目录和文件列出来,并针对每个文件里的主要类及其实现,根据自己的理解作了一些总结。文件总结[CORBA]

2013-09-07 10:07:53 7024

原创 《重构》读书总结

前段时间我学习了《重构》这本书,在学习过程中,我就每个重构方法的目的就自己的理解做了一些总结,如下:1      重新组织函数1.1 提炼函数(Extract Method)解释:如果一个函数过于复杂,就把它拆分为多个职责清晰的小函数。目的:1、复杂的函数难于理解。2、拆分成小函数后能够提高小函数的复用度。1.2 内联函数(Inline Method)解释:如果

2013-09-05 15:37:53 1887 2

原创 高并发软件设计的几种方式

本文就高并发软件设计中可以考虑使用的一些方法做如下总结: 1)多线程有利于提高CPU占用率,因为软件本身的线程越多,在和系统上其他线程争夺CPU资源时就能分配到更多执行资源,同时也能提高业务处理的并发性。 2)非阻塞IO能够在IO操作条件不成熟时不阻塞在IO调用处,返回继续其他代码的执行,过一阵再进行IO尝试。异步IO能在IO操作执行时不阻塞在IO调用处,返回继续其他代码的执行,等IO操作

2013-09-05 15:29:48 3508

原创 模块间通信时对象序列化方式比较

软件主要是由一个个的模块,以及模块间的通信组成的。不论哪种模块间通信方式,其底层承载的都是码流形式的数据。因此,模块间通信其中一个重要工作是把模块中的数据对象序列化成码流,然后发送到其他模块,再反序列化还原成数据对象,以此完成通信过程。 对象的序列化方式主要有以下两种代表类型:1、XML格式序列化优点:消息可读性好,可以在不同平台间通信,方便实现者做各种扩展增强,适用于信息较复杂的

2013-09-05 15:29:05 1493

原创 TCP与UDP各自特点对比

UDP和TCP是我们最常用的两种通信方式,下面就两者之间的特点做一个对比: 1、UDP主要用在实时性要求高以及对质量相对较弱的地方,如流媒体。 2、TCP既然是面向连接的,那么运行环境必然要求其保证可靠性,具有不可丢包、有良好的拥塞控制机制,如http ftp telnet。 3、TCP容易阻塞,UDP容易丢包。 4、TCP是保证质量不保证速度,UDP保证速度但不保证质量。 5

2013-09-05 15:28:28 5675

原创 软件设计中的同步异步单线程多线程优缺点分析

同步还是异步,单线程还是多线程是我们软件开发中经常面临的设计选择,只有准确的区分它们之间的优缺点,才能根据我们的实际应用场景作出正确选择。它们两两组合一共有四种模式,下面就我自己的理解做一些总结分析。 1、同步单线程模式优点:a)实现简单。b)不用考虑线程间同步互斥问题。缺点:a)对CPU的使用率不高(容易在进行IO操作或自身等待操作时阻塞),在多CPU时劣势更明显。b)并发性不好,在

2013-09-05 15:22:15 6185

原创 Malloc函数的线程安全与可重入性分析

malloc函数是一个我们经常使用的函数,如果不对会造成一些潜在的问题。下面就malloc函数的线程安全性和可重入性做一些分析。 我们知道一个函数要做到线程安全,需要解决多个线程调用函数时访问共享资源的冲突。而一个函数要做到可重入,需要不在函数内部使用静态或全局数据,不返回静态或全局数据,也不调用不可重入函数。 malloc函数线程安全但是不可重入的,因为malloc函数在用户空间要自己管

2013-09-05 15:18:34 24244

原创 Linux进程调度与内核抢占总结

Linux2.6以后支持内核抢占,在开发过程中内核抢占经常会造成一些竞态问题,分析起来比较麻烦,所以有必要总结一下触发抢占的因素和时机。 一、触发抢占的因素1、进程调用sleep或exit等函数进行状态切换,这些函数通过系统调用进入内核会主动调用schedule。2、在时钟中断处理程序检查到进程时间片用完,置位need_resched。3、在中断处理程序或者系统调用中主动调用sch

2013-09-05 15:17:39 1474

原创 Linux进程上下文和中断上下文总结

在Linux系统下,CPU总是处于下面三种状态之一:1、内核态,运行进程上下文。2、内核态,运行于中断上下文。3、用户态,运行进程上下文。 进程上下文和中断上下文是Linux系统一个比较重要的概念,下面从程序的角度总结一下各属于哪种上下文:1、中断处理程序处于中断上下文。2、异常处理程序通常从用户空间的进程发起,处于进程上下文,可以切换到其他进程。3、软中断(sof

2013-09-05 15:17:13 3374 2

原创 C语言系统自己管理内存分配的好处

C语言系统没有内置的内存管理机制,通常是在需要使用内存的时候,动态的通过malloc在堆空间申请内存。这种做法有一定的缺陷,在较大的系统中往往会自己做内存分配管理,我想原因大致如下: 1)内存申请操作是比较耗时的,所以可以通过把预先申请的内存划分为桶,运行时需要内存时从桶中申请,使得申请速度加快。 2)有时申请内存是不希望失败的,由于运行时所需要的内存都已经预先申请了,保证了运行时

2013-09-05 15:12:31 1762

原创 C语言系统内存被踩情况总结

C语言由于可以直接操作内存,给我们的编程带来了便利,同时也带来了内存写越界之类的问题,常常造成我们的系统crash。下面总结了我在工作中碰到的导致内存越界的各种场景,以供分析此类问题时作个参考。 1、直接写越界,包括1)栈空间变量写越界覆盖掉函数返回地址,导致函数返回时crash。2)全局变量写越界,导致覆盖掉符号表中排在这个全局变量后面的全局变量的值。 2、未初始化指针变量的值写

2013-09-05 15:10:26 9831

原创 一种在Windows资源管理器添加右键菜单命令来打开选定目录DOS窗口的方法

我们在用windows时经常需要在某个目录下执行执行一些dos命令,通常我们会在开始菜单的运行下键入:cmd,开启dos命令窗口,然后在cd到目标操作目录,每次这样操作比较麻烦。下面介绍一种直接在资源管理器选定目标目录打开dos命令窗口的小办法。 步骤如下:1、打开regedit2、搜索Folder,只搜索项,全字匹配3、找到后,在子目录shell下新建一个项“DosHere”

2013-09-05 15:09:18 3515 1

原创 我的技术博客开张了

今后就在CSDN安家了,先把之前的一些文章上传~欢迎大伙多多交流分享。

2013-09-04 16:40:46 741

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除