Chinaunix

标题: 請問 Linux thread Scheduling time [打印本页]

作者: justin_wang0710    时间: 2015-01-05 09:36
标题: 請問 Linux thread Scheduling time
本帖最后由 justin_wang0710 于 2015-01-05 09:40 编辑

假設有一個 Application,裡面共有8個thread (No Priority)
每個Thread工作內容僅是打個GPIO H/L 一次,打完立即睡眠

void *test_Thread_1(int fg)
{
   while(1)
   {

                  led_setting(1);
                  led_setting0);
                  usleep(SLEEP_TIME); //100us
   }
}


Time-Sliced約如下圖

1.請問每個Thread 大約多少時間會被調度到??
2.Process1 執行約多少時間會調度到Process2?? Process2會執行多久才又會調度回Process1??

謝謝高手指教...

P/S: CPU為 Cortex A8 1GHz ARM,Linux Kernel 3.2
       CONFIG_HZ =100








作者: humjb_1983    时间: 2015-01-05 17:19
这个不太好确定具体的时间了,影响的因素看似有点多,比如调度算法、CPU主频(决定每条指令执行的时间)、软中断的延迟、还有时钟中断的影响。
个人觉得,不考虑这些的话,大致粗算的平均时间(假设led_setting(1) 和led_setting(0)对应的指令执行时间为x):
                  
100us+7*x  ?

总的来说Linux是无法保证实时的~




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2