91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-18
  • 語言: C/C++
  • 標簽: 源碼??

資源簡介

進程調度時間片輪轉+優先級進程調度(操作系統課程設計),用隊列數據結構,C++實現。

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
using?namespace?std;

struct?PCBNode
{
string?name;
????float?priority;??//優先級?
????float?runTime;??????//總的需要運行時間?
????float?remainTime;???//剩下需要運行時間?
????float?arriveTime;???//進入就緒隊列時間?
????float?startTime;????//開始運行時間?
????float?finishTime;???//結束運行時間?
????float?totalTime;????//周轉時間?
????float?weightTotalTime;??//帶權周轉時間
PCBNode?*?next;
};

struct?linkQueue??//隊列定義
{
PCBNode?*?front;?//隊頭指針
PCBNode?*?rear;??//隊尾指針
};

//隊列初始化
void?InitialQueue(linkQueue&?q);
//輸入PCBNode
void?Input(PCBNode&?p);
//隊列構造
void?CreateQueue(linkQueue&?q?int?n);

//按時間排序
void?SortByTime(linkQueue&?q?int?n);
//時間片輪轉算法
void?RoundRobin(linkQueue&?q?int?n);

//按優先級排序
void?SortByPri(linkQueue&?q?int?n);
//優先級算法
void?Priority(linkQueue&?q?int?n);

//打印隊列
void?PrintQueue(linkQueue&?q);

int?main()
{
int?i?=?1;
while?(i)
{
char?sign;
cout?< cin?>>?sign;
if?(sign?==?‘t‘?||?sign?==?‘T‘)
{
linkQueue?queue;
InitialQueue(queue);

int?num?=?0;
cout?< cin?>>num;
CreateQueue(queue?num);
SortByTime(queue?num);
RoundRobin(queue?num);
PrintQueue(queue);
}
else?if?(sign?==?‘p‘?||?sign?==?‘P‘)
{
linkQueue?queue;
InitialQueue(queue);

int?num?=?0;
cout?< cin?>>num;
CreateQueue(queue?num);
SortByPri(queue?num);
Priority(queue?num);
PrintQueue(queue);
}
cout?< cout?< cin?>>i;
}




return?0;
}

void?InitialQueue(linkQueue&?q)
{
q.front?=?NULL;
q.rear?=?NULL;
}
void?Input(PCBNode&?p)
{
//需要用戶輸入的信息
cout?< cin?>>?p.name;
cout?< cin?>>?p.arriveTime;
????cout?< cin?>>?p.runTime;
????cout?< cin?>>?p.priority;
//自動初始化的信息
p.startTime?=?0;??//開始時間
p.finishTime?=?0;??//完成時間
p.remainTime?=?p.runTime;??//還需要時間
p.totalTime?=?0;???//周轉時間
p.weightTotalTime?=?0;???//帶權周轉時間
p.next?=?NULL;

}
void?CreateQueue(linkQueue&?q?int?n)
{
for?(int?i=0;?i {
PCBNode?pcb;
Input(pcb);
if?(q.front?==?NULL)
{
PCBNode?*?temp?=?new?PCBNode;
*?temp?=?pcb;
q.front?=?q.rear?=?temp;
q.rear->next?=?NULL;
}
else
{
//此處必須新建一個PCBNode,否則連不上隊列
PCBNode?*?temp?=?new?PCBNode;
*?temp?=?pcb;
q.rear->next?=?temp;
q.rear?=?q.rear->next;
q.rear->next?=?NULL;
}
}
}

void?SortByTime(linkQueue&?q?int?n)
{
//冒泡排序
for?(int?i=0;?i {
PCBNode?*?before?=?q.front;
PCBNode?*?current?=?before->next;
PCBNode?*?after?=?current->next;
while?(current?!=?NULL)
{
//對開頭三個節點的比較,因為后續節點使用current和after比較
//三個指針向后移一位之后,第二和第三的比較被忽略了,所以將其加在這里。
if?(before?==?q.front)
{
//比較前兩個節點
if?(before->arriveTime?>?current->arriveTime)
{
q.front?=?current;
before->next?=?curr

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????10251??2010-01-25?16:00??操作系統(時間片輪轉+優先級進程調度)\main.cpp

?????目錄??????????0??2010-05-08?23:38??操作系統(時間片輪轉+優先級進程調度)

-----------?---------??----------?-----??----

????????????????10251????????????????????2


評論

共有 條評論