114 嘗試OS任務排程優先順序最高任務搜尋測試

2021-09-23 01:57:31 字數 741 閱讀 7384

這只是乙個測試**,實際中不可用。實際的設計中,資訊更多,結構也更複雜,同時也會用到鍊錶等更高階的資料結構。

這裡只是做乙個測試。

測試**:

#include "stdio.h"

#define task_num 10

typedef unsigned short uint16_t;

typedef unsigned char uint8_t;

typedef enum state_tag

task_state_t;

typedef struct task_tcb_tag

tcb_t;

tcb_t task_dmeos[task_num];

uint8_t task_ready_tbl[task_num];

tcb_t *get_task2run(void)

}pri_max = task_priority[0];

j = 0;

for (i = 1; i < active_task_num; i++)

}return &task_dmeos[task_rdy_index[j]];

}int main(void)

幾次修改並測試,感覺效果還可以。

測試修改的**就不再整理說明了。

OS的程序排程及優先順序反轉

在多程序 多執行緒併發的環境裡,從概念上看,有多個程序或者多個執行緒在同時執行,具體到單個cpu級別,實際上任何時刻只能有乙個程序或者執行緒處於執行狀態 因此os需要決定哪個程序執行,哪些程序等待,也就是程序的排程。一 排程的目標 1 首先要區分程式使用cpu的三種模式 io密集型 計算密集型和平衡...

Hadoop Mapreduce優先順序排程

作業提交到的佇列 mapreduce.job.queuename 作業優先順序 mapreduce.job.priority pig版本 set mapreduce.job.queuename root.etl.distcp set mapreduce.job.priority high hive版...

優先順序排程演算法

include include includetypedef struct node pcb pcb ready null,run null,finish null 定義三個佇列,就緒佇列,執行佇列和完成佇列 int num void getfirst 從就緒佇列取得第乙個節點 void outpu...