# 清大 106 硬體 ###### tags: `NTHU` `106` `硬體` 1. monolithic OS: kernel 集大權於一身,專制獨裁 microkernel: kernel 還政於民 iOS: microkernel Android: monolithic service that may be external subsystem to a microkernel: File system/device driver/network stack 2. transaction atomicity: 所有的交易、行為,要不一次不被干擾地執行完成,要不什麼都沒有做 3. (a) | State \ Events | admitted |timeout|completion|I/O|dispatch|exit| | ----------------|:---------|:------|:---------|:--|:-|:-| | new | ready | | | ||exit| | ready | | | | |running|exit| | blocked | | | ready | ||exit| | running | | ready | |blocked||exit| | suspend | | | ready |||exit| | exit | | | |||exit| (b) admitted 只適用於 new;timeout 只適用於正在執行的 process;completion 只適用於 blocked & suspend;I/O 只適用於正在執行的 process;dispatch 則是適用於在 ready 的 process :::info 一頭霧水...所以要怎樣才能進入 suspend ?,沒有 OOM 這個 event 阿 ::: \(c\) ... :::info 整題我都寫得很心虛... ::: 4. n(k-1)+1 5. 不可能,optimal page replacement 需要知道未來的 page reference 情形,那是不可能百分之百精準預測的。可以用 temporal locality 這個性質來判斷該 replace 哪個 page 6. 可以,在 page table 註記這個 page 是 data 還是 code,或是用 address 去區分也可以。將兩者區分開來,理論上就可以維護兩個 working set。 7. serial port 太慢了,用 polling 效率太差;hign perf. NIC 因為速度很快,讓 interrupt 所需的 context switch 成本被放大,所以採用 polling 就是很合理的作法。 8. 243 9. 3072000 10. F000800C/f0008010 11. ```c= ldr x4, [x3, 2] add x4, x4, x2 ldr x1, [x4] sub x1, x1, 4 ``` :::info MIPS 已經下台一鞠躬了啦,誰還在學這個過時的東西 ::: 12. (a) (b) 3 \(c\) 消失了 (d) 1,2,3 5,7,8 4,6,11 9,10,13 12,14 15 16 17 18 (e) 6 (f) 1,2,3,5,7,8 4,6,10,11 9,12,13,14 15 16 17 18 13. (a) 3 因為 branch 需要 stall 兩個 clock,考慮最糟的情況:所有 thread 都在 branch,需要額外兩個 thread 來填滿。 (b) 3 flow depencence 會導致兩個 clock stalls。 \(c\) YES,一樣是兩個 stall,所以需要額外兩個 thread (d) NO,需要額外 10 個,總共 11 個 thread 14. (a) 密度比 DRAM 高 (b) 便宜 \(c\) 放在 Main Memory 的下面 MagicRAM 相較 DRAM 的唯一優勢,是他的單位容量價錢比 DRAM 便宜,以及非揮發。 如果當成主記憶體來用,寫次數太頻繁,很容易就壞掉。因此把他當次級記憶體來用,會是合理的作法 :::info 不就是 SSD... ::: (d) 或許可以把他跟 DRAM 並行使用,將不常被更動的資料,像是 process binary、dynamic library、kernel binary 等等,放在 MagicRAM,至於 heap、stack 等經常被寫入的區塊,就放在 DRAM。 15. (a) 0.2 :::info $\frac{1}{S+\frac{1-S}{16}}=4\rightarrow S=0.2$ ::: (b) Y X: $\frac{1}{S+\frac{1-S}{16}}=4$ Y: $\frac{1}{\frac{S}{2}+\frac{1-S}{8}}=5$ Z: $\frac{1}{\frac{S}{4}+\frac{1-S}{4}}=4$ \(c\) 6 $\frac{1}{\frac{S}{2}+\frac{1-S}{12}}=6$ (d) c a: 6.4 b: 6.4/6.15/4 c: 8 (e) 平行化的機會難以被發覺/大部份的 basic block 都不會太大,分支會影響平行化的可能性/記憶體/快取頻寬與容量負荷不了高度平行化的運算