作業調度算法

作業序列
作業1 作業2 作業3 作業4
提交時間: 提交時間: 提交時間: 提交時間:
執行時間: 執行時間: 執行時間: 執行時間:
調度方法選擇
先來先服務 短作業優先 響應比優先

平均週轉時間:  平均帶權週轉時間:



由於Blog出於安全的原因,把<form>標籤過濾了,所以網頁程序有錯,給出源代碼如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>作業調度算法</title>
</head>
<style>
.button{background-color: #ffffff; cursor: hand; color: #000000; height: 20pt; clip:  rect(   );  border-color: #CCCCCC #666666 #666666 #CCCCCC; border-style: ridge; border-top-width: thin; border-right-width: thin; border-bottom-width: thin; border-left-width: thin}
td{font-size: 11pt; font-style: 正規; font-weight: 正規; text-decoration: none}
body{font-size: 11pt; font-style: 正規; font-weight: 正規; text-decoration: none}
.text{background-color: #FFFFFF; border: thin #CCCCCC groove}
</style>
<body topmargin="0" leftmargin="0">
<form name="work">
  <table align="center" border="1" width="100%" height="222">
    <tr>
    <td height="123">
     <table border="1" align="center">
          <tr bgcolor="#CCCCCC">
            <td colspan="4" align="center" >作業序列</td>
    </tr>
    <tr><td>作業1</td><td>作業2</td><td>作業3</td><td>作業4</td></tr>
    <tr>
        <td>提交時間:
              <input name="time_submit" type="text" value="8.00" size="4" maxlength="4"></td>
        <td>提交時間:
              <input name="time_submit" type="text" value="8.50" size="4" maxlength="4"></td>
        <td>提交時間:
              <input name="time_submit" type="text" value="9.0" size="4" maxlength="4"></td>
        <td>提交時間:
              <input name="time_submit" type="text" value="9.50" size="4" maxlength="4"></td>
    </tr>
    <tr>
        <td>執行時間:
              <input name="time_execute" type="text" value="2.0" size="4" maxlength="4"></td>
     <td>執行時間:
              <input name="time_execute" type="text" value="0.50" size="4" maxlength="4"></td>
     <td>執行時間:
              <input name="time_execute" type="text" value="0.10" size="4" maxlength="4"></td>
     <td>執行時間:
              <input name="time_execute" type="text" value="0.20" size="4" maxlength="4"></td>
    </tr>
   </table>
 </td>
  </tr>
  <tr>
      <td height="52" align="left" valign="top">
        <table align="center" border="1">
       <tr bgcolor="#CCCCCC">
            <td colspan="3" align="center">調度方法選擇</td>
   </tr>
   <tr>
       <td><input type="radio" value="first" name="method_select" checked>先來先服務</td>
       <td><input type="radio" value="short" name="method_select">短作業優先</td>
    <td><input name="method_select" type="radio" value="respond">
              響應比優先</td>
   </tr>
  </table>
  </td>
  </tr>
  <tr><td align="center"><input type="button" value="顯示結果" name="display" class="button"><br>
   平均週轉時間:<input type="text" size=4 name="result1">&nbsp;
   平均帶權週轉時間:<input type="text" size=4 name="result2">
   </td></tr>
   <tr><td align="center"><input type="reset" value="重新填寫" class="button"></td></tr></table>
</form>
<br><br><br>
<center><font style="font-size: 30pt;background-color: #FFFFFF;color=#ffffff">996621班  白建明製作</font></center>
</body>
</html>
<script language="VBScript">
dim time_round(4)
 dim tmp
 dim t
 dim w
 dim temp(4)
sub display_onclick
 
 if document.work.method_select(0).checked=true then
  <!-- 此爲先來先作業////////////////////////////////////-->
   t=0
   w=0
    tmp=cdbl(document.work.time_submit(0).value)
    for i=0 to 3
      tmp=tmp+cdbl(document.work.time_execute(i).value)
      time_round(i)=tmp-cdbl(document.work.time_submit(i).value)
      //msgbox time_round(i)
      t=t+1/4*(time_round(i))
      w=w+1/4*(time_round(i)/cdbl(document.work.time_execute(i).value))
    next
    document.work.result1.value=t
    document.work.result2.value=w
    //msgbox document.work.time_submit(0).value
 elseif document.work.method_select(1).checked=true then
 <!-- 此爲當短作業優先 /////////////////////////////////-->
  for i=1 to 3
   temp(i)=4-i
 next
 temp(0)=0
 i=3
 do while i>1
    for j=1 to i-1
   if cdbl(document.work.time_execute(temp(j)).value)>_
   cdbl(document.work.time_execute(temp(j+1)).value) then
   tmp=temp(j)
   temp(j)=temp(j+1)
   temp(j+1)=tmp
   end if  
 next
 //msgbox temp(1) & " " & temp(2) & " " & temp(3)
    i=i-1
 loop//do while
 t=0
 w=0
    tmp=cdbl(document.work.time_submit(temp(0)).value)
    for i=0 to 3
      tmp=tmp+cdbl(document.work.time_execute(temp(i)).value)
      time_round(i)=tmp-cdbl(document.work.time_submit(temp(i)).value)
      //msgbox time_round(i)
      t=t+1/4*(time_round(i))
      w=w+1/4*(time_round(i)/cdbl(document.work.time_execute(temp(i)).value))
    next
    document.work.result1.value=t
    document.work.result2.value=w
 /////////////////////////////////////響應比優先
 else
 for i=0 to 3
    temp(i)=4-i
 next
 temp(0)=0
 dim respond(4)
 for i=1 to 3
  respond(i)=1+(cdbl(document.work.time_submit(0).value)+cdbl(document.work.time_execute(0).value)-_
                 cdbl(document.work.time_submit(i).value))/cdbl(document.work.time_execute(i).value)
  //msgbox respond(i)
  next
  temp(0)=0
 i=3
 do while i>1
    for j=1 to i-1
   if respond(temp(j))<respond(temp(j+1)) then
   tmp=temp(j)
   temp(j)=temp(j+1)
   temp(j+1)=tmp
   end if  
 next
 //msgbox temp(1) & " " & temp(2) & " " & temp(3)
    i=i-1
 loop//do while
 /////////////////////////以上爲確定響應比的優先級
 t=0
 w=0
    tmp=cdbl(document.work.time_submit(temp(0)).value)
    for i=0 to 3
      tmp=tmp+cdbl(document.work.time_execute(temp(i)).value)
      time_round(i)=tmp-cdbl(document.work.time_submit(temp(i)).value)
      //msgbox time_round(i)
      t=t+1/4*(time_round(i))
      w=w+1/4*(time_round(i)/cdbl(document.work.time_execute(temp(i)).value))
    next
    document.work.result1.value=t
    document.work.result2.value=w 
  ///////////////////////////////////////////
  end if
 end sub
 ////////////////////////////////////////////
 sub average(first)
    t=0
    w=0
    tmp=cdbl(document.work.time_submit(first).value)
    for i=0 to 3
      tmp=tmp+cdbl(document.work.time_execute(i).value)
      time_round(i)=tmp-cdbl(document.work.time_submit(i).value)
      //msgbox time_round(i)
      t=t+1/4*(time_round(i))
      w=w+1/4*(time_round(i)/cdbl(document.work.time_execute(i).value))
    next
    document.work.result1.value=t
    document.work.result2.value=w
 end sub
</script>
<!-- 以下爲取消反鍵的代碼/////////////////////////////////////////////////////////-->
<script language="JavaScript">
<!--
if (window.Event)
document.captureEvents(Event.MOUSEUP);
function nocontextmenu()
{
event.cancelBubble = true
event.returnValue = false;
return false;
}
function norightclick(e)
{
if (window.Event)
{
if (e.which == 2 || e.which == 3)
return false;
}
else
if (event.button == 2 || event.button == 3)
{
event.cancelBubble = true
event.returnValue = false;
return false;
}
}
document.oncontextmenu = nocontextmenu; // for IE5+
document.onmousedown = norightclick; // for all others
//-->
</script>96621班 白建明製作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章