程式設計師的 作業系統(OS)/軟體 相關知識

程式設計師的 作業系統(OS)/軟體 相關知識

程式設計師的 作業系統(OS)/軟體 相關知識

GITHUB: https://github.com/jash-git/Jash-good-idea-20211031-001/tree/main/%E7%A8%8B%E5%BC%8F%E8%A8%AD%E8%A8%88%E5%B8%AB%E7%9A%84%E4%BD%9C%E6%A5%AD%E7%B3%BB%E7%B5%B1%E7%9B%B8%E9%97%9C%E7%9F%A5%E8%AD%98

目錄:
    認識作業系統; 1
        作業系統; 8
        電腦硬體簡介; 9
            CPU; 10
            多執行緒和多核晶片; 11
            記憶體; 13
                寄存器; 14
                快取記憶體; 14
                主存; 15
                磁片; 15
            I/O 設備; 17
            匯流排; 20
            電腦啟動過程; 22
        作業系統博物館; 22
            大型機作業系統; 23
            伺服器作業系統; 23
            多處理器作業系統; 23
            個人電腦系統; 23
            掌上電腦作業系統; 23
            嵌入式作業系統; 23
            感測器節點作業系統; 23
            即時操作系統; 24
            智慧卡作業系統; 24
        作業系統概念; 24
            進程; 24
            位址空間; 26
            文件; 26
            保護; 28
            shell; 28
        系統調用; 29
            用於進程管理的系統調用; 32
            用於檔管理的系統調用; 35
            用於目錄管理的系統調用; 36
            其他系統調用; 37
            Win 32 API; 37
        作業系統結構; 40
            單體系統; 40
            分層系統; 41
            微內核; 41
            客戶伺服器模式; 42
    進程和執行緒; 43
        進程; 44
            進程模型; 46
            進程的創建; 47
                系統初始化; 47
                系統調用創建; 48
                用戶請求創建; 48
                批次處理創建; 48
            進程的終止; 49
                正常退出; 50
                錯誤退出; 50
                嚴重錯誤; 50
                被其他進程殺死; 50
            進程的層次結構; 50
                UNIX 進程體系; 50
               
Windows
進程體系; 51
            進程狀態; 51
            進程的實現; 53
        執行緒; 55
            執行緒的使用; 55
                多執行緒解決方案; 55
                單執行緒解決方案; 56
                狀態機解決方案; 56
            經典的執行緒模型; 57
                執行緒系統調用; 59
            POSIX 執行緒; 60
            執行緒實現; 61
                在用戶空間中實現執行緒; 62
                在用戶空間實現執行緒的優勢; 62
                在用戶空間實現執行緒的劣勢; 63
            在內核中實現執行緒; 63
            混合實現; 64
        進程間通信; 65
            競態條件; 66
            臨界區; 67
            忙等互斥; 68
                遮罩中斷; 68
                鎖變數; 68
                嚴格輪詢法; 69
               
Peterson
解法; 70
                TSL 指令; 72
            睡眠與喚醒; 73
                生產者消費者問題; 73
            信號量; 75
                用信號量解決生產者消費者問題; 76
            互斥量; 78
               
Futexes; 80

               
Pthreads
中的互斥量; 81
            管程; 83
            消息傳遞; 88
                消息傳遞系統的設計要點; 88
                用消息傳遞解決生產者消費者問題; 89
            屏障; 90
            避免鎖:讀複製更新; 91
        調度; 92
            調度介紹; 92
                進程行為; 92
                何時調度; 93
                調度演算法的分類; 95
                調度演算法的目標; 95
            批次處理中的調度; 97
                先來先服務; 97
                最短作業優先; 98
                最短剩餘時間優先; 99
            互動式系統中的調度; 99
                輪詢調度; 99
                優先順序調度; 100
                多級佇列; 101
                最短進程優先; 102
                保證調度; 103
                彩票調度; 103
                公平分享調度; 103
            即時系統中的調度; 104
            調度策略和機制; 105
            執行緒調度; 105
    記憶體; 107
        無記憶體抽象; 108
            運行多個程式; 110
        一種記憶體抽象:位址空間; 111
            位址空間的概念; 112
                基址寄存器和變址寄存器; 112
            交換技術; 113
                交換過程; 114
            空閒記憶體管理; 118
                使用點陣圖的存儲管理; 118
                使用鏈表進行管理; 119
        虛擬記憶體; 121
            分頁; 122
                存在映射的頁如何映射; 124
                未映射的頁如何映射; 124
            頁表; 125
                分頁表項目的結構; 126
            加速分頁過程; 127
                轉換檢測緩衝區; 128
                軟體 TLB 管理; 131
            針對大記憶體的頁表; 133
                多級頁表; 133
                倒排頁表; 135
        頁面置換演算法; 135
            最優頁面置換演算法; 136
            最近未使用頁面置換演算法; 136
            先進先出頁面置換演算法; 137
            第二次機會頁面置換演算法; 138
            時鐘頁面置換演算法; 139
            最近最少使用頁面置換演算法; 140
            用軟體類比 LRU; 140
            工作集頁面置換演算法; 142
            工作集時鐘頁面置換演算法; 144
            頁面置換演算法小結; 146
    檔案系統; 147
        文件; 149
            檔命名; 149
            檔結構; 151
            檔案類型; 152
            檔訪問; 155
            檔案屬性; 156
            檔操作; 158
        目錄; 158
            一級目錄系統; 158
            層次目錄系統; 159
            路徑名; 160
            目錄操作; 162
        檔案系統的實現; 162
            檔案系統佈局; 162
                啟動區; 163
                超級塊; 164
                空閒空間塊; 164
                碎片; 165
               
inode; 166

            檔的實現; 167
                連續分配; 167
                鏈表分配; 169
                使用記憶體表進行鏈表分配; 170
               
inode        ; 171

            目錄的實現; 172
            共用檔; 176
            日誌結構檔案系統; 180
            日誌檔案系統; 182
            虛擬檔案系統; 183
        檔案系統的管理和優化; 184
            磁碟空間管理; 185
                塊大小; 185
                記錄空閒塊; 185
            磁片配額; 189
            檔案系統備份; 190
                物理轉儲和邏輯轉儲; 192
            檔案系統的一致性; 193
            檔案系統性能; 196
                快取記憶體; 196
                塊提前讀; 197
                減少磁片臂運動; 197
                磁片磁碟重組; 198
    I/O; 198
        I/O 設備; 199
            塊設備; 199
            塊設備的缺點; 199
            字元設備; 199
            設備控制器; 200
            記憶體映射 I/O; 202
            記憶體映射 I/O 的優點和缺點; 205
            直接記憶體存取; 208
            DMA 工作原理; 208
            重溫中斷; 209
            精確中斷和不精確中斷; 211
        IO 軟體原理; 212
            I/O 軟體目標; 212
                設備獨立性; 212
                錯誤處理; 213
                同步和非同步傳輸; 213
                緩衝; 214
                共用和獨佔; 214
            使用程式控制 I/O; 214
            使用中斷驅動 I/O; 215
            使用 DMA I/O; 216
        I/O 層次結構; 216
            中斷處理常式; 217
            設備驅動程式; 218
            與設備無關的 I/O 軟體; 221
                緩衝; 222
                錯誤處理; 226
                設備驅動程式統一介面; 226
                分配和釋放; 226
                設備無關的塊; 227
            使用者空間的 I/O 軟體; 227
        ; 227
            盤硬體; 227
                磁片; 227
                RAID;
228

                磁片格式化; 228
            磁片臂調度演算法; 230
            錯誤處理; 233
            穩定記憶體; 235
        時鐘; 239
            時鐘硬體; 239
            時鐘軟體; 239
            軟計時器; 240
    鎖死; 240
        前言; 240
        資源; 241
            可搶佔資源和不可搶佔資源; 241
            資源獲取; 241
        鎖死; 244
            資源鎖死的條件; 244
            鎖死模型; 244
        鴕鳥演算法; 248
        鎖死檢測和恢復; 249
            每種類型一個資源的鎖死檢測方式;
249

            每種類型多個資源的鎖死檢測方式;
249

            從鎖死中恢復; 250
                通過搶佔進行恢復; 250
                通過回滾進行恢復; 250
                殺死進程恢復; 251
        鎖死避免; 251
            單個資源的銀行家演算法; 251
        破壞鎖死; 253
            破壞互斥條件; 253
            破壞保持等待的條件; 253
            破壞不可搶佔條件; 253
            破壞迴圈等待條件; 253
        其他問題; 254
            兩階段加鎖; 254
            通信鎖死; 255
            活鎖; 256
            饑餓; 256
        總結; 256
    作業系統面試題; 257
        解釋一下什麼是作業系統; 257
        解釋一下作業系統的主要目的是什麼;
258

        作業系統的種類有哪些; 258
        作業系統結構; 258
            單體系統; 258
            分層系統; 259
            微內核; 259
            客戶伺服器模式; 260
        什麼是按需分頁; 260
        多處理系統的優勢; 260
        什麼是內核; 261
        什麼是即時系統; 261
        什麼是虛擬記憶體; 261
        什麼是進程和進程表; 262
        什麼是執行緒,執行緒和進程的區別;
262

        使用多執行緒的好處是什麼; 263
        什麼是 RR 調度演算法; 263
        導致系統出現鎖死的情況; 263
        RAID 的不同級別; 263
        什麼是 DMA ; 264
        多執行緒程式設計的好處是什麼; 264
        什麼是設備驅動程式; 264
        進程間的通信方式; 265
            通信概念; 265
            解決方案; 265
        進程間狀態模型; 266
        調度演算法都有哪些; 268
            批次處理中的調度; 268
                先來先服務; 268
                最短作業優先; 269
                最短剩餘時間優先; 269
            互動式系統中的調度; 269
                輪詢調度; 269
                優先順序調度; 270
                最短進程優先; 270
                彩票調度; 271
                公平分享調度; 271
        頁面置換演算法都有哪些; 271
        影響調度程式的指標是什麼; 272
        什麼是僵屍進程; 273
    關於作業系統,你必須知道的名詞; 273
    勘誤; 303

完整圖文:


















































































































































































































































































































發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *