应用程序是咋得到数据库和内存里面的数据,求一个过程图。

你这问题细说起来好复杂啊,所以我就不细说了访问内存有专门的CPU指令,可以将指定内存地址的数据读取到CPU寄存器。实际CPU的工作还有虚拟内存映射、一级缓存二级缓存、流水线控制等等就不细说了,对用户来说,单条CPU指令就可以直接读取内存地址中的数据。数据库就更复杂了,高了好几个层次,应用程序通过称为socket(套接字)的操作系统接口创建网络连接,连接到数据库服务器;应用程序通过创建的连接,发送特定格式的数据(这种数据格式叫做协议),服务器解析应用程序发送的数据翻译成相应的操作,执行之后,将执行的结果通过特定的格式返回给应用程序;应用程序通过socket接口读取服务器传回的结果。从硬件上来说,socket接口中的数据通过send方法从内存经过复制进入内核内存空间,由内核的网卡驱动(协议栈)进行处理,转化为发送到物理网卡的指令和数据,通过直接读写设备总线或者DMA传输的方式将数据和指令发送到物理网卡,由物理网卡将数据转化为电信号发送到网线上,再经过若干个中间的交换和路由设备,报文最终转化为电信号被接收端的网卡收到,网卡通过中断通知CPU,CPU启动DMA过程将数据从设备读取到内核内存空间,由内核的网卡驱动(协议栈)进行处理,然后通知用户态的程序从recv的阻塞状态恢复,或者使select/epoll返回。用户态程序通过recv接口将内核内存空间中的数据读取到用户空间进行详细的协议分析与处理。
■网友
应用程序是咋得到数据库和内存里面的数据,求一个过程图。


■网友
写邀。内存寻址,数据指针。现在都不用程序员考虑这些技术细节了。
■网友
第一幅图就是了 【应用程序是咋得到数据库和内存里面的数据,求一个过程图。】 应用程序是咋得到数据库和内存里面的数据,求一个过程图。


    推荐阅读