| | | 操作繫統設計 XINU方法 原書第2版 | 該商品所屬分類:圖書 -> 科技 | 【市場價】 | 872-1264元 | 【優惠價】 | 545-790元 | 【作者】 | 道格拉斯·科默 | 【折扣說明】 | 一次購物滿999元台幣免運費+贈品 一次購物滿2000元台幣95折+免運費+贈品 一次購物滿3000元台幣92折+免運費+贈品 一次購物滿4000元台幣88折+免運費+贈品
| 【本期贈品】 | ①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
| |
版本 | 正版全新電子版PDF檔 | 您已选择: | 正版全新 | 溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。*. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。 *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。 *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。 | | | | 內容介紹 | |
![](/c3/46050845453.jpg)
出版社:機械工業出版社 ISBN:9787111621911 商品編碼:46050845453 品牌:文軒 出版時間:2019-04-01 代碼:99 作者:道格拉斯·科默
"![](http://img14.360buyimg.com/cms/jfs/t1/203358/9/26405/134589/62f4a34cEcdefae53/84e082ed3b03dbc0.jpg) 作 者:(美)道格拉斯·科默(Douglas Comer) 著 陳向群,郭立峰 等 譯 定 價:99 出 版 社:機械工業出版社 出版日期:2019年04月01日 頁 數:464 裝 幀:平裝 ISBN:9787111621911 ●出版者的話 譯者序 前言 關於作者 章引言和概述1 1.1操作繫統1 1.2本書的研究方法2 1.3分層設計2 1.4 nu操作繫統4 1.5操作繫統的界定4 1.6從外部看操作繫統5 1.7其他章節概要6 1.8觀點6 1.9總結7 練習7 第2章並發執行與操作繫統服務8 2.1引言8 2.2多活動的編程模型8 2.3操作繫統服務9 2.4並發處理的概念和術語9 2.5串行程序和並發程序的區別11 2.6多個進程共享同一段代碼12 2.7進程退出與進程終止14 2.8共享內存、競爭條件和同步14 2.9信號量與互斥18 2.10 nu中的類型命名方法19 2.11使用kputc和kprintf進行操作繫統的調試20 2.12觀點20 2.13總結21 練習21 第3章硬件與運行時環境概述22 3.1引言22 3.2開發平臺的物理和邏輯架構22 3.3指令集23 3.4通用寄存器23 3.5I/O總線和存-取範例24 3.6DMA機制25 3.7總線地址空間25 3.8總線啟動和配置26 3.9函數調用約定和運行時棧26 3.10中斷和中斷處理28 3.11中斷向量29 3.12異常向量和異常處理29 3.13時鐘硬件29 3.14串行通信30 3.15輪詢與中斷驅動I/O30 3.16存儲布局30 3.17內存保護31 3.18硬件細節和片上繫統體繫結構31 3.19觀點31 3.20硬件參考資料32 練習32 第4章鏈表與隊列操作33 4.1引言33 4.2進程鏈表的統一數據結構33 4.3簡潔的鏈表數據結構34 4.4隊列數據結構的實現35 4.5內聯隊列操作函數36 4.6獲取鏈表中進程的基礎函數37 4.7FIFO隊列操作38 4.8優先級隊列的操作40 4.9鏈表初始化42 4.10觀點43 4.11總結43 練習43 第5章調度和上下文切換45 5.1引言45 5.2進程表45 5.3進程狀態47 5.4就緒和當前狀態48 5.5調度策略48 5.6調度的實現49 5.7推遲重新調度52 5.8上下文切換的實現52 5.9內存中保存的狀態52 5.10上下文切換操作53 5.11重新啟動進程執行的地址56 5.12並發執行和空進程57 5.13使進程就緒和調度常量57 5.14其他進程調度算法58 5.15觀點58 5.16總結59 練習59 第6章更多進程管理60 6.1引言60 6.2進程掛起和恢復60 6.3自我掛起和信息隱藏60 6.4繫統調用61 6.5禁止和恢復中斷62 6.6繫統調用模板63 6.7繫統調用返回值SYSERR和OK63 6.8掛起的實現64 6.9掛起當前進程65 6.10suspend函數的返回值65 6.11進程終止和進程退出66 6.12進程創建68 6.13其他進程管理函數72 6.14總結74 練習74 第7章協調並發進程76 7.1引言76 7.2進程同步的必要性76 7.3計數信號量的概念77 7.4避免忙等待77 7.5信號量策略和進程選擇77 7.6等待狀態78 7.7信號量數據結構79 7.8繫統調用wait79 7.9繫統調用signal80 7.10靜態和動態信號量分配81 7.11動態信號量的實現示例82 7.12信號量刪除83 7.13信號量重置84 7.14並行處理器(多核)之間的協調85 7.15觀點86 7.16總結86 練習87 第8章消息傳遞88 8.1引言88 8.2兩種類型的消息傳遞服務88 8.3消息使用資源的89 8.4消息傳遞函數和狀態轉換89 8.5send的實現90 8.6receive的實現91 8.7非阻塞消息接收的實現92 8.8觀點92 8.9總結92 練習93 第9章基本內存管理94 9.1引言94 9.2內存的類型94 9.3重量級進程的定義95 9.4示例繫統的內存管理95 9.5程序段和內存區域95 9.6動態內存分配96 9.7底層內存管理器的設計97 9.8分配策略和內存持久性97 9.9追蹤空閑內存98 9.10底層內存管理的實現98 9.11使用空閑內存的數據結構定義99 9.12分配堆存儲100 9.13分配棧存儲102 9.14堆和棧存儲的釋放103 9.15觀點105 9.16總結106 練習106 0章不錯內存管理和虛擬內存107 10.1引言107 10.2分區空間分配107 10.3緩衝池108 10.4分配緩衝區108 10.5將緩衝區返還給緩衝池110 10.6創建緩衝池111 10.7初始化緩衝池表112 10.8虛擬內存和內存復用113 10.9實地址空間和虛地址空間113 10.10支持按需分頁的硬件114 10.11使用頁表的地址轉換114 10.12頁表數據115 10.13按需分頁以及設計上的問題116 10.14頁面替換和全局時鐘算法116 10.15觀點117 10.16總結117 練習118 1章高層消息傳遞119 11.1引言119 11.2進程間通信端口119 11.3端口實現119 11.4端口表初始化120 11.5端口創建121 11.6向端口發送消息122 11.7從端口接收消息124 11.8端口的刪除和重置125 11.9觀點128 11.10總結128 練習128 2章中斷處理130 12.1引言130 12.2中斷的優點130 12.3中斷處理130 12.4中斷向量131 12.5中斷和異常集成131 12.6使用代碼的ARM異常向量132 12.7設備中斷向量號的分配135 12.8中斷分派136 12.9中斷的軟件結構137 12.10禁止中斷139 12.11中斷代碼調用函數的140 12.12中斷過程中重新調度的必要性140 12.13中斷過程中的重新調度140 12.14觀點141 12.15總結142 練習142 3章實時時鐘管理143 13.1引言143 13.2定時事件143 13.3實時時鐘和計時器硬件143 13.4實時時鐘中斷處理144 13.5延時與搶占145 13.6搶占的實現145 13.7使用增量鏈表對延遲進行有效管理146 13.8增量鏈表的實現147 13.9將進程轉入睡眠148 13.10定時消息接收150 13.11喚醒睡眠進程154 13.12時鐘中斷處理154 13.13時鐘初始化156 13.14觀點159 13.15總結159 練習159 4章設備無關的I/O161 14.1引言161 14.2I/O和設備驅動的概念結構161 14.3接口抽像和驅動抽像162 14.4I/O接口示例163 14.5打開-讀-寫-關閉範例163 14.6綁定I/O操作和設備名164 14.7 nu中的設備名164 14.8設備轉換表概念165 14.9設備的多個副本和共享驅動166 14.10高層I/O操作的實現168 14.11其他高層I/O函數169 14.12打開、關閉和引用計數172 14.13devtab中的空條目和錯誤條目174 14.14I/O繫統的初始化174 14.15觀點178 14.16總結179 練習179 5章設備驅動示例180 15.1引言180 15.2使用UART硬件進行串行通信180 15.3tty抽像180 15.4tty設備驅動的組織結構181 15.5請求隊列和緩衝區182 15.6上半部和下半部的同步183 15.7UART硬件FIFO與驅動設計184 15.8控制塊的概念184 15.9tty控制塊和數據聲明184 15.10次設備號186 15.11上半部tty字符輸入(ttygetc)187 15.12上半部tty讀取函數(ttyread)188 15.13上半部tty字符輸出(ttyputc)189 15.14開始輸出(ttykickout)190 15.15上半部tty多字符輸出(ttywrite)191 15.16下半部tty驅動函數(ttyhandler)192 15.17輸出中斷處理(ttyhandle_out)194 15.18tty輸入處理(ttyhandle_in)196 15.19tty控制塊初始化(ttyinit)202 15.20設備驅動控制(ttycontrol)204 15.21觀點205 15.22總結205 練習206 6章DMA設備和驅動(以太網)207 16.1引言207 16.2直接內存訪問和緩衝區207 16.3多個緩衝區和緩衝區環207 16.4使用DMA的以太網驅動示例208 16.5設備的硬件定義和常量209 16.6環和內存緩衝區211 16.7以太網控制塊的定義213 16.8設備和驅動初始化215 16.9從以太網設備讀取數據包221 16.10向以太網設備寫入數據包223 16.11以太網設備的中斷處理225 16.12以太網控制函數228 16.13觀點229 16.14總結229 練習229 7章最小互聯網協議棧230 17.1引言230 17.2所需的功能230 17.3同步會話、超時和網絡處理進程231 17.4設計的影響232 17.5ARP函數232 17.6網絡數據包的定義241 17.7網絡輸入進程242 17.8IP的相關定義245 17.9IP函數246 17.10UDP表的定義255 17.11UDP函數256 17.12互聯網控制報文協議267 17.13動態主機配置協議268 17.14觀點275 17.15總結275 練習275 8章遠程磁盤驅動277 18.1引言277 18.2磁盤抽像277 18.3磁盤驅動支持的操作277 18.4塊傳輸和高層I/O函數277 18.5遠程磁盤範例278 18.6高速緩存的重要概念278 18.7磁盤操作的語義279 18.8驅動數據結構的定義280 18.9驅動初始化(rdsinit)284 18.10上半部打開函數(rdsopen)287 18.11遠程通信函數(rdscomm)289 18.12上半部寫函數(rdswrite)291 18.13上半部讀函數(rdsread)293 18.14刷新掛起的請求296 18.15上半部控制函數(rdscontrol)297 18.16分配磁盤緩衝區(rdsbufalloc)299 18.17上半部關閉函數(rdsclose)300 18.18下半部通信進程(rdsprocess)302 18.19觀點306 18.20總結306 練習306 9章文件繫統308 19.1什麼是文件繫統308 19.2文件操作的示例集308 19.3本地文件繫統的設計309 19.4 nu文件繫統的數據結構309 19.5索引管理器的實現310 19.6清空索引塊(lfibclear)314 19.7獲取索引塊(lfibget)315 19.8存儲索引塊(lfibput)315 19.9從空閑鏈表中分配索引塊(lfiballoc)316 19.10從空閑鏈表中分配數據塊(lfdballoc)317 19.11使用設備無關的I/O函數進行文件操作319 19.12文件繫統的設備配置和函數名稱320 19.13本地文件繫統打開函數(lfsopen)320 19.14關閉文件偽設備(lflclose)326 19.15刷新磁盤中的數據(lfflush)328 19.16文件的批量傳輸函數(lflwrite、lflread)328 19.17在文件中查找新位置(lflseek)330 19.18從文件中提取一字節(lflgetc)331 19.19改變文件中的一字節(lflputc)332 19.20載入索引塊和數據塊(lfsetup)334 19.21主文件繫統設備的初始化(lfsinit)337 19.22偽設備的初始化(lflinit)338 19.23文件截斷(lftruncate)339 19.24初始文件繫統的創建(lfscreate)341 19.25觀點343 19.26總結343 練習343 第20章遠程文件機制345 20.1引言345 20.2遠程文件訪問345 20.3遠程文件語義345 20.4遠程文件設計和消息346 20.5遠程文件服務器通信(rfscomm)352 20.6發送基本消息(rfsndmsg)354 20.7網絡字節序355 20.8使用設備範例的遠程文件繫統355 20.9打開遠程文件(rfsopen)356 20.10檢查文件模式(rfsgetmode)359 20.11關閉遠程文件(rflclose)360 20.12讀遠程文件(rflread)361 20.13寫遠程文件(rflwrite)363 20.14遠程文件的定位(rflseek)365 20.15遠程文件單字符I/O(rflgetc、rflputc)366 20.16遠程文件繫統控制函數(rfscontrol)367 20.17初始化遠程文件繫統(rfsinit、rflinit)370 20.18觀點372 20.19總結372 練習372 第21章句法名字空間374 21.1引言374 21.2透明與名字空間抽像374 21.3多種命名方案375 21.4命名繫統設計的其他方案376 21.5基於句法的名字空間376 21.6模式和替換376 21.7前綴模式377 21.8名字空間的實現377 21.9名字空間的數據結構和常量377 21.10增加名字空間前綴表的映射378 21.11使用前綴表進行名字映射379 21.12打開命名文件383 21.13名字空間初始化383 21.14對前綴表中的項進行排序386 21.15選擇邏輯名字空間386 21.16默認層次和空前綴387 21.17額外的對像操作函數387 21.18名字空間方法的優點和388 21.19廣義模式388 21.20觀點389 21.21總結389 練習390 第22章繫統初始化391 22.1引言391 22.2引導程序:從零開始391 22.3一個通過網絡啟動的例子392 22.4操作繫統初始化392 22.5 nu初始化393 22.6 nu繫統啟動395 22.7從程序轉化為進程399 22.8觀點399 22.9總結399 練習400 第23章子繫統初始化和內存標記401 23.1引言401 23.2自初始化模塊401 23.3並發繫統中的自初始化模塊402 23.4重新啟動後的自初始化403 23.5使用登錄號初始化404 23.6廣義內存標記方案405 23.7內存標記繫統的數據聲明406 23.8標記的實現407 23.9觀點408 23.10總結408 練習408 第24章異常處理409 24.1引言409 24.2術語:故障、檢測、陷阱和異常409 24.3向量異常和可屏蔽中斷 409 24.4異常的類型410 24.5處理異常410 24.6異常向量初始化411 24.7面對災難時的panic411 24.8panic函數的實現411 24.9觀點412 24.10總結412 練習412 第25章繫統配置413 25.1引言413 25.2多重配置的需求413 25.3 nu繫統配置414 25.4 nu配置文件的內容414 25.5計算次設備號416 25.6配置 nu繫統的步驟417 25.7觀點417 25.8總結417 練習417 第26章一個用戶接口例子: nu shell419 26.1引言419 26.2什麼是用戶接口419 26.3命令和設計原則419 26.4一個簡化shell的設計決策420 26.5shell的組織和操作420 26.6詞法符號的定義421 26.7命令行語法的定義421 26.8 nu shell的實現422 26.9符號的存儲424 26.10詞法分析器代碼424 26.11命令解釋器的核心428 26.12命令名查詢和內部處理434 26.13傳遞給命令的參數435 26.14向外部命令傳遞參數435 26.15I/O重定向438 26.16命令函數(sleep)的例子439 26.17觀點440 26.18總結441 練習441 附錄1操作繫統移植443 附錄2 nu設計注解450 索引454 本書以 nu(一個小型簡潔的操作繫統)為例,全面介紹操作繫統設計方面的知識。本書著重討論用於嵌入式設備的微內核操作繫統,采用的方法是在現有的操作繫統課程中納入更多的嵌入式處理內容,而非引入一門教讀者如何在嵌入式繫統上編程的新課程。本書從底層機器開始,一步步地設計和實現一個小型但優雅的操作繫統 nu,指導讀者通過實用、簡單的原語來構造傳統的基於進程的操作繫統。本書回顧了主要的繫統組件,並利用分層設計範式,以一種有序、易於理解的方式組織內容。 ![](https://img10.360buyimg.com/imgzone/jfs/t1/147514/7/5440/73116/5f34a3beE3ba58783/f5b2391383f5625c.jpg)
" | | | | | |