當前位置:編程學習大全網 - 編程語言 - 大學計算機基礎知識點整理

大學計算機基礎知識點整理

1、計算機組成原理

如果妳不是做操作系統/驅動程序的,直接和硬件打交道的機會很少,因為操作系統已經把他們屏蔽掉了,提供了抽象的API給我們使用。

但是還必須理解馮諾依曼體系的結構,CPU和內存,硬盤,各種外設之間的關系,寄存器、緩存等知識。CPU有哪些指令,如何執行這些指令,如果實現數組,結構體,函數調用,這就涉及到匯編的知識。像原碼,反碼,補碼,定點數、浮點數的表示和運算也是編程中必備的知識,幾乎每種語言都要涉及。

現在很多語言都是在虛擬機上運行的,妳只要是了解了計算機的組成原理,再去看哪些虛擬機,就會發現概念都是相通的。另外CPU中的緩存,緩存壹致性協議,DMA的異步思想都會在應用層中有所體現。《編碼》是壹個更加科普性,但是也更加有趣的講組成原理的書。

2、操作系統

操作系統是比較枯燥的,站在應用層的角度,我認為重點是掌握操作系統對外提供的抽象,包括進程、線程,文件,虛擬內存,以及進程間的通信問題。

幾乎所有的編程語言都會涉及到對多進程或者多線程編程的支持,特別是多線程的並發編程,所以必須得搞明白他們的本質是什麽,線程都有哪些實現方式。得真正地體會到“進程是資源分配的最小單位,線程是調度的最小單位。”這句話的含義。

幾乎所有的編程語言都會涉及到鎖和死鎖,最好在最底層理解鎖是怎麽實現的。需要理解虛擬內存和物理內存直接的關系,分段和分頁,文件系統的基本原理。對於進程的調度,頁面分配/置換算法,磁盤的調度算法,I/O系統,我認為優先級比較低。

3、數據庫

這個和日常工作結合極其緊密,不用我再多說,包括最基本的SQL,各種範式,事務及其隔離級別,事務的實現方式,索引及其實現方式,B+樹等等。

4、編譯原理

妳壹輩子也許都不會去寫壹個編譯器,但是很有可能會利用現成的工具去生成/操作壹個抽象語法樹(AST),甚至可以會寫壹個DSL(領域特定語言)。所以妳得理解詞法分析、語法分析、語義分析,中間代碼生成,代碼優化這個基本編譯的過程。

擴展資料

Cache的原理

如果存在(命中),則直接返回該數據;如果不存在(失效),再去訪問內存——先把內存中的相應數據載入緩存,再將其返回處理器。

提供“高速緩存”的目的是讓數據訪問的速度適應CPU的處理速度,通過減少訪問內存的次數來提高數據存取的速度。

Cache技術所依賴的原理是”程序執行與數據訪問的局部性原理“,這種局部性表現在兩個方面:時間局部性:如果程序中的某條指令壹旦執行,不久以後該指令可能再次執行,如果某數據被訪問過,不久以後該數據可能再次被訪問。

  • 上一篇:CASS工藝的註意事項
  • 下一篇:人生道理的名人名言
  • copyright 2024編程學習大全網