• 大小: 2.68MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-01
  • 语言: 其他
  • 标签: 广工  OS  实验报告  

资源简介

广工操作系统的实验源程序以及可执行文件,外加实验报告都齐全了~希望对苦逼的娃有帮助

资源截图

代码片段和文件信息

#include “stdio.h“
#include 
#include 
#define getpch(type) (type*)malloc(sizeof(type))//用getpch(type)给type类型的变量申请一个空间


struct pcb{//定义进程控制块PCB
char name[10];//进程名字
char state;//进程状态
int ntime;//进程需要运行的时间
int rtime;//进程已经运行的时间
struct pcb* link;//下一个进程控制块的地址
}*ready=NULL *p;//ready为结构体指针指向空,p指向正被调度的进程

typedef struct pcb PCB;//定义PCB为struct pcb 的别名

void sort()//建立进程的排序函数
{
PCB *first;
if(ready == NULL)//就绪队列为空时
{
p->link = ready;//当前进程插入队头
ready = p;
}
else
{
first = ready;//通过while循环使first指针指向队尾
while(first->link != NULL)
{
first = first->link;
}
first->link = p;//p进程放在队尾
}
}

void input() //建立进程控制块函数
{
int inum;
printf(“请输入进程总数:“);
scanf(“%d“&num);
for(i = 0; i < num; i++)
{
printf(“进程号NO.%d:\n“i);
p = getpch(PCB);//为p申请空间
printf(“输入进程名:“);
scanf(“%s“p->name);
printf(“输入进程运行时间:“);
scanf(“%d“&p->ntime);
printf(“\n“);
p->rtime = 0;
p->state = ‘W‘;
p->link = NULL;
sort();
}

}

int space() //查看进程个数
{
int l = 0; 
PCB *pr = ready;
while(pr != NULL)
{
l++;
pr = pr->link;
}
return(l);//返回进程个数
}

void disp(PCB *pr) //建立进程显示函数,用于显示当前进程
{
printf(“\n 进程名\t  当前状态\t 进程尚需要时间\t 进程已运行时间\n“);
printf(“ %s \t\t“pr->name);
printf(“ %c \t\t“pr->state);
printf(“ %d \t\t“pr->ntime);
printf(“ %d \t\t“pr->rtime);
printf(“\n“);
}

void check() //建立进程查看器
{
PCB *pr;
printf(“\n当前正在运行的进程是:%s“p->name);
disp(p);
pr = ready;
printf(“\n当前就绪队列状态为:\n“); //显示就绪队列状态
while(pr != NULL)
{
disp(pr);
pr = pr->link;
}
}

void destroy()
{
printf(“\n进程[%s] 已完成\n“p->name);
free(p);
}

void running(PCB *p)
{
while(p->rtime < p->ntime)//当进程已运行的时间小于需要运行的时间时
{
p->state = ‘R‘;//将进程的状态仍置为R
(p->rtime)++;//该进程继续占用CPU直到该进程完成
}
disp(p);//调用disp函数
destroy();//销毁执行完毕的进程

}


void main()
{
   int len h = 0;
   char ch;
   input();
   len = space();
   while((len != 0) && (ready != NULL))
   {
    ch = getchar();//接受回车
    h += ready->ntime;
    printf(“\n执行时间:%d\n“h);
    p = ready;//将队首指针赋给P
    ready = p->link;//ready指向原p的下一个进程
    p->state = ‘R‘;//p开始运行
    check();
    running(p);

    printf(“\n按任一键继续...“);
    ch = getchar();
   }
   printf(“\n\n进程已完成。\n“);
   ch = getchar();
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件      982528  2013-06-17 13:34  ZZLOS\实验四 主存空间的分配与回收\实验四 主存空间的分配与回收.doc
     文件      193024  2013-06-17 13:33  ZZLOS\实验二作业调度(ZZL)\实验二作业调度报告\文档 1.doc
     文件      193024  2013-06-17 13:32  ZZLOS\实验一进程调度实验\实验一、进程调度实验报告\文档 1.doc
     目录           0  2012-11-28 14:47  ZZLOS\
     目录           0  2012-11-28 14:46  ZZLOS\实验一进程调度实验\
     目录           0  2012-10-28 23:48  ZZLOS\实验一进程调度实验\FIFO(ZZL)\
     目录           0  2012-10-28 23:47  ZZLOS\实验一进程调度实验\FIFO(ZZL)\Debug\
     文件      184382  2012-10-28 23:47  ZZLOS\实验一进程调度实验\FIFO(ZZL)\Debug\FIFO.exe
     文件      188536  2012-10-28 23:47  ZZLOS\实验一进程调度实验\FIFO(ZZL)\Debug\FIFO.ilk
     文件       11203  2012-10-28 23:47  ZZLOS\实验一进程调度实验\FIFO(ZZL)\Debug\FIFO.obj
     文件      186792  2012-10-28 22:53  ZZLOS\实验一进程调度实验\FIFO(ZZL)\Debug\FIFO.pch
     文件      451584  2012-10-28 23:47  ZZLOS\实验一进程调度实验\FIFO(ZZL)\Debug\FIFO.pdb
     文件       33792  2012-10-28 23:47  ZZLOS\实验一进程调度实验\FIFO(ZZL)\Debug\vc60.idb
     文件       53248  2012-10-28 23:47  ZZLOS\实验一进程调度实验\FIFO(ZZL)\Debug\vc60.pdb
     文件        2694  2012-10-28 23:47  ZZLOS\实验一进程调度实验\FIFO(ZZL)\FIFO.c
     文件        4258  2012-10-28 23:48  ZZLOS\实验一进程调度实验\FIFO(ZZL)\FIFO.dsp
     文件         516  2012-10-28 22:52  ZZLOS\实验一进程调度实验\FIFO(ZZL)\FIFO.dsw
     文件       33792  2012-10-28 23:48  ZZLOS\实验一进程调度实验\FIFO(ZZL)\FIFO.ncb
     文件       48640  2012-10-28 23:48  ZZLOS\实验一进程调度实验\FIFO(ZZL)\FIFO.opt
     文件         876  2012-10-28 23:47  ZZLOS\实验一进程调度实验\FIFO(ZZL)\FIFO.plg
     目录           0  2012-11-28 14:45  ZZLOS\实验一进程调度实验\实验一、进程调度实验报告\
     文件      275456  2012-10-29 16:22  ZZLOS\实验一进程调度实验\实验一、进程调度实验报告\FIFO.doc
     文件      375808  2012-10-31 11:10  ZZLOS\实验一进程调度实验\实验一、进程调度实验报告\时间片轮转.doc
     目录           0  2012-10-29 17:27  ZZLOS\实验一进程调度实验\时间片轮转(ZZL)\
     目录           0  2012-10-29 17:25  ZZLOS\实验一进程调度实验\时间片轮转(ZZL)\Debug\
     文件       33792  2012-10-29 17:25  ZZLOS\实验一进程调度实验\时间片轮转(ZZL)\Debug\vc60.idb
     文件       45056  2012-10-29 17:25  ZZLOS\实验一进程调度实验\时间片轮转(ZZL)\Debug\vc60.pdb
     文件      196682  2012-10-29 17:25  ZZLOS\实验一进程调度实验\时间片轮转(ZZL)\Debug\时间片轮转.exe
     文件      207924  2012-10-29 17:25  ZZLOS\实验一进程调度实验\时间片轮转(ZZL)\Debug\时间片轮转.ilk
     文件       11029  2012-10-29 17:25  ZZLOS\实验一进程调度实验\时间片轮转(ZZL)\Debug\时间片轮转.obj
     文件      186780  2012-10-29 17:25  ZZLOS\实验一进程调度实验\时间片轮转(ZZL)\Debug\时间片轮转.pch
............此处省略48个文件信息

评论

共有 条评论