1. 程式人生 > >計算機作業系統-程序篇

計算機作業系統-程序篇

基本概念:

程序(progress):執行中的程式或者程式的一次執行

執行緒(LWP):作業系統內部機制在發展過程中對程序的有效細化,是作業系統分配處理器時間的基本單元

作業:使用者要求計算機系統所做的工作集合,如一次查詢,一次計算

任務:等同於程序,都是系統的最小工作單位

併發:多個程式在某一時間段內同時進行,而在某一時刻只有一個程式執行。

 

 最初的作業系統只有程序

引入程序的目的:為了描述和實現多個程式的併發執行,以改善資源利用率並提高系統的吞吐量。

 

程序有兩個基本屬性

1、程序是一個擁有資源的獨立單位2、程序同時又是一個可以獨立排程的基本單位

 

但是,為了使程式能併發執行,系統必須進行一系列的操作

1、建立程序 2、撤銷程序 3、程序切換

 

這些操作都需要系統付出較大的時空開銷,所以系統中存在的程序數目不能太多,切換頻率不能太頻繁

這些問題制約著作業系統的併發性

所以,就提出將程序的排程屬性與資源申請屬性分開。產生了現代的作業系統。

 

 

引入執行緒的目的:為了減少程式併發執行所付出的額外開銷,使作業系統具有更好的併發性

 

程序作為資源的申請與擁有單位,執行緒作為排程的基本單位

解釋:建立程序就要申請必要的系統資源,而程序獲取處理器資源(即CUP執行)就稱為排程。

           系統資源:包括記憶體空間,I/O裝置等。

 

同一程序中的多個執行緒之間的切換不會引起程序的切換,而一個程序的執行緒切換到另一個程序的執行緒時,會引起程序的切換

 

程序一般有三種狀態:執行,阻塞,就緒

 

執行:當一個程序正在佔用CPU,程序在記憶體

就緒:程序可以執行,但是CPU被其他程序佔用,導致不能立即執行,程序在記憶體

阻塞:程序在某個等待事件而不能繼續執行,阻塞狀態的程序通常組織成佇列,程序在記憶體。

 

如果被細化,則分為五個狀態:新建,執行,就緒,阻塞,終止

 

有時候,為了有效的利用處理器,有的作業系統採用了對換技術(swapping):

將程序從記憶體換到磁碟中,程序的狀態變為掛起

 

程序被交換到外存時,狀態變為掛起狀態。掛起的是換出程式與資料
主要原因:
1、 程序全部阻塞,處理機空閒
2、 系統負荷過重,記憶體緊張 
3、 作業系統的需要
4、 終端使用者的請求
5、 父程序的需求

 

執行緒具有三種狀態:就緒、執行,阻塞。

 

一個程序可以建立多個執行緒,並且屬於同一個程序中的多個執行緒可以併發執行。