1 / 19
文档名称:

操作系统实验报告.doc

格式:doc   大小:258KB   页数:19页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

操作系统实验报告.doc

上传人:mh900965 2017/12/1 文件大小:258 KB

下载得到文件列表

操作系统实验报告.doc

文档介绍

文档介绍:淮阴工学院
实验报告
__2012 _-__2013__学年第__1__学期
学院___计算机工程学院__
课程名称_____操作系统__
班级_____软件1101_____
学号____1101305114_____
姓名_______王祥______
指导教师_______严云洋______
实验一:进程调度
1. 实验目的:
通过这次实验,加深对进程概念的理解,进一步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。
2. 实验内容:
设计程序模拟进程的轮转法调度过程。假设初始状态为:有n个进程处于就绪状态,有m个进程处于阻塞状态。采用轮转法进程调度算法进行调度(调度过程中,假设处于执行状态的进程不会阻塞),且每过t个时间片系统释放资源,唤醒处于阻塞队列队首的进程。
程序要求如下:
1).输出系统中进程的调度次序;
2).计算CPU利用率。
3. 实验环境:
硬件环境:Ghost XP SP3 纯净版 Pentium(R) Dual-Core CPU E6700 @ GHz, GB 的内存物理地址扩展
软件环境:Microsoft Windows XP , Visual Studio 2008
4. 源代码:
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
onst int MaxNum = 100;
struct Node{
int index;
int arriveTime;
int rest;
};
bool NodeCmp(const Node& a,const Node& b)
{
return < ;
}
int n; //进程数
int ArrivalTime[MaxNum];
int ServiceTime[MaxNum];
int PServiceTime[MaxNum];
int FinishTime[MaxNum];
int WholeTime[MaxNum];
double WeightWholeTime[MaxNum];
bool Finished[MaxNum];
double AverageWT,AverageWWT;
bool isEnterQue[MaxNum];
tTimes[MaxNum];
void init()
{
memset(PServiceTime,0,sizeof(PServiceTime));
memset(Finished,0,sizeof(Finished));
memset(FinishTime,0,sizeof(FinishTime));
memset(WholeTime,0,sizeof(WholeTime));
memset(WeightWholeTime,0,sizeof(WeightWholeTime));
}
int sum(int array[],int n)
{
int sum=0;
int i;
for(i=0;i<n;i++)
{
sum += array[i];
}
return sum;
}
double sum(double array[],int n)
{
double sum=0;
int i;
for(i=0;i<n;i++)
{
sum += array[i];
}
return sum;
}
void print()
{
int i=0;
cout<<"进程完成时间:";
for(i=0;i<n;i++)
{
cout<<FinishTime[i]<<' ';
}
cout<<endl;
cout<<"周转时间:";
for(i=0;i<n;i++)
{
cout<<WholeTime[i]<<' ';
}
cout<<endl;
cout<<"带权周转时间:";
for(i=0;i<n;i++)
{
printf("%.2f ",WeightWholeTime[i]);
}
cout<<endl;
}
void SearchToEnterQue(queue<Node>& que,Node* pArr,int maxArrivalTime)
{
int i;
for(i=0;i<n;i++)
{
if(pArr[i