有關排程器的問題,我們可以做個簡單的探討,排程裡面通常會有任務(task,有的翻成工作元)及處理(process),在多工的環境裡,每個任務都有自己的內文(寫入的程式),當排程器從一個任務切換到另一個任務時候,就會發生內文轉換的情況,每次新的任務被創建時,kernel就會產生一個任務的控制區塊(task control block),這類的任務區塊是種動態的方式存在,工作執行的時候,他就會依序進行,不運行的時候,就會把內文暫時做停止運行。
排程器要從一個任務轉換到另一個任務所花的時間,就稱為內文切換時間,假設內文切換很繁雜,此時,就會增加很多部必要的負荷及時間耗損,所以程式設計時很重要的一點,就是避免包含太多的內文轉換。
排程器主要就是在決定是否有必要進行內文切換,當排程器覺得有必要時,就會依靠分發器來進行切換。
為什麼我會把這部分拿出來探討,主要因為我目前工作,有部分是在探討流程,所以,本人才會把它拿出來做個簡單的探討,其實,這些觀念,不只存在ARM裡面,生活上很多地方都是要應用到排程,大部分我們的生活都希望是單工的方式存在,可是,實際上卻是多工的方式在面對生活,我們都希望生活是生活,工作是工作,但很不幸的,如果家中發生一件不快樂的事情,其實就回影響到工作情緒,所以我們能不能有任務控制區塊來把不愉快的生活暫時凍結呢?
其實我也想,但是,逃避總是不能解決問題~~~
遲早還是會遇到,所以我常覺得ARM基本上就是另一種人生的轉換!
嘆氣....