2017-08-14 69 views
2

我一直在使用Pusher一段時間。我一直認爲「實時」意味着「瞬間」。最近我踏進這篇文章:https://en.wikipedia.org/wiki/Real-time_computing和句子搶了我的注意:爲什麼像推杆這樣的解決方案聲稱是「實時」?

「實時程序必須保證規定的時間內響應 約束」

他們舉一個例子基於音頻處理:

「考慮一個音頻DSP示例;如果一個過程需要2.01秒到 分析,合成,或處理聲音2.00秒,它不是 實時。但是,如果它需要1.99秒,它或可製成 成實時DSP處理「

我的問題:1, 這個定義只適用於硬件/電子設備或可應用於軟件是否也適用? 2.如果適用於軟件,它是否適用於遠程服務,如Pusher? 3.什麼時間限制推杆被視爲「實時」? 4.什麼是其他服務的時間限制WebRTC,Firebase?

回答

5

對不起,您的問題沒有具體回答,但我希望它會讓您更好estand「實時」定義的來源。


是的,這是一個可以理解的混淆,「實時」是指「瞬時」。但如果你真的開始考慮這個問題,你很快就會發現「瞬間」很難定義。

瞬時意味着什麼?從命令時間到響應時間的0(零)秒響應時間(如0秒0毫秒0納秒0 ps)在物理上是不可能的。然後,我們可以試着說,瞬時意味着命令響應時間被瞬間感知,即它不會被視爲延遲。但是......那「瞬間感知」到底意味着什麼?被人類感知?好吧,那很好,我們正在某個地方。人眼和大腦圖像處理是一個非常複雜的機器,它並不真正簡單地用fps工作,但我們可以使用數據來近似一些。人眼可以「感知屏幕上閃爍的圖像1/2秒」。這將是0.004秒或250幀/秒。所以通過這個近似值,如果圖形程序的響應時間爲< 0.004秒,或者比@ 250幀/秒運行得更快,則圖形程序將是實時的。但是我們知道在實踐中,大多數人只能以60 fps或0.01666秒的速度感受遊戲的順暢。所以現在我們有兩個不同的答案。我們可以以某種方式證明他們兩個?是。我們可以說在理論上實時意味着0.004秒,但在實踐中0.01666秒就足夠了。

我們可以很高興並在這裏停留,但我們正在探索之旅。所以我們進一步思考。你想要一個「實時」航空電子自動化系統有0.01666秒的響應時間嗎?對於「實時」核電站系統,您認爲是否可以接受0.01666秒響應時間?如果指令完成時間爲0.0166秒,那麼閥門在物理上需要15秒關閉的油控系統纔會被定義爲「實時」?所有這些問題的答案絕對不是。爲什麼?回答這個問題,你回答爲什麼「實時」被定義爲「實時程序必須保證在特定的時間限制內響應」。

對不起,我對「Pusher」一點都不熟悉,但我可以回答你的第一個問題和第二個問題的一部分:「實時」可以應用於任何需要「反應」的系統或迴應某種形式的投入。這裏的「系統」比你想象的更通用。一個大腦會有資格,但在工程的背景下意味着整個堆棧:硬件+軟件。

3
  1. 這個定義只適用於硬件/電子設備還是可以應用於軟件?

它也適用於軟件。任何有困難的時間限制。例如,有實時操作系統,甚至是Java的實時規範。

  1. 如果適用於軟件,它是否適用於像Pusher這樣的遠程服務?

很難看到如果涉及到網絡如何。顧名思義,它們更可能只是「及時」的意思,或者只是一種馬虎的「推動模式」。本網站上的大量用戶似乎認爲「實時」意味着「真實世界」。在IT中,它意味着一個能夠滿足嚴格實時約束的系統。你引用的維基百科的定義是正確的,但這個例子不是很令人滿意。

  1. 什麼時間限制推杆被視爲「實時」?

問題是畸形的。真正的問題是Pusher是否真的能夠實際滿足硬實時約束,並且只有它的最小值可能是什麼。如果沒有操作系統和網絡支持,這似乎並不可能。

  1. WebRTC,Firebase等其他服務的時間限制是什麼?

同上。

+0

大回答。一個小想法:(不熟悉推送器,但是)網絡應用程序可以是「實時」的,不需要OS /網絡支持。對於某些系統,超時響應可被視爲可接受的響應。 – bolov

+0

@bolov我想是這樣,但是非實時操作系統甚至不能保證超時時間沒有增加一些延遲。 – EJP

1

術語「實時」的大多數解釋都是指傳統的靜態類型,通常稱爲「硬實時」。儘管對「硬實時」和「軟實時」這兩個術語的含義沒有太多共識,但我根據科學的第一原則提供了這些和其他基本術語的定義,其中Introduction to Fundamental Principles of Dynamic Real-Time Systems.

相關問題