[ 收藏 ] [ 简体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  •  管理

     一般管理学
     市场/营销
     会计
     金融/投资
     经管音像
     电子商务
     创业企业与企业家
     生产与运作管理
     商务沟通
     战略管理
     商业史传
     MBA
     管理信息系统
     工具书
     外文原版/影印版
     管理类职称考试
     WTO
     英文原版书-管理
  •  投资理财

     证券/股票
     投资指南
     理财技巧
     女性理财
     期货
     基金
     黄金投资
     外汇
     彩票
     保险
     购房置业
     纳税
     英文原版书-投资理财
  •  经济

     经济学理论
     经济通俗读物
     中国经济
     国际经济
     各部门经济
     经济史
     财政税收
     区域经济
     统计 审计
     贸易政策
     保险
     经济数学
     各流派经济学说
     经济法
     工具书
     通货膨胀
     财税外贸保险类考试
     英文原版书-经济
  •  社会科学

     语言文字
     社会学
     文化人类学/人口学
     新闻传播出版
     社会科学总论
     图书馆学/档案学
     经典名家作品集
     教育
     英文原版书-社会科学
  •  哲学

     哲学知识读物
     中国古代哲学
     世界哲学
     哲学与人生
     周易
     哲学理论
     伦理学
     哲学史
     美学
     中国近现代哲学
     逻辑学
     儒家
     道家
     思维科学
     马克思主义哲学
     经典作品及研究
     科学哲学
     教育哲学
     语言哲学
     比较哲学
  •  宗教

  •  心理学

  •  古籍

  •  文化

  •  历史

     历史普及读物
     中国史
     世界史
     文物考古
     史家名著
     历史地理
     史料典籍
     历史随笔
     逸闻野史
     地方史志
     史学理论
     民族史
     专业史
     英文原版书-历史
     口述史
  •  传记

  •  文学

  •  艺术

     摄影
     绘画
     小人书/连环画
     书法/篆刻
     艺术设计
     影视/媒体艺术
     音乐
     艺术理论
     收藏/鉴赏
     建筑艺术
     工艺美术
     世界各国艺术概况
     民间艺术
     雕塑
     戏剧艺术/舞台艺术
     艺术舞蹈
     艺术类考试
     人体艺术
     英文原版书-艺术
  •  青春文学

  •  文学

     中国现当代随笔
     文集
     中国古诗词
     外国随笔
     文学理论
     纪实文学
     文学评论与鉴赏
     中国现当代诗歌
     外国诗歌
     名家作品
     民间文学
     戏剧
     中国古代随笔
     文学类考试
     英文原版书-文学
  •  法律

     小说
     世界名著
     作品集
     中国古典小说
     四大名著
     中国当代小说
     外国小说
     科幻小说
     侦探/悬疑/推理
     情感
     魔幻小说
     社会
     武侠
     惊悚/恐怖
     历史
     影视小说
     官场小说
     职场小说
     中国近现代小说
     财经
     军事
  •  童书

  •  成功/励志

  •  政治

  •  军事

  •  科普读物

  •  计算机/网络

     程序设计
     移动开发
     人工智能
     办公软件
     数据库
     操作系统/系统开发
     网络与数据通信
     CAD CAM CAE
     计算机理论
     行业软件及应用
     项目管理 IT人文
     计算机考试认证
     图形处理 图形图像多媒体
     信息安全
     硬件
     项目管理IT人文
     网络与数据通信
     软件工程
     家庭与办公室用书
  •  建筑

  •  医学

     中医
     内科学
     其他临床医学
     外科学
     药学
     医技学
     妇产科学
     临床医学理论
     护理学
     基础医学
     预防医学/卫生学
     儿科学
     医学/药学考试
     医院管理
     其他医学读物
     医学工具书
  •  自然科学

     数学
     生物科学
     物理学
     天文学
     地球科学
     力学
     科技史
     化学
     总论
     自然科学类考试
     英文原版书-自然科学
  •  工业技术

     环境科学
     电子通信
     机械/仪表工业
     汽车与交通运输
     电工技术
     轻工业/手工业
     化学工业
     能源与动力工程
     航空/航天
     水利工程
     金属学与金属工艺
     一般工业技术
     原子能技术
     安全科学
     冶金工业
     矿业工程
     工具书/标准
     石油/天然气工业
     原版书
     武器工业
     英文原版书-工业技
  •  农业/林业

  •  外语

  •  考试

  •  教材

  •  工具书

  •  中小学用书

  •  中小学教科书

  •  动漫/幽默

  •  烹饪/美食

  •  时尚/美妆

  •  旅游/地图

  •  家庭/家居

  •  亲子/家教

  •  两性关系

  •  育儿/早教

     保健/养生
     体育/运动
     手工/DIY
     休闲/爱好
     英文原版书
     港台图书
     研究生
     工学
     公共课
     经济管理
     理学
     农学
     文法类
     医学
  • 計算機繫統:繫統架構與操作繫統的高度集成
    該商品所屬分類:計算機/網絡 -> 操作繫統/繫統開發
    【市場價】
    1092-1584
    【優惠價】
    683-990
    【作者】 (美)拉姆阿堪德蘭,(美)萊希 著,陳文光 等譯 
    【所屬類別】 圖書  計算機/網絡  操作繫統/繫統開發  繫統開發 
    【出版社】機械工業出版社 
    【ISBN】9787111506362
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    開本:16開
    紙張:膠版紙
    包裝:平裝

    是否套裝:否
    國際標準書號ISBN:9787111506362
    叢書名:計算機科學叢書

    作者:(美)拉姆阿堪德蘭,(美)萊希著,陳文光等譯
    出版社:機械工業出版社
    出版時間:2015年07月 


        
        
    "

    內容簡介
    本書采用集成方法,繫統地講解了計算機繫統的軟件和硬件知識。全書分為5個模塊:處理器、內存繫統、存儲繫統、並行繫統和網絡,分別介紹並討論了處理器及其相關的軟件問題、內存繫統和內存分級體繫、I/O和文件繫統、操作繫統問題及支持並行編程的多處理器中相應體繫結構特點、網絡硬件的發展和處理各種網絡行為的網絡協議堆的特點等。
    目錄
    出版者的話
    譯者序
    前言
    第1章 概述
    1.1 盒子裡有什麼
    1.2 計算機繫統中的抽像層次
    1.3 操作繫統的作用
    1.4 盒子裡正在發生什麼事
    1.5 計算機硬件的演化
    1.6 操作繫統的演化
    1.7 本書導讀
    練習題
    參考文獻注釋和擴展閱讀
    第2章 處理器體繫結構出版者的話

    譯者序

    前言

    第1章 概述

    1.1 盒子裡有什麼

    1.2 計算機繫統中的抽像層次

    1.3 操作繫統的作用

    1.4 盒子裡正在發生什麼事

    1.5 計算機硬件的演化

    1.6 操作繫統的演化

    1.7 本書導讀

    練習題

    參考文獻注釋和擴展閱讀

    第2章 處理器體繫結構

    2.1 處理器設計涉及什麼

    2.2 如何設計指令集

    2.3 常見的高級語言功能集

    2.4 表達式和賦值語句

    2.5 高級數據抽像

    2.6 條件語句和循環

    2.7 檢查點

    2.8 編譯函數調用

    2.9 指令集體繫結構選擇

    2.10 LC2200指令集

    2.11 影響處理器設計的問題

    小結

    練習題

    參考文獻注釋和擴展閱讀

    第3章 處理器實現

    3.1 體繫結構與實現

    3.2 處理器實現涉及什麼

    3.3 重要的硬件概念

    3.4 數據通路設計

    3.5 設計

    3.6 設計的另一種選擇

    小結

    歷史回顧

    練習題

    參考文獻注釋和擴展閱讀

    第4章 中斷、陷入及異常

    4.1 程序執行中的不連續性

    4.2 處理程序不連續性

    4.3 處理程序不連續性的體繫結構改進

    4.4 處理程序不連續性的硬件細節

    4.5 信息彙總

    小結

    練習題

    參考文獻注釋和擴展閱讀

    第5章 處理器性能與流水線處理器的設計

    第6章 處理器調度

    第7章 內存管理技術

    第8章 頁式內存管理

    第9章 分級存儲體繫

    第10章 輸入/輸出和穩定性存儲

    第11章 文件繫統

    第12章 多線程編程與多處理器

    第13章 網絡與網絡協議基礎知識

    第14章 尾聲:旅途回顧

    索引
    前言
    Computer Systems: An Integrated Approach to Architecture and Operating Systems
    為什麼在計算機繫統領域需要有一本新書
    和高中生談論計算機會讓人感到興奮。人們對“盒子(計算機機箱)裡”有什麼東西有一種神秘感,正是那個盒子裡的東西使計算機能夠完成諸如讓用戶玩有很棒圖形的視頻遊戲、播放音樂(不管是RAP還是交響樂)、發送即時消息給用戶的朋友等功能。本書的目的就是與讀者一起開展一段揭示盒子裡有什麼秘密的旅程。作為即將開展的旅程的一瞥,讓我們在一開始就表明,讓這個盒子變得有趣的並不僅僅是硬件,還包括軟件和硬件是如何結合起來完成各種功能的。因此,本書所采用的途徑是把軟件和硬件放在一起觀察,看它們是如何相互幫助以及如何協同起來讓計算機變得有趣而且有用的。我們把這個過程稱作“打開盒子”—即揭開盒子裡有什麼這個秘密:我們查看盒子內部並理解如何設計關鍵的(處理器、內存以及外設控制器),理解要管理計算機中的所有硬件資源,包括處理器、內存、I/O和硬盤、多處理器以及網絡所需的操作繫統抽像。因此,這是一本計算機繫統教Computer Systems: An Integrated Approach to Architecture and Operating Systems
    為什麼在計算機繫統領域需要有一本新書Computer Systems: An Integrated Approach to Architecture and Operating Systems

    為什麼在計算機繫統領域需要有一本新書

    和高中生談論計算機會讓人感到興奮。人們對“盒子(計算機機箱)裡”有什麼東西有一種神秘感,正是那個盒子裡的東西使計算機能夠完成諸如讓用戶玩有很棒圖形的視頻遊戲、播放音樂(不管是RAP還是交響樂)、發送即時消息給用戶的朋友等功能。本書的目的就是與讀者一起開展一段揭示盒子裡有什麼秘密的旅程。作為即將開展的旅程的一瞥,讓我們在一開始就表明,讓這個盒子變得有趣的並不僅僅是硬件,還包括軟件和硬件是如何結合起來完成各種功能的。因此,本書所采用的途徑是把軟件和硬件放在一起觀察,看它們是如何相互幫助以及如何協同起來讓計算機變得有趣而且有用的。我們把這個過程稱作“打開盒子”—即揭開盒子裡有什麼這個秘密:我們查看盒子內部並理解如何設計關鍵的(處理器、內存以及外設控制器),理解要管理計算機中的所有硬件資源,包括處理器、內存、I/O和硬盤、多處理器以及網絡所需的操作繫統抽像。因此,這是一本計算機繫統教Computer Systems: An Integrated Approach to Architecture and Operating Systems

    為什麼在計算機繫統領域需要有一本新書

    和高中生談論計算機會讓人感到興奮。人們對“盒子(計算機機箱)裡”有什麼東西有一種神秘感,正是那個盒子裡的東西使計算機能夠完成諸如讓用戶玩有很棒圖形的視頻遊戲、播放音樂(不管是RAP還是交響樂)、發送即時消息給用戶的朋友等功能。本書的目的就是與讀者一起開展一段揭示盒子裡有什麼秘密的旅程。作為即將開展的旅程的一瞥,讓我們在一開始就表明,讓這個盒子變得有趣的並不僅僅是硬件,還包括軟件和硬件是如何結合起來完成各種功能的。因此,本書所采用的途徑是把軟件和硬件放在一起觀察,看它們是如何相互幫助以及如何協同起來讓計算機變得有趣而且有用的。我們把這個過程稱作“打開盒子”—即揭開盒子裡有什麼這個秘密:我們查看盒子內部並理解如何設計關鍵的(處理器、內存以及外設控制器),理解要管理計算機中的所有硬件資源,包括處理器、內存、I/O和硬盤、多處理器以及網絡所需的操作繫統抽像。因此,這是一本計算機繫統教學的入門課程教材,采用了一種新穎的集成教學法來介紹相關內容。

    本書的目標是讓學生在本科生涯(計算機科學或計算機工程專業)的早期就在相關主題方面接觸足夠寬泛的知識。本書的內容是為用軟硬件集成的方式進行課程教學而寫的,這種方式使得學生可以了解計算機體繫結構和繫統軟件之間的關繫。書中的材料可以作為4學分的半年學期課程教材,或者作為5學分的季度課程教材,或是作為每季度3學分的兩季度的課程繫列的教材。基於本書的課程可以為學生打下很好的基礎,以進一步深入學習計算機體繫結構、操作繫統和網絡的高級課程或研究生課程,在這些領域進一步深造。此外,這類課程可以盡早激發學生對計算機繫統的興趣,對學生在本科期間參加研究工作也有幫助。

    本書的主要特點(除了處理器和內存繫統之外)如下:

    1)詳細介紹了存儲繫統;

    2)專門用一章介紹了網絡問題;

    3)專門用一章介紹了多線程和多進程編程。

    教學風格

    本書采用的教學風格是“發現”而非“教導”或“灌輸”。此外,內容是以“自頂向下”的方式展現的,讀者首先看到我們要解決的問題,然後看到解決方案。以內存管理部分(第8章)為例。我們首先提出問題“什麼是內存管理”,一旦理解了內存管理的需求,我們再開始探討內存管理所需的軟件技術和相應的硬件支持。因此,本書是以一種講故事的方式來進行概念展現,學生們看起來很喜歡這種方式。在適當的地方,我們在不同章節用一些例題來闡明觀點。

    我們在撰寫本書的時候始終以學生為中心。書中包含大量例題,可以幫助學生固化剛剛討論過的概念。從我們作為教師的經驗來看,學生確實喜歡了解歷史背景(那些對計算的演化起到重要影響的著名的計算機科學家和機構)和現狀,以及我們是怎麼一步一步發展過來的。這些歷史片段遍布在全書中。除此之外,在必要的時候,在若干章我們都包括了一節從歷史角度進行的回顧。我們從學生那裡學到並采用的另一個措施是在文中直接給出參考文獻,而不是在文末纔給出。讀者可以看到貫穿本書的大量腳注。此外,我們在每章末尾專門有一節給出外部鏈接(教材和開創性的著作),包括參考文獻和擴展閱讀的建議,這些內容在正文中不一定都被引用了,但是有助於增強學生的知識基礎。今天,隨著因特網上的信息日益豐富,為附加的信息提供URL鏈接是一件很有誘惑力的事情。但是,我們拒絕了這一誘惑(除了那些權威信息源的可靠鏈接)。盡管如此,我們知道現在學生在去圖書館之前會先搜索因特網,當然他們也應該這麼做。在這種情況下,我們給學生一個提示:在利用因特網作為信息源的時候要慎重。通常,使用Google搜索是獲取某種信息的快方法。但是,必須對這些信息進行篩選以保證其準確性。作為經驗法則,使用因特網上的信息來滿足好奇心或是回答與流言有關的問題。(DEC是如何衰落的?為什麼Linux成功了而Unix BSD卻沒有?Burroughs公司的歷史是什麼?計算機繫統的真正先驅是哪些人?)對於技術問題(Pentium 4處理器的流水線結構是什麼?VAX 11/780的指令集體繫結構是什麼?)則要從已出版的書籍、相關會議和期刊論文(當然它們中的大多數也可以在線獲取)中尋求答案。

    佐治亞理工學院計算機學院從1999年秋季學期開始,每學期都開設這門軟硬件集成的課程,本教材就是這門課程的副產品。在一開始,本書作者為課程開發了完整的講義和幻燈片,並使用兩本標準的教材(一本體繫結構教材和一本操作繫統教材)作為課程的背景參考資料來補充課程的材料。從2005年春季開始,我們將課件轉換成了本教材的手稿,因為學生一直想要一本與課程內容和風格匹配的教材。本教材的在線版本從2005年春季開始在佐治亞理工學院用於本課程,使用集成的方法介紹計算機繫統。本課程每年開設3次(包括夏季學期),每學期有80多名學生選課。因此,書稿在付印之前經過了連續15個學期的教學,從選修本課的學生那裡接受了持續不斷的反饋與改進意見。

    在設計產生本書的課程時,以及在撰寫本書的時候,我們從其他機構開設的繫統入門課程以及一些優秀教材中學到了很多東西。例如,MIT的計算機繫統入門課程擁有很長的歷史和傳統,而且是真正獨一無二的。從這門課程中總結的教材[Saltzer,2009]對激發學生深入學習計算機繫統來說是極好的資源。在撰寫本書的時候,我們坦承受到了[Ward,1989]和[Kurose,2006]的教學法的啟發。

    本書的結構和可能的閱讀路徑

    本書的知識內容可以分為5個模塊。下面的路線圖建議了一些可能的閱讀路徑。這些路徑假設關於體繫結構和操作繫統的內容一樣多。

    1)處理器 本書的個模塊是關於處理器以及與處理器相關的軟件問題的。我們從探索如何設計盒子中的大腦(處理器)開始。有哪些軟件問題?既然計算機的大部分部件主要是使用高級語言編程的,我們考慮了高級語言結構是如何影響處理器的指令集的(第2章)。一旦理解了指令集的設計,我們就開始關注實現處理的硬件技術。我們從實現一個簡單的處理器開始(第3章),然後考慮實現一個使用流水線技術的性能優化的處理器(第5章)。處理器是計算機繫統中的寶貴資源,因此必須在多個相互競爭的程序間復用,正如第1章中視頻遊戲的例子所揭示的一樣(見1.3節)。操作繫統的職責就是保證資源的有效使用。本模塊以用於處理器調度的操作繫統算法結束(第6章)。

    我們預計第2、3、5和6章每章需要3小時的課堂講授時間和1小時的練習題時間。

    2)內存繫統 第二個模塊介紹了內存繫統和內存層次。計算機程序包括代碼和數據,並且都需要存放的空間。計算機的內存繫統可能是決定性能為關鍵的因素。如果內存繫統不能以匹配處理器速度的方式提供執行程序所需的代碼和數據,處理器速度(現在以Ghz為量度)就毫無意義。由於技術的進步,內存繫統的大小一直在跨越式發展,但應用程序使用內存的胃口也在以同樣的速度增長著,如果不是增長得更快的話。因此,內存也是寶貴資源,操作繫統的作用就是保證用好資源。本模塊的部分是關於有效管理內存的操作繫統算法以及相應的體繫結構支持的(第7章和第8章);第二部分則介紹內存層次,可以幫助降低處理器在訪問代碼和數據時的延遲(第9章)。

    我們預計第7、8和9章每章需要3小時的課堂講授時間和1小時的練習題時間。

    3)存儲繫統 第三個模塊是關於I/O(特別是穩定存儲)和文件繫統的。隻有與計算機進行交互纔能讓計算機有用且有趣。首先,我們討論能夠把處理器的注意力從當前執行的程序中脫離出來的硬件機制(第4章)。這些機制既包括外部事件也包括處理器執行程序時遇到的內部異常。與硬件機制相關的軟件問題是解決正常程序執行的“不連續”性,包括記錄原有程序的執行位置以及程序的當前執行狀態。然後,我們介紹處理器與I/O設備的接口機制以及相應的底層軟件技術(第10章),並特別強調了磁盤子繫統。隨後,我們完整地介紹了在穩定的存儲設備(如磁盤)上如何構建文件繫統(第11章)。

    我們預計第4章和第10章每章需要3小時的課堂講授時間和1小時的練習題時間,第11章需要6小時的課堂講授時間和2小時的練習題時間。

    4)並行繫統 計算機體繫結構是一個快速變化的領域。芯片密度、處理器速度、內存容量等在過去20年中都呈現出指數增長速度,並在可預見的未來仍然保持這樣的增長速度。並行處理已不再是超級計算機獨有的深奧概念。隨著在一個芯片上集成多個CPU的多核技術的到來,並行性已經變得很常見。因此,理解與並行性有關的軟件和硬件技術對於回答“盒子裡有什麼”這樣的問題十分必要。這個模塊包括多處理器中支持並行編程的操作繫統問題以及相應的體繫結構功能(第12章)。

    我們預計第12章需要6小時的課堂講授時間和2小時的練習題時間。

    5)網絡 在我們生活的世界上,單獨一個盒子幾乎沒有任何用處,除非它與外部世界相連。與你的朋友在網絡上對戰多人視頻遊戲(在第1章介紹)是一個很好的例子。但即使在日常生活中,我們也需要利用網絡來收發電子郵件或瀏覽因特網等。網絡與其他輸入/輸出設備的不同之處在於,現在你的盒子得以連接世界了!你需要一種語言讓你的盒子與外部世界交談,並處理網絡的各種情況,例如暫時或永久的連接中斷。這一模塊討論了網絡硬件的進化,以及用來處理各種網絡狀況的網絡協議棧(操作繫統的一部分)的功能(第13章)。

    我們預計第13章需要6小時的課堂講授時間和2小時的練習題時間。

    總而言之,第2章~第10章每章需要用1周時間授課;第11章~第13章每章需要2周時間授課,正好在15周的一個學期裡講完。五個模塊中的軟件和硬件問題在本書中是一起介紹的,上述建議的閱讀路徑也是按照這種處理方式進行的。

    讀者也可以選擇在體繫結構和操作繫統主題之間重點關注某部分的內容,而不會損失連續性。以處理器模塊為例,第3章和第5章都是關於處理器的硬件實現問題的。對於偏重操作繫統的課程,可以考慮少講授或者完全跳過介紹流水線處理器實現(從5.7節開始)的第5章,而不會損失課程的連續性。類似地,在偏重體繫結構的課程裡,可以跳過介紹處理器調度算法的第6章,而不會損失課程的連續性。

    在內存模塊中,第8章從操作繫統角度涉及頁式內存管理的細節。偏重體繫結構的課程可以跳過這一章,而不會損失連續性。類似地,偏重操作繫統的課程可以選擇淡化第9章中對緩存的細節描述。

    在存儲模塊中,面向體繫結構的課程可以選擇淡化第11章中文件繫統的內容,而不必擔心損失連續性。

    在並行模塊中(第12章),面向體繫結構的課程可以跳過多線程的操作繫統支持,以及一些高級主題,包括多處理器調度、死鎖以及並發性的經典問題和解決方案;類似地,面向操作繫統的課程可以選擇跳過體繫結構方面的高級主題,例如多處理器緩存一致性、並行機的分類以及互連網絡等。考慮到並行性的重要性,在任何課程中,隻要時間許可,應盡量覆蓋這一章的全部內容。

    在網絡模塊中(第13章),面向體繫結構的課程可以跳過傳輸層和網絡層的細節(分別是13.6節和13.7節)。面向操作繫統的課程可以選擇少講一些協議棧的鏈路層(13.8節)和網絡硬件(13.9節)的內容。

    本教材在計算機科學課程體繫中的位置

    圖P1顯示了計算機繫統的抽像層次。我們可以嘗試將圖P1中的不同層次的抽像與傳統計算機科學課程體繫中的課程相關聯。諸如基礎程序設計、面向對像程序設計、圖形學以及HCI(人機交互)的課程通常使用較高層次的抽像。通常計算機科學和計算機工程的課程體繫中包含數字電路和邏輯電路設計的基礎課程,然後是計算機組成原理,介紹計算機的硬件設計。在計算機組成原理課程之上(在圖P1的抽像層次級別之上),大部分課程使用煙囪方法:不同的課程分別覆蓋計算機體繫結構、操作繫統和計算機網絡的高級概念。

    應用程序(高級語言表示的算法) 更高

    繫統軟件(編譯器和操作繫統)

    計算機體繫結構

    機器組成原理(數據通路和控制)

    時序和組合邏輯器件

    邏輯門

    晶體管

    固體物理 更低



    圖P1 計算機繫統中的抽像層次

    今天,設計計算機繫統已經是軟硬件集成的過程,這使人們對煙囪模式提出了質疑,特別是對計算機科學本科的課程體繫中學生發展專業技能的早期。

    以本書為基礎圍繞上述主題的課程是一種獨特的嘗試,用集成的方法在計算機繫統的入門課程中介紹中間層次的概念(覆蓋了圖P1中的深色區域—繫統軟件及其與計算機體繫結構的關繫)。這門課程將為渴望學習計算機體繫結構、操作繫統和網絡中的高級主題(圖P2)的學生提供堅實的基礎。





    圖P2 繫統課程繫列

    使用本書內容的課程的先修課程很直接:邏輯設計基礎和高級語言程序設計(好是C語言)基礎。換句話說,對在本書內容之上和之下的抽像層次需要有基本的理解(見圖P1)。

    在數字電路和邏輯設計基礎以及程序設計基礎方面都有非常優秀的教科書。類似地,在計算機體繫結構、操作繫統和計算機網絡的高級主題方面,也有優秀的教科書。唯獨缺少的是對計算機繫統進行簡單、集成化的介紹,使其成為基礎課程和高級主題之間橋梁的圖書。本書的目標就是成為這樣一座橋梁。

    計算機科學作為一門學科其邊界已經擴展了。相應地,學習計算機科學的學生的興趣也各不同。計算機科學的課程需要為學生在本科階段的學習提供不同的選擇。另一方面,課程也有責任保證,不論學生的選擇是什麼,都能學到計算機繫統(廣義)的核心知識。我們相信基於本書的課程可以滿足這樣一種繫統核心知識的要求。如果正確地講授本課程,可以給學生提供充足的機會,通過其他課程來深入學習計算機繫統。例如,我們建議在大學二年級開設將本書作為教材的課程。在大三的時候,學生可能可以學習更加面向設計的課程—針對體繫結構、操作繫統或是網絡—以他們在大二從本書中學到的基本概念為基礎。後,在大四的時候,學生可以選修在這些領域中更具概念性的高級主題課程。

    本書在體繫結構和操作繫統的內容方面是大致平衡的。我們認為,計算機科學專業的學生在本科期間應該對這兩方面同等重視,不管他們的職業目標是什麼。當然,希望成為繫統架構師的學生必須了解本書中介紹的軟件和硬件之間的互動。即使是希望進行軟件開發的學生,了解這些知識對於成為更好的程序員也是必需的。但是,這取決於每個老師對這兩個主題強調的程度。好消息是,本教材允許教師選擇他們認為必需的課程深度,以與他們所在學校的課程結構相適應。例如,如果教師選擇減少體繫結構方面的內容,可以很輕松地簡單介紹處理器實現的有關章節(第3章和第5章),而不必擔心內容的銜接問題。在討論本書結構的時候,我們已經對五個模塊給出了類似的建議。

    講授繫統的集成課程的補充材料

    我們充分理解教師在講授需要介紹體繫結構、操作繫統和網絡的計算機繫統的集成課程時所面臨的挑戰。

    為此,我們已經提供了一組在線資源。我們已經講授了11年本課程,每年3次,作為所有計算機專業學生的必修課,因此我們已經積累了相當多的在線資源。

    1)我們有本課程所有內容的PowerPoint講稿,使得準備課程和轉換(從原有的煙囪模型)更加容易。

    2)每個模塊都有一個重要的實驗部分。我們提供了這些已經迭代過多次的實驗的詳細描述,以及用於實驗特定方面的軟件模塊(例如模擬器)。

    3)除了每章後的練習題之外,我們針對本課程的不同模塊還有附加的問題集、家庭作業以及本課程迄今為止的期中和期末考試題。

    在補充材料中包含的樣例實驗

    處理器設計

    我們給學生提供一個完成了90%的處理器數據通路設計。通過完成數據通路可以幫助學生熟悉相關設計。然後他們要設計基於微碼的控制邏輯(使用類似LogicWorks的邏輯設計工具),利用數據通路實現一個簡單的指令集。這能幫助學生理解數據通路的工作原理並體會一些設計權衡。學生會得到真實電路設計的經驗,並通過邏輯設計軟件內置的模擬器對設計進行功能測試。

    中斷和輸入/輸出

    學生在個實驗的基礎上增加電路以實現中斷繫統。然後他們(使用彙編語言)寫一個中斷處理程序。實驗的電路設計部分再次通過LogicWorks軟件繫統實現並進行功能模擬。此外,我們還給學生提供了處理器模擬器,他們需要在其中增加中斷支持,並與他們用彙編語言寫的中斷處理器程序一起工作。這個實驗不僅可使中斷繫統的操作變得清晰,還展示了底層設備輸入/輸出的基本概念。

    虛存子繫統

    學生在處理器模擬器上實現虛存子繫統。在這個實驗中,學生可通過實現和實驗不同的頁替換策略,獲得開發操作繫統中內存管理部分的經驗。這個實驗是用C語言實現的。

    多線程操作繫統

    在我們提供的模擬器上,學生實現多線程操作繫統的基本模塊,包括CPU和I/O調度隊列等。他們可實驗不同的處理器調度策略。這個模塊是用C語言和pthread實現的。學生可從實驗中獲得並行編程經驗,並接觸不同的CPU調度算法。

    可靠傳輸層

    學生在我們提供的一個模擬的網絡層上實現一個簡單的可靠傳輸層。在傳輸層必須處理的問題包括損壞的包、丟包以及亂序到達。這個實驗也是用C語言和pthread實現的。

    注意

    在開始探索計算機繫統內部的旅程之前,我們要提醒讀者注意:在展示計算機繫統設計的教科書中,習慣上會通過有數字的例子來說明和支持相關概念。歷史可以揭示未來。如果說在技術發展中有什麼東西不變的話,那就是變化。當你買了一輛新車,在車駛出展廳的那一刻,這輛車就變成了二手車。同樣地,我們使用的任何有數字的例子中的數字,如處理器速度、內存容量或是外設的傳輸速率馬上就會過時。真正不變的是原理,這也是本書的核心內容。一個讓人欣慰的因素是,盡管數字可能會隨時間變化,從MHz到GHz,從MB到GB,相對數字隨著技術的發展相對保持不變,這使得書中的數字示例也具有持久性。

    致謝

    我們極大地受惠於若干國內外同行,他們直接或間接促成了本書的出現。首先,我們要感謝Yale Patt,從2004年夏天我們介紹了在佐治亞理工學院開設的這門課程後,他用具有無與倫比的說服力的方式告訴我們應該把課程的內容寫成教材,因為大家迫切需要一本用集成方式介紹繫統概念的圖書。我們可以很誠實地說,如果沒有他的鼓勵,我們可能不會走上寫書這條路。下面這些其他學校的同行也鼓勵我們進行本書的寫作,因此需要特別致謝:Jim Goodman(威斯康辛大學麥迪遜分校和新西蘭奧克蘭大學),Liviu Iftode(Rutger大學),Phil McKinley(密歇根州立大學)以及Anand Sivasubramaniam(賓州州立大學和TCS)。我們要特別感謝Jim Goodman,他仔細閱讀了本書手稿的早期草稿,並提出了詳細的反饋,使本書的敘述得到了極大的改進。除了這些人以外,我們還從其他學校的一些同行那裡得到了很多對本書實驗的積極支持。

    寫書的步是創建一份書稿供佐治亞理工學院的學生內部使用。對選擇佐治亞理工學院CS 2200課程的學生,我們怎麼感謝也不為過。從2005年春季學期開始,幾代學生使用了本書的在線版本,並提出了反饋意見,對改進本書表達的清晰性、精煉例題、提供讀者可能有興趣的歷史鏈接等起到了重要的作用。此外,有3名本科生幫助繪制了本書中的部分插圖:Kristin Champion、John Madden和Vu Ha。

    計算機學院的部分同事,包括Nate Clark、Tom Conte、Constantine Dovrolis、Gabriel Loh、Ken Mackenzie以及Milos Prvulovic,對本書給予了建議和有洞察力的評論,幫助本書的敘述更加清晰。我們受惠於Constantine Dovrolis對本書網絡一章早期版本的建議和反饋,使得我們不僅改進了內容,還改變了這一章的敘述順序。Ken Mackenzie的建議讓我們在第3章的處理器設計中給出了一種簡單的控制方法。Tom Conte對流水線一章給出了詳細的評論,幫助我們更清晰地表達內容。北卡州立大學的Eric Rotenberg為流水線一章的早期草稿提出了非常有意義的反饋。Junsuk Shin寫了本書附錄中的簡單客戶端服務器的套接字代碼。我們向他們所有人表示特別的感謝。

    我們要感謝佐治亞理工學院,以及計算機學院的遠見卓識,鼓勵我們在教學方面進行創新。實際上,從1996年開始對本科課程體繫的改革使得我們開始批判性地思考應該如何教育本科生並了解在課程體繫中缺少了什麼,這終導致我們開發了門集成方式的繫統課程,包括體繫結構、操作繫統和網絡等。

    作為圖書出版方面的新手,我們從成功的教科書作者那裡學到了經驗。我們需要特別感謝Yale Patt(德州大學)、Jim Kurose(麻省大學)、Jim Foley(佐治亞理工學院)、Andy van Dam(布朗大學)、Sham Navathe(佐治亞理工學院)、Rich LeBlanc(佐治亞理工學院)和Larry Synder(華盛頓大學)等。我們怎麼感謝他們都不為過,他們分享了很多經驗,包括出版社的選取、與編輯的合作、為可能的評閱人編制問題,以及如何有效地利用評閱意見修訂書稿。

    書稿經過了幾輪的外部評審。大部分匿名評閱人深思熟慮而且有技巧地精準指出了改進書稿的方式。我們對匿名審稿人付出時間和精力幫助本書後成型表示非常感謝。

    特別感謝AddisonWesley出版我們這本教科書。Matt Goldstein是一個極好的編輯,他負責本書的評閱流程,並建議我們如何修改書稿。他具有一種既能督促我們工作,又不顯得傲慢的獨特風格。當我們沒有按計劃完成任務時他表現出了極大的耐心,並對本書背後的願景給予了毫無保留的支持。我們要感謝Marilyn Lloyd,Pearson的高級產品經理,他負責我們的教科書產品。我們還要感謝Pearson的Jeff Holcomb、Chelsea Bell和 Dan Parker。作為管理產品流程日常事務的項目經理,Aptara公司的Dennis Freee 以及Apatara公司的職員,包括Jawwad Ali Khan和Rajshri Walia,以及Write With公司的Brian Baker,都值得特別提及。他們為本書盡快生產印刷做出了貢獻。

    後,我們要感謝我們的家人,他們的愛、理解與支持使我們能夠持續撰寫本書。補充一點,Umakishore的父親是一位著名的小說家(筆名“Umachandran”),他著有多本小說,對他的回憶是寫作本書的靈感。學的入門課程教材,采用了一種新穎的集成教學法來介紹相關內容。

    本書的目標是讓學生在本科生涯(計算機科學或計算機工程專業)的早期就在相關主題方面接觸足夠寬泛的知識。本書的內容是為用軟硬件集成的方式進行課程教學而寫的,這種方式使得學生可以了解計算機體繫結構和繫統軟件之間的關繫。書中的材料可以作為4學分的半年學期課程教材,或者作為5學分的季度課程教材,或是作為每季度3學分的兩季度的課程繫列的教材。基於本書的課程可以為學生打下很好的基礎,以進一步深入學習計算機體繫結構、操作繫統和網絡的高級課程或研究生課程,在這些領域進一步深造。此外,這類課程可以盡早激發學生對計算機繫統的興趣,對學生在本科期間參加研究工作也有幫助。

    本書的主要特點(除了處理器和內存繫統之外)如下:

    1)詳細介紹了存儲繫統;

    2)專門用一章介紹了網絡問題;

    3)專門用一章介紹了多線程和多進程編程。

    教學風格

    本書采用的教學風格是“發現”而非“教導”或“灌輸”。此外,內容是以“自頂向下”的方式展現的,讀者首先看到我們要解決的問題,然後看到解決方案。以內存管理部分(第8章)為例。我們首先提出問題“什麼是內存管理”,一旦理解了內存管理的需求,我們再開始探討內存管理所需的軟件技術和相應的硬件支持。因此,本書是以一種講故事的方式來進行概念展現,學生們看起來很喜歡這種方式。在適當的地方,我們在不同章節用一些例題來闡明觀點。

    我們在撰寫本書的時候始終以學生為中心。書中包含大量例題,可以幫助學生固化剛剛討論過的概念。從我們作為教師的經驗來看,學生確實喜歡了解歷史背景(那些對計算的演化起到重要影響的著名的計算機科學家和機構)和現狀,以及我們是怎麼一步一步發展過來的。這些歷史片段遍布在全書中。除此之外,在必要的時候,在若干章我們都包括了一節從歷史角度進行的回顧。我們從學生那裡學到並采用的另一個措施是在文中直接給出參考文獻,而不是在文末纔給出。讀者可以看到貫穿本書的大量腳注。此外,我們在每章末尾專門有一節給出外部鏈接(教材和開創性的著作),包括參考文獻和擴展閱讀的建議,這些內容在正文中不一定都被引用了,但是有助於增強學生的知識基礎。今天,隨著因特網上的信息日益豐富,為附加的信息提供URL鏈接是一件很有誘惑力的事情。但是,我們拒絕了這一誘惑(除了那些權威信息源的可靠鏈接)。盡管如此,我們知道現在學生在去圖書館之前會先搜索因特網,當然他們也應該這麼做。在這種情況下,我們給學生一個提示:在利用因特網作為信息源的時候要慎重。通常,使用Google搜索是獲取某種信息的快方法。但是,必須對這些信息進行篩選以保證其準確性。作為經驗法則,使用因特網上的信息來滿足好奇心或是回答與流言有關的問題。(DEC是如何衰落的?為什麼Linux成功了而Unix BSD卻沒有?Burroughs公司的歷史是什麼?計算機繫統的真正先驅是哪些人?)對於技術問題(Pentium 4處理器的流水線結構是什麼?VAX 11/780的指令集體繫結構是什麼?)則要從已出版的書籍、相關會議和期刊論文(當然它們中的大多數也可以在線獲取)中尋求答案。

    佐治亞理工學院計算機學院從1999年秋季學期開始,每學期都開設這門軟硬件集成的課程,本教材就是這門課程的副產品。在一開始,本書作者為課程開發了完整的講義和幻燈片,並使用兩本標準的教材(一本體繫結構教材和一本操作繫統教材)作為課程的背景參考資料來補充課程的材料。從2005年春季開始,我們將課件轉換成了本教材的手稿,因為學生一直想要一本與課程內容和風格匹配的教材。本教材的在線版本從2005年春季開始在佐治亞理工學院用於本課程,使用集成的方法介紹計算機繫統。本課程每年開設3次(包括夏季學期),每學期有80多名學生選課。因此,書稿在付印之前經過了連續15個學期的教學,從選修本課的學生那裡接受了持續不斷的反饋與改進意見。

    在設計產生本書的課程時,以及在撰寫本書的時候,我們從其他機構開設的繫統入門課程以及一些優秀教材中學到了很多東西。例如,MIT的計算機繫統入門課程擁有很長的歷史和傳統,而且是真正獨一無二的。從這門課程中總結的教材[Saltzer,2009]對激發學生深入學習計算機繫統來說是極好的資源。在撰寫本書的時候,我們坦承受到了[Ward,1989]和[Kurose,2006]的教學法的啟發。

    本書的結構和可能的閱讀路徑

    本書的知識內容可以分為5個模塊。下面的路線圖建議了一些可能的閱讀路徑。這些路徑假設關於體繫結構和操作繫統的內容一樣多。

    1)處理器 本書的個模塊是關於處理器以及與處理器相關的軟件問題的。我們從探索如何設計盒子中的大腦(處理器)開始。有哪些軟件問題?既然計算機的大部分部件主要是使用高級語言編程的,我們考慮了高級語言結構是如何影響處理器的指令集的(第2章)。一旦理解了指令集的設計,我們就開始關注實現處理的硬件技術。我們從實現一個簡單的處理器開始(第3章),然後考慮實現一個使用流水線技術的性能優化的處理器(第5章)。處理器是計算機繫統中的寶貴資源,因此必須在多個相互競爭的程序間復用,正如第1章中視頻遊戲的例子所揭示的一樣(見1.3節)。操作繫統的職責就是保證資源的有效使用。本模塊以用於處理器調度的操作繫統算法結束(第6章)。

    我們預計第2、3、5和6章每章需要3小時的課堂講授時間和1小時的練習題時間。

    2)內存繫統 第二個模塊介紹了內存繫統和內存層次。計算機程序包括代碼和數據,並且都需要存放的空間。計算機的內存繫統可能是決定性能為關鍵的因素。如果內存繫統不能以匹配處理器速度的方式提供執行程序所需的代碼和數據,處理器速度(現在以Ghz為量度)就毫無意義。由於技術的進步,內存繫統的大小一直在跨越式發展,但應用程序使用內存的胃口也在以同樣的速度增長著,如果不是增長得更快的話。因此,內存也是寶貴資源,操作繫統的作用就是保證用好資源。本模塊的部分是關於有效管理內存的操作繫統算法以及相應的體繫結構支持的(第7章和第8章);第二部分則介紹內存層次,可以幫助降低處理器在訪問代碼和數據時的延遲(第9章)。

    我們預計第7、8和9章每章需要3小時的課堂講授時間和1小時的練習題時間。

    3)存儲繫統 第三個模塊是關於I/O(特別是穩定存儲)和文件繫統的。隻有與計算機進行交互纔能讓計算機有用且有趣。首先,我們討論能夠把處理器的注意力從當前執行的程序中脫離出來的硬件機制(第4章)。這些機制既包括外部事件也包括處理器執行程序時遇到的內部異常。與硬件機制相關的軟件問題是解決正常程序執行的“不連續”性,包括記錄原有程序的執行位置以及程序的當前執行狀態。然後,我們介紹處理器與I/O設備的接口機制以及相應的底層軟件技術(第10章),並特別強調了磁盤子繫統。隨後,我們完整地介紹了在穩定的存儲設備(如磁盤)上如何構建文件繫統(第11章)。

    我們預計第4章和第10章每章需要3小時的課堂講授時間和1小時的練習題時間,第11章需要6小時的課堂講授時間和2小時的練習題時間。

    4)並行繫統 計算機體繫結構是一個快速變化的領域。芯片密度、處理器速度、內存容量等在過去20年中都呈現出指數增長速度,並在可預見的未來仍然保持這樣的增長速度。並行處理已不再是超級計算機獨有的深奧概念。隨著在一個芯片上集成多個CPU的多核技術的到來,並行性已經變得很常見。因此,理解與並行性有關的軟件和硬件技術對於回答“盒子裡有什麼”這樣的問題十分必要。這個模塊包括多處理器中支持並行編程的操作繫統問題以及相應的體繫結構功能(第12章)。

    我們預計第12章需要6小時的課堂講授時間和2小時的練習題時間。

    5)網絡 在我們生活的世界上,單獨一個盒子幾乎沒有任何用處,除非它與外部世界相連。與你的朋友在網絡上對戰多人視頻遊戲(在第1章介紹)是一個很好的例子。但即使在日常生活中,我們也需要利用網絡來收發電子郵件或瀏覽因特網等。網絡與其他輸入/輸出設備的不同之處在於,現在你的盒子得以連接世界了!你需要一種語言讓你的盒子與外部世界交談,並處理網絡的各種情況,例如暫時或永久的連接中斷。這一模塊討論了網絡硬件的進化,以及用來處理各種網絡狀況的網絡協議棧(操作繫統的一部分)的功能(第13章)。

    我們預計第13章需要6小時的課堂講授時間和2小時的練習題時間。

    總而言之,第2章~第10章每章需要用1周時間授課;第11章~第13章每章需要2周時間授課,正好在15周的一個學期裡講完。五個模塊中的軟件和硬件問題在本書中是一起介紹的,上述建議的閱讀路徑也是按照這種處理方式進行的。

    讀者也可以選擇在體繫結構和操作繫統主題之間重點關注某部分的內容,而不會損失連續性。以處理器模塊為例,第3章和第5章都是關於處理器的硬件實現問題的。對於偏重操作繫統的課程,可以考慮少講授或者完全跳過介紹流水線處理器實現(從5.7節開始)的第5章,而不會損失課程的連續性。類似地,在偏重體繫結構的課程裡,可以跳過介紹處理器調度算法的第6章,而不會損失課程的連續性。

    在內存模塊中,第8章從操作繫統角度涉及頁式內存管理的細節。偏重體繫結構的課程可以跳過這一章,而不會損失連續性。類似地,偏重操作繫統的課程可以選擇淡化第9章中對緩存的細節描述。

    在存儲模塊中,面向體繫結構的課程可以選擇淡化第11章中文件繫統的內容,而不必擔心損失連續性。

    在並行模塊中(第12章),面向體繫結構的課程可以跳過多線程的操作繫統支持,以及一些高級主題,包括多處理器調度、死鎖以及並發性的經典問題和解決方案;類似地,面向操作繫統的課程可以選擇跳過體繫結構方面的高級主題,例如多處理器緩存一致性、並行機的分類以及互連網絡等。考慮到並行性的重要性,在任何課程中,隻要時間許可,應盡量覆蓋這一章的全部內容。

    在網絡模塊中(第13章),面向體繫結構的課程可以跳過傳輸層和網絡層的細節(分別是13.6節和13.7節)。面向操作繫統的課程可以選擇少講一些協議棧的鏈路層(13.8節)和網絡硬件(13.9節)的內容。

    本教材在計算機科學課程體繫中的位置

    圖P1顯示了計算機繫統的抽像層次。我們可以嘗試將圖P1中的不同層次的抽像與傳統計算機科學課程體繫中的課程相關聯。諸如基礎程序設計、面向對像程序設計、圖形學以及HCI(人機交互)的課程通常使用較高層次的抽像。通常計算機科學和計算機工程的課程體繫中包含數字電路和邏輯電路設計的基礎課程,然後是計算機組成原理,介紹計算機的硬件設計。在計算機組成原理課程之上(在圖P1的抽像層次級別之上),大部分課程使用煙囪方法:不同的課程分別覆蓋計算機體繫結構、操作繫統和計算機網絡的高級概念。

    應用程序(高級語言表示的算法) 更高

    繫統軟件(編譯器和操作繫統)

    計算機體繫結構

    機器組成原理(數據通路和控制)

    時序和組合邏輯器件

    邏輯門

    晶體管

    固體物理 更低



    圖P1 計算機繫統中的抽像層次

    今天,設計計算機繫統已經是軟硬件集成的過程,這使人們對煙囪模式提出了質疑,特別是對計算機科學本科的課程體繫中學生發展專業技能的早期。

    以本書為基礎圍繞上述主題的課程是一種獨特的嘗試,用集成的方法在計算機繫統的入門課程中介紹中間層次的概念(覆蓋了圖P1中的深色區域—繫統軟件及其與計算機體繫結構的關繫)。這門課程將為渴望學習計算機體繫結構、操作繫統和網絡中的高級主題(圖P2)的學生提供堅實的基礎。





    圖P2 繫統課程繫列

    使用本書內容的課程的先修課程很直接:邏輯設計基礎和高級語言程序設計(好是C語言)基礎。換句話說,對在本書內容之上和之下的抽像層次需要有基本的理解(見圖P1)。

    在數字電路和邏輯設計基礎以及程序設計基礎方面都有非常優秀的教科書。類似地,在計算機體繫結構、操作繫統和計算機網絡的高級主題方面,也有優秀的教科書。唯獨缺少的是對計算機繫統進行簡單、集成化的介紹,使其成為基礎課程和高級主題之間橋梁的圖書。本書的目標就是成為這樣一座橋梁。

    計算機科學作為一門學科其邊界已經擴展了。相應地,學習計算機科學的學生的興趣也各不同。計算機科學的課程需要為學生在本科階段的學習提供不同的選擇。另一方面,課程也有責任保證,不論學生的選擇是什麼,都能學到計算機繫統(廣義)的核心知識。我們相信基於本書的課程可以滿足這樣一種繫統核心知識的要求。如果正確地講授本課程,可以給學生提供充足的機會,通過其他課程來深入學習計算機繫統。例如,我們建議在大學二年級開設將本書作為教材的課程。在大三的時候,學生可能可以學習更加面向設計的課程—針對體繫結構、操作繫統或是網絡—以他們在大二從本書中學到的基本概念為基礎。後,在大四的時候,學生可以選修在這些領域中更具概念性的高級主題課程。

    本書在體繫結構和操作繫統的內容方面是大致平衡的。我們認為,計算機科學專業的學生在本科期間應該對這兩方面同等重視,不管他們的職業目標是什麼。當然,希望成為繫統架構師的學生必須了解本書中介紹的軟件和硬件之間的互動。即使是希望進行軟件開發的學生,了解這些知識對於成為更好的程序員也是必需的。但是,這取決於每個老師對這兩個主題強調的程度。好消息是,本教材允許教師選擇他們認為必需的課程深度,以與他們所在學校的課程結構相適應。例如,如果教師選擇減少體繫結構方面的內容,可以很輕松地簡單介紹處理器實現的有關章節(第3章和第5章),而不必擔心內容的銜接問題。在討論本書結構的時候,我們已經對五個模塊給出了類似的建議。

    講授繫統的集成課程的補充材料

    我們充分理解教師在講授需要介紹體繫結構、操作繫統和網絡的計算機繫統的集成課程時所面臨的挑戰。

    為此,我們已經提供了一組在線資源。我們已經講授了11年本課程,每年3次,作為所有計算機專業學生的必修課,因此我們已經積累了相當多的在線資源。

    1)我們有本課程所有內容的PowerPoint講稿,使得準備課程和轉換(從原有的煙囪模型)更加容易。

    2)每個模塊都有一個重要的實驗部分。我們提供了這些已經迭代過多次的實驗的詳細描述,以及用於實驗特定方面的軟件模塊(例如模擬器)。

    3)除了每章後的練習題之外,我們針對本課程的不同模塊還有附加的問題集、家庭作業以及本課程迄今為止的期中和期末考試題。

    在補充材料中包含的樣例實驗

    處理器設計

    我們給學生提供一個完成了90%的處理器數據通路設計。通過完成數據通路可以幫助學生熟悉相關設計。然後他們要設計基於微碼的控制邏輯(使用類似LogicWorks的邏輯設計工具),利用數據通路實現一個簡單的指令集。這能幫助學生理解數據通路的工作原理並體會一些設計權衡。學生會得到真實電路設計的經驗,並通過邏輯設計軟件內置的模擬器對設計進行功能測試。

    中斷和輸入/輸出

    學生在個實驗的基礎上增加電路以實現中斷繫統。然後他們(使用彙編語言)寫一個中斷處理程序。實驗的電路設計部分再次通過LogicWorks軟件繫統實現並進行功能模擬。此外,我們還給學生提供了處理器模擬器,他們需要在其中增加中斷支持,並與他們用彙編語言寫的中斷處理器程序一起工作。這個實驗不僅可使中斷繫統的操作變得清晰,還展示了底層設備輸入/輸出的基本概念。

    虛存子繫統

    學生在處理器模擬器上實現虛存子繫統。在這個實驗中,學生可通過實現和實驗不同的頁替換策略,獲得開發操作繫統中內存管理部分的經驗。這個實驗是用C語言實現的。

    多線程操作繫統

    在我們提供的模擬器上,學生實現多線程操作繫統的基本模塊,包括CPU和I/O調度隊列等。他們可實驗不同的處理器調度策略。這個模塊是用C語言和pthread實現的。學生可從實驗中獲得並行編程經驗,並接觸不同的CPU調度算法。

    可靠傳輸層

    學生在我們提供的一個模擬的網絡層上實現一個簡單的可靠傳輸層。在傳輸層必須處理的問題包括損壞的包、丟包以及亂序到達。這個實驗也是用C語言和pthread實現的。

    注意

    在開始探索計算機繫統內部的旅程之前,我們要提醒讀者注意:在展示計算機繫統設計的教科書中,習慣上會通過有數字的例子來說明和支持相關概念。歷史可以揭示未來。如果說在技術發展中有什麼東西不變的話,那就是變化。當你買了一輛新車,在車駛出展廳的那一刻,這輛車就變成了二手車。同樣地,我們使用的任何有數字的例子中的數字,如處理器速度、內存容量或是外設的傳輸速率馬上就會過時。真正不變的是原理,這也是本書的核心內容。一個讓人欣慰的因素是,盡管數字可能會隨時間變化,從MHz到GHz,從MB到GB,相對數字隨著技術的發展相對保持不變,這使得書中的數字示例也具有持久性。

    致謝

    我們極大地受惠於若干國內外同行,他們直接或間接促成了本書的出現。首先,我們要感謝Yale Patt,從2004年夏天我們介紹了在佐治亞理工學院開設的這門課程後,他用具有無與倫比的說服力的方式告訴我們應該把課程的內容寫成教材,因為大家迫切需要一本用集成方式介紹繫統概念的圖書。我們可以很誠實地說,如果沒有他的鼓勵,我們可能不會走上寫書這條路。下面這些其他學校的同行也鼓勵我們進行本書的寫作,因此需要特別致謝:Jim Goodman(威斯康辛大學麥迪遜分校和新西蘭奧克蘭大學),Liviu Iftode(Rutger大學),Phil McKinley(密歇根州立大學)以及Anand Sivasubramaniam(賓州州立大學和TCS)。我們要特別感謝Jim Goodman,他仔細閱讀了本書手稿的早期草稿,並提出了詳細的反饋,使本書的敘述得到了極大的改進。除了這些人以外,我們還從其他學校的一些同行那裡得到了很多對本書實驗的積極支持。

    寫書的步是創建一份書稿供佐治亞理工學院的學生內部使用。對選擇佐治亞理工學院CS 2200課程的學生,我們怎麼感謝也不為過。從2005年春季學期開始,幾代學生使用了本書的在線版本,並提出了反饋意見,對改進本書表達的清晰性、精煉例題、提供讀者可能有興趣的歷史鏈接等起到了重要的作用。此外,有3名本科生幫助繪制了本書中的部分插圖:Kristin Champion、John Madden和Vu Ha。

    計算機學院的部分同事,包括Nate Clark、Tom Conte、Constantine Dovrolis、Gabriel Loh、Ken Mackenzie以及Milos Prvulovic,對本書給予了建議和有洞察力的評論,幫助本書的敘述更加清晰。我們受惠於Constantine Dovrolis對本書網絡一章早期版本的建議和反饋,使得我們不僅改進了內容,還改變了這一章的敘述順序。Ken Mackenzie的建議讓我們在第3章的處理器設計中給出了一種簡單的控制方法。Tom Conte對流水線一章給出了詳細的評論,幫助我們更清晰地表達內容。北卡州立大學的Eric Rotenberg為流水線一章的早期草稿提出了非常有意義的反饋。Junsuk Shin寫了本書附錄中的簡單客戶端服務器的套接字代碼。我們向他們所有人表示特別的感謝。

    我們要感謝佐治亞理工學院,以及計算機學院的遠見卓識,鼓勵我們在教學方面進行創新。實際上,從1996年開始對本科課程體繫的改革使得我們開始批判性地思考應該如何教育本科生並了解在課程體繫中缺少了什麼,這終導致我們開發了門集成方式的繫統課程,包括體繫結構、操作繫統和網絡等。

    作為圖書出版方面的新手,我們從成功的教科書作者那裡學到了經驗。我們需要特別感謝Yale Patt(德州大學)、Jim Kurose(麻省大學)、Jim Foley(佐治亞理工學院)、Andy van Dam(布朗大學)、Sham Navathe(佐治亞理工學院)、Rich LeBlanc(佐治亞理工學院)和Larry Synder(華盛頓大學)等。我們怎麼感謝他們都不為過,他們分享了很多經驗,包括出版社的選取、與編輯的合作、為可能的評閱人編制問題,以及如何有效地利用評閱意見修訂書稿。

    書稿經過了幾輪的外部評審。大部分匿名評閱人深思熟慮而且有技巧地精準指出了改進書稿的方式。我們對匿名審稿人付出時間和精力幫助本書後成型表示非常感謝。

    特別感謝AddisonWesley出版我們這本教科書。Matt Goldstein是一個極好的編輯,他負責本書的評閱流程,並建議我們如何修改書稿。他具有一種既能督促我們工作,又不顯得傲慢的獨特風格。當我們沒有按計劃完成任務時他表現出了極大的耐心,並對本書背後的願景給予了毫無保留的支持。我們要感謝Marilyn Lloyd,Pearson的高級產品經理,他負責我們的教科書產品。我們還要感謝Pearson的Jeff Holcomb、Chelsea Bell和 Dan Parker。作為管理產品流程日常事務的項目經理,Aptara公司的Dennis Freee 以及Apatara公司的職員,包括Jawwad Ali Khan和Rajshri Walia,以及Write With公司的Brian Baker,都值得特別提及。他們為本書盡快生產印刷做出了貢獻。

    後,我們要感謝我們的家人,他們的愛、理解與支持使我們能夠持續撰寫本書。補充一點,Umakishore的父親是一位著名的小說家(筆名“Umachandran”),他著有多本小說,對他的回憶是寫作本書的靈感。


     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部