1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 暑假實踐報告調度

        時間:2020-10-22 12:25:20 暑假實踐報告 我要投稿

        關于暑假實踐報告調度

          選題:

        關于暑假實踐報告調度

          在多道程序運行環境下,進程數目一般多于處理機數目,使得進程要通過競爭來使用處理機。這就要求系統能按某種算法,動態地把處理機分配給就緒隊列中的一個進程,使之運行,分配處理機的任務是由進程調度程序完成的。一個進程被創建后,系統為了便于對進程進行管理,將系統中的所有進程按其狀態,將其組織成不同的進程隊列。于是系統中有運行進程隊列、就緒隊列和各種事件的進程等待隊列。進程調度的功能就是從就緒隊列中挑選一個進程到處理機上運行。進程調度的算法有多種,常用的有優先級調度算法、先來先服務算法、時間片輪轉算法。

          1、先來先服務算法:

          實踐要求和意義:

         。1)實踐要求:

          進程的調度采用先來先服務算法。

          設計三個鏈隊列,分別用來表示運行隊列、就緒隊列和完成隊列。 ? 用戶輸入進程標識符以及進程所需的時間,申請空間存放進程PCB信息。 ④ 輸出的格式和上面的運行結果分析中的格式相同。

         。2)實踐意義:

          按照進程進入就緒隊列的先后次序來分配處理器;

          培養我們分析,解決問題以及自學的能力;

          提高我們書寫代碼以及論文文檔的寫作能力。

          課題實現:

          1、功能設計:

          先進入就緒隊列的進程優先被挑選,運行進程一旦占有處理器將一直運行下去直到運行結束或被阻塞,這是一種非剝奪式調度。

          2、結構設計:

         。1)開始。

         。2)設計三個鏈隊列,分別用來表示運行隊列、就緒隊列和完成隊列。

         。3)用戶輸入進程標識符以及進程所需的時間,申請空間存放進程PCB信息。

         。4)輸出的格式和上面的運行結果分析中的格式相同。

         。5)結束。

          3、核心算法:

          ·先來先服務算法的核心就是到達時間的排序,核心算法為: void sort(A *p,int N) //到達時間排序

          {

          for(int i=0;i<=N-1;i++)

          for(int j=0;j<=i;j++)

          if(p[i].arrivetime<p[j].arrivetime)

          {

          A temp;

          temp=p[i];

          p[i]=p[j];

          p[j]=temp;

          }

          }

          4、數據結構:

         。1)定義進程數以及進程名稱name[];

         。2)定義進程的一些屬性:

          ?進程的到達時間arrivetime;

          ?進程的服務時間servicetime;

          ?進程的開始時間starttime;

         、苓M程的結束時間finishtime;

          運行環境:

          (1)開發程序的操作系統:Windows XP

         。2)編譯工具:visual C++ 6.0

          2、時間片輪轉算法:

          實踐要求和意義:

         。1)實踐要求:

          進程的調度采用時間片輪轉算法。

          設計三個鏈隊列,分別用來表示運行隊列、就緒隊列和完成隊列。 ? 用戶輸入進程標識符以及進程所需的時間,申請空間存放進程 PCB信 息。

         、 輸出的格式和上面的運行結果分析中的格式相同。

         。2)實踐意義:

          使用時間片輪轉算法來分配處理器;

          培養我們分析,解決問題以及自學的能力;

          提高我們書寫代碼以及論文文檔的寫作能力。

          課題實現:

          1、功能設計:

          時間片輪轉調度,具體做法是調度程序每次把 CPU 分配給就緒隊列首進程使用一個時間片。當這個時間片結束時,就強迫一個進程讓出處理器,讓它排列到就緒隊列的尾部,等候下一輪調度。

          實現這種調度要使用一個間隔時鐘。當一個進程開始運行時,就將時間片的值置入間隔時鐘內,當發生間隔時鐘中斷時,就表明該進程連續運行的時間已超過一個規定的時間片。此時,中斷處理程序就通知處理器調度進行處理器的切換工作。

          2、結構設計:

          (1)開始。

         。2)設計三個鏈隊列,分別用來表示運行隊列、就緒隊列和完成隊列。

         。3)用戶輸入進程標識符以及進程所需的時間,申請空間存放進程PCB信息。

         。4)輸出的格式和上面的運行結果分析中的格式相同。

         。5)結束。

          3、核心算法:

          ·時間片輪轉算法主要是設置時間片,來實現輪轉運行進程,核心算法為:

          void ptt(A *p,float arrivetime,float servicetime,float starttime,float finishtime,float lefttime,int timeprice,int N2)

          {

          float w=0;int c=0;

          float stoptime=0;

          printf(" 請輸入時間片的值:");

          cin>>timeprice;

          sort(p,N2);

          float d[20],h[20];

          for(int k=0;k<=N2-1;k++)

          { d[k]=p[k].servicetime;

          if(k==0)

          {

          p[k].starttime=p[k].arrivetime;

          p[k].finishtime=p[k].arrivetime+p[k].servicetime;}

          else

          {

          p[k].starttime=p[k-1].finishtime;

          p[k].finishtime=p[k-1].finishtime+p[k].servicetime;}

          h[k]=p[k].starttime;

          p[k].lefttime=p[k].servicetime-timeprice;

          if(p[k].lefttime>0)

          {c=c+1;

          p[k].stoptime=p[k].starttime+timeprice;

          p[k].finishtime=p[k].stoptime;

          }

          else p[k].stoptime=p[k].finishtime;

          w=p[k].stoptime;

          }

          4、數據結構:

         。1)定義進程數以及進程名稱name[];

         。2)定義進程的一些屬性:

          進程的到達時間arrivetime;

          進程的服務時間servicetime;

          進程的'開始時間starttime;

          ④進程的結束時間finishtime;

          ⑤進程的剩余時間lefttime

         、迺r間片的時間timeprice

          運行環境:

         。1)開發程序的操作系統:Windows XP

         。2)編譯工具:visual C++ 6.0

          總結&心得體會:

          本次實踐課題讓我了解到了什么是進程調度,其主要的功能就是根據作業控制塊中的信息,審查系統是否能滿足用戶作業的資源需求,以及按照一定的算法,從外存的后備隊列中選區,分配某些作業調入內存,并且為他們創建進程,分配必要的資源。

          通過這幾天的學習和同學的講解,我總算完成了這次的進程調度實驗,根據書本上的學習,來測試本系統,發現輸入數據以及輸出數據和預測的結果吻合,證明此次實驗還是比較成功的。

          附錄:

          #include

          #include

          #include

          using namespace std;

          struct A{//先來先服務算法

          char name[10];

          float arrivetime;

          float servicetime;

          float starttime;

          float finishtime;

          float lefttime;

          float stoptime;

        【關于暑假實踐報告調度】相關文章:

        關于暑假實踐報告11-30

        關于暑假實踐報告11-25

        關于暑假實踐活動報告12-30

        關于暑假實踐報告范文11-30

        關于暑假醫院實踐報告范文06-30

        關于暑假社會實踐報告12-01

        關于暑假實踐報告2000字11-30

        關于暑假社會實踐報告11-27

        關于大學暑假實踐報告格式12-13

        ★暑假實踐報告01-06

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>