20.1 说说IO的交互流程
难度:★
重点:★
白话解析
这道题主要是用来帮助理解后面题目的,IO交互主要分为两种:本地IO和网络IO。
1、本地IO:数据在磁盘上,通过系统调用read()方法读取数据到内核空间的缓冲区,然后再读取到 用户空间的缓冲区,这就是IO的交互过程。
2、网络IO:数据不是从磁盘读取,而是从IO设备网卡中读取数据。
本地IO是从本地的文件中读取数据,而网络IO从网卡中读取网络中的数据,那么,网络也要借用这个文件的概 念,接收网卡中的数据,所以在java中定义了一个Socket接口,用来进行网络之间的数据传输。
3、用户空间:指操作系统分配给应用程序的内存区域,用于运行用户编写的应用程序代码。这是应用程序的正常执行环境,它包括应用程序的代码和数据。说白了就是运行应用程序的内存区域。
内核空间:是操作系统的核心组件所运行的内存区域。操作系统内核是计算机系统的底层管理程序,负责管理硬件资源、执行系统级任务、提供服务和调度进程。内核空间包含操作系统内核代码和数据结构,以及操作系统运行所需的核心组件。说白了就是运行操作系统的内存区域。