關於進程之一二三

    進程是操作系統中一個非常重要的概念。就像生活中人與人打交道的時候都會去了解對方的來歷和背景一樣,在學習進程的時候我們也有必要把進程的來龍去脈搞清楚。這就是爲什麼會產生進程這個概念,它的特點是什麼,進程和通常所說的程序的區別在哪裏?如果我們能夠搞清楚這幾個疑問,我想對進程也就基本掌握得差不多了。

一、進程產生的背景

    在談到進程誕生背景的時候,我們需要重新回到“多道程序設計”這個劃時代的話題。因爲正是多道程序設計的應用加速了“進程”的誕生!我們知道多道程序設計的出現使得程序出現了以下特點:

 1) 並行性。在以前的單道批處理操作系統階段,在任何時刻主存中只有一個作業在運行,而到了多道批處理系統階段主存中可以同時存放多個作業,並且同時處於運行狀態,(對於單處理機系統,其宏觀意義是各作業都已開始運行但尚未完成,其實微觀上在任一特定時刻在處理器上運行的作業只有一個)各作業之間是並行的。這就是說程序出現了並行性的特點。同時中斷技術的出現,使得全部外部設備和主機、各類設備管理程序、高級調度程序、低級調度程序等等都可並行運行。因此並行性成爲系統中各種程序的共同特點。

2) 互斥性。由於主存中同時存放着多個作業程序,它們之間勢必會因爭奪系統的各種資源而產生競爭,如競爭CPU、存儲器和外部設備等。此外,各並行程序由於需要相互協同也會產生一些制約關係。這就是多道程序設計中程序的制約性特點

3) 多道程序中程序的另一特點是具有動態性。程序由於並行性和制約性導致其狀態是不斷改變的,因而具有動態性。

     綜上在多道程序設計這個複雜的系統中,程序首次出現了並行性、制約性和動態性特點,這就使得原來的程序概念已經很難反映多道程序系統中的情況。爲了和以往的靜態的程序相區別,於是產生了一個新的概念來反映系統的特點,這就是進程。

二、進程的定義

     進程產生的原因我們算是清楚了,那麼什麼是進程呢?關於進程的定義,目前似乎還沒有一種公認的統一的說法,但大體上有下面幾種定義:

1)程序在處理器上的執行;

2)一個可調度的實體;

3)邏輯上的一段程序,在每一瞬間都含有一個程序控制點,指出正在執行的指令;

4)可以與別的進程並行執行。

三、進程與程序的區別

1)進程是程序的執行,是動態的,而程序是存儲在磁盤上指令的有序集合,是靜態的;

2)進程存在生命期,因爲它是程序的一次執行,存在誕生和死亡,而程序是永久的;

3)進程的組成包括程序、數據和程序控制塊;

4)一個程序可能對應多個進程; 

5)一個進程可以包含多個程序,因爲主程序在執行過程中可以調用其他程序,共同組成“一個運行活動”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章