mirror of
https://github.com/Snailclimb/JavaGuide
synced 2025-06-16 18:10:13 +08:00
commit
f7cc597672
@ -18,7 +18,7 @@ I/O(**I**nput/**O**utpu) 即**输入/输出** 。
|
||||
|
||||

|
||||
|
||||
输入设备(比如键盘)和输出设备(比如鼠标)都属于外部设备。网卡、硬盘这种既可以属于输入设备,也可以属于输出设备。
|
||||
输入设备(比如键盘)和输出设备(比如显示器)都属于外部设备。网卡、硬盘这种既可以属于输入设备,也可以属于输出设备。
|
||||
|
||||
输入设备向计算机输入数据,输出设备接收计算机输出的数据。
|
||||
|
||||
@ -28,7 +28,7 @@ I/O(**I**nput/**O**utpu) 即**输入/输出** 。
|
||||
|
||||
根据大学里学到的操作系统相关的知识:为了保证操作系统的稳定性和安全性,一个进程的地址空间划分为 **用户空间(User space)** 和 **内核空间(Kernel space )** 。
|
||||
|
||||
像我们平常运行的应用程序都是运行在用户空间,只有内核空间才能进行系统态级别的资源有关的操作,比如如文件管理、进程通信、内存管理等等。也就是说,我们想要进行 IO 操作,一定是要依赖内核空间的能力。
|
||||
像我们平常运行的应用程序都是运行在用户空间,只有内核空间才能进行系统态级别的资源有关的操作,比如文件管理、进程通信、内存管理等等。也就是说,我们想要进行 IO 操作,一定是要依赖内核空间的能力。
|
||||
|
||||
并且,用户空间的程序不能直接访问内核空间。
|
||||
|
||||
@ -57,7 +57,7 @@ UNIX 系统下, IO 模型一共有 5 种: **同步阻塞 I/O**、**同步非
|
||||
|
||||
**BIO 属于同步阻塞 IO 模型** 。
|
||||
|
||||
同步阻塞 IO 模型中,应用程序发起 read 调用后,会一直阻塞,直到在内核把数据拷贝到用户空间。
|
||||
同步阻塞 IO 模型中,应用程序发起 read 调用后,会一直阻塞,直到内核把数据拷贝到用户空间。
|
||||
|
||||

|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user