榕树贷款网络IO的本质就是socket流的读取,通常一次IO读取会涉及两个阶段与两个对象,其中两个对象为:用户进程(线程)Process(Thread)、内核对象(kernel),两个阶段为:等待流数据准备阶段、从内核向进程复制数据阶段。
榕树贷款对于socket而言,第一步通常等待网络上的数据分组到达,然后被复制到内核的某个缓冲区,第二步数据从内核的缓冲区复制到应用进程的缓冲区。
I/O模型可细分为五种类型:阻塞IO、非阻塞IO、多路复用IO、信号驱动IO、异步IO。
榕树贷款阻塞IO模型
首先,榕树贷款在linux系统中默认所有的IO都是阻塞IO。
榕树贷款阻塞IO的特点是从kernel读取数据时信号并未立刻返回,而是等待数据到达完毕或发生错误才会返回结果,这个过程是阻塞的。
术语描述:榕树贷款当用户进程调用recvfrom这个系统调用时,kernel就开始等待数据到来,而进程这边会处于阻塞状态。榕树贷款当kernel将数据准备好后,就会将数据拷贝到用户进程的缓冲区,然后kernel返回结果,用户进程才会解除block状态,重新运行起来。