于 娟
(仰恩大學 工程技術學院,福建 泉州362014)
科技的發(fā)展對共享內存有了強烈的需求.共享內存系統(tǒng)由三部分組成[1],包括文件系統(tǒng)的接口、管理訪問對象的軟件集合以及對象屬性.該系統(tǒng)在多處理器的計算機系統(tǒng)中,可以實現(xiàn)多個不同訪問對象的訪問.服務端用戶借用內存管理子系統(tǒng),高速共享緩存單元存放的文件,實現(xiàn)對訪問用戶的數(shù)據(jù)共享[2].但該系統(tǒng)在長期使用下,暴露出了部分缺陷,傳統(tǒng)的定位算法通過設置監(jiān)測節(jié)點,對該系統(tǒng)實時監(jiān)測,當系統(tǒng)出現(xiàn)缺陷時發(fā)出警報,管理人員通過警報提示找出警報節(jié)點,對該節(jié)點的鄰域進行缺陷排查,該方法固
然具有實時性特點,但得到的缺陷定位結果只有一個點位,所定位缺陷邊界坐標的偏離系數(shù)過大,因此對排查造成一定程度的困難.針對傳統(tǒng)方法的這一問題,提出無需二次排查的高效共享系統(tǒng)內存文件缺陷定位算法,該算法通過目標范圍獲取缺陷中心,進而得到更加明確的缺陷邊界.該算法的提出不僅將缺陷具體到最遠邊線,實現(xiàn)全方位的缺陷定位,還在根本上降低了缺陷定位誤差,解決了傳統(tǒng)算法的現(xiàn)存問題.該算法為共享文件系統(tǒng)的缺陷定位提供了科學的技術手段,同時也為其他系統(tǒng)的缺陷定位提出嚴謹?shù)脑O計思路.
系統(tǒng)缺陷定位算法[3],第一步需要明確高效共享系統(tǒng)內存文件的功能特性,根據(jù)該系統(tǒng)運行的基本特征量,展開缺陷定位.該系統(tǒng)的文件共享模塊與多個I/O端口連接,同時通過大量系統(tǒng)硬件執(zhí)行共享指令,分析可知,該系統(tǒng)在各個連接結點和處理模塊中,均可能發(fā)生缺陷,以此系統(tǒng)特征為基礎,提出一個詳細的缺陷定位算法.
1.1界定缺陷目標范圍根據(jù)共享系統(tǒng)內存文件特性,利用CS技術設置搜索程序,界定缺陷位置的目標范圍[4].預先計算步長因子,該因子是控制搜索區(qū)域廣度的關鍵參數(shù),當步長因子偏大時,控制該搜索程序展開全區(qū)域性搜索;步長因子偏小時,則該參數(shù)可以控制搜索程序,在局部區(qū)域展開局部搜索.為了控制該搜索程序在全區(qū)域、局部區(qū)域中的搜索平衡,加入平衡適應調節(jié)參數(shù),令搜索程序分布式同步搜索.該步長因子的計算公式為:
公式(1)中:ls表示第s次的搜索步長,其中,s表示當前次數(shù);lmax表示步長因子的最大上限;lmin表示步長因子的最小下限;ε表示引入的調節(jié)參數(shù);N表示最大迭代總數(shù);g1表示初始適應度下的最優(yōu)函數(shù);g2表示適合此次迭代的最優(yōu)函數(shù).同時,在該參數(shù)的搜索控制下,計算發(fā)現(xiàn)系統(tǒng)缺陷大致位置的發(fā)現(xiàn)概率,在CS技術中,一般情況下的發(fā)現(xiàn)概率取值在0.2~0.3之間,設置該參數(shù)下的概率為p,當該概率一直處于較大數(shù)值時,可以加快缺陷搜索的收斂速度;當發(fā)現(xiàn)概率p的值較小時,則此時的收斂速度降低,因此依靠最優(yōu)適應度和前代解的比值設置最優(yōu)適應度:
公式(2)中:fi表示上一代的最優(yōu)適應度;fli表示在ls作用下的第i個解的適應度.根據(jù)上述計算公式,對發(fā)現(xiàn)概率適應度自由調節(jié),得到的發(fā)現(xiàn)概率計算結果,如下所示:
公式(3)中:p′表示迭代后解的優(yōu)質概率;di表示對第i個解的最優(yōu)適應度;M表示解的總數(shù)量;pmin與pmax分別表示發(fā)現(xiàn)概率的上下限.綜合上述兩組公式得出搜索程序,對共享系統(tǒng)內存文件實施缺陷搜索指令,獲取到的缺陷大致區(qū)域范圍如圖1所示.
圖1中的搜索結果是缺陷目標范圍,但此時該目標范圍內不僅包含缺陷節(jié)點[5],同樣包含少量正常節(jié)點,因此需要將缺陷節(jié)點從該范圍中作出篩選操作.
1.2提取缺陷節(jié)點 利用捕獲函數(shù)提取界定目標范圍內的缺陷節(jié)點[6],該函數(shù)可以根據(jù)數(shù)據(jù)的載波頻率,得到缺陷數(shù)據(jù)的碼相位,實現(xiàn)對任意區(qū)域內數(shù)據(jù)節(jié)點的捕獲.該捕獲函數(shù)的捕獲次數(shù)計算表達式為:
公式(4)中:n表示捕獲次數(shù);e1表示編碼相位歷遍次數(shù);e0表示波頻總步長;d表示缺陷數(shù)據(jù)波頻步長;j表示固定常量,通常情況下為1.根據(jù)該捕獲次數(shù)設置捕獲函數(shù),引入捕獲參量q,在缺陷目標范
圍內提取缺陷節(jié)點位置為:
上述計算表達式中:T表示離散變換條件下,捕獲函數(shù)的傅里葉計算節(jié)點位置[7];f(φ)表示捕獲程度;φ表示捕獲函數(shù)自變量;e表示指數(shù)函數(shù);u表示捕捉頻率;m表示共軛值;t表示目標范圍空間;k表示d為求導符號;wf(t)表示實時缺陷信號;Wn(m)表示n次捕獲下的系統(tǒng)捕獲強度定值;Wf*(m)表示捕獲強度為f時,對內存文件缺陷的捕獲實際強度,*表示變換標志.參照圖2中的坐標系,根據(jù)捕獲函數(shù),提取圖1中的缺陷節(jié)點位置[8].
圖1缺陷一次界定范圍 Fig.1 Range of defects defined once
該坐標系將涵蓋的正常節(jié)點數(shù)量,降到最小,利用公式(5)設置捕獲指令,得出缺陷目標函數(shù)中的缺陷節(jié)點,為接下來的定位作鋪墊.
1.3計算缺陷中心節(jié)點 在得到的缺陷節(jié)點中,隨機選取兩個相鄰的缺陷節(jié)點作為樣本,通過距離縮放法計算缺陷中心節(jié)點,選取的缺陷樣本如圖3所示.
選取的缺陷樣本,需要滿足兩個峰值的基本要求.對文件系統(tǒng)中的缺陷數(shù)據(jù)進行“平坦”處理,假設“平坦區(qū)域”中,高峰值和次峰值的橫坐標為a和b,計算區(qū)域中心位置s0和峰值寬度z,如下式所示:
公式(6)中:τ表示峰值數(shù)量,同時τ≥2;ε表示誤差修正系數(shù);μ表示寬度衡量參數(shù).根據(jù)上述中的計算結果,確定缺陷節(jié)點與缺陷中心位置的距離,根據(jù)實時變化的缺陷強度指標,結合公式(6),計算隨機動態(tài)變化參量k,公式為:
公式(7)中:δ表示缺陷峰值調節(jié)控制因子[9];d0表示對動態(tài)參量的調節(jié)因子;α表示缺陷在強度不同的峰值活動方向.引入激活函數(shù)的線性回歸模型:
公式(8)中:n表示共享系統(tǒng)內存文件中的多峰值缺陷節(jié)點個數(shù);y(t)表示期望輸出值;qi(t)表示在系統(tǒng)i缺陷段的計算回歸因子;pi表示缺陷節(jié)點之間的連接權重;ω(t)表示計算殘差.根據(jù)該模型結合變化參量k,得出缺陷中心節(jié)點:
根據(jù)得出的中心坐標位置,確定該缺陷的邊緣,得出缺陷位置的具體范圍.
1.4獲取邊界坐標 利用最小二乘法獲取缺陷中心節(jié)點以外的邊界坐標,實現(xiàn)對系統(tǒng)缺陷的精準定位[10].根據(jù)上述計算得到缺陷中心c,假設距離該中心有n個錨節(jié)點,在確定的缺陷目標范圍內,每一坐標可用a1,a2,…,an來表示,則對應每一錨節(jié)點,存在an={( x,y)|( x1,y1),( x2,y2),…,( xn,yn)},設置一個未知節(jié)點為ak,該節(jié)點坐標為( xk,yk),假設該節(jié)點是該缺陷的真實坐標,則未知節(jié)點與錨節(jié)點的關系為:
公式(10)中的d1,d2,…,dn,表示未知節(jié)點與錨節(jié)點之間的估計距離.通過該公式得到的坐標邊界獲取示意圖如圖4所示.
圖3缺陷峰值示意圖 Fig.3 Diagram of peak defects
圖4缺陷邊界坐標獲取示意圖Fig.4 Diagram of defective boundary coordinate acquisition
根據(jù)圖4可知,圖中灰色區(qū)域代表缺陷真實范圍,利用最小二乘法,得到邊界坐標.將公式(10)改寫成Ax=b的形式,并利用最小二乘法進行求解,得出目標函數(shù)Min‖ Ax-b‖2,求解得出:
公式(11)中:x′、y′表示缺陷邊界的橫坐標與縱坐標.通過該計算過程,得出圖4中缺陷的具體邊界坐標,確定該缺陷在文件系統(tǒng)中的覆蓋范圍,至此實現(xiàn)對高效共享系統(tǒng)內存文件缺陷位置的定位算法.
為證明所提出算法的實用性和嚴謹性,針對此次研究提出仿真對比實驗,通過該實驗檢測數(shù)據(jù),增強對此項定位算法功能特性的說明,同時引入傳統(tǒng)缺陷定位算法,對比兩種算法在缺陷定位上的差異.
2.1實驗準備 選用的計算機裝有3.60 MHz雙核處理器,該計算機型號為ADMR52600X,顯存容量為4 GB,內存容量為8 GB,主板芯片類型為AMDA320;載入Windows 2019a操作系統(tǒng),設置3級緩存程序,每一級的基本配置為96 KB、298 0 KB以及30 MB.本次實驗的測試工具為FlexibleI/O和Filebench,利用該工具測試算法的定位性能.設置該實驗測試系統(tǒng)帶寬,如表1所示,通過不同帶寬條件,進行多次仿真實驗測試,確保測試結果的真實性和一致性.
隨機挑選一組共享系統(tǒng)內存文件作為實驗對象,將其載入到內存文件中,設置多個訪問客戶端對該系統(tǒng)執(zhí)行訪問操作.同時模擬多個強度不一、位置不均、缺陷范圍不同的系統(tǒng)缺陷,其中的部分缺陷模擬內容如圖5所示.
表1實驗測試帶寬參數(shù)Tab.1 Experimental test bandwidth parameters
圖5是模擬的4種類型不同的缺陷情況,其中,類型A為集中型缺陷;類型B為混合型的交叉缺陷;類型C為分散型缺陷;類型D為影響范圍較大的缺陷.實驗準備階段設立完畢后,載入測試系統(tǒng)并運行,當系統(tǒng)運行正??梢蚤_始實驗.
2.2結果分析 分別利用兩種算法對系統(tǒng)中的缺陷進行定位,分析兩種算法對缺陷位置的定位效果.其中,實驗組為所提出算法的測試結果;對照組為傳統(tǒng)方法的測試結果.引入C類型的缺陷,定位對比測試結果如圖6所示.
圖5模擬實驗條件 Fig.5 Simulated experimental conditions
圖6分散性陷定位的算法對比結果Fig.6 Comparison of the algorithm for locating discrete traps
分析圖6可知,所提出算法準確找到模擬缺陷的中心位置,并正確計算出缺陷邊界坐標,使得定位算法準確捕獲到系統(tǒng)中的缺陷位置;而傳統(tǒng)的定位算法,由于得到的中心點位置不精準,對缺陷邊界坐標的計算存在較大誤差,導致定位的缺陷范圍與缺陷實際不相符.為確保實驗結果可靠,再對系統(tǒng)中的B類型缺陷進行定位,得出圖7所示的測試結果.
圖7混合型缺陷定位的算法對比結果Fig.7 Comparison of algorithms for hybrid defect location
根據(jù)圖7可知,面對混合型的系統(tǒng)缺陷,所提出算法同樣精準定位缺陷中心位置,以此作為計算原點,得到準確的邊界坐標,實現(xiàn)全方位缺陷定位;而傳統(tǒng)的定位算
法,面對復雜定位,計算的缺陷中心受缺陷類型影響,得出的位置節(jié)點嚴重偏離實際,無法得到準確的缺陷位置.綜合上述測試結果可知,本文所提出算法在第一步即實現(xiàn)了嚴謹性、精準性這一研究要求,因此得到更加精準的定位結果.
本文提出的系統(tǒng)缺陷定位算法,融合了數(shù)學原理,增強定位算法的計算能力,使得到的定位結果真實可信,解決了傳統(tǒng)算法存在的偏差問題,為今后的共享系統(tǒng)文件缺陷定位提供技術保障,也為其他系統(tǒng)的缺陷檢測提供算法的優(yōu)化思路.但此次研究仍存在計算量較大的局限,需要進行更深入的研究,進而提高算法在實際使用中的性能.