Chapter 10:輸入輸出系統 === :::info 這是讀書筆記 ![book](https://hackmd.io/_uploads/H1rFFZZAkx.jpg =30%x) 作者:鄭鋼 出版社:佳魁資訊股份有限公司 出版日期:2017/05/31 ::: --- # 同步機制簡介 * critical section * mutex * race condition * 單行指令具有執行的最小性。 * semaphore # 實作 lock ## Source Code https://github.com/yifengyou/os-elephant/tree/master/code/c10/b ## Result ![截圖 2025-07-19 晚上8.39.23](https://hackmd.io/_uploads/rkbQfGKUxe.png) # 從鍵盤取得輸入 ## Source Code https://github.com/yifengyou/os-elephant/tree/master/code/c10/c_3 ## Result ![截圖 2025-07-20 晚上8.10.25](https://hackmd.io/_uploads/SkA1pLqIle.png) # 撰寫鍵盤驅動 ## Source Code https://github.com/yifengyou/os-elephant/tree/master/code/c10/d ## Result >[!Warning] Mac 切換大小寫:shift+caps lock,預設 caps lock 是切換輸入法。 ![截圖 2025-07-21 凌晨1.06.27](https://hackmd.io/_uploads/ByHEGsqUll.png) # 環狀輸入緩衝區 : io queue ## Source Code https://github.com/yifengyou/os-elephant/tree/master/code/c10/e https://github.com/yifengyou/os-elephant/tree/master/code/c10/e_PandC ## Result ![截圖 2025-07-21 下午2.25.33](https://hackmd.io/_uploads/ryk26LjIge.png)