linux
文章平均质量分 80
闫不丢
嘻嘻嘻
展开
-
进程间的通讯方式_管道(有名管道)
当从一个进程连接数据流到另一个进程时,我们使用属于管道(pipe)。我们通常是把一个进程的输出通过管道连接到另一个进程的输入。(管道是在内存上开辟出一块空间,不被任何其他进程所占用的)管道包括全双工通讯和半双工通讯。管道原理:管道操作: 有名管道:应用于任意两个进程之间数据的单向传递 创建:命令方式(mkfifo)、函数方式(mkfifo)原创 2017-10-22 23:39:55 · 427 阅读 · 0 评论 -
网络编程基础(三)UDP
网络编程基础(UDP 编程)UDP 报文头部结构如下图所示:TCP 流式服务和 UDP 数据包服务原创 2017-11-22 23:52:55 · 445 阅读 · 0 评论 -
网络编程基础(二)
网络编程基础TCP 协议的特点 传输层协议主要有两个:TCP 协议和 UDP 协议。TCP 协议相对于 UDP 协议的特点是:面向连接、字节流和可靠传输。 使用 TCP 协议通信的双方必须先建立连接,然后才能开始数据的读写。双方都必须为连接分配必要的内核资源,以管理连接的状态和连接上数据的传输。TCP 连接是全双工的,即双方的数据读写可以通过一个连接进行。完成数原创 2017-11-21 13:09:35 · 203 阅读 · 0 评论 -
如何处理僵死进程?
如何处理僵死进程? 给进程设置僵尸状态的目的是维护子进程的信息,以便父进程在以后某个时间获取,这些信息包括进程的 pid、终止状态以及资源的利用信息(CPU时间,内存使用量等)。如果一个进程终止,而该进程有子进程处于僵尸状态,那么它的所有僵尸子进程的 ppid 将被重置为1(init 进程)。继承这些子进程的 init 进程将清理它们(init 进程将 wait 它们,从而去除僵死原创 2017-12-07 21:31:29 · 596 阅读 · 0 评论 -
网络编程基础(一)
网络编程基础 网络编程的实现就必须有服务器和客户端的存在 服务器:为客户提供服务的一方 客户端:获取数据的为客户端,可以是任意一台主机,只要它和服务器存在连接,并且的到服务器的授权,就可以使用服务器提供的服务 有两种协议可以选择: (1)TCP:面向连接的 可靠的 流式服务 (2原创 2017-11-19 21:31:01 · 195 阅读 · 0 评论 -
线程控制(线程同步 & 线程安全)
一、线程同步 当多个控制线程共享相同的内存时,需要确保每个线程看到一致的数据。如果当某个线程可以去修改变量,而其他线程也可以去读取或者修改这个变量的时候,就需要对这些线程进行同步控制,以确保它们在访问变量的存储内容时不会访问到无效的数值。 同步:多进程或者多线程访问临界资源时,必须进行同步控制。多进程或者多线程的执行并不是完全绝对的并行运行,有可能主线程需要等待函数原创 2017-11-12 20:06:59 · 423 阅读 · 0 评论 -
进程间的通讯方式_消息队列
消息队列:提供了一种从一个进程向另一个进程发送一个数据块的方法,而且每个数据块都被认为含有一个类型,接收进程可以独立地接受含有不同类型值得数据块。 消息:数据 & 类型 队列:一种数据结构,先进先出 消息队列:是一种临时存储信息的队列,完成进程间的数据传递,优先级队列消息队列的特点: 1.与信号量相比:都以内核对象来确保多进程访问同原创 2017-11-02 21:32:01 · 627 阅读 · 0 评论 -
线程管理
线程的概念 线程是进程内部的一条执行序列(执行流),每个进程至少有一条执行序列:main 执行体。 进程可以通过线程创建 N 条线程,这些新创建的线程称之为函数线程,main 函数所代表的线程为主线程。线程与进程的区别 1. 进程是资源分配的最小单位,线程是 CPU 调度的最小单位 2. 线程是轻量级的进程 3. 管理方原创 2017-11-04 23:10:14 · 250 阅读 · 0 评论 -
进程间的通讯方式_信号量
信号量 当我们编写的程序使用了线程时,不管它是运行在多用户系统上、多线程系统上,还是运行在多用户多进程系统上,我们通常会发现程序中存在着一部分临界代码,我们需要只有一个进程(或一个执行线程)可以进入这个临界代码并拥有对资源独占式的访问权。为了防止出现因多个程序同时访问一个共享资源而引发的问题,我们需要有一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的原创 2017-10-28 21:52:27 · 277 阅读 · 0 评论 -
进程间的通讯方式_管道(无名管道)
无名管道 是相对于有名管道而言的,无名管道在使用时产生,不使用后释放,并不会再系统上留下任何蛛丝马迹。 无名管道因其使用前没有任何的标示,所以它只能应用于父子进程之间。 子进程会复制父进程的文件表数组(浅拷贝)。无名管道的相关操作: 创建:int pipe(int fd[2]); //fd[0] 读 //fd[1] 写原创 2017-10-28 18:39:54 · 237 阅读 · 0 评论 -
进程间的通讯方式_共享内存
共享内存:共享内存是在两个正在运行的进程之间传递数据的一种非常有效的方式,它允许两个不相关的进程访问同一个逻辑内存。虽然X/Open标准并没有对它做出要求,但大多数共享内存的具体实现都把由不同进程之间共享的内存安排为同一段物理内存。 共享内存是由IPC为进程创建的一个特殊的地址范围,它将出现在该进程的地址空间中。其他进程可以将同一段共享内存连接到它们自己的地址空间中。所有进程都可以原创 2017-12-13 21:06:45 · 246 阅读 · 0 评论