進程和程序的區別 - 分享一個故事
今天看見一個關于進程和程序區別的故事比較不錯:一位廚藝很好的計算機科學家正在為他的女兒烘制生日蛋糕。他做的生日蛋糕有食譜,廚房中有所需要的原料:面粉、糖、奶油等。在這個比喻中,做蛋糕的食譜就是程序了(即用適當的形式描述的算法),計算機科學家就是處理機(CPU),而做蛋糕的原料就是輸入數據了。進程就是廚師閱讀食譜、取得各種原料、烘制蛋糕的一系列動作的總和。
現在假設計算機科學家的兒子哭著跑了進來,說他被一只蜜蜂蟄了。計算機就記錄他的蛋糕照著食譜做到什么地方了(保存進程的當前狀態),然后拿出一本急救手冊,按照急救手冊中的指示處理蟄傷。這里我們看見了處理機(科學家)從低優先級的進程(做蛋糕)切換到一個高優先級的進程(處理蟄傷,實施醫療救治),每個進程都有各自的程序(菜譜和急救手冊)。當蟄傷處理完畢,科學家又回來做蛋糕,從剛才離開時的哪一步繼續做下去。
關鍵思想:
進程是某種類型的活動,它有程序、輸入、輸出、狀態。單個處理機被若干進程共享,它使用某種調度算法決定何時停止一個進程的工作,并轉為另一個進程提供服務。
原文參考自web開發網:http://www.software8.co/wzjs/cxyyg/3641.html