自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

转载 vi命令一览表

日期:2004-05-29   来源: http://www.chinaunix.com 文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充! 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首

2013-07-18 12:15:54 405

转载 Linux 套接字编程中的 5 个隐患

Linux 套接字编程中的 5 个隐患在异构环境中开发可靠的网络应用程序M. Tim Jones (mtj@mtjones.com), 资深软件工程师, EmulexTim Jones 是一名嵌入式软件工程师,他是 GNU/Linux Application Programming、AI Application Programming 以及BSD Sockets

2013-07-16 10:01:48 500

转载 Linux tcpdump命令详解

简介用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 实用命令实例默认启动tcpdump

2013-06-27 11:07:17 448

转载 linux内核栈与用户栈

linux内核栈与用户栈分类: linux内核 2012-03-10 21:37 609人阅读 评论(0)收藏 举报linux内核任务数据结构userstructlinux目录(?)[-]Linux 系统中堆栈的使用方法初始化阶段任务的堆栈任务内核态堆栈与用户态堆栈之间的切换 5.8 Linux 系统中堆栈

2013-06-07 17:34:41 555

转载 Slab Allocator

Slab Allocator(对象缓存分配)The fundamental idea behind slab allocation technique is based on the observation that some kernel data objects are frequently created and destroyed after they are not needed

2013-03-15 17:01:16 810

原创 vxworks

1. 任务VxWorks 任务:在执行时每个程序都被称之为任务。VxWorks操作系统中,任务可以直接地或者以共享方式访问大多数系统资源,为了维护各自的线程,每个任务必须保持有足够的上下文环境。 (1) 任务状态:就绪(READY):该状态时任务仅等待CPU的状态,不等待其他任何资源。阻塞(PEND):任务由于一些资源不可用而被阻塞时的状态。睡眠(DELAY):出于睡眠的任务状态。挂起(SUSPE

2010-05-16 00:28:00 2745

转载 VxWorks基础知识

1.多任务:允许一个实时应用作为一系列独立任务来运行,各任务有各自的线程和系统资源。3.任务切换之前要保存上下文。4.优先级是动态的0~255,0级最高。5.Wind内核taskLock()和taskUnlock()禁止和解除抢占,但对中断不起作用。6.异常处理:VxWorks异常处理包,一般是将引起异常的任务休眠,保存任务在异常出错处的状态值。内核和其它任务继续执行。7.为什

2010-05-16 00:24:00 1741

转载 VxWorks中信号量实现任务间通信与同步机制分析

多任务内核、任务调度机制、任务间通信和中断处理机制,这些都是VxWorks运行环境的核心。多任务处理和任务间通信是实时操作系统的基石。一个多任务环境允许将一个实时应用构造成一套独立任务的集合,每一个都有自己独立的执行路线和自己的系统资源,完成不同的功能。任务间通信的机制则允许任务间的同步和通信,以调整系统的行为。VxWorks中,任务间通信的机制包括从快速信号量到消息队列、管道、网络传输套接口。在

2010-05-16 00:22:00 579

转载 Count the number of bits that are on in an unsigned integer(计算一个无符整数中1Bit的个数)-- (1)

计算一个无符号整数中有多少的Bit为1原创整理,转载请注明出处。这是一个经常遇到的经典问题,这里分两个部分讲解和总结,首先对讲解现有的算法,然后再讲解一些改进算法。 1.循环法(Iterated Count)int bitcount (unsigned int n)  {int count=0;        while (n) {      coun

2009-08-23 10:53:00 457

转载 内存地址对齐

内存地址对齐2008/05/21 12:46什么是对齐,以及为什么要对齐:现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的

2009-08-15 23:06:00 418

转载 经典面试题

面试过程中,面试官会向应聘者发问,而应聘者的回答将成为面试官考虑是否接受他的重要依据。对应聘者而言,了解这些问题背后的“猫腻”至关重要。本文对面试中经常出现的一些典型问题进行了整理,并给出相应的回答思路和参考答案。读者无需过分关注分析的细节,关键是要从这些分析中“悟”出面试的规律及回答问题的思维方式,达到“活学活用”。   问题一:“请你自我介绍一下”   思路:   1、这是面试的必

2009-04-11 17:49:00 290

转载 插入排序汇总

 #includeusing namespace std;#define len 10#define MAXINT 32767void display(int *p){    for(int i=0;i        cout    cout    return ;}//直接插入排序void insertSort(int *p){     for(int i=1;i        

2009-03-15 17:56:00 440

转载 高维数组的名字意义上更接近1阶指针。

数组和指针概念很容易让初学者混淆,这里把我所知道的概括一下,希望对大家有所帮助。一维数组和一级指针的相同和差异一维数组的名字大部分情况下可以当成一个常指针来看,也就是说: int a[3] int * const p;则数组名a可以在大部分p能用的地方使用,有两种情况比较特殊: p可以在定义是初始化一个地址如:int *p const = new int[10

2009-03-15 15:59:00 603

原创 Linux 2.4中下半部机制(BottomHalf)的基本原理与使用(简单分析)

Linux 2.4中下半部机制(BottomHalf)的基本原理与使用 1.介绍 下半部是为了解决内核中驱动程序响应中断的效率问题而设置的机制。通常在上半部响应中断,将关键数据保存下来。而下半部负责在内核空间作进一步的数据处理,以便最终交付给用户使用。但在Linux2.4中有了新的tasklet机制来替代bottomhalf机制,bottomhalf机制存在的意义主要是兼容和移植了。 2.基本原理

2009-03-10 23:24:00 1474

转载 内核中的互斥之我见

看了前面各位的讨论,我也有些想法,与大家商榷。 需要澄清的是,互斥手段的选择,不是根据临界区的大小,而是根据临界区的性质,以及 有哪些部分的代码,即哪些内核执行路径来争夺。 从严格意义上说,semaphore和spinlock_XXX属于不同层次的互斥手段,前者的 实现有赖于后者,这有点象HTTP和TCP的关系,都是协议,但层次是不同的。 先说semaphore,它是进程级的,用于多个进程之间对资

2009-03-05 23:56:00 513

转载 自旋锁

自旋锁  ------------------------------------------------------  自旋锁是专为防止多处理器并发而引入的一种锁,它在内核中大量应用于中断处理等部分(对于单处理器来说,防止中断处理中的并发可简单采用关闭中断的方式,不需要自旋锁)。  自旋锁最多只能被一个内核任务持有,如果一个内核任务试图请求一个已被争用(已经被持有)的自旋锁,那么这个

2009-03-05 23:45:00 2190 1

转载 VC++多线程下内存操作的优化

VC++多线程下内存操作的优化 作者:zdg 时间:2001-10-08 10:09 出处:互联网 责编:chinaitpower               摘要:VC++多线程下内存操作的优化作者/李红亚 许多程序员发现用VC++编写的程序在多处理器的电脑上运

2008-12-08 23:32:00 643

原创 VC多线程编程(转)

VC多线程编程(转) VC中多线程使用比较广泛而且实用,在网上看到的教程.感觉写的挺好. 一、问题的提出编写一个耗时的单线程程序:  新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下: void CS

2008-08-04 22:50:00 356

转载 多线程

线程的同步  虽然多线程能给我们带来好处,但是也有不少问题需要解决。例如,对于像磁盘驱动器这样独占性系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就有可能出现两个线程同时对磁盘驱动器进行操作,从而出现操作错误;又例如,对于银行系统的计算机来说,可能使用一个线程来更新其用户数据库,而用另外一个线程来读取数据库以响应储户的需要,极有可能读数

2008-03-14 11:08:00 311

转载 Windows Socket API

Windows Socket API 使用经验      本文是我在进行MS-Windows、HP-Unix网络编程的实践过程中总结出来的一些经验,仅供大家参考。本文所谈到的Socket函数如果没有特别说明,都是指的Windows Socket API。一、WSAStartup函数   int WSAStartup(     WORD wVersionRequested,       

2008-03-12 16:49:00 413

原创 串口编程

串口编程:无论那种操作方式,一般都通过四个步骤来完成:(1) 打开串口(2) 配置串口(3) 读写串口(4) 关闭串口设计步骤:1.初始化/打开串口打开串口的第一步是初始化或设置串口配置,目的是创建串口代理,整篇文章我们都将用文件句柄作为串口代理。创建端口句柄串口句柄是可以被用来存取的串口对象句柄,创建串口句柄的函数是CreateFile,如下代码所示: m_hComDevice = Cr

2008-03-10 13:57:00 618

转载 肯定有你没看过的

1、二农戏猪 2、干掉鸟人我就是天使! 3、帅有个屁用!到头来还不是被卒吃掉! 4、好好活着,因为我们会死很久!!! 5、有没有听过“大猪说有,小猪说没有”的故事? 6、女友问我她死了我会怎样我坚定的说:我不会独活(再找一个活)她大悦~! 7、人工智能和天然愚蠢无法相提并论——因为我们主张纯天然。 8、在教堂听讲经的时候我们应该保持肃静,打扰别人睡觉是很不礼貌的。 9、陪聊,提供夜间上门服务。(一

2008-03-04 10:04:00 378

转载 memset函数详细说明

memset函数详细说明2007年04月15日 星期日 下午 09:20 1。void *memset(void *s,int c,size_t n) 总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。 2。例子 #i nclude #i nclude main(){ char *s="Go

2008-01-06 20:04:00 336

转载 协议开发工具

协议开发工具协议软件开发 /lx 发表于2004-12-07, 13:11随着协议工程技术的进程,各种协议开发工具软件相应产生,有一些工具已作为商品投入市场.这些软件工具可以分成三类,第一类工具用于协议设计(综合)。第二类用于协议实现,第三类用于协议测试.各类工具的功能和作用归纳如下:(1)协议设计工具(Tool for specification develop)协议

2007-12-16 18:30:00 1864

转载 用两个栈实现一个队列的功能

原题:  用两个栈实现一个队列的功能?思路:  假设两个栈 A 和B,且都为空。  可以认为栈 A 为提供入队列的功能,栈 B 提供出队列的功能。  入队列: 入栈 A   出队列:  1 如果栈B 不为空,直接弹出栈 B 的数据。  2 如果栈 B 为空,则依次弹出栈 A 的数据,放入栈 B 中,再弹出栈 B 的数据。 StatckOne.java import java.u

2007-12-15 13:27:00 509

转载 Java面试题

导读:  http://blog.csdn.net/zhaojianjun111/archive/2007/10/24/1842101.aspx  JAVA相关基础知识  1、面向对象的特征有哪些方面   1.抽象:  抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包

2007-11-27 16:12:00 525

原创 什么是Rational Rose

什么是Rational Rose2007年09月15日 星期六 17:02 一、Rational Rose是什么?Rational Rose是Rational公司出品的基于UML的可视化建模工具。当前市场上基于UML可视化建模的工具很多,例如有Mic

2007-11-16 23:29:00 1444

转载 浮点数在计算机中存储方式(转)

 浮点数在计算机中存储方式(转)         C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit, double数据占用64bit,我们在声明一个变量float f= 2.25f的时候,是如何分配内存的呢?如果胡乱分配,那世界岂不是乱套了么,其实不论是float还是double在存储方式

2007-11-13 11:09:00 416

原创 全局变量和静态变量

全局变量和静态变量的区别变量可以分为全局变量、静态全局变量、静态局部变量和局部变量     按存储区域分:全局变量、静态全局变量和静态局部变量都存放在内存的全局数据区,局部变量存放在内存的栈区     按作用域分:全局变量在整个工程文件内都有效;静态全局变量只在定义它的文件内有效;静态局部变量只在定义它的函数内有效,只是程序仅分配一次内存,函数返回后,该变量不会消失;局部变量在定义它的函数内有

2007-11-13 10:53:00 371

原创 有关内存的思考题

有关内存的思考题void GetMemory(char *p){p = (char *)malloc(100);}void Test(void){char *str = NULL;GetMemory(str);strcpy(str, "hello world");printf(str);}请问运行Test 函数会有什么样的结果?答:程序崩溃。因为GetMemory 并不能传递动态内存,Test

2007-11-09 17:23:00 827

转载 堆和栈的区别

 堆和栈的区别    堆(Heap)栈(Stack)1、内存分配方面:    堆:一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式是类似于链表。可能用到的关键字如下:new、malloc、delete、free等等。    栈:由编译器(Compiler)自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据

2007-11-09 13:44:00 491

空空如也

空空如也

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

TA关注的人

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