顯示廣告
隱藏 ✕
※ 本文為 swallow.bbs. 轉寄自 cd.twbbs.org 更新時間: 2013-02-06 16:25:05
看板 P_acon
作者 swallow (A piece of summer)
標題 [認真]OS2期末整理(2)
時間 Wed Jun 20 21:00:13 2012


jiffies

    OS啟動以後,每發生一次time interrupt,jiffies就會加一

    jiffies_32 有可能會overflow

    jiffies_64 和jiffiles_32在系統中共用一個位置

    除了jiffies以外,還有一個Real Time Clock (RTC),在BIOS裡面

    開機的時候讀RTC,之後就用jiffies,就可以算時間






--
tickless OS

    如果CPU沒事做,而interrupt不斷送上來,CPU就無法休息,可以降低overhead及省電

    何不依照真正的時間需求設定interrupt,OS會看下一個timer什麼時候到期

    就可以休息到那個時候

    困難點在linux長期依賴jiffies,使用tickless OS的行為要和傳統linux一樣












--
update_process_times() & account_process_tick()

    update_process_times(user_mode(get_irq_regs())):知道這個task到底執行多久

    timer interrupt上來的時候,會去統計到底是哪個process在使用CPU

    還要知道該process是執行於krl_mode或是usr_mode

    要拿program counter判斷,program counter大於3G就是krl_mode,反之就是usr_mode

    program counter如何取得,interrupt進來的時候ISR會把program counter和暫存器

    存到stack裡面,所以去stack檢查就知道了


    account_process_tick()

    task執行的時候,時間中斷去作調查

    計算的時候紀錄使用多少資源,抽樣調查的週期比較大,所以會不太準

--
Software timers

    data structure

        struct timer_list{

            struct list_head entry;         //link list
            unsigned long expires;          //事件發生時間
            void (*function)(unsigned long);//function name(參數)
            unsigned long data;
            struct tvec_t_base_s *base;
        }

    the linux approach

        用index的結構         每一個都是一個call out queue,但是queue裡面沒排序
                                ↑
        時間分類  (0~255)  ( < 2^14-1)  ( < 2^20-1) ...
                    日         月           年

        新增的時候時間複雜度是O(1)
--
    the BSD approach

        call out queue,把所有的事件排成一個list,時間最短的在前面

        裡面紀錄的tick值是該項和前項的差值
--
                        你們都是我的翅膀         -Unlight-
     nonoise           __▁__▁︿︿︿︿ ▼  ▁_▁___
                     ▌_▁    _▁_ 
      我是不會       ▼▕◣◣◣│   ◢◢ 沒想到還
          原諒你的 ◆▕ ˙  ˙ _____  _  .  .  ▏       能再見到你
                    ◣       △  \\\\\  
--
* Origin: 中正築夢園 (CcuDream.twbbs.org) ★ From: 1.175.143.246  

 [Modified by swallow] From: 1.175.143.246   (2012/06/20 Wed 21:56:30)
 [Modified by swallow] From: 1.175.143.246   (2012/06/20 Wed 22:03:49)
co 推薦推薦這篇文章                                       *|06/21 02:42 arnr
h3615840 推薦推薦這篇文章                                 *|06/21 07:43 vgQf
yo6317 推薦推薦這篇文章                                   *|06/21 23:19 ggza
yo6317 轉錄本文已轉錄到某秘密看板                         *|06/21 23:20 ggza
lahaha 推薦推薦這篇文章                                   *|06/22 06:29 ggzd
p1234567890 推薦推薦這篇文章                              *|06/22 15:26 omkC

--
※ 看板: Swallow 文章推薦值: 0 目前人氣: 0 累積人氣: 200 
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇