我已經被賦予了修復用C/C++編寫的嵌入式操作系統的任務。當前正在使用的線程調度程序與Round Robin Scheduling非常相似,只是它缺少一個非常重要的功能,即中斷線程並返回執行的能力,從而創建可執行時間的「切片」。實時嵌入式操作系統的線程調度程序
我的問題是,一個人如何去中斷運行的代碼,執行另一個任務,然後優雅地恢復執行?我相信這種行爲需要特定於架構的彙編器。這是操作系統將運行的芯片:http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPC860
在附註中,這是航空電子軟件,因此它必須是「確定性」。除此之外,沒有堆用法,所有內存都必須有界。
目前的系統是「週期性的過程」中的下一個任務必須等待第一個完成。這很簡單可怕,如果操作系統的某個部分崩潰了,讓我們說ATN堆棧,那麼整個操作系統就會陷入困境。 (插入失事飛機在這裏......雖然這是B類的軟件,這意味着如果系統的飛機將不會崩潰。)
把時間從航空公司拉出來。我想認爲編寫航空電子軟件的人知道這些答案! – 2010-01-18 17:42:18
不幸的是,'導航危害'不是一個有效的密切原因。 – bmargulies 2010-01-18 17:49:37
廢話,不要試圖自己在(大概)安全關鍵軟件中做到這一點。航空電子不適用於業餘愛好者。目前已有數百萬種商業實現需求,其中許多已經在飛行認證應用中使用。去買那些。 – Novelocrat 2010-01-18 17:58:36