
UNP
The_Hungry_Brain
现在不经意做的一件事,会在未来某个不可预期的时刻回馈自己。越努力,越幸运。
展开
-
UNP——Chapter 2:传输层:TCP、UDP和SCTP
TCP的三路握手TCP的连接终止序列TCP的TIME_WAIT状态SCTP的四路握手SCTP的连接终止原创 2016-08-31 17:27:08 · 678 阅读 · 0 评论 -
UNP(卷2:进程间通信)—— 第7、8、9章:互斥锁、条件变量、读写锁、记录上锁
互斥锁:相互排斥(mutual exclusion),用于保护临界区。Posix互斥锁被声明为具有pthread_mutex_t数据类型的变量。如果互斥锁的变量是静态分配的,那么我们可以把它初始化成常值PTHREAD_MUTEX_INITIALIZER。若是动态分配的,必须在运行之时,通过调用pthread_mutex_init函数来初始化它。#include int pt原创 2017-07-29 10:35:25 · 316 阅读 · 0 评论 -
UNP(卷2:进程间通信)—— 第5章:Posix消息队列
Posix消息队列 和 System V 消息队列的主要差别:对POSIX消息队列的读总是返回最高优先级的最早消息,对System V消息队列的读则可以返回任意指定优先级的消息。当往一个空队列放置一个消息时,Posix消息队列允许产生一个信号或启动一个线程,System V消息队列则不提供类似的机制。队列中的每个消息都具有如下属性:一个无符号整数优先级(Posix)原创 2017-07-21 14:54:16 · 389 阅读 · 0 评论 -
UNP(卷2:进程间通信)—— 第6章:System V消息队列
System V 消息队列使用消息队列标识符(Message Queue Identifier)。具有足够特权的任何进程都可以往一个给定进程放置一个消息。也可以读出一个消息。跟Posix消息队列一样,在写消息之前,不求另外某个进程正在等待该队列上一个消息的到达。原创 2017-07-25 14:27:45 · 291 阅读 · 0 评论 -
UNP(卷2:进程间通信)—— 第12章:共享内存区介绍
共享内存区是可用IPC形式中最快的。一旦这样的内存区映射到共享它的进程的地址空间,这些进程间数据的传递就不再涉及内核。然而往共享内存区存放信息或从中取走信息的进程间通常需要某种形式的同步。“不再涉及内核”:指 进程不再通过执行任何进入内核的系统调用来彼此传递数据。显然,内核必须建立允许各个进程共享该内存区的内存映射关系,然后一直管理该内存区。通常的客户服务器消息传递,需复制四次:原创 2017-09-12 21:30:31 · 368 阅读 · 0 评论 -
UNP(卷2:进程间通信)—— 第13章:Posix共享内存区
mmap提供父子进程间的共享内存区的列子:(1)使用内存映射文件;(2)使用4.4BSD 匿名内存映射;(3)使用 /dev/zero 匿名内存映射。POSIX 提供了两种在无亲缘关系进程间共享内存区的方法:(1)内存映射文件:由open函数打开,由mmap函数把得到的描述符映射 到当前进程地址空间中的一个文件。(2)共享内存区对象:由shm_open 打开一个Po原创 2017-09-13 11:46:54 · 315 阅读 · 0 评论 -
UNP(卷2:进程间通信)—— 第10章:Posix信号量
sem_open、sem_close、sem_unlink#include /* For O_* constants */#include /* For mode constants */#include sem_t *sem_open(const char *name, int oflag);sem_t *sem_open(const char原创 2017-08-16 17:40:00 · 380 阅读 · 0 评论 -
UNP(卷2:进程间通信)—— 第14章:System V共享内存区
先调用shmget,再调用shmat。对于每个共享内存区,内核维护如下信息结构 shmid_ds,/* Permission flag for shmget. */#define SHM_R 0400 /* or S_IRUGO from */#define SHM_W 0200 /* or S_IWUGO from *//原创 2017-09-23 09:34:27 · 322 阅读 · 0 评论 -
UNP(卷2:进程间通信)—— 第15,16章:远程过程调用(门,Sun RPC)
(1)本地过程调用(local procedure call)(2)远程过程调用(remote procedure call,RPC):调用者为客户,被调用的过程为服务器。门(door)能力:一个进程调用同一台主机上另一个进程中的某个过程(函数)。(3)RPC通常允许一台主机上的某个客户调用另一台主机上的某个服务器过程,只要这两台主机以某种形式的网络连接着。原创 2017-09-23 11:36:53 · 515 阅读 · 0 评论 -
UNP(卷2:进程间通信)—— 第2,3章:Posix IPC 和 System V IPC
第二章Posix IPC以下三种类型的IPC合成为“Posix IPC”:Posix消息队列Posix信号量Posix共享内存区IPC名字的移植问题:mq_open、sem_open、shm_open这三个函数的第一个参数就是一个名字,可能是某个文件系统中的一个真正的路径。为避免移植问题:1、把Posix IPC名字的#define行放在一个原创 2017-06-13 21:26:41 · 609 阅读 · 0 评论 -
UNP(卷2:进程间通信)—— 第4章:管道和FIFO
管道由pipe创建,提供一个单向的数据流。#include int pipe(int fd[2]); // 返回:成功则为0,出错则为-1该函数返回两个文件描述符 fd[0] 和 fd[1] 。前者打开来读,后者打开来写。所有管道都是半双工的,即单向数据流。全双工管道某些系统提供全双工管道原创 2017-07-20 11:16:40 · 399 阅读 · 0 评论 -
UNP——Chapter 6:I/O复用:select和poll函数
内核一旦发现进程指定的一个或多个I/O条件就绪,它就通知进程。这个能力称为I/O复用。(I/O multiplexing)6.1 I/O模型5种I/O模型的基本区别:原创 2016-09-21 18:49:40 · 576 阅读 · 0 评论 -
UNP——Chapter 3:套接字编程简介
3.1 概述套接字地址结构。这些结构在两个方向上传递:从进程到内核和从内核到进程。其中从内核到进程方向的传递方式是值-结果参数。地址转换函数。在地址的文本表达和它们存放在套接字地址结构中的二进制值之间进行转换。多数现存IPv4代码使用inet_addr和inet_ntoa这两个函数,inet_pton和inet_ntop同时试用IPv4和IPv6。原创 2016-09-20 14:46:33 · 392 阅读 · 0 评论 -
UNP——Chapter 4:基本TCP套接字编程
socket原创 2016-09-21 17:11:32 · 281 阅读 · 0 评论 -
UNP——Chapter 5:TCP客户/服务器程序示例
程序示例原创 2016-09-21 18:43:32 · 330 阅读 · 0 评论 -
select、poll、epoll之间的区别总结
select、poll、epoll之间的区别总结[整理]select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负转载 2016-09-26 18:01:26 · 254 阅读 · 0 评论 -
【同步、异步、阻塞、非阻塞】的区别
一、同步与异步 同步/异步, 它们是消息的通知机制。A. 同步 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin isdigit等)。 但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。 最常见的例子就是 SendMessage。 该函数发送一个消息给某个窗口,在对方处理原创 2016-09-27 11:50:04 · 307 阅读 · 0 评论 -
UNP——Chapter 7:套接字选项
获取和设置影响套接字的选项:getsockopt和setsockopt函数;fcntl函数;ioctl函数。原创 2016-09-27 13:54:16 · 470 阅读 · 0 评论 -
UNP(卷2:进程间通信)—— 第一章:简介
IPC是进程间通信(interprocess communication)的简称。消息传递(message passing):管道(pipe),命名管道(named pipe)(FIFO)System V消息队列(System V message queue)Posix消息队列远程过程调用(Remote Procedure Call, RPC):从一个系统上某个程序调用另一原创 2017-06-13 20:57:13 · 598 阅读 · 0 评论 -
UNP(卷2:进程间通信)—— 第11章:System V 信号量
先前介绍的POSIX信号量概念:二值信号量:0,1计数信号量:0和某个限制值之间的信号量。System V 中信号量:计数信号量集:一个或多个信号量,其中每个都是计数信号量。对于系统的每个信号量集,内核维护一个信息结构:中定义/* Data structure describing a set of semaphores. */struct semid_ds{原创 2017-09-07 17:58:32 · 378 阅读 · 0 评论