最高優先數演算法
① 優先順序時公式的運算順序,什麼是運算符級別最高的
運算符優先順序
如果一個公式中有若干個運算符,Excel 將按下表中的次序進行計算。如果一個公式中的若干個運算符具有相同的優先順序(例如,如果一個公式中既有乘號又有除號),Excel 將從左到右進行計算。
運算符 說明 
:(冒號) 
(單個空格)
,(逗號)
 引用運算符 
- 負數(如 –1) 
% 百分比 
^ 乘方 
* 和 / 乘和除 
+ 和 – 加和減 
& 連接兩個文本字元串(串連) 
=
< >
<=
>=
<> 比較運算符 
使用括弧
若要更改求值的順序,請將公式中要先計算的部分用括弧括起來。例如,下面公式的結果是 11,因為 Excel 先進行乘法運算後進行加法運算。將 2 與 3 相乘,然後再加上 5,即得到結果。
=5+2*3
但是,如果用括弧對該語法進行更改,Excel 將先求出 5 加 2 之和,再用結果乘以 3 得 21。
=(5+2)*3
在以下示例中,公式第一部分的括弧強制 Excel 先計算 B4+25,然後再除以單元格 D5、E5 和 F5 中值的和。
=(B4+25)/SUM(D5:F5)
② 操作系統搶占式最高級優先演算法為什麼A進程開始執行時間不是9:50 還有結束時間為什麼是10:10
a最開始來,到9.20才被搶占,總時間是20(運行到b進程來)+30(b需要的時間)+20(a剩餘需要時間)
③ 優先最高級運算符
運算符優先順序
  如果一個公式中有若干個運算符,Excel 將按下表中的次序進行計算。如果一個公式中的若干個運算符具有相同的優先順序(例如,如果一個公式中既有乘號又有除號),Excel 將從左到右進行計算。
  運算符 說明 
  :(冒號) 
  (單個空格) ,選擇A
④ 將最高優先數優先的調度演算法改為時間片輪轉調度演算法
#include<iostream>
using namespace std;
struct PCB_Type{
	char name;
	int cpu_time;
}; 
struct QueueNode{
	struct PCB_Type PCB;
	struct QueueNode *next;
};
int main(){
	 int m,n,t;
	 int usecpu=0,unusecpu=0;
     cout<<"輸入就緒隊列中的進程數目m:";
	 cin>>m;
	 cout<<"輸入阻塞隊列中的進程的數目n:";
	 cin>>n;
	 cout<<"輸入喚醒系統資源的相隔時間片個數t:";
	 cin>>t;
	 struct QueueNode *readyhead=new QueueNode ,*readytail=new QueueNode,
		 *blockedhead=new QueueNode,*blockedtail=new QueueNode;
	// readyhead=NULL;readytail=NULL;blockedhead=NULL;blockedtail=NULL;
	 readyhead=readytail;
	 blockedhead=blockedtail;
	 for(int i=1;i<=m;i++){
		 struct QueueNode *t1=new QueueNode;
		 cout<<"輸入就緒隊列中進程的name和cpu_time:";
         cin>>t1->PCB.name>>t1->PCB.cpu_time;
		 readytail->next=t1;
		 readytail=t1;
	 }
      for(int j=1;j<=n;j++){
         struct QueueNode *t2=new QueueNode;
		 cout<<"輸入阻塞隊列中進程的name和cpu_time:";
         cin>>t2->PCB.name>>t2->PCB.cpu_time;
		 blockedtail->next=t2;
		 blockedtail=t2;
	 }
     
	 cout<<"輸出就緒隊列的進程信息:";
     for(struct QueueNode *t3=readyhead->next;t3!=readytail->next;t3=t3->next){
	     cout<<t3->PCB.name<<"、"<<t3->PCB.cpu_time<<"---> ";
	 } 
     cout<<"無進程";
	 cout<<endl;
	 cout<<"輸出阻塞隊列的進程信息:";
	 struct QueueNode *t4;
	 t4=blockedhead->next;
     while(t4!=blockedtail->next){
         cout<<t4->PCB.name<<"、"<<t4->PCB.cpu_time<<"---> ";
	     t4=t4->next;
	 }
	 cout<<"無進程";
	 cout<<endl<<"進程的運行順序:";
	 int x=0;
     while(readyhead!=readytail||blockedhead!=blockedtail){
		 if(readyhead!=readytail){
			 struct QueueNode *p=readyhead->next;
			 cout<<p->PCB.name<<",";
			 p->PCB.cpu_time--;
			 usecpu++;
			 if(readyhead->next!=readytail){
			    if(p->PCB.cpu_time>0){
                 readyhead->next=p->next;//出隊列
				 readytail->next=p;
				 readytail=p;
				}
			    else{
				 readyhead->next=p->next;
				 delete p;
				}
			 }
			 else//隊列中只有兩個節點  頭結點和尾結點
			 {
				 if(p->PCB.cpu_time<=0){readytail=readyhead;//只有進程為執行完,就繼續執行,完成之後,把隊列清空,釋放指針p;就緒隊列無進程
				                       delete p;}
			 }
		 }
	     else 
		  {
			  unusecpu++;
			  cout<<"_,";
		  }  
		 x++;
		 if(x==t){
			 if(blockedhead!=blockedtail){
				 
            struct QueueNode *q=blockedhead->next;
			if(blockedhead->next!=blockedtail)
			{
				blockedhead->next=q->next;
			}
			else
			{
				blockedhead=blockedtail;
			}
		    readytail->next=q;
			readytail=q;
			x=0;
		 }
		 }
	 }
	 cout<<endl;
	 cout<<"cpu的利用率="<<usecpu<<"/"<<usecpu+unusecpu<<endl;
	return 0;
}
⑤ 最高響應比優先作業調度演算法
此演算法中,優先數=(等待的時間+要求服務的時間)/要求的服務時間,這是一個非搶占的進程,進程一旦得到處理器,他就一直運行下去到進程完成,中間不被強占。
⑥ 大學操作系統:假設下述四個作業同時到達,當使用最高優先數優先調度演算法時,作業的平均周轉時間為__小時
最高優先順序優先調度,同時到達先運行作業2,運行5個時間單位結束,作業2的周轉時間為5,接著運行作業4,運行3個時間單位結束,作業4周轉時間為(5+3)=8
再運行作業1,作業1周轉時間為(5+3+2)=10,
最後運行作業3,周轉時間為(5+3+2+8)=18
 
所以結果為(5+8+10+18)/4=10.25
⑦ 動態優先數高者優先進程調度演算法
我也在找這個
⑧ 怎樣實現短作業優先和高響應比優先演算法
1.先來先服務調度演算法(FCFS):就是按照各個作業進入系統的自然次序來調度作業。這種調度演算法的優點是實現簡單,公平。其缺點是沒有考慮到系統中各種資源的綜合使用情況,往往使短作業的用戶不滿意,因為短作業等待處理的時間可能比實際運行時間長得多。
2.短作業優先調度演算法(SPF): 就是優先調度並處理短作業,所謂短是指作業的運行時間短。而在作業未投入運行時,並不能知道它實際的運行時間的長短,因此需要用戶在提交作業時同時提交作業運行時間的估計值。 
3.最高響應比優先演算法(HRN):FCFS可能造成短作業用戶不滿,SPF可能使得長作業用戶不滿,於是提出HRN,選擇響應比最高的作業運行。響應比=1+作業等待時間/作業處理時間。
4. 基於優先數調度演算法(HPF):每一個作業規定一個表示該作業優先順序別的整數,當需要將新的作業由輸入井調入內存處理時,優先選擇優先數最高的作業。
5.均衡調度演算法,即多級隊列調度演算法
基本概念:
   作業周轉時間(Ti)=完成時間(Tei)-提交時間(Tsi)
   作業平均周轉時間(T)=周轉時間/作業個數
   作業帶權周轉時間(Wi)=周轉時間/運行時間
   響應比=(等待時間+運行時間)/運行時間
⑨ 在最高優先順序演算法的系統中,cpu調度方式為不可搶占是,不會發生進程切換的是
A ,BCD三種情況在該前提下均發生進程切換。
