回覆列表
  • 1 # 弌94922977

    由來

    電腦剛被髮明出來的時候是沒有作業系統的,電腦處理的任務都是順序的,一個任務在處理期間是獨佔了整個電腦資源。就像嵌入式入門開發時,還沒有使用作業系統,每次執行前都先將要執行的程式透過特定的軟體上傳到開發板中,然後執行機器,程式就會被載入執行,如果想執行另一個程式,那麼又得重複相同的步驟。 任務的執行需要cpu、輸入輸出裝置等一起協同工作。但由於cpu執行的很快,而輸入輸出裝置執行的很慢,所以往往大部分時間cpu都處於空閒狀態等待輸入輸出完成,有點類似於吃飯(排隊兩小時吃飯一分鐘)。所以就出現了支援多道程式執行的系統:電腦一次處理多個任務,當一個任務需要I/O(不需要cpu處理,需要I/O裝置處理)時,就會執行其他需要cpu處理的任務,如此迴圈處理就處理完了所有的任務。就是透過這種方式就提高了cpu的利用率。就這樣一步一步發展成瞭如今的作業系統。 電腦硬體資源只有一套,但是程式有多個,為了處理多程式的執行,引入了程序的概念。 概念

    程序

    一個程序就是一個正在執行的例項。計算機上所有可執行的軟體,通常也包括作業系統,被組織成若干個順序程序(用於描述並行的一種概念模型)簡稱 程序。程序和程式的關係就像:食譜 和 用食譜做食物 的關係。作業系統透過程序表來管理所有的程序,透過程序排程程式來進行多程序間的切換。程序和程序之間是相互獨立的,用於獨立的地址空間,通常程序只能對自己的地址進行操作。一個程序終止不會影響其他程序。程序之間透過專門的工具可以進行通訊。unix系統中程序邏輯上為以init程序為根的樹狀結構。程序A建立程序B,則A稱為B的父程序,B稱為A的子程序。:當子程序比父程序先結束,而父程序又沒有回收子程序,釋放子程序佔用的資源,此時子程序將成為一個殭屍程序。如果父程序先退出 ,子程序被init接管,子程序退出後init會回收其佔用的相關資源。: 作業系統程序。作業系統啟動的第一個程序,其他程序都是由該程序直接或者間接建立。:又稱pid。為了程序管理,引入的概念。作業系統給每個程序都會分配一個整數作為程序的標識,類似身份證號。pid=0 的程序通常是排程程序, pid=1 的程序是 init 程序

    程序組

    為方便作業系統管理,引入的概念。用於控制向多個程序進行訊號的分發,發給一個程序組是訊號會發生給程序組中每一個程序。程序組是一個或多個程序的集合。每個程序組都有一個組長程序。只要程序組中還有一個程序,那麼程序組就會存在。:又稱gip。非程序組程序,可以建立新的程序組,或者加入其它程序組。

    會話

    為方便作業系統管理,引入的概念,又稱為session。Session是一個或多個程序組的集合會話包括控制程序(會話首程序),一個前臺程序組和任意後臺程序組。一個會話只能有一個控制終端,產生在控制終端上的輸入和訊號將傳送給會話的前臺程序組中的所有程序:又稱sid程序狀態既然程序是一個執行的程式,多程序間又可以切換,那麼一定會伴隨著一種狀態,用於不同的狀態進行不同的處理。程序大的分類有三種狀態,不同狀態間可以相互切換執行態(程序實際佔用cpu)就緒態(隨時可以繼續執行)阻塞態(等待外部事件發生,否則不能執行)程序分類根據程序的特點,大致可以分為三類:互動程序:批處理程序:守護程序:執行特定功能,一旦開始執行,會一直執行,除非滿足一定條件或者異常才會終止。一般伴隨保活程序或者批處理程序存在,用於拉起異常退出的守護程序。程序的建立和終止

    建立

    主要由以下四種事件會導致程序建立:系統初始化在執行程序進行建立程序系統呼叫使用者請求建立新程序一個批處理作業初始化在unix系統中只有一個系統呼叫可以建立程序:fork。

    終止

    就像有始必有終,程序也會終止。一個新的程序終止,通常是由於下麵條件引起的:正常退出(自願)出錯退出(自願)嚴重錯誤(非自願)被外部殺死(非自願)

  • 中秋節和大豐收的關聯?
  • 2.90GHZ的CPU算小嗎?