# 清大 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 都不會太大,分支會影響平行化的可能性/記憶體/快取頻寬與容量負荷不了高度平行化的運算