華為應聘機試題 「作業系統排程」

2021-06-18 06:30:03 字數 1164 閱讀 2524

*作業系統任務排程問題。作業系統任務分為系統任務和使用者任務兩種。

其中,系統任務的優先順序 < 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...