Skip to content

Commit 6687ef8

Browse files
committed
auto commit
1 parent 7aa1d64 commit 6687ef8

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

docs/notes/Socket.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@ Unix 有五种 I/O 模型:
3737

3838
## 阻塞式 I/O
3939

40-
应用进程被阻塞,直到数据复制到应用进程缓冲区中才返回
40+
应用进程被阻塞,直到数据从内核缓冲区复制到应用进程缓冲区中才返回
4141

42-
应该注意到,在阻塞的过程中,其它程序还可以执行,因此阻塞不意味着整个操作系统都被阻塞。因为其他程序还可以执行,所以不消耗 CPU 时间,这种模型的 CPU 利用率效率会比较高。
42+
应该注意到,在阻塞的过程中,其它应用进程还可以执行,因此阻塞不意味着整个操作系统都被阻塞。因为其它应用进程还可以执行,所以不消耗 CPU 时间,这种模型的 CPU 利用率效率会比较高。
4343

44-
下图中,recvfrom 用于接收 Socket 传来的数据,并复制到应用进程的缓冲区 buf 中。这里把 recvfrom() 当成系统调用。
44+
下图中,recvfrom() 用于接收 Socket 传来的数据,并复制到应用进程的缓冲区 buf 中。这里把 recvfrom() 当成系统调用。
4545

4646
```c
4747
ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);
@@ -53,7 +53,7 @@ ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *
5353
5454
应用进程执行系统调用之后,内核返回一个错误码。应用进程可以继续执行,但是需要不断的执行系统调用来获知 I/O 是否完成,这种方式称为轮询(polling)。
5555
56-
由于 CPU 要处理更多的系统调用,因此这种模型的 CPU 利用率是比较低的
56+
由于 CPU 要处理更多的系统调用,因此这种模型的 CPU 利用率比较低
5757
5858
<div align="center"> <img src="pics/1492929000361_5.png"/> </div><br>
5959

0 commit comments

Comments
 (0)