深入理解電腦系統學習(1)

來源:互聯網
上載者:User

標籤:


源檔案:0, 1 組成每行以一個看不見的’\n’結尾,

執行一個源檔案分四個階段:預先處理, 編譯,彙編,串連


.i 檔案:.c檔案預先處理後產生
.ii檔案: .cpp檔案預先處理後產生

  • 預先處理階段:前置處理器(cpp)根據以#開頭的命令修改來源程式,(如把一些標頭檔的內容,直接插入到程式文本中)
  • 編譯階段。編譯器(ccl)將.i 文本翻譯成 .s 文本,他包含了一個組譯工具,組合語言程式中沒儀錶語句都以一種標準的額問題本格式確切的描述了一條低級機器語言指令
  • 彙編階段。彙編器(as) 將.s 檔案翻譯成機器語言指令,並將其打包成可重定位目標程式的格式。並將結構儲存在.o 檔案中,.o檔案是一個二進位檔案,他的編碼是機器語言指令而不是字元,所以當我們用文開啟.o檔案是看到的是一堆亂碼。
    -連結階段。比如在剛剛的程式中調用了printf函數,他是每一個c編譯器都會提供的標準C庫的一個程式,它存在一個名為printf.o的單獨先行編譯好的目標檔案中,而這個檔案必須以某種方式合并到hello.o程式中,連接器就是負責處理這種合并的,並產生可執行檔

要想在unix上執行可執行檔,我們需要將他的檔案名稱輸入到shell的應用程式中

shell是一個命令列解譯器,它輸出一個提示符,等待命令輸入,然後執行命令,如果輸入的不是一個內建的shell命令,那麼shell就會假設這是一個可執行檔,並對其進行載入運行

系統的硬體組成

  • 主存:一個臨時存放裝置,在處理器執行程式時,用來存放和程式處理的資料,從物理上來說,主存是一組由動態隨機儲存空間(DRAM)組成的,從六級上來說,儲存空間是一個線性位元組數組,每一個位元組都一個唯一的地址,
  • 處理器:中央處理單元,除利息的核心是一個字常德存放裝置,稱為程式計數器,在任何時刻,PC都指向主存的某條機器語言指令。指令按照嚴格的順序執行。
  • 指令集結構:描述沒每條機器代碼指令的效果
  • 微體繫結構:描述處理器實際上的具體實現

    進程 :作業系統對一個正在啟動並執行程式的一種抽象,作業系統保持跟組進程運行所需的所有狀態資訊,當作業系統決定要把控制權從當前進程抓移到某個新進程時,就會進行環境切換(儲存當前進程的上下文,恢複新進程的上下文,然後將控制權傳遞到新進程)

線程:一個進程實際上可以由多個稱為線程的執行單元組成,每個線程都運行在進程上下文中,並共用同樣的代碼和全域資料,

虛擬儲存空間:一個抽象概念,它為每個進程提供了一個假象,即每個進程都在獨立地使用主存。Linux中,地址空間最上面的地區是為作業系統中的代碼和資料保留的,這對素有進程來說是一樣的,地址空間的地步存放使用者進程定義的資料和代碼

  • 程式碼和資料。對所有的進程來數,代碼是從同一固定地址開始的,緊接著是C全域變數,代碼和資料區是直接按照可執行檔載入的,如的hello片段。
  • 堆:代碼和資料區後是運行時堆,代碼和資料區是進程在一開始運行時就被規定了大小,但是堆可以在調用malloc和free等函數式動態擴充和收縮
  • 共用庫:大約在地址空間的中間部分是用來存放C標準庫等這樣共用庫的代碼和資料的地區。
  • 棧:位於使用者虛擬位址空間的頂部,編譯器用它來實現函數調用,和堆一樣,在程式執行期間可以動態地擴充和收縮。(調用函數會使得棧增加,從函數返回時,棧收縮)
  • 核心虛擬儲存空間:核心總是駐留在記憶體中,是作業系統的一部分,不允許程式續寫,或直接調用核心代碼定義的函數。

檔案:位元組序列。I/O裝置,磁碟,鍵盤,顯示器都可視為檔案。

並行和並發

  • 並發:值一個同事具有多個活動的系統
  • 並行:是用並發使一個系統運行得更快

    線程級並發:

  • 超執行緒:有時稱為同時多線程,是一項允許一個CPU執行多個控制流程的技術。
    指令級並發:在較低的抽象層次上,現代處理器可以同事執行多條指令
    單指令,多資料並行:允許一條指令產生多個可以並存執行的操作,這種方式稱為單指令,多資料,

深入理解電腦系統學習(1)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.