• 管道 pipe 管道可用于具有亲缘关系进程间的通信 有名管道克服了管道没有名字的限制 因此 除具有管道所具有的功能外 它还允许无亲缘关系的进程间通信 实现机制 管道是由内核管理的一个缓冲区 相当于放入内存的一个纸条 管道的一端连接一个进程的
  • ACE Proactor实现了Facade模式 其方法可以分为四类 生命周期管理方法 事件循环管理方法 定时器管理方法 IO操作facilitator方法 须知ACE Proactor是使用Bridge模式的 ACE aynch Read
  • 概念说明 用户空间和内核空间 现在操作系统都是采用虚拟存储器 那么对32位操作系统而言 它的寻址空间 虚拟存储空间 为4G 2的32次方 操作系统的核心是内核 独立于普通的应用程序 可以访问受保护的内存空间 也有访问底层硬件设备的所有权限
  • Linux线程概述 内核线程和用户线程 线程是程序中完成独立任务的完整执行序列 即一个可调度的实体 根据运行环境和调度者身份 线程分为内核线程和用户线程 内核线程 在有的系统上也称为LWP 轻量级进程 运行在内核空间 由内核调度 用户线程
  • 数据发送 假设应用程序要发送40KB数据 但是OS的TCP发送缓冲区只有25KB剩余空间 那么剩下的15KB数据怎么办 如果等待OS缓冲区可用 会阻塞当前线程 因为不知道对方什么时候收到并读取数据 因此网络库应该把这个15KB数据缓存起来
  • 应用层程序能往一个TCP连接中写入多少字节的数据 取决于对方的接收窗口的大小和本端的拥塞窗口的大小 管道本身有一个容量限制 规定如果应用程序不将数据从管道读走的话 该管道最多能写入多少字节的数据 自Linux 2 6 11内核起 管道容量的
  • Linux信号是一种异步机制 信号处理函数和程序的主循环是两条不同的执行路线 很显然 信号处理函数需要尽可能快的执行完毕 以确保该信号不会被屏蔽太久 为了避免一些竞态条件 信号在处理期间 系统不会再次触发它 一种典型的解决方法是 把信号的主
  • Linux服务器程序规范 Linux服务器程序一般都是以后台进程形式运行 后台进程又称为守护进程 daemon 其没有控制终端 不会意外接收到用户输入 守护进程的父进程通常是init进程 PID为1的进程 Linux服务器程序通常有一套日志