請問 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
这个不太好确定具体的时间了,影响的因素看似有点多,比如调度算法、CPU主频(决定每条指令执行的时间)、软中断的延迟、还有时钟中断的影响。
个人觉得,不考虑这些的话,大致粗算的平均时间(假设led_setting(1) 和led_setting(0)对应的指令执行时间为x):
100us+7*x?
总的来说Linux是无法保证实时的~
页:
[1]