*作業系統任務排程問題。作業系統任務分為系統任務和使用者任務兩種。
其中,系統任務的優先順序 < 50,使用者任務的優先順序 >= 50且 <= 255。
優先順序大於255的為非法任務,應予以剔除。現有一任務佇列task,長度為n,
task中的元素值表示任務的優先順序,數值越小,優先順序越高。
函式scheduler實現如下功能,將task 中的任務按照系統任務、使用者任務依次存放到 system_task 陣列和 user_task 陣列中
(陣列中元素的值是任務在task 陣列中的下標),並且優先順序高的任務排在前面,陣列元素為-1表示結束。
例如:task =
system_task =
user_task =
函式介面 void scheduler(int task, int n, int system_task, int user_task)*/
#include
#include
#include
void scheduler(int task, int n, int system_task, int user_task)
if (task[i]>=50 && task[i]<=255)
}system_task[num1] = -1;
user_task[num2] = -1;
for (i=0;i
}for(j=0;j<=num1;j++)
printf("%3d",system_task[j]);
printf("\n");
for(j=0;jprintf("%3d",index1[j]);
printf("\n");
for (i=0;i
}for(j=0;j<=num2;j++)
printf("%3d",user_task[j]);
printf("\n");
for(j=0;jprintf("%4d",index2[j]);
printf("\n");
}int main()
;int system_task[9]=;
int user_task[9] = ;
scheduler(task,9,system_task,user_task);
return 0;
執行結果:
華為機試題 作業系統任務排程問題
作業系統任務排程問題。作業系統任務分為系統任務和使用者任務兩種。其中,系統任務的優先順序 50,使用者任務的優先順序 50且 255。優先順序大於255的為非法任務,應予以剔除。現有一任務佇列task,長度為n,task中的元素值表示任務的優先順序,數值越小,優先順序越高。函式scheduler實現...
華為一道機試題 作業系統任務排程問題
作業系統任務排程問題。作業系統任務分為系統任務和使用者任務兩種。其中,系統任務的優先順序 50,使用者任務的優先順序 50且 255。優先順序大於255的為非法任務,應予以剔除。現有一任務佇列task,長度為n,task中的元素值表示任務的優先順序,數值越小,優先順序越高。函式scheduler實現...
華為微控制器作業系統 華為物聯網作業系統LiteOS
注意 本課程中講的liteos是liteos kernel面向華為雲iot發展的一套iotos,又叫iot link,並不是harmonyos鴻蒙系統。鴻蒙系統中也使用liteos 作為kernel,而且有liteos m和liteos a兩套。實際上鴻蒙中的liteos m和本課程講的liteos...