標籤:網路 int 控制 共用 組成 機器 col 來源程式 使用
來源程式在電腦中是以文字檔的形式儲存的,來源程式以位元組的形式儲存在檔案中,位元組由取值為0和1的位(bit)組成,8個位組成一個位元組。
一個c語言程式從文字檔變為可執行檔需要經曆預先處理、編譯、彙編和連結4個階段。
預先處理階段:前置處理器修改來源程式中以#開頭的代碼,如將#include<stdio.h>替換為stdio.h檔案的內容,預先處理階段完成後會產生“.i”文字檔。
編譯階段:編譯器將".i"檔案翻譯成組合語言,產生“.s”文字檔。
彙編階段:彙編器將“.s”檔案翻譯成機器語言,產生“.o”二進位檔案。
連結階段:連接器將“.o”檔案和標準庫“.o”檔案(如printf.o)合并成可執行檔。
系統的硬體組成
匯流排:將資訊位元組在各個組件間傳遞的電子管道,匯流排上傳遞的資料單位是字,即位元組個數,如32位系統一般為4個位元組。
I/O裝置:輸入輸出裝置,如滑鼠、鍵盤、顯示器和網路介面卡等。
主存:主儲存空間,也就是記憶體,在cpu執行程式時,用於存放程式和資料的地方。
處理器:cpu,電腦的大腦,用於執行儲存在主存中的指令,由控制器和運算器和寄存器組成,控制器負責從儲存空間中取出指令,確定指令類型及解碼,按時間的先後順序向其他組件發出控制訊號,統一指揮和協調電腦各器件進行工作的組件;運算器是對資料進行加工處理的組件,可以實現基本的算術運算,還可以進行基本的邏輯運算,實現邏輯判斷的比較及資料傳遞,移位等操作;寄存器是一個字長的儲存單元,用於臨時儲存控制器和運算器需要使用的資料。
快取 寄存器訪問速度很快,但是僅能儲存幾百位元組的資訊,記憶體可以儲存幾十億位元組的資訊,但是訪問速度要比寄存器慢100倍。位於cpu晶片上的L1緩衝可以儲存幾萬位元組的資訊,訪問速度接近寄存器,L2緩衝通過一條特殊的匯流排串連到cpu,訪問速度比L1慢5倍,比記憶體快5~10倍,L3緩衝可以獲得更大儲存空間,並且也能提供較高的訪問速度。 緩衝利用了局部性原理,將程式最近需要訪問的資料存放在緩衝中,以提升效率。 相對來說,寄存器的L1緩衝的緩衝,L2緩衝是L2緩衝的緩衝,L3緩衝是記憶體的緩衝,記憶體是磁碟的緩衝。
作業系統的抽象
進程是對處理器和虛擬儲存空間的抽象,是正在啟動並執行程式。
虛擬儲存空間是對主存和檔案的抽象,虛擬儲存空間為每個進程提供了一個虛擬位址空間,映射到實體記憶體,使得每個進程看起來在獨佔記憶體空間。
檔案是對I/O裝置的抽象,在linux中,一切皆為檔案。
並行和並發並髮指的是同時有多個活動在運行。並行指的是用並發使一個系統運行得更快。
線程級並發 單一處理器是不能做到對多個線程同時執行的,所以並發一般是是針對多核處理器,每個核都有獨立的寄存器、L1/L2快取,L3快取和記憶體是多個核之間共用的。
指令級並行 處理器可以同時執行多條指令稱為指令級並行。通過流水線(pipelining)將執行一個指令所需要的活動劃分為不同的步驟,將處理器的硬體組織成一系列的階段,每個階段執行一個步驟,這些階段可以並行地操作,用來處理不同指令的不同部分。
單指令、多資料並行 許多現代處理器擁有特殊的硬體,允許一條指令可以產生多個可以並存執行的操作,這種方式稱為單指令、多資料,即SIMD並行。
電腦系統漫遊