您的位置:首页 > 其它

操作系统进程调度(FCFS)算法

2009-06-09 12:55 645 查看
[align=center][/align]
[align=center]华北科技学院计算机系综合性实验[/b][/align]
[align=center] [/b][/align]
[align=center]实 验 报 告 [/b][/align]
[/b]
[/b]
课程名称
[/b]操作系统C[/b] [/b][/b]
实验学期
2008
2009 学年 第 2 学期[/b]
学生所在系部
计算机系
[/b]
年级 2006 专业班级 网络xxxxxxxxx [/b]
学生姓名 xxxxxx 学号
2006070XXXXXXX
[/b]
任课教师 杜杏菁 [/b]
实验成绩 [/b]
[/b]
[/b]
[/b]
[align=center]计算机系制[/b][/align]

[/b]
[align=center]实验报告须知[/align]
1、 学生上交实验报告时,必须为打印稿(A4纸)。页面空间不够,可以顺延。
2、 学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、内容、结果及分析等。
3、 教师应该填写的内容包括:实验成绩、教师评价等。
4、 教师根据本课程的《综合性实验指导单》中实验内容的要求,评定学生的综合性实验成绩;要求在该课程期末考试前将实验报告交给任课教师。综合性实验中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师。任课教师统一刻录成光盘,与该课程的期末考试成绩一同上交到系里存档。
5、 未尽事宜,请参考该课程的实验大纲和教学大纲。

[/b]
[align=center]《 操作系统C 》课程综合性实验报告[/b][/align]

开课实验室:[/b] [/b]基础实验室[/b]1 2009 [/b]年[/b] 5 [/b]月[/b] 20 [/b]日[/b][/b]
[align=center]实验题目[/align]
[align=center]进程调度算法模拟[/align]
一、实验目的
通过对进程调度算法的模拟,进一步理解进程的基本概念,加深对进程运行状态和进程调度过程、调度算法的理解。
二、设备与环境
1. 硬件设备:PC机一台
2. 软件环境:安装Windows操作系统或者Linux操作系统,并安装相关的程序开发环境,如C \C++\Java 等编程语言环境。
三、实验内容
1)用C语言(或其它语言,如Java)实现对N个进程采用某种进程调度算法(如先来先服务)的调度。
2)分析程序运行的结果,谈一下自己的认识。
四、实验结果及分析
1.实验步骤
选择一种进程调度算法(先来先服务),然后进行编码。
2.实验代码
#include <iostream.h>
#define n 20
typedef struct
{
int id; //进程名
int atime; //进程到达时间
int runtime; //进程运行时间
}fcs;
void main()
{
int amount,i,j,diao,huan;
fcs f
;
cout<<"input a
number:"<<endl;
cin>>amount;
for(i=0;i<amount;i++)
{
cout<<"请输入进程名,进程到达时间,进程运行时间:"<<endl;
cin>>f[i].id;
cin>>f[i].atime;
cin>>f[i].runtime;

}
for(i=0;i<amount;i++) //按进程到达时间的先后排序
{ //如果两个进程同时到达,按在屏幕先输入的先运行

for(j=0;j<amount-i-1;j++)
{

if(f[j].atime>f[j+1].atime)
{
diao=f[j].atime;
f[j].atime=f[j+1].atime;
f[j+1].atime=diao;

huan=f[j].id;
f[j].id=f[j+1].id;
f[j+1].id=huan;
}
}
}
for(i=0;i<amount;i++)
{
cout<<"进程:"<<f[i].id<<"从"<<f[i].atime<<"开始"<<","<<"在"

<<f[i].atime+f[i].runtime<<"之前结束。"<<endl;

f[i+1].atime=f[i].atime+f[i].runtime;
}
}
3.实验结果
(1)在进程到达时间不同的情况下的显示结果



(2)在进程中到达时间中有若干个到达时间一致时的显示结果,不妨设所有的到达时间都一致



4.实验结果分析
通过实验结果,知道先来先服务的进程调度算法是哪个进程调度的到达时间最早,哪个进程就先被调用;如果到达时间相同的话,以哪个进程先被写入为准来进行调度,先被写入的进程先被调度。
5.实验心得
首先,进程调度算法中先来先服务调度算法简单。所以算法代码不长。但通过此次试验,我认识到,解决问题不是以代码的长短为标准。其实用很少的代码区解决一个复杂的问题反而是最好的代码。
其次,我发现,编程前一定要掌握原理。我就是在知道先来先服务的调度算法的原理之后才知道如何去编码。
再次,编程一定要考虑周到。一开始,我只认为该程序不就是对到达时间进行排序嘛。后来,才发现,这样一来,进程名和进程运行时间就不能和进程到达时间保持一致了。
最后,我发现,我编码能力还有待提高。如进程名,我就不知道怎么用字母表示。

[align=center]教 师 评 价[/b][/align]
[align=center]评定项目[/b][/align]
[align=center]A[/b][/align]
[align=center]B[/b][/align]
[align=center]C[/b][/align]
[align=center]D[/b][/align]
[align=center]评定项目[/b][/align]
[align=center]A[/b][/align]
[align=center]B[/b][/align]
[align=center]C[/b][/align]
[align=center]D[/b][/align]
[align=center]算法正确[/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center]界面美观,布局合理[/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center]程序结构合理[/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center]操作熟练[/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center]语法、语义正确[/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center]解析完整[/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center]实验结果正确[/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center]文字流畅[/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center]报告规范[/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center]题解正确[/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
其他:

[align=right]评价教师签名:[/align]
年 月

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: