Linux高性能服务器编程(1):高性能服务器程序框架

一、服务器基本框架:
在这里插入图片描述
IO单元处理客户端连接,读写网络数据,逻辑单元,业务线程,请求队列是各个线程之间通信的方式

IO分为同步IO和异步IO:
同步IO是,IO就绪(比如socket收到了客户端的数据)就会通知程序,异步IO只有在事件完成后才会通知程序。比如使用read(),需要两个步骤:
1)内核缓冲区等待数据的接收
2)将数据从内核缓冲区copy到应用缓冲区
同步IO会在1)完成后通知进程,而异步IO会在2)结束后通知进程。

阻塞IO会在1)中等待直到内核缓冲区收到数据,非阻塞IO在1)中会立即返回,并且不断去询问是否收到数据。

reactor模式:
要求IO单元只负责监听文件描述符是否发生了变化,有的话立即通知逻辑单元,利用逻辑单元进行读写

proactor模式:
将IO操作都交给IO单元完成(包括读写)

并发模型中的同步指的是函数按照代码顺序执行,中断后一直阻塞,异步是函数执行需要系统事件(中断、信号)。

**LT:**如果一个套接字发生了变化,程序一直没有处理,内核会一直通知,直到处理了该事件。例如一个套接字,接收到了数据,如果该套接字缓冲区一直有数据没读完,就会一直通知进程去接收
**ET:**如果一个套接字发生了变化,内核只会通知一次该事件。例如一个进程接收到了数据,内核只会通知进程一次,因此需要循环把数据读完

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值