為什麼引入程序

2021-10-05 14:51:52 字數 994 閱讀 7418

1.為什麼引入程序?

再講這個問題前,先了解程式的執行。

順序執行和併發執行

在引入作業系統之前,系統是順序執行的,就是把程式放入程式段,各程式段之間按先後次序執行,前一次操作執行完後,才執行後續操作。

這種執行方式具有封閉性和可再現性。所謂封閉性就是指會使程式執行時獨佔全機資源,所以資源的狀態只受本程式改變。只要執行環境和初始條件相同,會得到相同結果。這就是我們所說的程式的可再現性。

但是這樣的工作方式非常低效。

隨著多道程式環境的引入,程式有了併發執行的方式。

為了理解併發執行,我們舉例:輸入、計算、輸出,是程式的執行順序。我們可以讓前乙個程式計算時,對下乙個程式輸入操作,或是在前乙個程式輸出時,對後乙個程式計算操作。也就是說——第乙個程式計算操作和第二個程式輸入操作併發執行。

併發執行會使程式失去封閉性,不可再現性。由於某程式執行時,必然受到其他程式影響程式經過多次執行後,所以即便執行環境和初始條件不變,結果可能各不相同。這對我們控制程式是不利的。

綜上,間斷性、失去封閉性、不可再現性是併發執行的特徵。為了使程式能併發執行,且對併發執行的程式加以描述和控制,我們引出了程序的概念、

2.什麼是程序呢?

程序是程序實體的執行過程,是系統進行資源分配和排程的基本單位。

程序的建立就是給程式配置pcb程序控制塊的過程。

我們先來了解一下pcb。

pcb簡介

os根據pcb對併發執行的程序進行管理,pcb是程序存在的唯一標誌*。pcb是一種資料結構,並且是作業系統中最重要的記錄性資料結構。程序是頻繁呼叫的,所以他要常駐記憶體。就在記憶體中開闢pcb區,以鍊錶或是佇列的形式存在,用以存放os 所需要的,用以描述當前情況,以及控制程序執行的全部資訊。主要內容有程序識別符號、處理機狀態,程序排程資訊,程序控制資訊。系統可以通過對pcb的控制,進一步通過對程序的控制,完成對程式的控制。

為什麼要引入補碼

現在我們知道了計算機可以有三種編碼方式表示乙個數.對於正數因為三種編碼方式的結果都相同,所以不需要過多解釋 原碼 1 0000 0001 反碼 1 0000 0001 補碼 1 0000 0001 為了解決原碼做減法的問題,出現了反碼 1 1 1 1 0000 0001 原 1000 0001 原 ...

為什麼要引入註解

使用annotation之前 甚至在使用之後 xml被廣泛的應用於描述元資料。不知何時開始一些應用開發人員和架構師發現xml的維護越來越糟糕了。他們希望使用一些和 緊耦合的東西,而不是像xml那樣和 是松耦合的 在某些情況下甚至是完全分離的 描述。如果你在google中搜尋 xml vs.annot...

為什麼要引入保護成員

在c 成員中我們需要一種成員比私有成員訪問範圍大比公有成員訪問範圍小的成員。因此就引入了保護成員。保護成員擴大範圍表現在基類的保護成員在派生類的成員函式中被訪問。基類的成員本身就是派生類的成員,但是出於隱藏目的不宜設為公有,但是又確實需要在派生類的成員函式中經常訪問基類成員,將其設定成保護成員,既能...