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