操作系统进程调度(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]华北科技学院计算机系综合性实验[/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] 年 月 日 | |||||||||||
相关文章推荐
- 操作系统:进程调度算法详解之FCFS和SPF篇
- 操作系统进程调度算法图解(FCFS、轮转、SPN、SRT、HRRN、反馈)
- 操作系统进程调度算法图解(FCFS、轮转、SPN、SRT、HRRN、反馈)
- 操作系统:进程调度算法详解之FCFS和SPF篇
- 操作系统进程调度算法图解(FCFS、轮转、SPN、SRT、HRRN、反馈)
- 《操作系统》 先来先服务FCFS和短作业优先SJF进程调度算法相关计算及实验
- 操作系统--进程调度算法
- 【操作系统】进程调度算法
- 操作系统——使用动态优先权的进程调度算法的模拟
- 几个常用的操作系统进程调度算法
- 【操作系统 - 2】时间片轮转RR进程调度算法
- 【操作系统 - 2】时间片轮转RR进程调度算法
- 【操作系统】进程调度算法
- Java简单实现进程调度算法 FCFS和SJF
- 几个常用的操作系统进程调度算法
- 操作系统 进程调度算法 浅析
- 单处理器进程调度算法模拟,FCFS,RR(q=1),SPN,SRT,HRRN1
- 操作系统进程调度算法(Java 实现)
- 【大三操作系统实验】 作业进程调度算法
- 操作系统进程、作业调度常见算法详解