任務調度隊列
問題描述:
在操作系統(tǒng)中,通常任務調度器會根據(jù)輸入任務的優(yōu)先級和狀態(tài),將輸入任務放入到合適的任務隊列中,等待執(zhí)行。請編寫程序,實現(xiàn)該調度功能,具體要求如下
1、 對于優(yōu)先級高的任務,在任務隊列中應該放入到優(yōu)先級低的任務前面。對于相同優(yōu)先級的任務,則根據(jù)進入任務隊列的順序依次放置
2、 任務分為系統(tǒng)任務和用戶任務,調度器識別任務類型,分別放入系統(tǒng)任務列表和用戶任務列表,無法識別的任務類型被忽略
比如: 輸入: 任務task[] = {1,30,155,100,230,300,25,30,100}
輸出: 系統(tǒng)任務system_task[]={0,6,1,7,-1};用戶任務user_task[]={3,8,2,4,-1}
其中輸入任務中task[5]=300,為非法任務,被忽略,其編號5不在輸出中體現(xiàn)。
要求實現(xiàn)函數(shù):
void scheduler(int n, int task[], int system_task[], int user_task[])
【輸入】 int n,輸入任務數(shù)目,總數(shù)目不超過255(n<=255)
int task [],下標表示輸入任務編號(從0開始),值為任務的優(yōu)先級,值越小優(yōu)先級越高。規(guī)定優(yōu)先級范圍為0~255,其中優(yōu)先級小于50的為系統(tǒng)任務,大于等于50的為用戶任務。超過優(yōu)先級范圍的為無法識別的任務(非法任務,調度器應該忽略該任務)。
【輸出】 int system_task[],按優(yōu)先級順序放置的系統(tǒng)任務編號。其值為任務編號,優(yōu)先級高的任務在前,優(yōu)先級低的任務在后。放置完最后一個任務后,用-1表示任務放置結束
int user_task[],按優(yōu)先級順序放置的用戶任務編號。其值為任務編號,優(yōu)先級高的任務在前,優(yōu)先級低的任務在后。放置完最后一個任務后,用-1表示任務放置結束
【返回】 無
示例
輸入: int n = 9; int task[] = {1,30,155,100,230,300,25,30,100}
輸出: int system_task[]={0,6,1,7,-1}
int user_task[]={3,8,2,4,-1}