系统内核调用浅谈

      下面简单谈谈平常我们通过URL地址获取数据是如何实现的,在此只是做一个简单的讨论,如果大家有什么问题欢迎大家评论。
     下面以一个简单的例子为主题:http://www.baidu.com,当我们在浏览器的地址栏中敲入这个URL地址并回车的时候是如何实现得到数据内容的呢?在此之前必须熟悉一个词汇那就C/S模式(也就是我们常说的Client/Server模式),当我们在本地敲入该请求并回车时,首先这些数据在用户态内存中,回车之后会把该信息数据发送到内核态内存中,然后CPU通过网络控制器去调用系统API去把数据发送到对方指定的机器(这里又有一个小细节部门:个人认为数据之间的通信只能通过有两台机器,也就是说数据之间的互访是通过两台机器,当访问的两台机器不在同一个网段内的时候,此时需要通过数据的转发操作,才能达到机器之间的数据交互,我们很常见的一种转发方式就是路由器,当IDC通信不在同一公司时,这时需要通过国家网络中心顶级节点转发数据到达对方通信公司顶级节点,然后在往下下发数据)当请求到达对方机器时,首先要处理的是对方应用会对该请求进行数据处理,等数据处理完毕以后会把数据返回到客户端.返回到本地以后会通过一系列的系统调用,最后通过浏览器来显示返回处理好的信息。这大概就是一个数据请求周期.
     我们平常在写应用的时候数据多是保存在用户态内存部分,还当系统需要处理这些数据的时候系统会自动把这些数据加载到系统内核态部分。而如果是访问硬盘上的数据的时候首先得把数据加载到内存中,然后在处理。

猜你喜欢

转载自sunwch.iteye.com/blog/799384
今日推荐