摘 要:當把容易發生異常的、實驗室級的數值計算程序集中在一起向用戶提供計算服務時,服務器需要為每個用戶啟動一個新線程,然后通過此線程啟動響應的計算進程,此時服務器必須對所啟動的計算子進程有一定的控制能力,否則發生異常的進程有可能會占用系統資源,影響服務器的穩定。文章介紹了如何應用win32調試API來使服務器線程具備捕獲和處理計算子進程異常的能力,從而解決了計算子進程異常所導致的性能和穩定性問題。
關鍵詞:數值計算服務器;異常;調試API;子進程
0 引言
當前的研發型企業中存在著一些自行開發的數值仿真程序,這些程序和專業軟件一起,在各個領域內發揮作用。一方面越來越多的設計生產人員需要仿真計算支持;另一方面正在加劇的商業競爭和安全方面的原因,使得企業越來越小心地保護自己開發的計算程序和源代碼。針對這種情況,本文設計實現了一個數值計算服務器DCP_server1.0,該服務器可以通過XML文件把數值計算程序集中配置到服務器上,服務器根據用戶的選擇接受計算參數,啟動響應的計算程序,最后把計算的結果發送給用戶。在實際應用中發現,被啟動的數值計算程序,經常在計算中發生異常,導致該計算程序不能正常結束,占用了服務器資源,影響了服務器的穩定和速度。
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”