簡體   English   中英

Enclave 、線程和進程之間的關系是什么?

[英]What's the relationship among Enclave , thread and process?

Enclave 、線程和進程之間的關系是什么?

SGX 是否支持多線程或多進程?

如果我調用“fork”在飛地內創建一個新進程會發生什么?

Enclave 、線程和進程之間的關系是什么?

一個飛地可以被認為是一個過程的一部分。 進程可以將飛地頁面添加到其內存中。 初始化 enclave 后,進程可以通過發出 EENTER [1] 來執行 enclave 代碼。 當 enclave 調用返回時,它通過 EEXIT 將執行返回到非 enclave(不可信)內存。

線程是進程執行的可能多個線程之一。

SGX 是否支持多線程或多進程?

您不能在同一個 enclave 中運行多個進程,但可以在同一個 enclave 中運行多個線程。 每個線程必須有自己的線程控制結構 (TCS),SGX [2] 支持該結構。 使用 SGX2 擴展(尚不受任何 CPU 支持)還可以在 enclave 初始化后添加和刪除 TCS 頁,從而允許 enclave 動態調整線程數量。

如果我調用“fork”在飛地內創建一個新進程會發生什么?

fork 是一個系統調用,它是飛地中的非法指令,因此會導致異常 [3]。

來源: https ://software.intel.com/sites/default/files/managed/7c/f1/332831-sdm-vol-3d.pdf 中的以下章節:

[1] 36.3 飛地生命周期

[2] 38.8 TCS

[3] 38.6.1 非法指令

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM