久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7531|回復: 0
打印 上一主題 下一主題
收起左側

C語言時間片輪轉調度算法 進程調度實驗程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:438442 發表于 2018-12-3 15:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
實驗一 進程調度
一、實驗目的
通過這次實驗,加深對進程概念的理解,進一步掌握進程狀態的轉變、進程調度的策略及對系統性能的評價方法。
二、實驗內容
  設計程序模擬進程的輪轉法調度過程。假設初始狀態為:有n個進程處于就緒狀態,有m個進程處于阻塞狀態。采用輪轉法進程調度算法進行調度(調度過程中,假設處于執行狀態的進程不會阻塞),且每過t個時間片系統釋放資源,喚醒處于阻塞隊列隊首的進程。
三、源程序
#include<stdio.h>
#define N50
structPCB
{
         int pn;   //process name進程名字
         int at;   //arrival time到達時間
         int st;   //service time服務時間
         int ct;   //completion time完成時刻
         int sc; //sign completion標志是否完成
         int st1;  //剩余服務時間  
}process[N];

intsjp(int n)
{
         int i,j,T;
         printf("\n請輸入時間片:\n");
         scanf("%d",&T);
         for(i=1;i<=n;i++)      //收集進程信息
         {
                   process[ i].sc=0;
                   printf("\n%d:\n請依次輸入進程的信息\n請輸入pn:",i);
                   scanf("%d",&process[ i].pn);
                   printf("請輸入at:");
                   scanf("%d",&process[ i].at);
                   printf("請輸入st:");
                   scanf("%d",&process[ i].st);
                   process[ i].st1=process[ i].st;
         }
         for(i=1;i<=n;i++)
         for(j=i+1;j<=n;j++)   //按照各進程到達時間升序,對進程排序 注意:穩定的排序
         {
                   if(process[j].at<process[ i].at)
                   {
                            process[0]=process[j];
                            process[j]=process[ i];
                            process[ i]=process[0];      
                   }
         }
         //for(i=1;i<=n;i++)    //檢查排序是否正確
         //printf("%d\t",process[ i].pn);

         int time=process[1].at;      //當前時間的初值
         int flag=1;
         int sum=0;                                              //記錄完成的進程數
         printf("\n第幾次調度進程 運行的進程pn 開始運行時間 運行時間 剩余服務時間 結束時間\n");
         int z=1;   //記錄第幾次調度進程

        while(sum<n)
        {
         flag=0;           //標志就緒隊列中是否還有進程
         for(i=1;i<=n;i++)    //時間片輪轉法執行各進程
         {
                   if(process[ i].sc==1)continue;  //已完成的進程
                   else
                    {
                           if(process[ i].st1<=T&&time>=process[ i].at)//未完成的進程但是還需服務的時間少于等于一個時間片
                           {
                           flag=1;
                           time=time+process[ i].st1;
                           process[ i].sc=1;
                           process[ i].ct=time;
                           printf("%8d%12d%15d%11d%11d%11d\n",z++,process[ i].pn,time-process[ i].st1,process[ i].st1,0,time);
                           process[ i].st1=0;
                           }

                           elseif(process[ i].st1>T&&time>=process[ i].at)//未完成的進程但其還需服務時間至少大于一個時間片
                           {
                                    flag=1;
                                    time=time+T;
                                     process[ i].st1-=T;
                                     printf("%8d%12d%15d%11d%11d%11d\n",z++,process[ i].pn,time-T,T,process[ i].st1,time);
                            }
                            if(process[ i].sc==1)sum++;     //一個進程執行完就+1
                   }
         }
         if(flag==0&&sum<n)   // 還有沒執行的進程,且沒進入就就緒隊列
         {
         for(i=1;i<=n;i++)
         if(process[ i].sc==0){time=process[ i].at;break;}
         }
    }
                   return 0;
}
intmain()
{
         int n;
         printf("\t\t時間片輪轉調度算法\n");
         printf("請輸入總進程數:\n");
         scanf("%d",&n);
         sjp(n);
         return 0;
}
三、運行結果


四、實驗心得體會
這次的實驗有了很大的收獲,加深對進程概念的理解,進一步掌握進程狀態的轉變、進程調度的策略及對系統性能的評價方法。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久亚洲国产 | 亚洲精品免费观看 | 欧美一区二区在线播放 | 日韩久久久久久久久久久 | 草久久久| 国产精品视屏 | 国产电影一区二区在线观看 | 亚洲视频在线看 | 国产视频精品在线观看 | 亚洲国产精品久久人人爱 | 精品无码久久久久久久动漫 | 在线不卡视频 | 中文字幕在线观看 | 色综合天天天天做夜夜夜夜做 | 日本激情一区二区 | 欧美亚洲第一区 | 国产剧情一区 | 超碰97干| 国产一区二区电影 | 99pao成人国产永久免费视频 | 拍拍无遮挡人做人爱视频免费观看 | 黄色国产大片 | av官网在线 | 久久久www成人免费无遮挡大片 | 亚洲视频网| 日韩精品一区二区三区老鸭窝 | 99精品久久久久久中文字幕 | 国产精品久久网 | 亚洲成人在线免费 | 亚洲毛片在线观看 | 国产视频中文字幕在线观看 | 在线观看深夜视频 | 国产成人精品一区二区三区视频 | 99热精品在线观看 | 亚洲黄色一区二区三区 | 欧洲免费视频 | 欧美一区在线视频 | 日本午夜免费福利视频 | 亚洲欧美视频一区 | 久久国产精品-久久精品 | 欧美日韩亚洲国产综合 |