资源简介
操作系统进程调度算法 先来先服务 短作业优先 时间片轮转 优先级。有大量注释,帮助理解。目前没有错误
代码片段和文件信息
#include
#include
#include
#include
#include
#include
struct pcb
{
int come_time;
int run_time;
int VIP;
char name[10];
struct pcb *next;
};
typedef struct pcb PCB;
void *creat(int n);
void Firstcome_Firstserve(PCB *head);
void Menue(PCB *headint n);
void*My_Copy(PCB *head);
void Print( PCB *headint len);
void Shortwork_Firstserve(PCB *head);
void TimeTurn_Firstserve(PCB *headint timeturnint n);
void VIP_Firstserve(PCB *head);
/************************************************************************/
/* *创建进程链表* */
/************************************************************************/ //2010_10_24
void *creat(int n)
{
PCB *head*p*q;
assert (head=(PCB*)malloc(sizeof(PCB)));
p=head;
p->next=NULL;
while(n--)
{
p=head;
if( ( q=(PCB*)malloc(sizeof(PCB))) == NULL)
{
printf(“ERROR!\n“);
exit(0);
}
puts(“进程名:“);
getchar();
gets(q->name);
puts(“进程开始时间“);
scanf(“%d“&q->come_time);
puts(“进程运行时间“);
scanf(“%d“&q->run_time);
puts(“优先级“);
scanf(“%d“&q->VIP);
if(p->next==NULL) //在插入节点时排序
{
q->next=NULL;
p->next=q;
}
else
{
while (p->next!=NULL && q->come_time >p->next->come_time )
{
p=p->next;
}
q->next=p->next;
p->next=q;
} //在插入节点时排序
}
return head;
}
/************************************************************************/
/* 拷贝链表 */
/************************************************************************/
void *My_Copy(PCB *head1)
{
PCB *head2=NULL; //新链表头结点
PCB *p2=NULL; //
PCB *p1=head1->next;
PCB *node=NULL;
assert(head2=(PCB*)malloc(sizeof(PCB)));
p2=head2;
while(p1!=NULL)
{
assert(node = (PCB*)malloc(sizeof(PCB)));
strcpy(node->namep1->name); //拷贝进程
node->come_time=p1->come_time;
node->run_time=p1->run_time;
node->VIP=p1->VIP; //拷贝进程
node->next=NULL;
p2->next=node;
p2=p2->next; //指针后移
p1=p1->next;
}
return head2;
}
/********************************打印输出*****************************************/
void Print( PCB *headint len)
{
int i=0;
head=head->next;
puts(“进程名 到达时间 运行时间 优先级“);
for(i=0;inext)
{
printf(“%5s %10d %10d %10d\n“head->namehead->come_timehead->run_timehead->VIP);
}
}
/************************************************************************/
/* *先来先服务* */
/************************************************************************/ //2010_10_28
void Firstcome_Firstserve(PCB *head)
{
PCB *Head=My_Copy(head);
int counter=1;
PCB *h=Head->next;
PCB *p;
int time; //进程结束时间
int time2;
while(h!=NULL)
{
if(h=
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 172071 2010-11-16 22:24 PCB\Debug\gaoke.exe
文件 528288 2010-11-16 22:24 PCB\Debug\gaoke.ilk
文件 38521 2010-11-16 22:24 PCB\Debug\gaoke.obj
文件 2803084 2010-11-16 12:20 PCB\Debug\gaoke.pch
文件 484352 2010-11-16 22:24 PCB\Debug\gaoke.pdb
文件 50176 2010-11-17 23:03 PCB\Debug\vc60.idb
文件 69632 2010-11-16 22:24 PCB\Debug\vc60.pdb
文件 37074 2010-11-16 22:24 PCB\gaoke.c
文件 3387 2010-11-06 19:06 PCB\gaoke.dsp
文件 535 2010-11-06 20:55 PCB\gaoke.dsw
文件 50176 2010-11-17 23:04 PCB\gaoke.ncb
文件 49664 2010-11-17 23:04 PCB\gaoke.opt
文件 1142 2010-11-16 22:24 PCB\gaoke.plg
目录 0 2010-11-18 12:11 PCB\Debug
目录 0 2010-11-18 12:11 PCB
----------- --------- ---------- ----- ----
4288102 15
相关资源
- 采用最先适应法、最佳适应法、最坏
- IBM DS Storage Manager 11 最新管理软件
- 国内领先的在线试衣间软件3D试衣间
- OpenStack平台各组件搭建脚本 先电五十
- 动态优先权的进程调度算法的模拟
- 动态分区管理方式的主存分配模拟系
- 二叉树先序、中序、后序三种遍历的
- 用深度优先、广度优先算法解决八数
- 数据结构图的邻接矩阵邻接表存储表
- 算符优先文法 构造优先表
- 操作系统进程调度算法课程设计报告
- 处理机调度算法代码包括先来先服务
- 利用栈的基本操作编写,按深度优先
- 深圳杯2020-A题-关于国家“先行示范区
- T先生密码(5).txt
- RS触发器与SR触发器区别有哪些
- 食人魔过河问题深度优先搜索-prolog源
- 播放黑屏的需要先安装视频驱动.txt
- Win32汇编课程大作业--矩阵相乘:先后
- 使用动态优先权和时间片轮转的进程
- 最高响应比优先算法
- 操作系统进程调度模拟
- 2019先电国赛赛题库.docx
- IF-ELSE条件语句的翻译程序设计递归下
- 实现进程调度算法---动态优先级
- nachos内存管理
- 计算器代码(有运算优先级)
- 进程调度模拟设计—时间片轮转、非
- 时间片轮转、最高响应比优先调度算
- 进程调度模拟设计——先来先服务、
评论
共有 条评论