资源简介
实验(一)多道程序、进程、分时系统模拟
1、 实验目的
加深学生对多道系统中进程管理的理解,了解进程的各种状态及其转换过程,分时系统中时间片的设置及进程在时间片开始和结束时的调度过程。
2、 实验内容
(1) 利用程序设计语言模拟分时系统中多个进程按时间片轮转调度算法进行进程调度的过程;
(2) 假设有五个进程A,B,C,D,E,它们的到达时间及要求服务的时间分别为:
进程名 A B C D E
到达时间 0 1 2 3 4
服务时间 4 3 4 2 4
时间片大小为1,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算周转时间及带权周转时间。
(3) 时间片大小为2,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算周转时间及带权周转时间。
(4) 时间片大小为4,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算周转时间及带权周转时间。
3、 思考
时间片的大小对计算机的性能产生什么影响?
代码片段和文件信息
#include “stdio.h“
#include “stdlib.h“
#include “iostream.h“
struct process
{
char name;
int arri_time;//arrived time
int serv_time;//servered time
int have_done_time;//已经运行时间
int done_time;//完成时间
int turn_around_time;//周转时间
float wei_turn_around_time;//带权周转时间
struct process * next;
};
int time=-1;
int time_slice=1
;//时间片初始值为1
Isempty(struct process* head)
{
if (head->next==NULL)
return true;
else return false;
}
void pushline(struct process* headstruct process* rn)
{
if (rn==NULL)
return;
struct process* x;
x=head;
while (x->next!=NULL)
{
x=x->next;
}
x->next=rn;
}
void popline(struct process* headstruct process** x)
{
if(!Isempty(head))
{
*x=head->next;
head->next=(*x)->next;
(*x)->next=NULL;
}
}
void isnewcome(struct process* headstruct process* readyline)
{
struct process* x;
if (head->next==NULL)
return;
if (head->next->arri_time==time&&head->next!=NULL)
{
cout< popline(head&x);
pushline(readylinex);
}
}
void main()
{
struct process* head;
struct process* newnode;
struct process* tail;
struct process* readyline;//队列
readyline=(struct process*)malloc(sizeof(process));
readyline->next=NULL;
int i;
struct process* rightnow;
struct process* p;
/*struct process* n;*/
head=(struct process*)malloc(sizeof(process));
if(!head)
{
cout<<“内存分配错误“< }
head->next=NULL;
tail=head;
while (1)
{
newnode=(struct process*)malloc(sizeof(process));
cout<<“请输入进程名“< cin>>newnode->name;
if(newnode->name==‘#‘)
break;
cout<<“请输入进程到达时间“< cin>>newnode->arri_time;
cout<<“请输入进程服务时间“< cin>>newnode->serv_time;
newnode->done_time=0;
newnode->turn_around_time=0;
newnode->wei_turn_around_time=0.0;
newnode->have_done_time=0;
// tail->next=newnode;
newnode->next=NULL;
//tail=newnode;
pushline(headnewnode);
}
p=head->next;
while(p!=NULL)
{
cout<name<<“进程“< p=p->next;
}
ss: while(time<200)
{
time++;
//cout<<“当前TIME“< isnewcome(headreadyline);
if (time!=0)
pushline(readylinerightnow);
i=time_slice;
//cout<<“i=“< while (i!=0)
{
//cout<<“DANG QIANG TIME“< if (i==time_slice)
{
i--;
if(!Isempty(readyline))
{
popline(readyline&rightnow);
rightnow->have_done_time++;
rightnow->done_time=time;
cout<<“run “<name< if (rightnow->have_done_time==rightnow->serv_time)
{
rightnow->turn_around_time=rightnow->done_time-rightnow->arri_time+1;
rightnow->wei_turn_around_time=(float)rightnow->turn_around_time/rightnow->serv_time;
cout<<“********************“<<
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5056 2010-05-25 10:30 分时系统\012.cpp
文件 3365 2010-05-05 21:51 分时系统\012.dsp
文件 512 2010-05-05 21:51 分时系统\012.dsw
文件 41984 2010-05-25 10:33 分时系统\012.ncb
文件 49664 2010-05-25 10:33 分时系统\012.opt
文件 1100 2010-05-25 10:30 分时系统\012.plg
文件 229413 2010-05-25 10:30 分时系统\Debug\012.exe
文件 297568 2010-05-25 10:30 分时系统\Debug\012.ilk
文件 13513 2010-05-25 10:30 分时系统\Debug\012.obj
文件 274512 2010-05-25 10:18 分时系统\Debug\012.pch
文件 549888 2010-05-25 10:30 分时系统\Debug\012.pdb
文件 50176 2010-05-25 10:30 分时系统\Debug\vc60.idb
文件 61440 2010-05-25 10:30 分时系统\Debug\vc60.pdb
文件 51712 2010-04-29 17:31 分时系统\os实验指导.doc
目录 0 2010-05-25 10:30 分时系统\Debug
目录 0 2010-05-25 10:33 分时系统
----------- --------- ---------- ----- ----
1629903 16
- 上一篇:DATA1.MSI
- 下一篇:SJFFCFSHRRN
相关资源
- 2440自编简易操作系统——实现任务调
- 操作系统第七版习题答案
- Hitachi AMS 2100 2300存储控制单元/控制器
- MSP430单片机的实时多任务操作系统c源
- 进程间通信之管道通信
- 操作系统接口实验
- 文档操作.exe
- 沈阳大学操作系统课程设计
- 操作系统-现一个文件查找程序myfind
- Arcinfo Workstation基本操作
- 操作系统实验八 文件管理
- 操作系统实验五 内存管理
- 操作系统实验四 设备管理
- 操作系统实验一: 进程调度
- 操作系统实验-银行家算法
- 重大软院操作系统实验四:虚拟内存
- 软件需求工程教学、学习、交流网站
- Linux操作系统试题附答案
- 操作系统实验——磁盘存储空间的分
- 《操作系统教程答案》北京出版社_陈
- 操作系统知识结构图
- simply fortran 操作手册,Fortran程序员好
- 操作系统真象还原完整扫描版
- 操作系统线程同步实验报告
- 操作系统课设之页面置换
- 周立功SD卡操作软件包1——ZLG_SD
- sangean DT-800中文版操作说明
- 生产者消费者C 代码
- Visio反向工程操作步骤详解
- 操作系统课程设计-消费者生产者问
评论
共有 条评论