- 博客(8)
- 收藏
- 关注
原创 CRC的基本原理详解
CRC(Cyclic Redundancy Check)被广泛用于数据通信过程中的差错检测,具有很强的检错能力。本文详细介绍了CRC的基本原理,并且按照解释通行的查表算法的由来的思路介绍了各种具体的实现方法。1.差错检测数据通信中,接收端需要检测在传输过程中是否发生差错,常用的技术有奇偶校验(ParityCheck),校验和(Checksum)和
2017-06-22 14:20:09 32586 5
原创 Liunx进程间通信—管道
管道管道,顾名思义你可以把它想成一根数据线,连接了两个进程,使他们可以互相通信。更严谨来说,它是一个文件或者一块共享区,一个进程往里面写数据,另一个进程从里面拿数据,以此种方式完成进程间通信。 管道是UNIX系统IPC最古老的形式,所有的UNIX系统都提供此种通信机制(UNIX系统IPC是各种进程通信方式的统称)。 管道在进行通信时,基于字节流。管道是单向的、先进先出的。它将一
2017-06-21 00:36:15 464
原创 Liunx进程间IPC通信—消息队列
1、什么是消息队列 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值。我们可以通过发送消息来避免命名管道的同步和阻塞问题。 消息队列与管道不同的是,消息队列是基于消息的,而管道是基于字节流的,且消息队列的读取不一定是先入先出。消息队列与命名管道有一样的不足,就是每个消息的最大长度是有上限的(MSG
2017-06-18 13:09:05 424
原创 线程安全与可重入函数
一,什么是线程安全? 当对一个复杂对象进行某种操作时,从操作开始到操作结束,被操作的对象往往会经历若干非法的中间状态。调用一个函数(假设该函数是正确的)操作某对象常常会使该对象暂时陷入不可用的状态(通常称为不稳定状态),等到操作完全结束,该对象才会重新回到完全可用的状态。如果其他线程企图访问一个处于不可用状态的对象,该对象将不能正确响应从而产生无法预料的结果,如何避免这种情况发生是线
2017-06-11 14:01:02 1237 3
原创 Liunx之信号捕捉与模拟sleep函数
信号在未决并且未阻塞状态下被递达的方式有三种:(1)忽略(2)执行默认动作(3)执行用户自定义动作前两个方式的递达都是由内核完成;而第三种处理的动作是用户自定义函数,在信号递达时就调用这个函数,这就称为捕捉信号下面我们用看图来分析捕捉信号的过程:首先我们要知道信号处理的时机是内核态切回到用户态时。1.首先用户主函数里注册了某信号的自定义函数,处理信号的自
2017-06-11 12:03:52 576
原创 Liunx线程(一)
1.线程是系统调用的基本单位,而进程是承担分配资源的基本单位。2.线程属于进程的一个执行分支,则进程可以认为是只有一个执行分支的线程,所以Liunx下进程叫做轻量级进程。3.由于同属一个进程的线程之间的代码和数据段是共享的,则线程之间通信是很容易的。4.由于线程是在一个进程内部运行的,所以线程的pid和组id是相同的,但是线程的id是不同的。5.一般创建出来的线程的优先级都是平等的。6.进程强调独立,线程强调共享。
2017-06-04 23:13:38 685
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人