xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 2KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-12
  • 語言: 其他
  • 標簽: c++??

資源簡介

1) 提供導致進程狀態變化的調用接口,包括創建、刪除、調度、阻塞、激活等。 2) 實現進程列表顯示的接口。 3) 這里設計的進程是一個假設的對象實體,是由程序自己創建和刪除,不是系統維護的進程。

資源截圖

代碼片段和文件信息

#include
#include
using?namespace?std;

//進程的定義
typedef?struct?QNode
{
char?Flag[33];?//進程標識符
//string?State;??//進程的狀態
int?Time;??//進程的運行時間
int?Order;??//進程優選級?
struct?QNode?*next;??//下一個節點???
}*PCB;

//----------------子函數聲明部分----------------------
void?Initial(PCB?&P);??//初始化鏈表函數

void?Display(PCB?P);??//顯示進程函數

PCB?Look(PCB?&P);??//查找并且修改就緒進程的函數

int?Length(PCB?P);??//計算進程的個數

void?Ready(PCB?&P);??//就緒函數

void?Block(PCB?&PPCB?&R);??//阻塞函數

void?Finish(PCB?&PPCB?&R);??//消亡函數

void?Run(PCB?&PPCB?&F);??//執行函數

void?Active(PCB?&PPCB?&B);??//喚醒函數?
//----------------------------------------------------

//--------------------主函數--------------------------
int?main()
{
????int?oprate=1;
PCB?RBFq;
?????
Initial(R);??//初始化就緒鏈表
Initial(B);??//初始化阻塞鏈表
Initial(F);??//初始化消亡鏈表

cout<<“請選擇使進程所處狀態的操作“< cout<<“0--返回“<????cout<<“1--就緒“<????cout<<“2--阻塞“<????cout<<“3--消亡“< cout<<“4--執行“< cout<<“5--喚醒“<
while(cin>>oprate)??//選擇操作
{
switch(oprate)
{??????
case?0:????????????//使返回
???return?0;
????????case?1:Ready(R);??//使就緒
???break;
????????case?2:Block(BR);??//使阻塞
???break;
????????case?3:q=Look(R);Finish(Fq);??//使消亡
???break;
????case?4:Run(RF);??//使執行
???break;
case?5:Active(RB);??//使喚醒
???break;
???????????default:
???cout<<“輸入錯誤請重新輸入“< }?
cout<<“---0返回--1就緒--2阻塞--“;
???cout<<“3消亡--4執行--5喚醒---“< }
????return?0;
}
//----------------------------------------------------

//----------------一初始化函數------------------------
void?Initial(PCB?&P)
{
P=(PCB)malloc(sizeof(QNode));??//分配空間?
P->next=NULL;
}
//----------------------------------------------------

//---------------二顯示函數---------------------------
void?Display(PCB?P)
{
PCB?r=P->next;
if(!r)
cout<<“沒有元素存在“;
else
while(r)
{
cout<Order<<‘?‘;??//輸出
r=r->next;??//指向下一個
}
cout<}
//----------------------------------------------------

//-----------------三查找函數-------------------------
PCB?Look(PCB?&P)
{
PCB?r=Pq;
int?e;

cout<<“請輸入優先級整數類型“< while(cin>>e)
{
if(e>0)??//判斷輸入合法性
break;
????else?
cout<<“輸入錯誤請重新輸入“< }
???
while(r->next)
{
if(r->next->Order==e)
{???
q=r->next;
r->next=r->next->next;??//刪除
cout<<“被處理后后剩余的進程是:“;
????Display(P);
return?q;
}
else
r=r->next;??//指向下一個
}
if(r->next==NULL)
return?NULL;
}
//----------------------------------------------------

//---------------------四執行函數---------------------
void?Run(PCB?&PPCB?&F)
{
PCB?r=Pq;
if(r->next)
{
q=r->next;
r->next=r->next->next;???//刪除
cout<<“被執行后剩余的就緒進程是:“;
Display(P);
Finish(Fq);??//執行后直接放到消亡隊列中
}
else?
cout<<“已經沒有就緒進程了“<}
//----------------------------------------------------

//------------------五就緒函數------------------------
void?Ready(PCB?&P)
{

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

?????文件???????5911??2010-04-10?19:54??進程狀態轉換.cpp

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

?????????????????5911????????????????????1


評論

共有 條評論