EActors: an actor-based programming framework for Intel SGX
Dr.-Eng. V. A. Sartakov 01.02.2x20
Imperial College London
E Actors: an actor-based programming framework for Intel SGX - - PowerPoint PPT Presentation
E Actors: an actor-based programming framework for Intel SGX Dr.-Eng. V. A. Sartakov 01.02.2x20 Imperial College London Plan Why do we need another framework? The framework Fundamentals Messaging System Components Benchmark Examples
Imperial College London
1
2
3
call foo( ) gate foo( )
ECALL
call bar( ) gate bar( )
OCALL
Untrusted Enclave
3
4
4
Enclave #1 Enclave #2 C4 C3 C2 C1
Enclave #1 Enclave #2 Enclave #3 C2 C3 C1
5
6
6
7
8
Worker #1 Worker #2 Worker #3 9
1
struct state { struct channel chan [ 2 ] ; int f i r s t ;}
2 3
void aping ( struct actor ∗ s e l f ) {
4
i f ( s e l f − >state− >f i r s t ) {
5
s e l f − >state− >f i r s t = 0;
6
} else {
7
^^ I /∗ r e c e i v e a pong ∗/
8
char∗ msg = recv(&s e l f − >channel [ 0 ] ) ;
9
i f (msg == NULL)
10
return ;
11
}
12
/∗ send a ping ∗/
13
send(&s e l f − >channel [ 1 ] , ” ping ” ) ;
14
}
15 16
void aping_ctr ( struct actor ∗ s e l f ) {
17
s e l f − >state− >f i r s t = 1;
18
connect ( s e l f − >channel [ 0 ] ) ;
19
} 10
Payload NULL *next Header *bottom lock *top Payload *prev NULL Header 11
Payload NULL *next Header *bottom lock *top Payload *prev NULL Header 11
12
12
12
12
12
12
12
13
13
14
Super block Sealed keys Grace counters B1 ... B32 POOL KVP#1 KVP#2
+size 0x7fgb00000000
14
mbuf mbuf
MB#1 MB#2
15
16
16
2.9× 30× 10×
16
17
18
19
20
21