A. 深入理解計算機系統 讀後感
[深入理解計算機系統 讀後感]
從程序員的視角,看計算機系統!
本書適用於那些想要寫出更快、更可靠程序的程序員,深入理解計算機系統 讀後感。通過掌握程序是如何映射到系統上,以及程序是如何執行的,讀者能夠更好的理解程序的行為為什麼是這樣的,以及效率低下是如何造成的。粗略來看,計算機系統包括處理器和存儲器硬體、編譯器、操作系統和網路互連環境。而通過程序員的視角,讀者可以清晰地明白學習計算機系統的內部工作原理會對他們今後作為計算機科學研究者和工程師的工作有進一步的幫助。它還有助於為進一步學習計算機體系結構、操作系統、編譯器和網路互連做好准備。
本書的主要論題包括:數據表示、C程序的機器級表示、處理器結構,程序優化、存儲器層次結構、鏈接、異常控制流、虛擬存儲器和存儲器管理、系統級I/O、網路編程和並發編程。書中所覆蓋的內容主要是這些方面是如何影響應用和系統程序員的。例如,在講述數據表示時,本書說明了用來表示數字的表示方法是有限的,它能夠近似地表示整數和實數,但是這種表示方法是有限制的,程序員必須了解。在講述高速緩存時,本書討論了矩陣代碼中的循環變數的順序是如何影響程序的性能的。在討論網路互連時,本書描述了並發伺服器如何能有效地處理來自多個客戶端的請求。
本書基於Intel兼容(IA32)機器,在Unix或者相關的操作系統(例如,Linux)上執行C程序。雖然書中包括了一些幫助讀者將Java轉化成C的提示,但是還是要求讀者對C或者C++有一定的了解。
您可以通過本書的Web網站www.csapp.cs.cmu.e獲得完整的資料,包括實驗和作業,授課筆記和代碼示例,讀後感《深入理解計算機系統 讀後感》。
本書英文版久負盛名,被眾多專業人士稱為「最偉大的計算機教材」之一,著名的美國卡內基梅隆大學計算機科學系一直將本書作為教材使用,程序員眼中的透徹講述計算機系統的扛鼎之作。作者Randal
E.
Bryant是卡耐基梅隆大學的計算機科學系主任,ACM和IEEE雙院士(Fellow),其研究成果多次獲得ACM和IEEE頒發的大獎。
本書共分十三章,分別介紹了信息的表示和處理、程序的機器級表示、處理器體系結構、存儲器層次結構、靜態和動態鏈接、虛擬存儲器、系統級I/O、網路編程和並發編程等精彩內容。其目的是解釋計算機系統的所有本質概念,並向讀者展示這些概念是如何實際地影響應用程序的正確性、性能和實用性。與其他主要針對系統構造人員的系統類書籍不同,這本書是寫給程序員的,是從程序員的角度來描述的。本書為軟體和硬體之間搭起了一個橋梁,它給出了一種幫助讀者分別從硬體和軟體的角度去理解一個程序及其行為的途徑,這也填補了國內計算機系統教學中的一個空白。本書的最大優點是幫助讀者理解概念,讓讀者很清楚地在腦海中構造一個層次型的計算機系統,從最低層數據在內存中的表示(如我們一直陌生的浮點數表示),到流水線指令的構成,到虛擬存儲器,到編譯系統,到動態載入庫,到最後的用戶應用。
本書提供了大量的例子和練習及部分答案。尤其值得一提的是,對於每一個基本概念都有相應的筆頭或程序試驗,加深讀者的理解。
〔深入理解計算機系統 讀後感〕隨文贈言:【這世上的一切都借希望而完成,農夫不會剝下一粒玉米,如果他不曾希望它長成種粒;單身漢不會娶妻,如果他不曾希望有孩子;商人也不會去工作,如果他不曾希望因此而有收益。】
B. 層次模型、網路模型和關系模型的區別是什麼
區別一:組成不同
1、層次模型將數據組織成一對多關系的結構,層次結構採用關鍵字來訪問其中每一層次的每一部分。
2、網狀模型用連接指令或指針來確定數據間的顯式連接關系,是具有多對多類型的數據組織方式。
3、關系模型以記錄組或數據表的形式組織數據,以便於利用各種地理實體與屬性之間的關系進行存儲和變換,不分層也無指針,是建立空間數據和屬性數據之間關系的一種非常有效的數據組織方法。
區別二:模型優點不同
1、層次模型優點:數據結構比較簡單清晰,資料庫的查詢效率高,提供了良好的完整性支持。
2、網狀模型優點:能夠更為直接地描述現實世界,如一個結點可以有多個雙親,結點直接可以有多種聯系;具有良好的性能,存取效率較高。
3、關系模型優點:建立在嚴格的數學概念的基礎上;概念單一,無論實體還是實體之間的聯系都是用關系來表示。對數據的檢索和更新結構也是關系;它的存取路徑對用戶透明,從而具有更高的獨立性、更好的安全保密性,簡化了程序員的工作個資料庫開發建立的工作。
區別三:模型缺點不同
1、層次模型缺點:現實世界中很多聯系是非層次性的,它不適用於結點之間具有多對多聯系;查詢子女結點必須通過雙親結點;由於結構嚴密,層次命令趨於程序化。
2、網狀模型缺點:結構比較復雜,隨應用環境的擴大,資料庫的結構就變得越來越復雜,不利於最終用戶掌握;網狀模型的DDL、DML復雜,並且要嵌入某一種高級語言(C、COBOL)中,用戶不容易掌握和使用。
3、關系模型缺點:存取路徑的隱蔽導致查詢效率不如格式化數據模型。
C. 結構化編程要求什麼
結構化編程是一種編程方法,旨在將復雜問題分解成更小、更易管理的部分,通過邏輯和有序的方式解決這些部分。這種方法強調將程序功能劃分為獨立的模塊或函數,每個模塊或函數負責特定任務。通過這種模塊化,代碼更加清晰,易於理解和維護。
結構化編程還要求遵循層次化的組織原則。在這種原則下,模塊被組織成一種樹狀結構,上層模塊調用下層模塊,形成清晰的層次關系。這種層次結構有助於程序的邏輯性和組織性,使得程序員能夠更容易地理解程序的整體架構。
控制結構是結構化編程中的另一個關鍵要素。使用如if-else、for、while等結構化控制語句來管理程序流程,確保程序按照預期的方式執行。這些控制語句使得程序邏輯更加清晰,易於調試和維護。
數據結構在結構化編程中也扮演著重要角色。通過使用適當的數據結構來組織和存儲數據,可以確保數據的完整性和一致性。合理的數據結構設計有助於提高程序性能,同時簡化數據的管理和訪問。
總的來說,結構化編程通過模塊化、層次化、控制結構和數據結構等原則,提升了程序的可讀性、可維護性和可擴展性。這不僅使得程序員能夠更輕松地理解和修改代碼,還為後續的程序開發和維護奠定了堅實的基礎。
D. 關系資料庫的四個層次結構是什麼
1.層次模型
層次模型是資料庫系統中最早使用的模型,它的數據結構類似一顆倒置的樹,每個節點表示一個記錄類型,記錄之間的聯系是一對多的聯系,基本特徵是:
* 一定有一個,並且只有一個位於樹根的節點,稱為根節點;
* 一個節點下面可以沒有節點,即向下沒有分支,那麼該節點稱為葉節點;
* 一個節點可以有一個或多個節點,前者稱為父節點,後者稱為子節點;
* 同一父節點的子節點稱為兄弟節點。
* 除根節點外,其他任何節點有且只有一個父節點;
圖11.7是一個層次模型的例子。
層次模型中,每個記錄類型可以包含多個欄位,不同記錄類型之間、同一記錄類型的不同欄位之間不能同名。如果要存取某一類型的記錄,就要從根節點開始,按照樹的層次逐層向下查找,查找路徑就是存取路徑。如圖11.8所示。
層次模型結構簡單,容易實現,對於某些特定的應用系統效率很高,但如果需要動態訪問數據(如增加或修改記錄類型)時,效率並不高。另外,對於一些非層次性結構(如多對多聯系),層次模型表達起來比較繁瑣和不直觀。
2.網狀模型
網狀模型可以看作是層次模型的一種擴展。它採用網狀結構表示實體及其之間的聯系。網狀結構的每一個節點代表一個記錄類型,記錄類型可包含若干欄位,聯系用鏈接指針表示,去掉了層次模型的限制。網狀模型的特徵是:
1. 允許一個以上的節點沒有父節點;
2. 一個節點可以有多於一個的父節點;
例如,圖11.9(a)和圖11.9(b)都是網狀模型的例子。圖11.9(a)中節點3有兩個父節點,即節點1和節點2;圖11.9(b)中節點4有三個父節點,即節點1,節點2和節點3。
由於網狀模型比較復雜,一般實際的網狀資料庫管理系統對網狀都有一些具體的限制。在使用網狀資料庫時有時候需要一些轉換。例如,如圖11.10所示。
網狀模型與層次模型相比,提供了更大的靈活性,能更直接地描述現實世界,性能和效率也比較好。網狀模型的缺點是結構復雜,用戶不易掌握,記錄類型聯系變動後涉及鏈接指針的調整,擴充和維護都比較復雜。
3.關系模型
關系模型是目前應用最多、也最為重要的一種數據模型。關系模型建立在嚴格的數學概念基礎上,採用二維表格結構來表示實體和實體之間的聯系。二維表由行和列組成。下面以教師信息表和課程表為例,說明關系模型中的一些常用術語:
表11.1 教師信息表(表名為:tea_info)
TNO(教師編號)
NAME(姓名)
GENDER(性別)
TITLE(職稱)
DEPT(系別)
805
李奇
女
講師
基礎部
856
薛智永
男
教授
信息學院
表11.2 課程表(表名為:cur_info)
CNO(課程編號)
DESCP(課程名稱)
PERIOD(學時)
TNO(主講老師編號)
005067
微機基礎
40
805
005132
數據結構
64
856
1. 關系(或表):一個關系就是一個表,如上面的教師信息表和課程表。
2. 元組:表中的一行為一個元組(不包括表頭)。
3. 屬性:表中的一列為一個屬性。
4. 主碼(或關鍵字):可以唯一確定一個元組和其他元組不同的屬性組。
5. 域:屬性的取值范圍。
6. 分量:元組中的一個屬性值。
7. 關系模式:對關系的描述,一般表示為:關系名(屬性1,屬性2,... ...,屬性n)。
關系模型中沒有層次模型中的鏈接指針,記錄之間的聯系是通過不同關系中的同名屬性來實現的。 關系模型的基本特徵是:
1. 建立在關系數據理論之上,有可靠的數據基礎;
2. 可以描述一對一,一對多和多對多的聯系。
3. 表示的一致性。實體本身和實體間聯系都使用關系描述。
4. 關系的每個分量的不可分性,也就是不允許表中表。
關系模型概念清晰,結構簡單,實體、實體聯系和查詢結果都採用關系表示,用戶比較容易理解。另外,關系模型的存取路徑對用戶是透明的,程序員不用關心具體的存取過程,減輕了程序員的工作負擔,具有較好的數據獨立性和安全保密性。
關系模型也有一些缺點,在某些實際應用中,關系模型的查詢效率有時不如層次和網狀模型。為了提高查詢的效率,有時需要對查詢進行一些特別的優化