2012-12-04 57 views
1

我需要編寫並持續監控系統/應用程序的行爲的應用程序,並註明這是「沒有響應」的所有進程的「不迴應」的行爲。定義程序

我的意思是在Windows上是這樣的:

enter image description here

或像這樣在Android:

enter image description here

有人可以幫助我在定義了這個 '掛' 或「不響應「行爲,以便我可以編寫一個應用程序來監視這些參數。

我能想到的只有一個參數:

持續監視每個應用程序的處理器使用情況,並標記他們,如果他們消耗了一些「的時間y'units上述「X」%的CPU不響應。

平臺:Linux/Android的/ Windows的

+1

每個OS都有自己的規則。在Windows的情況下,它檢測到應用程序沒有抽取其消息隊列。 –

+0

請問你能解釋一下投票的原因嗎? –

回答

1

你需要的東西就像一個看門狗。要麼應用程序必須定期執行一些預定義的活動,而只是定期檢查它是否執行了此活動。或者您向需要回答的應用程序發送某種請求。

「X」%的CPU的時間一些「Y」單位以上消費無關,與沒有響應。應用程序可能會消耗大量的CPU,但仍會響應系統或用戶事件。同樣,應用程序根本不會消耗CPU,因爲它等待輸入,並且在此期間不會響應任何其他請求。

+0

您的方法需要我的監控應用程序與其他應用程序之間有某種理解。但我的約束是我無法從已知來源獲得所有應用程序,他們可能完全不瞭解我的應用程序。 –

+0

然後,您將無法辨別響應應用程序和未響應應用程序之間的區別。這對你來說只是一個黑盒子,即使它做了一些處理,你也不知道它是否陷入某種循環。要麼必須從外部響應*某些事件*,要麼必須與外部做某事*。 – scai

+0

然後,Windows/Android作爲一個操作系統如何找出哪些應用程序正在響應,哪些不是?據我所見,我們不設計應用程序來了解這個事實,或者我們呢? –

1

我們有一些活動進程的企業,有時由於長時間運行或內存的問題,他們關閉而不引發異常。他們死了。

我們已經實施了一類這個應用程序是誰記錄自己的過程活動到文件或數據庫表內。

我們使用誰是獲取該記錄的數據事件X分鐘另一個觀察家監控,所以如果超過X分鐘過去了,沒有記錄的數據顯示過程無法正常工作。

的,我們使用PSEXEC遠程殺死進程,並再次啓動它。

+0

謝謝你的想法。但是,您的方法只適用於「受信任」的應用程序。我的要求是我應該能夠監視和處理'不可信'的應用程序,就像那些可能沒有實現你所提供的記錄器類的應用程序一樣。 –