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

  • 大小: 40KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-08
  • 語言: C/C++
  • 標簽: 進程控制??算法??

資源簡介

1、程序中有創建、撤消、阻塞、喚醒、掛起、激活、改變優先數(K0)、改變狀態(STATE)、查看PCB功能模塊,為每個模塊建立一個程序。 2、PCB(進程控制塊)可采用數組數據結構,每個數組元素即PCB塊可包含N0(外部名),K0(優先數),CHA(狀態)三項。

資源截圖

代碼片段和文件信息

#include“stdio.h“
#include“stdlib.h“

struct?pcb?
{
int?name;??
int?KO;
int?state;
};
typedef?struct?pcb?PCB;
PCB?a[10];


void?create()?//??創建進程
{
static?int?pi=1;
int?kl=0m;


printf(“請輸入進程名:“);
scanf(“%d“&m);
for(k=1;k<=10;k++)
if(a[k].name==m)
l=1;
if(l==1)
{
printf(“創建失敗!該進程已經存在!\n“);
???
}
else
{
a[pi].name=m;
printf(“\n“);

printf(“請輸入優先級:“);
scanf(“%d“&a[pi].KO);
a[pi++].state=2;
printf(“創建成功!\n“);
printf(“\n“);
}
????getchar();
getchar();
}


void?destory()?//撤銷進程
{
int?inumk=0;
printf(“請輸入要撤銷的進程:“);
scanf(“%d“&num);
for(i=0;i<=10;i++)
if(a[i].name==num)
k=i;
if(k!=0)
{
a[k].name=0;
a[k].KO=0;
a[k].state=0;
printf(“撤銷成功!\n“);
}
else
printf(“撤銷失敗!不存在此進程!\n“);
getchar();
getchar();
}

void?active()?//激活進程
{
int?ik=0m;
printf(“?請輸入進程名:“);
scanf(“%d“&m);
for(i=0;i<=10;i++)
if(a[i].name==m)
k=i;
if(k!=0)
{
switch(a[k].state)
{
case?1?:a[k].state=4;printf(“激活成功!\n“);break;
case?2?:a[k].state=3;printf(“激活成功!\n“);break;
default:printf(“激活失敗!進程已經激活或正在執行!\n“);
}
}
else
printf(“激活失敗!進程不存在\n!“);
getchar();
getchar();
}


void?hang()?//掛起進程
{
int?ik=0m;
printf(“請輸入進程名:“);
scanf(“%d“&m);
for(i=1;i<=10;i++)
if(a[i].name==m)
k=i;
if(k!=0)
{
switch(a[k].state)
{
case?3:a[k].state=2;printf(“掛起成功!\n“);break;
case?4:a[k].state=1;printf(“掛起成功!\n“);break;
case?5:a[k].state=1;printf(“掛起成功!\n“);break;
default:printf(“掛起失敗!進程已經處于掛起狀態!\n“);
}
}
else
printf(“掛起失敗!進程不存在!\n“);
getchar();
getchar();
}

void?release()?//釋放進程
{
int?ik=0m;
printf(“請輸入進程名:“);
scanf(“%d“&m);
for(i=1;i<=10;i++)
if(a[i].name==m)
k=i;
?????if(k!=0)
?{
?switch(a[k].state)
?{
?case?2:a[k].state=1;printf(“釋放成功!\n“);break;
?case?3:a[k].state=4;printf(“釋放成功!\n“);break;
?default:printf(“?釋放失敗!進程處于就緒狀態或正在執行!\n“);
?}
?}
?else
?printf(“?釋放失敗!進程不存在!\n“);
?getchar();
?getchar();
}

void?execution()?//執行進程
{
int?ik=0m;
printf(“請輸入進程名:“);
scanf(“%d“&m);
for(i=1;i<+10;i++)
if(a[i].name==m)
k=i;
if(k!=0)
{
switch(a[k].state)
{
case?4:a[k].state=5;printf(“執行成功!\n“);break;
case?5:printf(“進程正在執行!\n“);
default:printf(“進程不符合執行條件!\n“);
}
}
else
printf(“進程不存在!\n“);
getchar();
getchar();
}


void?state_appear(int?k)
{
int?a;
a=k;
switch(a)
{
case?1:printf(“靜止就緒\n“);break;
case?2:printf(“靜止阻塞\n“);break;
????case?3:printf(“活動阻塞\n“);break;
????case?4:printf(“活動就緒\n“);break;
case?5:printf(“執行\n“);break;
}
}

void?look_state()
{
int?imnk=0;
printf(“1-查看所有進程狀態\n“);
printf(“2-查詢單個進程狀態\n“);
printf(“請選擇:“);
scanf(“%d“&n);
switch(n)
{?
case?1:
printf(“進程名?????優先級????????進程狀態\n“);
for(i=1;i<=10;i++)
if(a[i].name!=0)
{
printf(“%d\t\t%d\t“a[k].namea[i].KO);
state_appear(a[i].state);

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

?????文件???????4922??2010-04-27?10:18??邢偉?2班??231\jinchen?g.cpp

?????文件??????65536??2010-04-27?11:45??邢偉?2班??231\程序說明.doc

?????目錄??????????0??2010-04-27?11:47??邢偉?2班??231

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

????????????????70458????????????????????3


評論

共有 條評論