2010-11-18 53 views
0

我需要回答以下問題:理論關於多線程(縮放)的問題

服務器需要爲每個文件請求執行15 ms的工作。如果文件不在緩存中,則必須訪問硬盤並且線程休眠75 ms。這在1/3的情況下發生。

a)服務器每進程有多少個請求可以使用1個線程進程? - > 15 ms + 1/3 * 75 ms = 40 ms每個請求 - > 1000/40 ms = 25每秒請求數

b)有多個線程?

有沒有這方面的公式? 對於2個線程我得到了每秒40.625請求: 25毫秒暫停平均 - > 25/40 = 0.625 - > 25 * 1.625 =每秒鐘

40.625的要求怎麼樣3個或更多的線程?

+0

作業?如果是這樣,這個網站上的作業問題很好,但是你必須證明你正在做一些工作。問題的哪些部分是您遇到的問題? – 2010-11-18 16:51:02

+0

這是一項家庭作業嗎? – 2010-11-18 16:51:41

+0

硬盤不需要串行處理請求,所以我們可以認爲它可以任意快速執行。所以最大的通過是所有的處理器時間用完了15毫秒的工作。 – 2010-11-18 16:55:25

回答

1

我知道我在做你的功課,但很有趣,因爲問題陳述是有缺陷的。由於缺少重要信息:機器可用的核心數量,因此無法按原樣回答。運行比獲取核心更多的線程不會提高吞吐量。假設Ĵ作業,T線程和C核,所花費的時間對它們的量是

時間= j的×15毫秒/分鐘(T,C)+ J×75毫秒/ 3

求解每秒Y:

速率= 1000 /(15 /分(T,C)+ 25)