操作系统课程设计 进程调度模拟设计--先来先服务,优先级法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学号:

课程设计

课程名字系统软件开发实训A

题目进程调度模拟设计——先来先服务、优先级法

学院计算机科学与技术学院

专业计算机科学与技术专业

班级

姓名

指导教师李玉强

2014 年01 月13 日

课程设计任务书

学生姓名:专业班级:

指导教师:李玉强工作单位:计算机科学与技术学院

题目: 进程调度模拟设计——先来先服务、优先级法

初始条件:

1.预备内容:阅读操作系统的处理机管理章节内容,对进程调度的功能以及进程调度算法有深入的理解。

2.实践准备:掌握一种计算机高级语言的使用。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1.模拟进程调度,能够处理以下的情形:

⑴能够选择不同的调度算法(要求中给出的调度算法);

⑵能够输入进程的基本信息,如进程名、优先级、到达时间和运行时间等;

⑶根据选择的调度算法显示进程调度队列;

⑷根据选择的调度算法计算平均周转时间和平均带权周转时间。

2.设计报告内容应说明:

⑴课程设计目的与功能;

⑵需求分析,数据结构或模块说明(功能与框图);

⑶源程序的主要部分;

⑷测试用例,运行结果与运行情况分析;

⑸自我评价与总结。

时间安排:

设计安排3周:

查阅、分析资料 1天

系统软件的分析与建模 4天

系统软件的设计 5天

系统软件的实现 3天

撰写文档 1天

课程设计验收答辩 1天

设计验收安排:设计周的第三周的指定时间到实验室进行上机验收。

设计报告书收取时间:课程设计验收答辩完结时。

(注意事项:严禁抄袭,一旦发现,抄与被抄的一律按0分记)

指导教师签名: 2013 年 12 月 10日

系主任(或责任教师)签名: 2013 年 12 月 10日

课程设计报告书

1.需求分析

1.1设计目的

(1)阅读操作系统的处理机管理章节内容,对进程调度的功能以及进程调度算法有深入的理解。

(2)掌握一种计算机高级语言的使用。

要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1.2程序流程图

1.3设计要求

(1)能够选择不同的调度算法(要求中给出的调度算法);

(2)能够输入进程的基本信息,如进程名、优先级、到达时间和运行时间等;

(3)根据选择的调度算法显示进程调度队列;

(4)根据选择的调度算法计算平均周转时间和平均带权周转时间。

2.功能设计

2.1数据结构

1.进程的结构定义:

struct process

{

char name[10]; //进程名

int no; //进程序号

double arrivetime; //进程达到时间

double needtime; //进程运行时间

double starttime; //进程开始时间

double endtime; //进程结束时间

int state; //进程状态,0表示未执行,1表示已执行

int priority; //进程优先级

process *next;

process *head=Null;

int count;

};

2.使用链表存储进程并按照到达时间排序

void insert(process *current)

{

if (head!=Null)

{

if(head->next==Null)

//如果只有一个节点

{

if(current->arrivetimearrivetime) //如果比链头到达时间早,则插入链头

{

current->next=head;

head=current;

}

else

{

current->next=Null;

head->next=current;

}

}

else

//如果至少两个节点

{

process *p1=head;

if(head->arrivetime >current->arrivetime )

{

current->next=head;

head=current;

}

else

{

int flag=1;

while(p1->next!=Null) //当head后面不为空时一直做

{

//如果在两个节点间

if(p1->arrivetime < current->arrivetime && p1->next->arrivetime > current->arrivetime)

{

current->next=p1->next;

p1->next=current;

flag=0;

break;

}

else p1=p1->next;

}

//如果到达时间最大,则插到链尾

if (flag=1)

{

p1->next=current;

current->next=Null;

}

}

}

}

else head=current;

}

2.2先来先服务算法设计

相关文档
最新文档