eM4 OS設計中的可重入性
02-21
Make small ones into better one.
reentrant的概念
引用wiki其中的英文解釋:
In computing, a computer program or subroutine is called reentrant if it can be interrupted in the middle of its execution and then safely be called again ("re-entered") before its previous invocations complete execution. The interruption could be caused by an internal action such as a jump or call, or by an external action such as an interrupt or signal.
https://zh.wikipedia.org/zh-hans/%E5%8F%AF%E9%87%8D%E5%85%A5Reentrancy (computing)
(中文維基404,可以看其搜索引擎檢索內容匹配)
eM4內核中的重入函數
- 重入函數的實現
- eM4內核中提供功能
關於:
- Set的創建與註冊,
- Handler的創建與註冊,
- Handler處理實體,
- Handler運行棧的申請與初始化,
- 同步實現,
- 臨界區,
- 任務切換,
- 基於優先順序的搶佔調度,
- 事件的非同步觸發,
- ……
eM4內核提供每個Set通用的事件處理機制,基本原理為:按照FIFO原則執行對應的事件處理策略。
處理實體為各個Set的所共用,為了避免某Set獲取處理資源時因改變處理實體內的狀態導致處理異常,因此該通用處理實體具備如下特徵:
- 處理實體函數的可重入性;
- 僅提供處理機制,不負責各個事件的處理方法;
參見如下的處理機制策略流程圖
【待補充】
總結
事件處理作為該eM4核心的處理機制,必需在實現方式上考慮通用性和特別之處:
- 共用函數的重入性考慮,
- 機制與策略實現選擇考慮。
擴展閱讀
關於機制與策略的概念參見本專欄
【相關Linux/Linus 的觀點摘要】
推薦閱讀: