引言
2022 SA am1
01-02: https://blog.yexca.net/archives/184
03-05: https://blog.yexca.net/archives/185
06-10: https://blog.yexca.net/archives/186
11-15: https://blog.yexca.net/archives/189
16-30: https://blog.yexca.net/archives/190
碎碎念
星期一總是很累,在經歷了週末的休息後總會在今天提不起精神。不過今天也不知道怎麼回事,我突然一改之前快要憂鬱的感覺,儘管什麼也沒有做,突然就變得極其樂觀。情感或者狀態確實很奇妙。
所以呢,今天也摸了不少魚呢,差點就不寫了。不過這張試卷有 30 個試題,照目前的速度恐怕至少要半個月才能看完 :cry:
第三題
プログラム言語のうち、ブロックの範囲を指定する方法として特定の記号や予約語を用いず、等しい文字数の字下げを用いるという特徴をもつものはどれか。
ア C
イ Java
ウ PHP
エ Python
題目翻譯:在程式語言中,哪種語言的特點是不使用特定的符號或保留字來指定程式碼區塊的範圍,而是透過相同字元數的縮排來指定範圍?
顯然是 Python,即選項 エ。
第四題
キャッシュメモリのアクセス時間が主記憶のアクセス時間の1/30で、ヒット率が95%のとき、実効メモリアクセス時間は、主記憶のアクセス時間の約何倍になるか。
ア 0.03
イ 0.08
ウ 0.37
エ 0.95
這題考的是有效記憶體存取時間 (EMAT),可以透過以下公式計算:
$$ EMAT = Cache Access Time \times Hit Rate + Main Memory Access Time \times Miss Rate $$設 Main Memory Access Time = T,則 Cache Access Time = $\frac{T}{30}$。由題目知 Hit Rate = 95%,則 Miss Rate = 5%。
所以 EMAT = $\frac{T}{30} \times 95\% + T \times 5\% \approx 0.08T$,因此答案為選項 イ。
這題以前不太會做,計算機組織的話我也只聽了一半,說實話應該也算忘得差不多了。
第五題
プロセッサ数と、計算処理におけるプロセスの並列化が可能な部分の割合とが、性能上へ及ぼす影響に関する記述のうち、アムダールの法則に基づいたものはどれか。
ア 全ての計算処理が並列化できる場合、速度向上比は、プロセッサ数を増やしてもある水準に漸近的に近づく。
イ 並列化できない計算処理がある場合、速度向上比は、プロセッサ数に比例して増加する。
ウ 並列化できない計算処理がある場合、速度向上比は、プロセッサ数を増やしてもある水準に漸近的に近づく。
エ 並列化できる計算処理の割合が増えると、速度向上比は、プロセッサ数に反比例して減少する。
題目翻譯:關於處理器數量與計算處理過程中可平行化部分佔比對效能的影響,下列哪一項是基於阿姆達爾定律 (Amdahl’s Law) 的描述?
ア:如果所有的計算處理都可以平行化,則速度提升比即使增加處理器數量,也會逐漸趨近於某個水平。
イ:如果存在無法平行化的計算處理,速度提升比會隨著處理器數量的增加而按比例增長。
ウ:如果存在無法平行化的計算處理,則速度提升比即使增加處理器數量,也會逐漸趨近於某個水平。
エ:隨著可平行化的計算處理比例增加,速度提升比會隨著處理器數量的增加而呈反比減少。
要解出這題需要先知道什麼是「アムダールの法則」。Amdahl’s Law 描述了計算處理過程中,程式的平行化程度對效能提升的影響。它指出即使增加處理器的數量,程式中不能平行化的部分仍然會限制效能的提升。其公式如下:
$$ S(N)=\frac{1}{(1-P)+\frac{P}{N}} $$其中 S(N) 表示使用 N 個處理器時的速度提升比、P 是程式中能夠進行平行化的部分比例、N 是處理器的數量。
綜上所述,本題選 ウ。