1. 程式人生 > >Linux核心分析(九)——總結篇

Linux核心分析(九)——總結篇

       處理資源主要我們指的是程式的執行,我們知道程式的一個可執行例項是程序,裡面包含了程式碼可以執行的最基本資料集合。那麼從時間的維度上看,作業系統如何載入一個程式就是我們首先需要關心的,Linux中是把這個程式的執行地址的開頭作為引數傳遞給作業系統然後由系統將它啟動,系列文章中有涉及。從巨集觀的角度上看,任務或者說程式被例項化成很多的程序,作為允許多程序同時執行的系統,Linux是如何在程序之間進行切換的呢?實際上我們在文章中有介紹Linux程序建立和切換原始碼的分析。這就好比你在做作業,比如你在做數學,用到了計算器,草算紙,做到一半你忽然需要看數學書了,這個時候你要記住你做到哪一個題、計算這個題的一些中間結果在草紙上要標記一下、看完書回來你才可以繼續做這道題。程序切換也是這樣的一個過程,包括中斷處理也是這樣的過程,你需要儲存你正在做的這件事情的上下文(哪道題、計算的中間結果等等)然後再去做別的,這樣保證你回來繼續做的時候能夠連貫不出錯。這裡面看出作業系統實際上在處理任務的時候和人有一定的相似性。從微觀的角度來看
函式的呼叫也是上述這個過程,你需要知道怎麼回到呼叫你的函式繼續執行。系統呼叫也同樣是這個思路。那麼所有的這些儲存的資訊都是用堆疊完成的。