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