LINUX-IPC(进程间通信)
文章平均质量分 58
keepingstudying
这个作者很懒,什么都没留下…
展开
-
Linux环境进程间通信(二): 信号(下)
文章出自于 http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index2.html从信号发送到信号处理函数的执行完毕对于一个完整的信号生命周期(从信号发送到相应的处理函数执行完毕)来说,可以分为三个重要的阶段,这三个阶段由四个重要事件来刻画:信号诞生;信号在进程中注册完毕;信号在进程中的注销完毕;信号处理转载 2012-10-22 11:24:34 · 1064 阅读 · 0 评论 -
exec 函数族
转载自华清远见 王姗姗讲师exec用被执行的程序完全替换调用它的程序的影像。fork创建一个新的进程就产生了一个新的PID,exec启动一个新程序,替换原有的进程,因此这个新的被exec执行的进程的PID不会改变,和调用exec函数的进程一样。 下面来看下exec函数族: #include int execl(const char *p转载 2013-01-08 20:43:35 · 365 阅读 · 0 评论 -
wait 函数
wait(等待子进程中断或结束)相关函数 waitpid,fork表头文件#include#include定义函数 pid_t wait (int * status);函数说明wait()会暂时停止目前进程的执行,直到有信号来到或子进程结束。如果在调用wait()时子进程已经结束,则wait()会立即返回子进程结束状态值。子进程的结束状态值会由参数status转载 2013-01-08 22:06:58 · 698 阅读 · 0 评论 -
进程的 task_struct
在linux 中每一个进程都由task_struct 数据结构来定义. task_struct就是我们通常所说的PCB.她是对进程控制的唯一手段也是最有效的手段. 当我们调用fork() 时, 系统会为我们产生一个task_struct结构。然后从父进程,那里继承一些数据, 并把新的进程插入到进程树中, 以待进行进程管理。因此了解task_struct的结构对于我们理解任务调度(在linux 中任转载 2013-01-10 09:37:40 · 436 阅读 · 0 评论 -
僵尸进程 孤儿进程
僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。僵尸进程将会导致资源浪费,而孤儿则不会。每个进程结束的时候,系统都会扫描当前系统中所运行的所转载 2013-01-17 20:32:25 · 436 阅读 · 0 评论 -
TCP 滑动串口原理
(1).窗口机制 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。下面举一个例子(假设转载 2013-01-19 12:15:26 · 866 阅读 · 0 评论 -
sqlite3 的常用指令
一.使用流程要使用sqlite,需要从sqlite官网下载到三个文件,分别为sqlite3.lib,sqlite3.dll,sqlite3.h,然后再在自己的工程中配置好头文件和库文件,同时将dll文件放到当前目录下,就完成配置可以使用sqlite了。使用的过程根据使用的函数大致分为如下几个过程:sqlite3_open()sqlite3_prepare()sqlite3_step转载 2013-01-19 19:26:52 · 515 阅读 · 0 评论 -
嵌入式linux网络编程之connect()函数的高级应用
在学习嵌入式Linux网络编程中,很多同学都发现了一个问题,那就是调用connect函数时,如果服务端关闭,客户端调用connect()函数时,发现阻塞在那里,而且利用ctrl+c信号去停止客户端程序时,需要等待一个较为长的时间才能响应了,这个时间如果大家细心会发现,每次都是75秒的时间。那么有没有什么比较好的办法,可以以用户能接受的一个时间响应来停止掉一个正在connect连接的客户端那?比如我转载 2013-07-06 22:00:58 · 735 阅读 · 0 评论 -
线程调度
什么是线程 Linux线程是一类特殊的进程,拥有各自的task_struct,内核并没有特别的调度算法和数据结构来表征线程,而仅仅是作为一个普通的进程,只是和其他进程共享进程空间。也就是说,如果程序运行于多线程环境,编写程序时必须检查一下项目:是否使用了不可重入的系统函数,例如字符串分割函数::strtok();是否已经对全局变量或静态变量进行了加锁;第三方库是否支持多线程转载 2014-01-02 14:43:19 · 562 阅读 · 0 评论 -
HTTP协议详解
文章转载自:http://blog.csdn.net/gueter/article/details/1524447引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW转载 2014-01-16 23:06:39 · 566 阅读 · 0 评论 -
线程的分离状态
:在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。 线程的分离状态决定一个线程以什么样的方式来终止自己。在默认情况下线程是非分离状转载 2014-05-16 16:24:20 · 473 阅读 · 0 评论 -
linux下的fg和bg ,jobs ,&指令
我们都知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务。而不能让程序在前台后台之间切换。而 Linux 提供了 fg 和 bg 命令,让我们轻松调度正在运行的任务。假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,挂起这个程序,然后可以看到系统提示(方括号中的是作业号):[1]+ Stopped /r转载 2013-01-08 12:57:51 · 756 阅读 · 0 评论 -
Linux 系统内核空间与用户空间通信的实现与分析
多数的 Linux 内核态程序都需要和用户空间的进程交换数据,但 Linux 内核态无法对传统的 Linux 进程间同步和通信的方法提供足够的支持。本文总结并比较了几种内核态与用户态进程通信的实现方法,并推荐使用 netlink 套接字实现中断环境与用户态进程通信。1 引言Linux 是一个源码开放的操作系统,无论是普通用户还是企业用户都可以编写自己的内核代码,再加上对标准内核的裁转载 2012-10-22 13:17:28 · 566 阅读 · 0 评论 -
Linux环境进程间通信(五): 共享内存(下)
简介: 在共享内存(上)中,主要围绕着系统调用mmap()进行讨论的,本部分将讨论系统V共享内存,并通过实验结果对比来阐述两者的异同。系统V共享内存指的是把所有共享数据放在共享内存区域(IPC shared memory region),任何想要访问该数据的进程都必须在本进程的地址空间新增一块内存区域,用来映射存放共享数据的物理内存页面。转载 2012-10-22 12:59:28 · 833 阅读 · 0 评论 -
Linux环境进程间通信(五): 共享内存(上)
简介: 共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。 采用共享内存通信的一个显而易转载 2012-10-22 13:00:48 · 580 阅读 · 0 评论 -
Linux 上实现双向进程间通信管道
简介: 本文阐述了一个使用 socketpair 系统调用在 Linux 上实现双向进程通讯管道的方法,并提供了一个实现。问题和常见方法Linux 提供了 popen 和 pclose 函数 (1),用于创建和关闭管道与另外一个进程进行通信。其接口如下:FILE *popen(const char *com转载 2012-10-22 13:04:28 · 1030 阅读 · 0 评论 -
Linux环境进程间通信(二): 信号(上)
文章出处 http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html一、信号及信号来源信号本质信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什转载 2012-10-22 11:25:55 · 306 阅读 · 0 评论 -
Linux环境进程间通信(四):信号量
文章转载自:http://www.ibm.com/developerworks/cn/linux/l-ipc/part4/index.html信号灯与其他进程间通信方式不大相同,它主要提供对进程间共享资源访问控制机制。相当于内存中的标志,进程可以根据它判定是否能够访问某些共享资源,同时,进程也可以修改该标志。除了用于访问控制外,还可用于进程同步。信号灯有以下转载 2012-10-22 12:50:12 · 481 阅读 · 0 评论 -
Linux 环境进程间通信(六):套接字(socket)
简介: 在本专题的前面几个部分,如消息队列、信号灯、共享内存等,都是基于Sys V的IPC机制进行讨论的,它们的应用局限在单一计算机内的进程间通信;基于BSD套接口不仅可以实现单机内的进程间通信,还可以实现不同计算机进程之间的通信。本文将主要介绍BSD套接口(sockets),以及基于套接口的重要而基本的API。发布日期: 2003 年 6 月 19 日 级别: 初级 访问转载 2012-10-22 13:02:35 · 1512 阅读 · 0 评论 -
进程间通信(一): 管道(pipe+fifo)
本文章来自于 http://www.ibm.com/developerworks/cn/linux/l-ipc/part1/ 管道是Linux支持的最初Unix IPC形式之一,具有以下特点:管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);单独构成一种独立的文件系统:管道对于转载 2012-10-22 11:18:51 · 559 阅读 · 0 评论 -
深刻理解Linux进程间通信(IPC)
简介: 一个大型的应用系统,往往需要众多进程协作,进程(Linux进程概念见附1)间通信的重要性显而易见。本系列文章阐述了Linux环境下的几种主要进程间通信手段,并针对每个通信手段关键技术环节给出详细实例。为达到阐明问题的目的,本文还对某些通信手段的内部实现机制进行了分析。序linux下的进程通信手段基本上是从Unix平台上转载 2012-10-22 13:13:26 · 792 阅读 · 0 评论 -
嵌入式系统中进程间通信的监视方法
简介: 本文详细描述了一种利用 ptrace 系统调用,实现嵌入式系统内部进程通信的监视方法,并提供了相应的实现方案。 概述复杂的嵌入式系统中,常常同时运行着相当多的进程。这些进程之间频繁的进行着大量的通信动作。进程的运行状态与这些不断发生的通信有着直接和紧密的联系。通过对进程间通信的监视,开发人员可转载 2012-10-22 13:14:25 · 852 阅读 · 0 评论 -
运行时: 使进程和线程同步
简介: 在 Ed 以前的文章中谈到了管道,一种 Windows 和 Linux 上进程间通信的形式。本文中,他探讨了进程间同步原语(作为控制两个进程访问同一资源的方法)。象往常一样,Ed 的目的是推荐几种方法来优化编程实践,并且演示了那些编程实践的性能。单击本文顶部或底部的讨论进入论坛,与作者以及其他读者分享您对本文的看法转载 2012-10-22 13:15:37 · 467 阅读 · 0 评论 -
在 Linux 上实现基于 Socket 的多进程实时通信
简介: 套接口(Socket)为目前 Linux 上最为广泛使用的一种的进程间通信机制。但是它不能直接用来多进程之间的相互实时通信。本文提出一个基于 Socket 的多进程之间通信的实现方法,并给出样本程序的实现和说明。套接口(Socket)为目前Linux上最为广泛使用的一种的进程间通信机制,与其他的Linux通信机制不同之转载 2012-10-22 13:16:22 · 985 阅读 · 0 评论 -
线程函数大全
线程基本编程——线程函数大全转载 2014-05-12 15:41:40 · 746 阅读 · 0 评论