行程:

1、行程是一個執行中的程式,在現在的分時系統中,行程是基本的工作單元。

2、行程包括程式碼(本文區)、程式計數器數值、暫存器內容、行程堆疊、堆積、變數的資料區間。

3、程式是被動的個體,就像儲存在磁碟的檔案內容(通常稱可執行檔案),當可執行檔案載入到記憶體,程式變成行程,可以點兩下可執行檔案的圖示,或是在命令列輸入可執行檔案(prog.exea.out)來載入可執行檔案。

4、行程可能在以下五種狀態之一:新產生、執行、等待、就緒、結束,任何時候只有一項行程在執行,但是卻有許多行程在等待和就緒的狀態。

5、每一個行程在作業系統中都對應一個行程控制表(PCB)PCB記載所代表的行程相關資訊。

6、分時系統可將CPU在不同行程間不斷轉換,以便讓使用者可以在自己的行程執行時與它交談。

7、一個新的行程最初置於就緒佇列中,一旦這個行程被CPU執行,可能發生以下事件之一:

    ●行程發出I/O要求,然後置於一個I/O佇列中。

    ●行程產生一個子行程,並等待其結束。

    ●行程可強行移離CPU(和中斷的結果一樣),然後放回就緒佇列中。

前面兩種狀況,行程將從等待狀態移到就緒狀態,一個行程將持續此週期到它結束為址,屆時它將從所有佇列中移除。

8、中斷基本上是先暫停行程之後再恢復,系統需要儲存目前執行行程的內容,所以當中斷完成後,它可以還原內容。

9、一個行程在可使用系統呼叫exit()要求作業系統將自己刪除來結束,也可透過特定的系統呼叫(Win32TerminateProcess())來中止其他行程的執行,通常只有父行程才能使用此系統呼叫來中止其子行程,父行程可以基於若干理由將子行程終止:

    ●子行程已經使用超過配置的資源數量。

    ●指配給子行程的工作已不再需要

    ●父行程結束,而作業系統不允許子行程在父行程結束後繼續執行

10、如果一個行程無法影響其他行程或受其他行程影響,那它就是獨立行程,反之為合作行程,行程之間合作主要為了資源共享或加速運算等考量。

11、合作行程需要彼此交換資料和訊息,有(1)共用記憶體(2)訊息傳遞這兩個基本模式,訊息傳遞在少量資料交換時很有用,也比共用記憶體容易製作,而共用記憶體速度較訊息傳遞快。

12、客戶、伺服器系統通信可使用(1)插座(2)遠程程序呼叫(3)管道。

 

執行緒:

1、執行緒是CPU使用時的一個基本單位,是由一個執行緒ID、程式計數器、一組暫存器及一個堆疊空間組成。

2、同一行程不同執行緒共用程式碼部分、資料區域和作業系統資源(例如開啟的檔案和信號)

3、行程的產生對系統來說是重擔,如果新行程和現存行程執行相同的工作,比較有效率的做法是讓一個行程包含許多執行緒來達到相同的目的。

4、多執行緒程式好處主要有:

    ●應答:例如網頁瀏覽器在一個執行緒載入影像時,還有另一執行緒可以跟使用者交談。

    ●資源共享:行程可透過記憶體共享或訊息傳遞來共享資源,不過必須由程式員明確安排,執行緒則用  

     內訂的方法共享記憶體和其行程的資源。

    ●經濟:因為執行緒共用它們所屬行程的資源,所以執行緒的產生和內容交換比較經濟。

5、執行緒的支援可由使用者層次提供(使用者執行緒),或是由核心提供(核心執行緒)

6、使用者執行緒和核心執行緒關聯方式有:(1)多對一模式 (2)一對一模式 (3)多對多模式

 

arrow
arrow
    全站熱搜

    阿洲 發表在 痞客邦 留言(0) 人氣()