華為機試題 任務排程問題

2021-06-23 01:19:11 字數 1083 閱讀 3324

作業系統任務排程問題。作業系統任務分為系統任務和使用者任務兩種。其中,系統任務的優先順序 < 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)

#includeusing namespace std;

void scheduler(int task,int n,int system_task,int user_task)

else if(task[i]<50)

else if(task[i]>=50&&task[i]<=255)

}system_task[s1]=-1;//將資料分別送入 system_task陣列和user_task陣列後,按照題目往後面加入'-1'

system_task[s1+1]=0;

user_task[s2]=-1;

user_task[s2+1]=0;

for(int i=0;itask[system_task[j]])//注意:system_task陣列存放的就是task陣列的下標,可以直接讀取下標.

}for(int i=0;itask[user_task[j]])

}}int main();

int n=sizeof(task)/sizeof(task[0]);

int system_task[10];

int user_task[10];

scheduler(task,n,system_task,user_task);

int i=0,j=0;

cout<<"系統任務:";

do {

cout<

華為機試題 作業系統任務排程問題

作業系統任務排程問題。作業系統任務分為系統任務和使用者任務兩種。其中,系統任務的優先順序 50,使用者任務的優先順序 50且 255。優先順序大於255的為非法任務,應予以剔除。現有一任務佇列task,長度為n,task中的元素值表示任務的優先順序,數值越小,優先順序越高。函式scheduler實現...

華為一道機試題 作業系統任務排程問題

作業系統任務排程問題。作業系統任務分為系統任務和使用者任務兩種。其中,系統任務的優先順序 50,使用者任務的優先順序 50且 255。優先順序大於255的為非法任務,應予以剔除。現有一任務佇列task,長度為n,task中的元素值表示任務的優先順序,數值越小,優先順序越高。函式scheduler實現...

排程機任務排程問題

題目描述 假設有乙個 排程機,有n個任務相同的任務需要排程到m臺伺服器上執行,由於每台伺服器的配置不一樣,因此,伺服器執行乙個任務所花費的時間也不同。現在假設第i個伺服器執行乙個任務需要的時間為t i 假如,有2個執行機a與b,執行乙個任務分別需要7min和10min,有6個任務待排程。如果平分這6...