計算機基礎系列(一)

  • 進程

像一個最簡單的 hello 程序在操做系統上運行時,操做系統會提供一種假象,就好像只有這樣一個程序在運行,獨佔 CPU、主存和I/O設備。處理器看上去就好像不斷地執行程序中的指令,即該程序的代碼和數據在內存中是惟一的,這些假象就是進程的概念實現的,進程是計算機科學中最重要和最成功的概念之一。併發

  1. 進程是對一個正在運行的程序的抽象。
  2. 每一個進程單獨的佔用硬件設備,但操做系統上好像都不止一個程序在運行,其實就是進程的指令在 CPU 上交錯的執行,實現併發,這就是處理器在進程間的切換來實現的,稱爲上下文切換。
  3. 在任何一個時刻,單核處理器只能執行一個進程的代碼,當操做系統決定要把控制權從當前進程轉移到某個新進程時,就會進行上下文切換,即保存當前的上下文,回覆新進程的上下文。

  • 線程

一個進程實際上就是由多個稱爲線程的執行單元組成,每一個線程都運行在進程的上下文中。並共享全部的代碼和數據。函數


  • 虛擬內存

虛擬內存是一個抽象的概念,是爲進程提供的一個假象,即每一個進程都單獨地佔用主存,每一個進程看到的內存也都是一致的,稱爲虛擬地址空間。操作系統

  1. 程序和代碼數據:對全部的進程來講,代碼都是從固定地址開始,
  2. 堆:
  3. 棧:虛擬內存中的頂部是用戶棧,編譯器用來實現函數的調用,程序執行的期間能夠動態的擴展和收縮,當咱們調用一個函數時,棧就會增加,從一個函數返回時,棧就會收縮。

計算機中的抽象

  1. 文件是對 I/O 設備的抽象
  2. 虛擬內存是對程序存儲器的抽象
  3. 進程是對一個正在運行的程序的抽象

(未完待續)線程

相關文章
相關標籤/搜索