forked from eddycjy/blog
-
Notifications
You must be signed in to change notification settings - Fork 0
/
io_uring.drawio
716 lines (716 loc) · 82.3 KB
/
io_uring.drawio
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36" version="24.7.13">
<diagram name="第 1 页" id="3DKdZYy7hW0o3-3EXeUM">
<mxGraphModel dx="1834" dy="869" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="72elHmb9s9LZBJJeOh2l-82" value="" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;curveFitting=1;jiggle=2;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="506.5" y="3662.5" width="236" height="60" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-23" value="" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;curveFitting=1;jiggle=2;" parent="1" vertex="1">
<mxGeometry x="600" y="80" width="130" height="90" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-2" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="1gns0Tno6R7osFcc5BNT-14" target="1gns0Tno6R7osFcc5BNT-13" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-3" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="1gns0Tno6R7osFcc5BNT-14" target="1gns0Tno6R7osFcc5BNT-13" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-14" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;sketch=1;curveFitting=1;jiggle=2;" parent="1" vertex="1">
<mxGeometry x="77.5" y="77.5" width="125" height="125" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-4" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="1gns0Tno6R7osFcc5BNT-13" target="1gns0Tno6R7osFcc5BNT-14" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-5" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="1gns0Tno6R7osFcc5BNT-13" target="1gns0Tno6R7osFcc5BNT-14" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-13" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="100" y="100" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-17" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="110" y="270" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-21" value="" style="sketch=0;outlineConnect=0;fontColor=#ffffff;fillColor=#1ba1e2;strokeColor=#006EAF;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.gear;" parent="1" vertex="1">
<mxGeometry x="620" y="100" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-22" value="" style="sketch=0;outlineConnect=0;fontColor=#ffffff;fillColor=#1ba1e2;strokeColor=#006EAF;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.gear;" parent="1" vertex="1">
<mxGeometry x="660" y="120" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-24" value="线程池" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="635" y="50" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-25" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
<mxGeometry x="340" y="130" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-27" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
<mxGeometry x="380" y="130" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=60;exitDy=40;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;curved=1;dashed=1;" parent="1" source="1gns0Tno6R7osFcc5BNT-28" target="1gns0Tno6R7osFcc5BNT-23" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-28" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
<mxGeometry x="420" y="130" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-29" value="work 队列" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="370" y="90" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-31" value="提交队列" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="110" y="40" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-89" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="1gns0Tno6R7osFcc5BNT-32" target="1gns0Tno6R7osFcc5BNT-33" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-90" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="1gns0Tno6R7osFcc5BNT-32" target="1gns0Tno6R7osFcc5BNT-33" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-32" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;sketch=1;curveFitting=1;jiggle=2;" parent="1" vertex="1">
<mxGeometry x="840" y="76.25" width="125" height="125" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-91" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="1gns0Tno6R7osFcc5BNT-33" target="1gns0Tno6R7osFcc5BNT-32" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-92" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="1gns0Tno6R7osFcc5BNT-33" target="1gns0Tno6R7osFcc5BNT-32" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-33" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="862.5" y="98.75" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-34" value="完成队列" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="872.5" y="38.75" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-35" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="650" y="280" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.492;entryY=-0.017;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;" parent="1" source="1gns0Tno6R7osFcc5BNT-14" target="1gns0Tno6R7osFcc5BNT-17" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-38" value="请求" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="120" y="295" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-49" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;curved=0;dashed=1;" parent="1" source="1gns0Tno6R7osFcc5BNT-40" target="1gns0Tno6R7osFcc5BNT-32" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-40" value="完成" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="660" y="300" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.042;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;" parent="1" source="1gns0Tno6R7osFcc5BNT-38" target="1gns0Tno6R7osFcc5BNT-35" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-43" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=20;entryPerimeter=0;dashed=1;curved=0;" parent="1" source="1gns0Tno6R7osFcc5BNT-38" target="1gns0Tno6R7osFcc5BNT-25" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-52" value="异步完成,卸载到 worker 线程处理" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1gns0Tno6R7osFcc5BNT-43" vertex="1" connectable="0">
<mxGeometry x="-0.024" y="2" relative="1" as="geometry">
<mxPoint x="32" y="1" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-48" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="673" y="170" as="sourcePoint" />
<mxPoint x="673" y="280" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="1gns0Tno6R7osFcc5BNT-50" value="立即完成,无需卸载到 worker处理" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="360" y="310" width="200" height="30" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-7" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="Ko0L7hKdxSBB8271acH8-9" target="Ko0L7hKdxSBB8271acH8-12" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-8" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="Ko0L7hKdxSBB8271acH8-9" target="Ko0L7hKdxSBB8271acH8-12" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-9" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;sketch=1;curveFitting=1;jiggle=2;" parent="1" vertex="1">
<mxGeometry x="87.5" y="570" width="125" height="125" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-10" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="Ko0L7hKdxSBB8271acH8-12" target="Ko0L7hKdxSBB8271acH8-9" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-11" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="Ko0L7hKdxSBB8271acH8-12" target="Ko0L7hKdxSBB8271acH8-9" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-12" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="110" y="592.5" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-13" value="内存布局" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="384" y="490" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-14" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="Ko0L7hKdxSBB8271acH8-16" target="Ko0L7hKdxSBB8271acH8-19" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-15" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="Ko0L7hKdxSBB8271acH8-16" target="Ko0L7hKdxSBB8271acH8-19" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-16" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;sketch=1;curveFitting=1;jiggle=2;" parent="1" vertex="1">
<mxGeometry x="660" y="570" width="125" height="125" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-17" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="Ko0L7hKdxSBB8271acH8-19" target="Ko0L7hKdxSBB8271acH8-16" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-18" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="Ko0L7hKdxSBB8271acH8-19" target="Ko0L7hKdxSBB8271acH8-16" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-19" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="682.5" y="592.5" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-20" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="290" y="720" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-21" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="330" y="720" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-22" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="370" y="720" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-23" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="410" y="720" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-24" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="450" y="720" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-25" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="490" y="720" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-61" style="edgeStyle=orthogonalEdgeStyle;curved=0;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=60;exitDy=40;exitPerimeter=0;dashed=1;" parent="1" source="Ko0L7hKdxSBB8271acH8-26" target="Ko0L7hKdxSBB8271acH8-16" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-26" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="530" y="720" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-27" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="250" y="720" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-52" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=20;exitDy=60;exitPerimeter=0;" parent="1" source="Ko0L7hKdxSBB8271acH8-32" target="Ko0L7hKdxSBB8271acH8-51" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-32" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="250" y="850" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-33" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="290" y="850" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-34" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="330" y="850" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-35" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="370" y="850" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-38" value="<span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">提交队列缓冲区</span>" style="text;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;fillStyle=solid;" parent="1" vertex="1">
<mxGeometry x="290" y="651.5" width="90" height="20" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-40" value="<div style="text-align: center;"><span style="text-wrap: nowrap;">完成事件数组</span></div>" style="text;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="450" y="651.5" width="90" height="20" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.411;entryY=0.95;entryDx=0;entryDy=0;entryPerimeter=0;curved=1;dashed=1;" parent="1" source="Ko0L7hKdxSBB8271acH8-27" target="Ko0L7hKdxSBB8271acH8-38" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.411;entryY=1.05;entryDx=0;entryDy=0;entryPerimeter=0;curved=1;dashed=1;" parent="1" source="Ko0L7hKdxSBB8271acH8-23" target="Ko0L7hKdxSBB8271acH8-38" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.422;entryY=0.95;entryDx=0;entryDy=0;entryPerimeter=0;curved=1;" parent="1" source="Ko0L7hKdxSBB8271acH8-23" target="Ko0L7hKdxSBB8271acH8-40" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=40;exitDy=0;exitPerimeter=0;entryX=0.422;entryY=0.975;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;curved=1;" parent="1" source="Ko0L7hKdxSBB8271acH8-26" target="Ko0L7hKdxSBB8271acH8-40" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-51" value="提交条目数组" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="300" y="970" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-54" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.51;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="Ko0L7hKdxSBB8271acH8-35" target="Ko0L7hKdxSBB8271acH8-51" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-55" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.58;entryY=1.008;entryDx=0;entryDy=0;entryPerimeter=0;curved=0;dashed=1;" parent="1" source="Ko0L7hKdxSBB8271acH8-27" target="Ko0L7hKdxSBB8271acH8-9" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-56" value="提交条目下标" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="150" y="720" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-57" style="edgeStyle=orthogonalEdgeStyle;curved=0;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.004;entryY=0.664;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;" parent="1" source="Ko0L7hKdxSBB8271acH8-32" target="Ko0L7hKdxSBB8271acH8-9" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-58" value="提交条目" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="77.5" y="848" width="70" height="30" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-59" value="提交队列" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="110" y="518" width="70" height="30" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-60" value="完成队列" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="685" y="518" width="70" height="30" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-64" value="完成事件" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="650" y="720" width="70" height="30" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-68" value="" style="endArrow=none;html=1;rounded=0;curved=1;dashed=1;strokeColor=#7EA6E0;strokeWidth=2;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="-60" y="640" as="sourcePoint" />
<mxPoint x="880" y="640" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-69" value="内核态" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="840" y="646.5" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-70" value="用户态" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="840" y="608" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-75" value="head" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="125" y="665" width="50" height="30" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-76" value="tail" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="125" y="570" width="40" height="30" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-77" value="head" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="695" y="570" width="50" height="30" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-78" value="tail" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="702.5" y="665" width="40" height="30" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-80" value="u32" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="620" y="870" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-83" value="cqe" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="620" y="940" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-84" value="提交条目下标(间接数组)" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="692.5" y="885" width="170" height="30" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-85" value="完成事件" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="702.5" y="960" width="70" height="30" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-86" value="sqe" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="622.5" y="1020" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Ko0L7hKdxSBB8271acH8-87" value="提交条目" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="702.5" y="1040" width="70" height="30" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-28" value="读" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="410" y="1929" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-29" value="读" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="370" y="1929" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-30" value="写" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="330" y="1929" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-31" value="写" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="290" y="1929" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;fontSize=12;startSize=8;endSize=8;curved=1;sketch=1;curveFitting=1;jiggle=2;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-32" target="Vj3lA73WJ6LqMtGzKSuj-46" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-32" value="写" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="250" y="1929" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-33" value="work_list" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
<mxGeometry x="77.5" y="1944" width="90" height="30" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-34" value="1. 读请求任务进入队列" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
<mxGeometry x="12.5" y="2135" width="190" height="30" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-46" value="inode1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;fontColor=#333333;" parent="1" vertex="1">
<mxGeometry x="279" y="1862" width="70" height="30" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-47" value="写" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="450" y="1929" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-48" value="写" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="490" y="1929" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-66" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=40;exitDy=0;exitPerimeter=0;fontSize=12;startSize=8;endSize=8;sketch=1;curveFitting=1;jiggle=2;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-49" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="520" y="1891" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-49" value="写" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="530" y="1929" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-51" value="读" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="410" y="2120" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-52" value="读" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="370" y="2120" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-53" value="写" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="330" y="2120" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-54" value="写" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="290" y="2120" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-55" value="写" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="250" y="2120" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-56" value="写" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="450" y="2120" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-57" value="写" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="490" y="2120" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-58" value="写" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="530" y="2120" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-63" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=40;exitDy=0;exitPerimeter=0;entryX=0.486;entryY=1.033;entryDx=0;entryDy=0;entryPerimeter=0;fontSize=12;startSize=8;endSize=8;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-30" target="Vj3lA73WJ6LqMtGzKSuj-46" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-64" value="inode2" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;fontColor=#333333;" parent="1" vertex="1">
<mxGeometry x="485" y="1862" width="70" height="30" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-65" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=40;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0.967;entryDx=0;entryDy=0;entryPerimeter=0;fontSize=12;startSize=8;endSize=8;sketch=1;curveFitting=1;jiggle=2;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-28" target="Vj3lA73WJ6LqMtGzKSuj-64" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-75" style="edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=1;endSize=1;endArrow=none;endFill=0;targetPerimeterSpacing=10;sourcePerimeterSpacing=10;dashed=1;dashPattern=1 4;strokeWidth=3;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="602.5" y="2160" as="sourcePoint" />
<mxPoint x="622.5" y="2160" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-76" style="edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=1;endSize=1;endArrow=none;endFill=0;targetPerimeterSpacing=10;sourcePerimeterSpacing=10;dashed=1;dashPattern=1 4;strokeWidth=3;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="602.5" y="1961" as="sourcePoint" />
<mxPoint x="622.5" y="1961" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-77" value="读" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="632.5" y="2120" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-78" value="2. 写请求任务进入队列" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
<mxGeometry x="17.5" y="2370" width="190" height="30" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-89" value="读" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="447.5" y="2355" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-90" value="读" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="408.75" y="2355" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-91" value="写" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="330" y="2355" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-92" value="写" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="290" y="2355" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-93" value="写" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="250" y="2355" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-94" value="写" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="487.5" y="2355" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-95" value="写" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="527.5" y="2355" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-96" value="写" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="567.5" y="2355" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-97" style="edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=1;endSize=1;endArrow=none;endFill=0;targetPerimeterSpacing=10;sourcePerimeterSpacing=10;dashed=1;dashPattern=1 4;strokeWidth=3;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="640" y="2395" as="sourcePoint" />
<mxPoint x="660" y="2395" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-98" value="读" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="670" y="2355" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-100" style="edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=40;exitDy=60;exitPerimeter=0;fontSize=12;startSize=8;endSize=8;dashed=1;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-99" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="410" y="2470" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-99" value="inode1" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="370" y="2355" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-101" value="插入 inode1,附到相同 inode 的任务后面" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
<mxGeometry x="244" y="2471" width="320" height="30" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-102" value="" style="shape=singleArrow;whiteSpace=wrap;html=1;arrowWidth=0.4;arrowSize=0.4;sketch=1;curveFitting=1;jiggle=2;direction=south;" parent="1" vertex="1">
<mxGeometry x="384" y="2020" width="60" height="80" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-103" value="" style="shape=singleArrow;whiteSpace=wrap;html=1;arrowWidth=0.4;arrowSize=0.4;sketch=1;curveFitting=1;jiggle=2;direction=south;" parent="1" vertex="1">
<mxGeometry x="384" y="2240" width="60" height="80" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-123" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-125" target="Vj3lA73WJ6LqMtGzKSuj-128" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-124" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-125" target="Vj3lA73WJ6LqMtGzKSuj-128" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-125" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;sketch=1;curveFitting=1;jiggle=2;" parent="1" vertex="1">
<mxGeometry x="50" y="2800" width="125" height="125" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-126" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-128" target="Vj3lA73WJ6LqMtGzKSuj-125" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-127" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-128" target="Vj3lA73WJ6LqMtGzKSuj-125" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-128" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="72.5" y="2822.5" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-129" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-131" target="Vj3lA73WJ6LqMtGzKSuj-134" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-130" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-131" target="Vj3lA73WJ6LqMtGzKSuj-134" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-182" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;fontSize=12;startSize=8;endSize=8;entryX=1;entryY=0.5;entryDx=0;entryDy=0;curved=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;dashed=1;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-131" target="Vj3lA73WJ6LqMtGzKSuj-176" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1170" y="2907" as="targetPoint" />
<Array as="points">
<mxPoint x="1100" y="2907" />
<mxPoint x="1100" y="3292" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-183" value="驱动触发中断执行回调" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" parent="Vj3lA73WJ6LqMtGzKSuj-182" vertex="1" connectable="0">
<mxGeometry x="0.432" y="-2" relative="1" as="geometry">
<mxPoint x="22" y="-22" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-131" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;sketch=1;curveFitting=1;jiggle=2;" parent="1" vertex="1">
<mxGeometry x="622.5" y="2800" width="125" height="125" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-132" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-134" target="Vj3lA73WJ6LqMtGzKSuj-131" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-133" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-134" target="Vj3lA73WJ6LqMtGzKSuj-131" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-134" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="645" y="2822.5" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-135" value="" style="endArrow=none;html=1;rounded=0;curved=1;dashed=1;strokeColor=#7EA6E0;strokeWidth=2;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="-97.5" y="2870" as="sourcePoint" />
<mxPoint x="842.5" y="2870" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-136" value="内核态" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="802.5" y="2876.5" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-137" value="用户态" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="802.5" y="2838" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-138" value="head" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="87.5" y="2895" width="50" height="30" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-139" value="tail" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="87.5" y="2800" width="40" height="30" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-140" value="head" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="657.5" y="2800" width="50" height="30" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-141" value="tail" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="665" y="2895" width="40" height="30" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-142" value="req" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="82.5" y="3040" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-178" style="edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=12;startSize=8;endSize=8;dashed=1;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-148" target="Vj3lA73WJ6LqMtGzKSuj-176" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-148" value="" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;curveFitting=1;jiggle=2;" parent="1" vertex="1">
<mxGeometry x="615" y="3249" width="130" height="90" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-149" value="" style="sketch=0;outlineConnect=0;fontColor=#ffffff;fillColor=#1ba1e2;strokeColor=#006EAF;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.gear;" parent="1" vertex="1">
<mxGeometry x="635" y="3259" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-150" value="" style="sketch=0;outlineConnect=0;fontColor=#ffffff;fillColor=#1ba1e2;strokeColor=#006EAF;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.gear;" parent="1" vertex="1">
<mxGeometry x="695" y="3289" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-180" style="edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;exitX=0.618;exitY=1.1;exitDx=0;exitDy=0;exitPerimeter=0;dashed=1;entryX=0.45;entryY=0.933;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-151" target="Vj3lA73WJ6LqMtGzKSuj-141" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="681.5" y="2931" as="targetPoint" />
<mxPoint x="681.5" y="3201" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-184" value="主动推送完成事件" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" parent="Vj3lA73WJ6LqMtGzKSuj-180" vertex="1" connectable="0">
<mxGeometry x="0.1062" y="3" relative="1" as="geometry">
<mxPoint y="45" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-151" value="wqe 线程池" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
<mxGeometry x="614" y="3210" width="110" height="30" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-152" style="edgeStyle=none;curved=0;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=60;exitDy=40;exitPerimeter=0;fontSize=12;startSize=8;endSize=8;dashed=1;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-142" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="340" y="3080" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-153" value="1. io_queue_async_work" style="text;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="170" y="3050" width="150" height="40" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-154" value="work" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
<mxGeometry x="340" y="3044" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-155" value="work" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
<mxGeometry x="380" y="3044" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-158" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=60;exitDy=40;exitPerimeter=0;entryX=-0.008;entryY=0.589;entryDx=0;entryDy=0;fontSize=12;startSize=8;endSize=8;entryPerimeter=0;dashed=1;curved=1;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-156" target="Vj3lA73WJ6LqMtGzKSuj-148" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-156" value="work" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;sketch=1;curveFitting=1;jiggle=2;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
<mxGeometry x="420" y="3044" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-157" value="<font style="font-size: 12px;"><font style="font-size: 12px;">work_list工作队列,</font><span style="background-color: initial;">当前线程</span></font><div style="font-size: 12px;"><span style="background-color: initial;"><font style="font-size: 12px;">所在 NUMA节点的线程池</font></span></div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
<mxGeometry x="145" y="3104" width="180" height="50" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-161" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1.008;entryY=0.078;entryDx=0;entryDy=0;fontSize=12;startSize=8;endSize=8;dashed=1;entryPerimeter=0;curved=1;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-160" target="Vj3lA73WJ6LqMtGzKSuj-148" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-160" value="" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;curveFitting=1;jiggle=2;" parent="1" vertex="1">
<mxGeometry x="937" y="3036" width="100" height="75" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-162" value="worker manger 线程" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
<mxGeometry x="902" y="2991" width="170" height="30" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-163" value="" style="sketch=0;outlineConnect=0;fontColor=#ffffff;fillColor=#1ba1e2;strokeColor=#006EAF;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.gear;" parent="1" vertex="1">
<mxGeometry x="957.5" y="3046" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-165" value="<font style="font-size: 12px;">2.&nbsp;wake_up_process</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
<mxGeometry x="785" y="3090" width="130" height="30" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-167" value="<font style="font-size: 12px;">唤醒管理线程,创建 worker 线程,</font><div><font style="font-size: 12px;">如果线程数目不足</font></div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
<mxGeometry x="751" y="3114" width="210" height="50" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-168" value="<font style="font-size: 12px;">3.&nbsp;io_get_next_work</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
<mxGeometry x="449" y="3151" width="130" height="30" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-171" style="edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;fontSize=12;startSize=8;endSize=8;dashed=1;" parent="1" source="Vj3lA73WJ6LqMtGzKSuj-138" target="Vj3lA73WJ6LqMtGzKSuj-142" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-175" value="<font style="font-size: 12px;">worker 线程消费提交队列任务</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
<mxGeometry x="424" y="3180" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-176" value="" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;curveFitting=1;jiggle=2;" parent="1" vertex="1">
<mxGeometry x="937" y="3254" width="100" height="75" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-177" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;sketch=1;curveFitting=1;jiggle=2;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="957" y="3261" width="60" height="61" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-179" value="<font style="font-size: 12px;">4.io_wq_submit_work</font><div><span style="font-size: 12px; background-color: initial;">提交请求到文件系统&nbsp;</span></div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
<mxGeometry x="767.5" y="3284" width="140" height="50" as="geometry" />
</mxCell>
<mxCell id="Vj3lA73WJ6LqMtGzKSuj-185" value="设备驱动" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
<mxGeometry x="939" y="3221" width="90" height="30" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-21" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="72elHmb9s9LZBJJeOh2l-23" target="72elHmb9s9LZBJJeOh2l-26">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-22" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="72elHmb9s9LZBJJeOh2l-23" target="72elHmb9s9LZBJJeOh2l-26">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-23" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;sketch=1;curveFitting=1;jiggle=2;" vertex="1" parent="1">
<mxGeometry x="220" y="3530" width="125" height="125" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-24" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="72elHmb9s9LZBJJeOh2l-26" target="72elHmb9s9LZBJJeOh2l-23">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-25" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="72elHmb9s9LZBJJeOh2l-26" target="72elHmb9s9LZBJJeOh2l-23">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-26" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
<mxGeometry x="242.5" y="3552.5" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-27" value="内核态" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
<mxGeometry x="50" y="3590" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-28" value="用户态" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
<mxGeometry x="50" y="3560" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-29" value="head" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
<mxGeometry x="255" y="3530" width="50" height="30" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-30" value="tail" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
<mxGeometry x="262.5" y="3625" width="40" height="30" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-31" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;shadow=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="60" y="3590" as="sourcePoint" />
<mxPoint x="800" y="3590" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-87" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=12;startSize=8;endSize=8;dashed=1;" edge="1" parent="1" source="72elHmb9s9LZBJJeOh2l-32" target="72elHmb9s9LZBJJeOh2l-77">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-32" value="" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;curveFitting=1;jiggle=2;" vertex="1" parent="1">
<mxGeometry x="42.5" y="3790" width="130" height="90" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-33" value="" style="sketch=0;outlineConnect=0;fontColor=#ffffff;fillColor=#1ba1e2;strokeColor=#006EAF;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.gear;" vertex="1" parent="1">
<mxGeometry x="62.5" y="3810" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-34" value="" style="sketch=0;outlineConnect=0;fontColor=#ffffff;fillColor=#1ba1e2;strokeColor=#006EAF;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.gear;" vertex="1" parent="1">
<mxGeometry x="102.5" y="3830" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-67" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontSize=12;startSize=8;endSize=8;dashed=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="72elHmb9s9LZBJJeOh2l-32" target="72elHmb9s9LZBJJeOh2l-23">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-35" value="线程池" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="77.5" y="3760" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-84" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fontSize=12;startSize=8;endSize=8;exitX=1;exitY=0.5;exitDx=0;exitDy=0;dashed=1;" edge="1" parent="1" source="72elHmb9s9LZBJJeOh2l-36" target="72elHmb9s9LZBJJeOh2l-82">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-85" value="epoll_wait&nbsp;<div>3. ev_fd 事件唤醒收割线程</div>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" vertex="1" connectable="0" parent="72elHmb9s9LZBJJeOh2l-84">
<mxGeometry x="-0.4014" y="-25" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-36" value="" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;curveFitting=1;jiggle=2;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="502.5" y="3470" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-37" value="<font style="font-size: 12px;">业务进程(snnode)</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" vertex="1" parent="1">
<mxGeometry x="497.5" y="3430" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-56" value="" style="shape=stencil(nVjZUhtBDPwav6rmPp4J+Q+qMMEVgiljcvx9emNmbWnXTZI3Y9ReTavV0uwm3rw+3r1sN8G9Hg/7r9sfu/vj4yZ+2oSwe37cHnZHfNrE2028edgftl8O+7fn+9PfL3dT5PTp2/779As/T7iQpMUJFdyv928k+T9ffD7FP+2edXysKr5KzDy+qHjvZfrzGsA3SfoBPkvsBFAkeg3oEhwH6JRClNTIGaLUpAFNMgHELKUpQAzSSUo5jIxnQJZOylCKTSn2UZhVQHNSNK3JSyVPaE1c1oAojTyhO8kGUKQTaUwAk1KXnkhKcZA4ABmVIdKoWZJOKc+8XaM1GECXQtSakxQNKF4SqTQ4MSmVSBsIQjBqLUkySQkk5mQB7z+xzpITp2ktvKehJSMN/IQnWupIQD+hBomkDr1ZWmuSzsTXpWmWauMm4BanbtwFkFPUTtmqBKK+7sfvzQCIKRL1JUm6chdZriO81SuI6EyvOESwgExyynm05Axog+prHWH0CgA7w9TD5gxVHO85r32jF3H8DLlrQBbPAFWaOTRKwyrnpGoxdXgVEROa3ugVgEZ6Di1p5IqU2KFLH9Z4AWC+Uf1QzgVLgflGFN9tHTw5NADJHLqOUq4DghTzhCae+AZ8qDcLoHXAtmGegB5lgxdachbAplwJ1vsmAEkJE2fZ04X4DGZaWQCYHaOB6oKlyFvU9gOfEABYLRUOyKPlL8SXmAmgH/TWB3kXIg3QalsUPsK8NUhb9DRzvn8GoB/Mmoili1W6BSu+hhYlWsKkrmZmubHvX1uxzAiqhU5FNFAxgzfRlCANryuNpmUTCHtq0JUuvEWxrjtNK9a6TCod8mKJc/QSFJN1DajLEfFhdS6a1g8W0Wko6sKhQwqxymnt1EMRdwrqS4v9PjvKUl3QOu33LKUoWUsjpTEArt2ComYpzfvNOq1hsD4DnASiJRTOXswatZnpZmguZoXajMcTDCAO41mn1UopwP8Jq25UdY6voy5X4s3eEBzNZ0EprsuNMNStUD0yZFuxVNP+dDD0sYL83euJbtn01O6Qq88mnpnX+d3FiHfD89fjw7g9nuNZ+n72znM823dQG+9NPNu1fbX70Qfx3Y40nk9YuBA/L6rZbDzjE+1obiO8XmHRjVwP//E27IN4fDi/envYPT2d3txd/t++qsNXp9d88fY3);lineShape=1;strokeColor=default;" vertex="1" parent="1">
<mxGeometry x="547.052045024325" y="3482.547580147069" width="10.90151402408037" height="34.908358947160195" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-59" value="" style="shape=stencil(nVjZUhtBDPwav6rmPp4J+Q+qMMEVgiljcvx9emNmbWnXTZI3Y9ReTavV0uwm3rw+3r1sN8G9Hg/7r9sfu/vj4yZ+2oSwe37cHnZHfNrE2028edgftl8O+7fn+9PfL3dT5PTp2/779As/T7iQpMUJFdyv928k+T9ffD7FP+2edXysKr5KzDy+qHjvZfrzGsA3SfoBPkvsBFAkeg3oEhwH6JRClNTIGaLUpAFNMgHELKUpQAzSSUo5jIxnQJZOylCKTSn2UZhVQHNSNK3JSyVPaE1c1oAojTyhO8kGUKQTaUwAk1KXnkhKcZA4ABmVIdKoWZJOKc+8XaM1GECXQtSakxQNKF4SqTQ4MSmVSBsIQjBqLUkySQkk5mQB7z+xzpITp2ktvKehJSMN/IQnWupIQD+hBomkDr1ZWmuSzsTXpWmWauMm4BanbtwFkFPUTtmqBKK+7sfvzQCIKRL1JUm6chdZriO81SuI6EyvOESwgExyynm05Axog+prHWH0CgA7w9TD5gxVHO85r32jF3H8DLlrQBbPAFWaOTRKwyrnpGoxdXgVEROa3ugVgEZ6Di1p5IqU2KFLH9Z4AWC+Uf1QzgVLgflGFN9tHTw5NADJHLqOUq4DghTzhCae+AZ8qDcLoHXAtmGegB5lgxdachbAplwJ1vsmAEkJE2fZ04X4DGZaWQCYHaOB6oKlyFvU9gOfEABYLRUOyKPlL8SXmAmgH/TWB3kXIg3QalsUPsK8NUhb9DRzvn8GoB/Mmoili1W6BSu+hhYlWsKkrmZmubHvX1uxzAiqhU5FNFAxgzfRlCANryuNpmUTCHtq0JUuvEWxrjtNK9a6TCod8mKJc/QSFJN1DajLEfFhdS6a1g8W0Wko6sKhQwqxymnt1EMRdwrqS4v9PjvKUl3QOu33LKUoWUsjpTEArt2ComYpzfvNOq1hsD4DnASiJRTOXswatZnpZmguZoXajMcTDCAO41mn1UopwP8Jq25UdY6voy5X4s3eEBzNZ0EprsuNMNStUD0yZFuxVNP+dDD0sYL83euJbtn01O6Qq88mnpnX+d3FiHfD89fjw7g9nuNZ+n72znM823dQG+9NPNu1fbX70Qfx3Y40nk9YuBA/L6rZbDzjE+1obiO8XmHRjVwP//E27IN4fDi/envYPT2d3txd/t++qsNXp9d88fY3);lineShape=1;strokeColor=default;" vertex="1" parent="1">
<mxGeometry x="531.052045024325" y="3482.545939094229" width="10.90151402408037" height="34.908358947160195" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-62" value="" style="shape=stencil(nVjZUhtBDPwav6rmPp4J+Q+qMMEVgiljcvx9emNmbWnXTZI3Y9ReTavV0uwm3rw+3r1sN8G9Hg/7r9sfu/vj4yZ+2oSwe37cHnZHfNrE2028edgftl8O+7fn+9PfL3dT5PTp2/779As/T7iQpMUJFdyv928k+T9ffD7FP+2edXysKr5KzDy+qHjvZfrzGsA3SfoBPkvsBFAkeg3oEhwH6JRClNTIGaLUpAFNMgHELKUpQAzSSUo5jIxnQJZOylCKTSn2UZhVQHNSNK3JSyVPaE1c1oAojTyhO8kGUKQTaUwAk1KXnkhKcZA4ABmVIdKoWZJOKc+8XaM1GECXQtSakxQNKF4SqTQ4MSmVSBsIQjBqLUkySQkk5mQB7z+xzpITp2ktvKehJSMN/IQnWupIQD+hBomkDr1ZWmuSzsTXpWmWauMm4BanbtwFkFPUTtmqBKK+7sfvzQCIKRL1JUm6chdZriO81SuI6EyvOESwgExyynm05Axog+prHWH0CgA7w9TD5gxVHO85r32jF3H8DLlrQBbPAFWaOTRKwyrnpGoxdXgVEROa3ugVgEZ6Di1p5IqU2KFLH9Z4AWC+Uf1QzgVLgflGFN9tHTw5NADJHLqOUq4DghTzhCae+AZ8qDcLoHXAtmGegB5lgxdachbAplwJ1vsmAEkJE2fZ04X4DGZaWQCYHaOB6oKlyFvU9gOfEABYLRUOyKPlL8SXmAmgH/TWB3kXIg3QalsUPsK8NUhb9DRzvn8GoB/Mmoili1W6BSu+hhYlWsKkrmZmubHvX1uxzAiqhU5FNFAxgzfRlCANryuNpmUTCHtq0JUuvEWxrjtNK9a6TCod8mKJc/QSFJN1DajLEfFhdS6a1g8W0Wko6sKhQwqxymnt1EMRdwrqS4v9PjvKUl3QOu33LKUoWUsjpTEArt2ComYpzfvNOq1hsD4DnASiJRTOXswatZnpZmguZoXajMcTDCAO41mn1UopwP8Jq25UdY6voy5X4s3eEBzNZ0EprsuNMNStUD0yZFuxVNP+dDD0sYL83euJbtn01O6Qq88mnpnX+d3FiHfD89fjw7g9nuNZ+n72znM823dQG+9NPNu1fbX70Qfx3Y40nk9YuBA/L6rZbDzjE+1obiO8XmHRjVwP//E27IN4fDi/envYPT2d3txd/t++qsNXp9d88fY3);lineShape=1;strokeColor=default;" vertex="1" parent="1">
<mxGeometry x="570" y="3482.5489472346117" width="10.90151402408037" height="34.908358947160195" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-66" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1.04;entryY=0.1;entryDx=0;entryDy=0;entryPerimeter=0;fontSize=12;startSize=8;endSize=8;sketch=1;curveFitting=1;jiggle=2;curved=1;dashed=1;" edge="1" parent="1" source="72elHmb9s9LZBJJeOh2l-36" target="72elHmb9s9LZBJJeOh2l-29">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-77" value="ev_fd" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;curveFitting=1;jiggle=2;" vertex="1" parent="1">
<mxGeometry x="525.5" y="3672.5" width="66" height="40" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-79" value="ev_fd" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;curveFitting=1;jiggle=2;" vertex="1" parent="1">
<mxGeometry x="591.5" y="3672.5" width="66" height="40" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-80" value="ev_fd" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;curveFitting=1;jiggle=2;" vertex="1" parent="1">
<mxGeometry x="659" y="3672.5" width="66" height="40" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-83" value="epoll实例" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" vertex="1" parent="1">
<mxGeometry x="575" y="3632.5" width="90" height="30" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-86" value="<div data-morpho-block-id="docyg-b94691c1-71af-11ef-a903-c36cdc67c165" class="mp-block-code-container"><pre style="overflow:hidden" class="mp-block-code-wrapper language-c" data-view="code" data-indent="0" data-autowrap="true" data-lang="c" data-title="" spellcheck="false"><div style="overflow:auto" class="mp-block-code-content mp-block-code-content-auto-wrap"><div data-text-content="" class="mp-block-code-line"><span class="mp-block-code-line-content"><font style="font-size: 12px;">io_uring_smp_load_acquire</font></span></div><div data-text-content="" class="mp-block-code-line"><span style="font-size: 12px;">4.读取CQE,处理业务回调</span></div></div></pre></div><span class="mp-morpho-clipboard-doc-data" data-morpho-doc-data="{&quot;token&quot;:&quot;eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiYXBwSWQiOjEsInVpZCI6IjBPZVRSZndfWW8iLCJkb2NJZCI6IlAtSENRZUVhTHY3MUJoIn0..4RMO1T3yZoVs-yKU.RkR2MgloF3SgwQByItN-SaAjY-fSFjPsgjyTOHdSb2OK8mq5yHgAdX9JB9Keuaa9R-ywUaoVNfhuHImUWWWEccPmTCjYjyFTUCLjmN-H44WpG-tTmsz9-nra6AP2bsJxZf3cQMp3T6kN0PLU1MEd3uh17jVc4dm9-GRF4Ss5kmfZ0YibvZsoEE2A5JdxNaXGaByBDCv3CVR00VhiuSWzZ9d2YQ.8IJ7Cty8Sg_l_EyRMVrZWw&quot;,&quot;appId&quot;:&quot;1&quot;}"></span>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" vertex="1" parent="1">
<mxGeometry x="287.5" y="3440" width="200" height="80" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-88" value="<font style="font-size: 12px;">io_cqring_add_event</font><div><font style="font-size: 12px;">1. 发布完成事件cqe</font></div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" vertex="1" parent="1">
<mxGeometry x="49" y="3671" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-90" value="<font style="font-size: 12px;">io_cqring_ev_posted</font><div><font style="font-size: 12px;">2. 发布</font><span style="font-size: 12px; background-color: initial;">通知到</span><span style="font-size: 12px; background-color: initial;">eventfd&nbsp;</span></div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" vertex="1" parent="1">
<mxGeometry x="340" y="3750" width="140" height="50" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-91" value="" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;curveFitting=1;jiggle=2;" vertex="1" parent="1">
<mxGeometry x="53" y="3973" width="100" height="75" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-92" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;sketch=1;curveFitting=1;jiggle=2;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="73" y="3980" width="60" height="61" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-93" value="<font style="font-size: 12px;">设备驱动</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" vertex="1" parent="1">
<mxGeometry x="68" y="4048" width="70" height="30" as="geometry" />
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-94" style="edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;dashed=1;" edge="1" parent="1" source="72elHmb9s9LZBJJeOh2l-32">
<mxGeometry relative="1" as="geometry">
<mxPoint x="100" y="3970" as="targetPoint" />
<Array as="points">
<mxPoint x="110" y="3930" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="72elHmb9s9LZBJJeOh2l-97" value="<font style="font-size: 12px;">对于排队中请求,由驱动触发中断后</font><div><font style="font-size: 12px;">内核再对完成事件处理,流程和上述一样</font></div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" vertex="1" parent="1">
<mxGeometry x="-2.5" y="4068" width="240" height="50" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>