【注意】最后更新于 January 1, 0001,文中内容可能已过时,请谨慎使用。
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: ‘Decompress current Excalidraw file’. For more info check in plugin settings under ‘Saving’
Excalidraw Data
Text Elements
设计数据结构 ^w0HsRYws
如何避免系统调用 ^kVIRlNRo
<- ^vMUqn9nW
如何减少数据拷贝 ^oYq7Ojvr
<- ^W1kb1r4j
1 ^CZwwcbIZ
2 ^guCqgMmg
class io_uring ^W4yYb9W8
实现算法 ^rX1Caviw
面试要点 ^UIuT07Io
-
能够解释 io_uring 的基本结构和工作原理 ^or32CkRs
-
理解它与传统同步 I/O 和 Linux AIO 的区别 ^PC77WZxh
-
能够分析其性能优势和适用场景 ^UQqcax3C
-
了解其实现中的关键技术点(共享内存、内存屏障、无锁编程等) ^HwxYgujK
-
能够讨论其在实际系统中的应用和潜在挑战 ^5GTCy0OS
通过对 io_uring 的深入理解,可以展示您对现代高性能 I/O 系统设计的掌握,这在架构面试中是非常有价值的 ^UaRVarTe
3 ^K0Ma2QLw
三个工作模式? ^kEunxRHU
<- ^bXuCQZcT
4 ^uA7q82AW
中断,轮询,内核轮询 ^f0GXCD26
<- ^NV9YQcPj
poll轮询机制代替中断驱动 ^DndzCZxD
从新手到架构师训练营 ^CbpUoRQB
系统设计: Web服务器 如何实现大文件跨节点传输 ^NtxEljAl
Embedded Files
a529ac15077675f2559495029bfbdfdd589da17f: [[blog/public/post/Pasted Image 20250613103540_367.svg]]
05c7ac5d87d5c67de030296e17833d9006cd7546: [[Pasted Image 20250627184407_007.png]]
%%
Drawing
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
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
|
%%