Re: [問題] device和interrupt相關資訊的問題...
※ 引述《babuturtle (babuturtle)》之銘言:
: 會注意到是因為有朋友去面試linux driver相關的工作的時候被問到
: 後來查了一下這問題應該是從網路抓出來的 有點像是大學期中期末會出的那種考題
: 雖然怎麼看都像是書上的問題但是不清楚是哪本...
: 而且以觀念上來說應該是不限定linux啦
: http://6004.csail.mit.edu/currentsemester/tutprobs/realtime.html
: 在這邊簡單把問題po一下 附上英文原文免得我的爛英文翻錯有人能指正
: A computer system has three devices whose characteristics are summarized
: in the following table:
: 一個電腦系統有三個裝置 特性如下表所示:
: 裝置 服務時間 中斷頻率 被允許的latency...?
: Device Service Time Interrupt Frequency Allowable Latency
: D1 400 us 1/(800us) 400us
: D2 250 us 1/(1000us) 50us
: D3 100 us 1/(800us) 300us
: Service time indicates how long it takes to run the interrupt handler for
: each device. The maximum time allowed to elapse between an interrupt request
: and the start of the interrupt handler is indicated by allowable latency.
: 服務時間表示每個裝置去跑中斷函式所需要花的時間
: 而呼叫中斷到開始進行中斷函式之間的最大時限則是由allowable latency決定
: (1)
: If a program P takes 100 seconds to execute when interrupts are disabled,
: how long will P take to run when interrupts are enabled?
: 如果一個程式P 在中斷被關閉的時候需要花100秒去執行
: 在中斷被開啟後P要花多少時間去執行?
: Ans:
: 這個還ok
: 就D1 D2 D3中斷的服務時間x中斷頻率
: D1:400us * 1/(800us)=0.5 表示D1占用CPU 50%
: D2:250us * 1/(1000us)=0.25 表示D2占用CPU 25%
: D3:100us * 1/(800us)=0.125 表示D3占用CPU 12.5%
: 還剩下12.5%可以給P用
: (1/0.125)*100=800秒
: (2)
: Can the requirements given in the table above be met using a weak priority
: ordering among the interrupt requests?
: 根據上表 我們可以在中斷要求的時候採用weak優先權嗎?
: Ans:
: No. Once D1 or D3 start running, we will miss allowable latency for D2
: (3)
: Can the requirements given in the table above be met using a strong priority
: ordering among the interrupt requests?
: 根據上表 我們可以在中斷要求的時候採用強制優先權嗎?
: Ans:
: Yes, if priority is D2 > D3 > D1.
: 主要是(2) (3)兩個問題的答案我不清楚原因是甚麼...
: 關鍵應該是Allowable Latency這名詞
: 不知道有沒有前輩能稍微解釋一下Allowable Latency對於中斷要求的影響...
(2) (3) 這兩個問題是針對 Service Time 和 Allowable Latency 這兩個因素
做一個排序時的考量.
Allowable Latency 就是中斷要求發生後, 到開始 service 的等待容許時間,
這跟你所翻譯的內容是一致的, 你可以把中斷要求想成一個買東西的過程,
D1, D2, D3 分別是三個不同性格的客人, 而 service time, 就是每個人在買
東西時, 所花費的時間(有的人喜歡問東問西, 有的人喜歡速戰速決),
Allowable Latency 則是每個人能夠等待的時間. 有一天, 他們三個人一起到
達商店買東西, 窗口只有一個(CPU只有一顆), 所以一次只能服務一個客人,
如果店家想的單純些的(weak priority ordering), 只看客人買東西的速度
(亦即 service time) 來決定先讓買最快的客人先買的話, 會發現, D3先買的
話(D1先買亦同), D2 一定會等不及跑掉, 而沒有辦法讓三個客人都買到東西.
這是第二題的原因. interrupt 發生之後, 如果 D2 不能優先處理, 則 D2
的 interrupt 會常常遺失.
然而, 第三題, 店家在常常流失顧客之際, 也開始會觀查別的因素, 於是, 除
了看 service time 之外, 還去看 allowable latency, 然後發現了唯一能讓
三個客戶都 service 到的方法, 就是 D2 > D3 > D1
當 D2 執行完時, D1 及 D3 分別等了 250 us, 但都在他們的容許範圍內.
換 D3 執行完時, D1 一共等了 350 us, 也還在 D1 的容許範圍內.
最後 D1 執行...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.249.207.134
推
02/18 14:56, , 1F
02/18 14:56, 1F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章