亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        鐵路信號(hào)安全軟件雙代碼開(kāi)發(fā)方法的研究

        2020-12-31 03:34:26張振興陳志強(qiáng)孫二敬
        關(guān)鍵詞:功能模塊代碼關(guān)鍵

        張振興,陳志強(qiáng),孫二敬

        (1.北京全路通信信號(hào)研究設(shè)計(jì)院集團(tuán)有限公司,北京 100070;2.北京市高速鐵路運(yùn)行控制系統(tǒng)工程技術(shù)研究中心,北京 100070)

        1 概述

        鐵路信號(hào)系統(tǒng)是保障列車(chē)安全運(yùn)行,提高運(yùn)輸效率的重要行車(chē)控制系統(tǒng),是保證列車(chē)運(yùn)行安全、有序、高效的關(guān)鍵,是國(guó)內(nèi)鐵路技術(shù)體系和裝備現(xiàn)代化的重要組成部分。相關(guān)規(guī)范要求,鐵路信號(hào)系統(tǒng)安全相關(guān)軟件的安全完整性等級(jí)需達(dá)到SIL4 等級(jí)。

        根據(jù)EN50128 的描述,安全軟件可采用多樣化編程以達(dá)到要求的安全完整性等級(jí)。多樣化編程是指采用多個(gè)(N)不同的方法實(shí)現(xiàn)多套軟件代碼。相同的輸入值賦給N 套軟件代碼,并對(duì)N 套軟件代碼產(chǎn)生的結(jié)果進(jìn)行比較。如果結(jié)果被認(rèn)為是有效的,結(jié)果被傳輸?shù)接?jì)算機(jī)輸出,否則使系統(tǒng)導(dǎo)向安全側(cè)。當(dāng)N=2 時(shí),該方法指的是雙代碼。

        雙代碼開(kāi)發(fā)的目的是在程序執(zhí)行過(guò)程中檢測(cè)軟件設(shè)計(jì)錯(cuò)誤,以防止安全性系統(tǒng)出現(xiàn)嚴(yán)重故障,提高軟件的安全性。

        2 雙代碼開(kāi)發(fā)方法

        雙代碼開(kāi)發(fā)方法的基本原則是針對(duì)同一軟件需求,由獨(dú)立的兩個(gè)開(kāi)發(fā)團(tuán)隊(duì),采用雙套異構(gòu)安全冗余的方法實(shí)現(xiàn)A 和B 兩套代碼,然后對(duì)A/B 代碼的執(zhí)行結(jié)果進(jìn)行比較,比較結(jié)果不一致則使系統(tǒng)導(dǎo)向安全側(cè)。

        2.1 軟件結(jié)構(gòu)設(shè)計(jì)

        安全軟件的雙代碼結(jié)構(gòu)即雙套異構(gòu)安全冗余的程序結(jié)構(gòu),可分為全套雙代碼比較結(jié)構(gòu)和關(guān)鍵功能監(jiān)控雙代碼結(jié)構(gòu),全套雙代碼結(jié)構(gòu)又可以分為整體運(yùn)算結(jié)果比較結(jié)構(gòu)和模塊運(yùn)算結(jié)果比較結(jié)構(gòu)。

        1)雙代碼整體運(yùn)算結(jié)果比較結(jié)構(gòu)

        雙代碼整體運(yùn)算結(jié)果比較的結(jié)構(gòu)如圖1 所示,在軟件的同一個(gè)執(zhí)行周期中先執(zhí)行完整的A 代碼軟件(即A 代碼所有功能模塊)后,再執(zhí)行完整的B代碼軟件(即B 代碼所有功能模塊),然后對(duì)A 代碼軟件的關(guān)鍵運(yùn)算結(jié)果和B 代碼軟件的關(guān)鍵運(yùn)算結(jié)果進(jìn)行比較,最后根據(jù)比較結(jié)果做出相應(yīng)安全反應(yīng),若比較結(jié)果一致,則正常輸出并繼續(xù)運(yùn)行,若比較不一致,則使系統(tǒng)導(dǎo)向安全側(cè)。

        圖1 AB代碼整體運(yùn)算結(jié)果比較Fig.1 Comparison for the whole operation results of A/B-code

        雙代碼整體運(yùn)算結(jié)果比較結(jié)構(gòu)中,A 代碼軟件和B 代碼軟件源于相同的軟件需求,分別由兩個(gè)相互獨(dú)立的開(kāi)發(fā)團(tuán)隊(duì)根據(jù)軟件需求進(jìn)行開(kāi)發(fā),有獨(dú)立的軟件架構(gòu)設(shè)計(jì)、獨(dú)立的功能模塊劃分及獨(dú)立的實(shí)現(xiàn)方法,并且A 代碼軟件和B 代碼軟件的數(shù)據(jù)流相互獨(dú)立,即獨(dú)立的數(shù)據(jù)獲取、獨(dú)立的數(shù)據(jù)處理以及獨(dú)立的輸出,A 代碼軟件和B 代碼軟件的運(yùn)算均不可訪問(wèn)對(duì)方的數(shù)據(jù)。

        雙代碼整體運(yùn)算結(jié)果比較結(jié)構(gòu)不對(duì)A 代碼軟件和B 代碼軟件的運(yùn)算過(guò)程數(shù)據(jù)進(jìn)行比較,僅在最后比較關(guān)鍵數(shù)據(jù)和關(guān)鍵輸出。所以該結(jié)構(gòu)不需要A 代碼軟件和B 代碼軟件的功能模塊完全對(duì)等,A 代碼軟件和B 代碼軟件各自的結(jié)構(gòu)設(shè)計(jì)以及功能實(shí)現(xiàn)的耦合度較小,可實(shí)現(xiàn)高度異構(gòu)的雙代碼軟件。

        2)模塊運(yùn)算結(jié)果比較結(jié)構(gòu)

        模塊運(yùn)算結(jié)果比較的雙代碼結(jié)構(gòu)如圖2 所示,將A 代碼軟件和B 代碼軟件根據(jù)軟件的功能邏輯對(duì)等地拆分為多個(gè)相對(duì)應(yīng)的功能模塊,A 代碼軟件和B 代碼軟件每個(gè)相對(duì)應(yīng)的功能模塊實(shí)現(xiàn)相同的功能,且有相同的輸入數(shù)據(jù)和輸出數(shù)據(jù),按照A 代碼和B代碼模塊交替調(diào)用的方式執(zhí)行并對(duì)模塊關(guān)鍵運(yùn)算結(jié)果進(jìn)行比較,即根據(jù)功能模塊順序先執(zhí)行A 代碼軟件的單個(gè)模塊,然后執(zhí)行B 代碼軟件相應(yīng)的單個(gè)模塊,在A 代碼軟件和B 代碼軟件對(duì)等的單個(gè)模塊均執(zhí)行完成后,對(duì)A/B 代碼對(duì)等模塊的關(guān)鍵運(yùn)算結(jié)果進(jìn)行比較。若比較結(jié)果一致,則繼續(xù)執(zhí)行后續(xù)模塊,若比較不一致,則使系統(tǒng)導(dǎo)向安全側(cè)。

        模塊運(yùn)算結(jié)果比較結(jié)構(gòu)中,A 代碼軟件和B 代碼軟件源于相同的軟件需求、相同的軟件架構(gòu)設(shè)計(jì)和相同的模塊劃分,對(duì)等的功能模塊有相應(yīng)的輸入和輸出,但A 代碼軟件和B 代碼軟件功能模塊分別由兩個(gè)相互獨(dú)立的開(kāi)發(fā)團(tuán)隊(duì)進(jìn)行開(kāi)發(fā),有獨(dú)立的功能模塊設(shè)計(jì)、邏輯算法、實(shí)現(xiàn)方法。并且A 代碼軟件和B 代碼軟件的數(shù)據(jù)流相互獨(dú)立,A 代碼軟件和B 代碼軟件的運(yùn)算不可相互訪問(wèn)對(duì)方的數(shù)據(jù)。

        模塊運(yùn)算結(jié)果比較結(jié)構(gòu)要求比較模塊級(jí)別的關(guān)鍵運(yùn)算結(jié)果,軟件執(zhí)行的可控程度較高,但A 代碼軟件和B 代碼軟件的模塊劃分、模塊執(zhí)行順序需要一致,異構(gòu)方法主要的體現(xiàn)在功能模塊內(nèi)部,相對(duì)于雙代碼整體運(yùn)算結(jié)果比較結(jié)構(gòu)的可異構(gòu)程度要差一些。

        圖2 模塊運(yùn)算結(jié)果比較Fig.2 Comparison of module operation results

        3)關(guān)鍵功能運(yùn)算結(jié)果監(jiān)控結(jié)構(gòu)

        由于完整的全套A/B 代碼異構(gòu)軟件開(kāi)發(fā),在軟件需求和方案設(shè)計(jì)時(shí)無(wú)法覆蓋所有的運(yùn)行場(chǎng)景和運(yùn)行條件,A/B 代碼采用不同的邏輯設(shè)計(jì)和實(shí)現(xiàn)方法,A 代碼軟件開(kāi)發(fā)人員和B 代碼軟件開(kāi)發(fā)人員對(duì)方案設(shè)計(jì)理解的偏差,會(huì)導(dǎo)致在軟件開(kāi)發(fā)初期出現(xiàn)較多的A/B 代碼運(yùn)算結(jié)果比較不一致,所有的比較不一致均需要深入分析并解決,項(xiàng)目的人力資源投入和時(shí)間投入會(huì)成倍增加,導(dǎo)致項(xiàng)目進(jìn)度相對(duì)較慢;軟件的復(fù)雜度越高,項(xiàng)目的投入會(huì)呈指數(shù)倍增長(zhǎng)。

        而對(duì)于一些軟件邊界值處理、邏輯狀態(tài)轉(zhuǎn)換處理及功能優(yōu)先級(jí)的排序等,很容易造成在A 代碼和B 代碼均符合設(shè)計(jì)且處理邏輯均正確的情況下,A/B代碼處理結(jié)果的輸出相差1 個(gè)或者2 個(gè)軟件執(zhí)行周期,或者A/B 代碼的處理結(jié)果均在安全容忍范圍內(nèi)但處理結(jié)果不一致。這些A/B 代碼處理結(jié)果不一致大多數(shù)都發(fā)生在特定場(chǎng)景,在平常測(cè)試中不容易被發(fā)現(xiàn)。軟件現(xiàn)場(chǎng)運(yùn)營(yíng)應(yīng)用后,由于現(xiàn)場(chǎng)運(yùn)營(yíng)環(huán)境的復(fù)雜,導(dǎo)致在運(yùn)營(yíng)過(guò)程中遇到這些特殊場(chǎng)景的概率會(huì)增加,且這些特殊運(yùn)營(yíng)場(chǎng)景的觸發(fā)條件可能在運(yùn)營(yíng)一段時(shí)間后才會(huì)出現(xiàn)(由于施工改造、天氣原因等),只要觸發(fā)條件出現(xiàn)后一直存在,則該場(chǎng)景條件觸發(fā)的A/B 代碼處理結(jié)果比較不一致就會(huì)重復(fù)發(fā)生,對(duì)運(yùn)營(yíng)造成較大影響。且可能A/B 代碼軟件對(duì)這些場(chǎng)景條件的處理均符合設(shè)計(jì),給問(wèn)題分析和解決帶來(lái)較大的困難。

        根據(jù)相關(guān)的安全軟件編程指導(dǎo)意見(jiàn),對(duì)復(fù)雜度較高、難以進(jìn)行完整的A/B 雙套異構(gòu)代碼的軟件,可采用在確保獨(dú)立性的前提下增加對(duì)關(guān)鍵條件及關(guān)鍵邏輯運(yùn)算進(jìn)行檢查、校驗(yàn)的程序機(jī)制。即對(duì)于復(fù)雜度較高的軟件,可采用關(guān)鍵功能運(yùn)算結(jié)果監(jiān)控的雙代碼結(jié)構(gòu),如圖3 所示,B 代碼相應(yīng)監(jiān)控模塊對(duì)A 代碼的關(guān)鍵功能和邏輯運(yùn)算結(jié)果進(jìn)行檢查和校驗(yàn)。若檢查到A 代碼運(yùn)算結(jié)果不符合預(yù)期,則使系統(tǒng)導(dǎo)向安全側(cè)。

        關(guān)鍵功能運(yùn)算結(jié)果監(jiān)控結(jié)構(gòu)中,僅針對(duì)軟件中較為關(guān)鍵的功能或邏輯算法開(kāi)發(fā)相應(yīng)的B 代碼監(jiān)控模塊,B 代碼相應(yīng)監(jiān)控模塊的輸入數(shù)據(jù)均從A 代碼模塊中獲取,除了在檢查到A 代碼結(jié)果不符合預(yù)期時(shí)使系統(tǒng)導(dǎo)向安全側(cè)的輸出外,B 代碼監(jiān)控模塊無(wú)其他運(yùn)算結(jié)果輸出也不影響A 代碼軟件的輸出。B代碼監(jiān)控模塊具有單獨(dú)的軟件設(shè)計(jì)文檔、軟件測(cè)試規(guī)范和軟件測(cè)試報(bào)告。

        關(guān)鍵功能運(yùn)算結(jié)果監(jiān)控結(jié)構(gòu)相對(duì)完整的全套A/B 代碼結(jié)構(gòu)而言較為簡(jiǎn)單,但軟件安全性的提高很大程度上取決于對(duì)軟件關(guān)鍵功能和關(guān)鍵邏輯算法的識(shí)別,監(jiān)控范圍越廣,軟件開(kāi)發(fā)難度就會(huì)越大;而監(jiān)控范圍過(guò)小則會(huì)削弱B 代碼的監(jiān)控效果,從而通過(guò)增加B 代碼提高軟件的安全性也得不到應(yīng)有的意義。所以需要對(duì)軟件的安全相關(guān)需求和邏輯算法進(jìn)行更為深入的剖析,準(zhǔn)確識(shí)別出關(guān)鍵功能和關(guān)鍵邏輯算法。

        圖3 關(guān)鍵功能模塊運(yùn)算結(jié)果監(jiān)控Fig.3 Monitoring for the operation results of key functional module

        同時(shí)可根據(jù)軟件需求規(guī)定被監(jiān)控的關(guān)鍵功能和關(guān)鍵算法中的運(yùn)算條件響應(yīng)優(yōu)先級(jí)、運(yùn)算邊界值、運(yùn)算響應(yīng)時(shí)效等,A 代碼軟件與B 代碼監(jiān)控模塊均按照規(guī)定進(jìn)行設(shè)計(jì)和開(kāi)發(fā),以減少一些非必要的A/B 代碼運(yùn)算結(jié)果不一致,在不影響安全性的前提下提高可用性。

        2.2 數(shù)據(jù)存儲(chǔ)方式

        雙代碼開(kāi)發(fā)除了通過(guò)軟件功能邏輯實(shí)現(xiàn)的獨(dú)立性來(lái)提高系統(tǒng)的安全性外,也可通過(guò)A 代碼和B 代碼的不同數(shù)據(jù)存儲(chǔ)方式來(lái)提高系統(tǒng)的安全性。

        A 代碼和B 代碼的全局關(guān)鍵數(shù)據(jù)獨(dú)立存儲(chǔ)在不同的內(nèi)存區(qū)域中,在內(nèi)存中按bit 位取反,結(jié)構(gòu)體類(lèi)型按照成員變量鏡像排序的方式進(jìn)行定義。例外情況,指針和數(shù)組的索引值在A 和B 代碼中均不需按bit 位取反的。

        A 代碼和B 代碼的關(guān)鍵數(shù)據(jù)在內(nèi)存中的表現(xiàn)形式如圖4 所示。

        A 代碼和B 代碼的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)體中的成員變量應(yīng)采用鏡像結(jié)構(gòu),如圖5 所示。

        圖4 A/B代碼數(shù)據(jù)在內(nèi)存的表現(xiàn)形式Fig.4 Expression form for the memory of A/B-code data

        圖5 A/B代碼數(shù)據(jù)結(jié)構(gòu)體的定義方式Fig.5 Definition mode of A/B-code data structure

        同時(shí)對(duì)A 代碼和B 代碼的關(guān)鍵數(shù)據(jù)進(jìn)行A 格式和B 格式兩次數(shù)據(jù)比較,其中A 格式比較是將A代碼的關(guān)鍵數(shù)據(jù)進(jìn)行取反后與B 代碼的關(guān)鍵數(shù)據(jù)進(jìn)行比較,B 格式比較是將B 代碼的關(guān)鍵數(shù)據(jù)進(jìn)行取反后與A 代碼的關(guān)鍵數(shù)據(jù)進(jìn)行比較。任一種比較方式的比較結(jié)果不一致,均使系統(tǒng)導(dǎo)向安全側(cè)。

        該A/B 代碼數(shù)據(jù)存儲(chǔ)和比較方法,對(duì)于單CPU 結(jié)構(gòu)的系統(tǒng)能夠防止由于內(nèi)存、輸入輸出設(shè)備以及數(shù)據(jù)傳輸過(guò)程中其他硬件的錯(cuò)誤導(dǎo)致的安全風(fēng)險(xiǎn),而對(duì)于雙CPU 的二取二和三CPU 的三取二結(jié)構(gòu)的系統(tǒng),也能夠防止硬件共因錯(cuò)誤導(dǎo)致的安全風(fēng)險(xiǎn),大大提高系統(tǒng)的安全性。

        3 總結(jié)

        雙代碼開(kāi)發(fā)方法可有效提高鐵路信號(hào)相關(guān)安全軟件的安全性,但會(huì)增加安全軟件開(kāi)發(fā)投入和開(kāi)發(fā)周期,同時(shí)也會(huì)降低安全軟件的可用性。對(duì)于不同設(shè)備的安全軟件開(kāi)發(fā),應(yīng)根據(jù)軟件的安全需求和復(fù)雜程度,在保證安全性的前提下選擇合適的雙代碼開(kāi)發(fā)方法。

        猜你喜歡
        功能模塊代碼關(guān)鍵
        高考考好是關(guān)鍵
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        基于ASP.NET標(biāo)準(zhǔn)的采購(gòu)管理系統(tǒng)研究
        輸電線路附著物測(cè)算系統(tǒng)測(cè)算功能模塊的研究
        M市石油裝備公服平臺(tái)網(wǎng)站主要功能模塊設(shè)計(jì)與實(shí)現(xiàn)
        功能模塊的設(shè)計(jì)與應(yīng)用研究
        獲勝關(guān)鍵
        NBA特刊(2014年7期)2014-04-29 00:44:03
        又粗又硬又大又爽免费视频播放| 在线日本高清日本免费| 男女视频一区二区三区在线观看| 亚洲av永久无码精品网站| 国产97色在线 | 日韩| 999精品全免费观看视频| 成人偷拍自拍在线视频| 一本一道久久精品综合| 久久99精品久久久久久秒播| 在线观看视频一区| 在线观看日韩精品视频网站| 国产精品妇女一区二区三区 | 男女激情视频网站免费在线| 免费女人高潮流视频在线观看| 日产精品久久久久久久蜜臀| 在线偷窥制服另类| 麻豆国产av在线观看| 国产产区一二三产区区别在线| 84pao强力打造免费视频34| 蜜桃网站在线免费观看视频| 国产麻豆久久av入口| 日本高清视频www| 一级一级毛片无码免费视频 | 一区二区三区在线观看人妖| 久久久久国色av免费观看性色 | 国产小屁孩cao大人| 青青草久久久亚洲一区| 在厨房被c到高潮a毛片奶水| 久久久精品2019免费观看| 国产毛片A啊久久久久| 成熟妇女毛茸茸性视频| 激情内射日本一区二区三区 | 久久综合九色综合久99| 中国精品久久精品三级| 亚洲中文字幕高清乱码毛片| 亚洲三级视频一区二区三区 | 亚洲国产婷婷香蕉久久久久久| 午夜精品久久久久成人| 亚洲国产福利成人一区二区| 国产精品一区二区偷拍| 欧美人伦禁忌dvd放荡欲情|