type
status
date
slug
summary
tags
category
icon
password
Sub-item
Last edited time
Oct 28, 2023 10:39 AM
Parent item
领域
从图中可以看出,
- 当用户进程发出read操作时,如果kernel中的数据还没有准备好,那么它并不会block用户进程,而是立刻返回一个error。
- 从用户进程角度讲 ,它发起一个read操作后,并不需要等待,而是马上就得到了一个结果。
- 用户进程判断结果是一个error时,它就知道数据还没有准备好,于是它可以再次发送read操作。
- 一旦kernel中的数据准备好了,并且又再次收到了用户进程的system call,那么它马上就将数据拷贝到了用户内存,然后返回。
所以,用户进程其实是需要不断的主动询问kernel数据准备好了没有。