1)写时拷贝机制 创建新进程(子进程)时,先直接拷贝当前进程,当前或子进程任何一方有写入的变化时再真正新建进程
2)零拷贝机制 内核态与用户态的切换由四次减少为两次
3)infiniband技术 将现有的总线传输改进为类网络路由交换的io技术。单路光纤的传输带宽可达6g/s。
4)内核态与用户态 两种'态'在切换的时候需要做类似于汇编中的子程序跳转的工作。
5) epoll 相对于轮询,改进了三个缺点,一是减少了从用户态和内核态之间的拷贝fd的开销,二是取消了fd的轮询开销,三是突破了select支持有限的fd的限制。但也不是没有缺点,如果epoll中的epoll_ctl被频繁调用估计会产生新的问题
6)apache三种模式,从进程与线程的关系上比较好理解 。
(1)prefork的主要特征是一进程一线程,采用多进程模式。
(2)worker模式 是一进程可多线程。
(3)event 对worker模式的进一步改进,内部采用了epoll,单个进程下的多线程管理采用epoll,避免了长期空闲keep-alive的线程的资源浪费问题。
7)nginx的优点 受启发于操作系统设计中基于“事件”的高级处理机制,nginx采用了模块化、事件驱动、异步、单线程及非阻塞的架构,大量采用了多路复用及事件通知机制。连接请求由为数不多的几个仅包含一个线程的进程worker以高效的回环(run-loop)机制进行处理,而每个worker可以并行处理数千个的并发连接及请求。
8)总结第7、8,apache相对比较稳定成熟,nginx则适用于海量连接、高并发的场景。
9)rpc框架的原理。
10)常见并发设计模式
(1) future 模式 常用的几个类callable、future、futureTask
(2) 多线程环境下的回调驱动 回调的执行比较孤立,与正常流程的汇合比较困难,适用于业务逻辑比较简单的场景。
(3)基于消息、事件驱动的并发设计模式 流程比较细碎,增加了开发的复杂性,程序的可维护性降低。