作業系統 程序

2021-08-01 18:29:22 字數 713 閱讀 3617

程序是作業系統中的重要概念,描述了程式的執行資訊。乙個程序就是一次執行。可以把程式想象成類,程序就是例項。

引入程序的概念有利於實現多程式並行的設計。每乙個程式執行的時候可以大致分為io任務和計算任務,如果乙個程序正在io,那麼應該把cpu讓給另乙個程序執行計算任務,這樣可以提公升cpu的利用率,這就涉及到了程式執行的上下文切換,所以就引入了程序的概念。

程序到底記錄了哪些程式執行的資訊呢?1,與程式執行相關的,比如程式計數器以及各個暫存器等。2,與儲存管理相關的,比如為該程序分配的記憶體。3,與檔案相關的。

隨之而來的是另乙個概念--執行緒。

每乙個程序在執行時,可能會有多個任務,比如典型的文字系統,可能有乙個任務是接受使用者的輸入,另乙個任務是每隔一段時間自動備份當前檔案,以免丟失。當使用者沒有輸入時,備份任務執行,否則接受使用者輸入任務執行,這樣的做法有利於整個程序的執行。讓使用者等待備份任務執行不是好的做法。所以一般的程序會分為若干的小任務,每乙個任務就是乙個執行緒。

執行緒是依附於程序的,程序是資源的分配單元,每乙個執行緒都共享程序的資源,這樣執行緒的切換是高效的。

執行緒的實現可以在使用者態也可以在核心態。在核心態指的是執行緒的排程是由核心來完成的,這種做法會加重核心的負擔,在使用者態指的是排程由使用者程式完成,核心並不知道有執行緒的存在。

排程演算法

程序通訊

作業系統 程序

在作業系統中,作業系統將記憶體,網路,檔案系統抽象為資源的統一抽象表示。1 什麼是程序 程序就是進入記憶體中正在執行的程式。把程序當做一組元素組成的實體。程序包括兩個部分,一部分是 部分,另一部分是 相關的資料集合。程序控制塊 每乙個程序,在核心中都對應著乙個程序控制塊。程序控制塊中儲存著程序的所有...

作業系統程序

乙個程序就是乙個正在執行的程式。它包括 程序狀態。包括 每個程序在作業系統中用程序控制塊pcb來表示,用來儲存與該程序有關的各種狀態資訊。pcb只是基本原理中的說法,對於乙個真實的作業系統可能不叫pcb,比如linux中叫做任務結構體 task struct 分時系統是在程序之間快速切換,以便使用者...

作業系統 程序

記憶體中的程序 程序中斷時 如時間片到期 儲存當前程序狀態 運用的是pcb資料結構儲存程序上下文 程序排程 1 非搶占式 批處理系統 排程標準是 先來先服務 最短作業優先 2 搶占式 互動系統 排程標準 1 公平 合理分配cpu 2 響應時間短 使用者輸入到執行完成的時間短 3 吞吐量大 單位時間完...