理解操作系统的进程的概念就如吃饭一样简单
生活随笔
收集整理的這篇文章主要介紹了
理解操作系统的进程的概念就如吃饭一样简单
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
想當初我學習操作系統時尤其苦逼,看完了一整教材,仍然云里霧里。后來多看了幾本書后,才發現我學習操作系統理論知識時過于求成,對于最最最基本的進程的概念沒掌握的情況下去學習后續內容所得到的效果甚微。
學習操作系統理論知識,千萬不能死記硬背,可以通過類比、抽象等方式來理解。接下來我以“吃飯”這樣淺顯的道理來形象地解釋一下進程的概念。嗯,開始!
==============================================================================================
假設飯桌上有一盤菜和兩份碗筷,還有兩個人
并且,將這兩個人類比為操作系統的兩個進程
情景:?兩個人在各自的碗中裝滿了飯,然后拿起了筷子,意為這兩個人就做好了吃飯的準備。
以操作系統的角度來看:裝飯相當于進程被分配了所需的資源,然后進程進入了就緒狀態。
運行狀態:
情景:?兩個人中某人拿起筷子夾菜往嘴里吃,往肚子里咽,這吃菜的過程就是吃飯的核心。
以操作系統的角度看:吃菜的過程相當于進程的運行狀態。
阻塞狀態:
情景:?兩個人中,如果有一個人吃完了一碗飯,并叫來服務員點多一碗飯,在飯還沒到的期間只能等待和眼睜睜看著另一個人吃得歡樂。
以操作系統的角度看:這是進程提出資源請求而處于等待或稱之為阻塞狀態。
進程的優先級;
情景:?如果一起吃飯的兩個人中,一個是老板,一個是員工,兩人都做好吃飯的準備后,那自然是老板先吃,這是不同身份之間的吃飯順序問題。
以操作系統的角度看:如果多個進程處于就緒狀態,那么優先級高的進程可以先進入運行狀態。
進程與CPU:
情景:?如果把飯桌上的菜看作是CPU,兩個人中有且只能有一個人可以夾菜吃,另一個人不能動筷子。
以操作系統的角度看:這是某進程某時刻占有CPU并處于運行狀態。
進程的死鎖:
情景:?如果把飯桌上的菜看作是某個內存空間,兩個人同時夾同一條菜時不放手,導致兩人都不能好好吃飯。
以操作系統的角度看:這叫做進程的死鎖,互相爭奪和等待對方釋放資源。
進程間的通信:
情景:?如果兩個吃飯在過程中不是各自悶頭吃飯,而是邊吃邊聊天,一個問問題另一個回答。
以操作系統的角度看:聊天就相當于進程間的通信。
父子進程并發:
情景:?如果兩個人是父子關系,吃飯的過程中不是兒子必須等父親吃完再吃,而是兩人同時吃。
以操作系統的角度看:這是父進程與子進程并發執行。
進程的獨立性:
情景:?如果兩個人互不相識,各自吃著不同的菜,當其中某人吃完后不會等待另一個人而直接結賬走人。
以操作系統的角度看:進程運行完畢進程結束。另外,進程有結束自然有創建,一般在進程變為就緒狀態之前都是創建狀態。
處理機調度:
情景:?如果兩個人吃飯,總會有一個順序的規則,比如甲先夾菜吃然后到乙夾菜吃,如果同時夾菜吃容易引發沖突情況。
以操作系統的角度看:多個進程的執行順序問題是用處理機調度來解決的。
設備間的并行:
情景:?如果甲和乙兩個人在吃飯,有第三個人丁是一個歌手,甲乙心血來潮點歌給丁唱,然后甲乙邊吃飯邊看丁的才藝表演,兩者同時進行。
以操作系統的角度看:這是設備的并行執行,典型的例子是cpu跟通道的并行執行。
==============================================================================================
注意,以上淺顯的吃飯道理來解釋系統的進程概念也是很淺顯的。所以仍然需要把計算機操作系統的書籍中關于進程的幾十頁部分仔仔細細地深入學習。“飯桌上的進程”只能用于輔助理解操作系統的進程的概念。
如果正在學習操作系統理論知識并被各種苦澀的概念和術語困住的童鞋,可以通過這樣的方式來理解和學習操作系統,以免學習過程過于無趣和枯燥。由于本文是我憑記憶來寫,所以文中某些術語也許有錯誤,還請讀者帶著批判性思維來閱讀本文。文中有錯誤之處,請不要放過我,歡迎評論。
總結
以上是生活随笔為你收集整理的理解操作系统的进程的概念就如吃饭一样简单的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智能钢琴小提琴吉他教育曲谱识别(5线谱/
- 下一篇: STM8S主时钟切换(使用HSE时钟源)