共享内存小结

共享内存是一种高效的IPC机制。其做法是将两个或多个进程的某部分虚拟内存对应到相同的物理内存上去。这样,不同的进程只要发起对该部分虚拟内存的操作,实际上操作了同一块物理内存,进而可实现进程之间的交流。所谓共享内存,共享的就是这些物理内存空间。

这是简图,实际对应的物理内存未必是连续的。 操作系统能这么做,依赖于虚拟内存机制,而虚拟内存实际源于CPU的支持,确切地说是MMU这个硬件在起作用。MMU接到CPU发出的虚拟地址 ...


硬性关闭TCP连接

硬性关闭是指:使用非正常的手法立即终止当前TCP连接,只求关闭,不考虑后果,丢失数据也无所谓。这种方式在处理一些紧急状况时或许是必要的。

正常的关闭流程是在连接双方的配合下经历四次握手完成的。应用程序里的操作就是调用close接口。

对socket实施close操作,实际上会产生一个FIN报文段,这个段当然也要遵从TCP的规则,它会在发送缓冲区中排队。显然,调用close的一方要想实际发出这个FIN段,当然要先将排在它之前的那些字节发出去才行。也就是说,调用close后,到实际发出FIN之前,发送缓冲区中的数据已经发送到对端了。

上面说的是正常的关闭,用close接口即可发起。非正常关闭,也是用这个接口,只不过要配置一下socket的LINGER选项。

linger有“苟延残喘”的意思 ...