一道考试题(请大虾们帮忙)!小弟明天就要考试了!同时也帮和小弟一样要考试的人!

humr 2003-09-11 03:56:40
完成一个进程调度函数!
exam1.c
#include "stdio.h"
#define running 1 /*用running 表示进程处于运行态*/
#define aready 2 /*用aready表示进程处于就绪态*/
#define blocking 3 /*用blocking表示进程处于等待态*/
#define sometime 5 /*用sometime 表示时间片大小*/
#define n 10 /*假定系统允许进程个数为10*/
struct
{int name; /*进程标识符*/
int status; /*进程状态*/
int ax,bx,cx,dx; /*进程现场信息,存放通用寄存器、程序计数器和程序状态字的内容*/
int pc;
int psw;
int next; /*下一个进程控制块的位置*/
}pcbarea[n]; /*定义模拟进程控制块区域的数组*/
int PSW,AX,BX,CX,DX,PC,TIME;/*模拟寄存器*/
int run; /*定义指向正在运行进程的进程控制块指针*/
struct
{int head;
int tail;
}ready; /*定义指向就绪队列的头指针head和尾指针tail*/
int pfree; /*定义指向空闲进程控制块队列的指针*/
sheduling( )
/*进程调度函数*/
{
/*请考生完成进程调度函数!!!*/
}/*进程调度函数结束*/
create( int x)
/*创建进程*/
{ int i;
if(pfree==-1) /*空闲进程控制块队列为空*/
{printf("无空闲进程控制块,进程创建失败\n");
return;
}
i=pfree; /*取空闲进程控制块队列的第一个*/
pfree=pcbarea[pfree].next;/*pfree后移*/
/*填写进程控制块内容*/
pcbarea[i].name=x;
pcbarea[i].status=aready;
pcbarea[i].ax=x;
pcbarea[i].bx=x;
pcbarea[i].cx=x;
pcbarea[i].dx=x;
pcbarea[i].pc=x;
pcbarea[i].psw=x;
if(ready.head!=-1)
{/*就绪队列不空时,挂入就绪队列方式*/
pcbarea[ready.tail].next=i;
ready.tail=i;
pcbarea[ready.tail].next=-1;
}
else
{/*就绪队列空时,挂入就绪队列方式*/
ready.head=i;
ready.tail=i;
pcbarea[ready.tail].next=-1;
}
}/*进程创建函数结束*/
main( )
{/*系统初始化*/
int num,i,j;
run=ready.head=ready.tail=-1;
pfree=0;
for(j=0;j<n-1;j++)
pcbarea[j].next=j+1;
pcbarea[n-1].next=-1;
printf("输入进程标识符(即进程编号,避免编号的冲突,以负数输入结束):");
scanf("%d",&num);
while(num>=0)
{create(num);
scanf("%d",&num);
}
sheduling( );
if(run!=-1)
{
printf("进程标识符 进程状态 寄存器内容:ax bx cx dx pc psw:\n");
printf("%4d%10d %3d%3d%3d%3d%3d%3d\n",pcbarea[run].name,
pcbarea[run].status,pcbarea[run].ax, pcbarea[run].bx, pcbarea[run].cx,
pcbarea[run].dx, pcbarea[run].pc, pcbarea[run].psw);
}
}/*main( )函数结束*/
...全文
34 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
humr 2003-09-14
  • 打赏
  • 举报
回复
请版主收回我的分!
humr 2003-09-12
  • 打赏
  • 举报
回复
sheduling( )
/*进程调度函数*/
{
/*请考生完成进程调度函数!!!*/
}/*进程调度函数结束*/

MiracleNo1 2003-09-11
  • 打赏
  • 举报
回复
你要说明白一些好让那些高手们知道你要做什么。
wcq8303 2003-09-11
  • 打赏
  • 举报
回复
你要我们做什么啊?不明白你的意思
humr 2003-09-11
  • 打赏
  • 举报
回复
分小可以加呀
humr 2003-09-11
  • 打赏
  • 举报
回复
小弟在线等待。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧