好文档 - 专业文书写作范文服务资料分享网站

处理机调度时间片轮转调度算法

天下 分享 时间: 加入收藏 我要投稿 点赞

.

实验一

处理机调度算法的实现

1、实验名称:处理机调度算法的实现

2、预习要求:了解操作系统处理机调度的基本概念,处理机调度程序的功能,常用的处理机调度算法。C或C++编程方法与语句格式,提前初步编好实验程序。 3、实验方式:通过实验室的微机上机,实际调试程序。 4、实验要求:正确的设计有关的数据结构与各个功能模块,画出程序的流程图,编写程序,程序执行结果应正确。

5、实验环境:windows操作系统环境下的个人微机C或C++程序设计语言 6、实验分组:1人/组

7、实验内容: 1、设定系统中进程数,每一个进程用一个进程控制块表示。

2、 输入每个进程的“优先数”和“要求运行时间”。

3、为了调度方便,将进程按给定的优先数从大到小连成就绪队列。用一单元指出队列首进程,用指针指出队列的连接情况。

4、处理机调度总是选队首进程运行。采用时间片轮转调度算法 5、若要求运行时间为零,则将其状态置为“结束”,且退出队列。

6、运行所设计程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程

8、其它要求:根据自己实验内容在课下查资料,

设计出基本的程序框架。在实验课堂规定的时间内,自己独立完成程序的编制。 在规定的时间内,书写上交实验报告书。

程序截图:

'.

.

源程序

#include #include

using namespace std;

int Num;

int *priority = new int[Num]; int *time = new int[Num];

char *name = new char[Num];

void showData() {

'.

.

for (int i = 0; i < Num; ++i) { cout << \进程名字:\进程时间:\进程优先度:\<< priority[i] << endl; } }

void initValue() { for (int i = 0; i < Num; ++i) { cout <<\进程名字:\ cin >> name[i]; cout << \进程时间:\ cin >> time[i]; cout << \进程优先度:\ cin >> priority[i]; cout << endl; } system(\ cout << endl << \没有排序的进程:\ showData(); for (int i = 0; i < Num; i++) { for (int j = 0; i + j < Num - 1; j++) { if (priority[j] < priority[j + 1]) { int temp = priority[j]; char temp1 = name[j]; int temp2 = time[j]; priority[j] = priority[j + 1]; name[j] = name[j + 1]; time[j] = time[j + 1]; priority[j + 1] = temp; name[j + 1] = temp1; time[j + 1] = temp2; } } } cout << endl << \排序后的进程:\ showData(); cout << \

'.

.

}

void Round_robin_method() { int flag = Num;//记录剩余进程数 int round = 0; //轮转数 while(time[0]>0) { cout << \正在运行进程\ showData(); time[0]--; if (time[0] == 0) { cout << \进程 \<< name[0] << \时间为0销毁***************************\\n\ flag--; for (int i =0 ; i < Num-1; i++) { name[i] = name[i + 1]; time[i] = time[i + 1]; priority[i] = priority[i + 1]; Num = flag; } } else { char t_name = name[0]; int t_time = time[0]; int t_priority = priority[0]; for (int i = 0; i < Num ; i++) { name[i] = name[i + 1]; time[i] = time[i + 1]; priority[i] = priority[i + 1]; } name[Num - 1] = t_name; time[Num - 1] = t_time; priority[Num - 1] = t_priority; }

'.

.

if (flag == 0) { break; } } }

int main() { cout << \请输入进程数:\ cin >> Num; initValue(); Round_robin_method(); system(\ return 0; }

'.

处理机调度时间片轮转调度算法

.实验一处理机调度算法的实现1、实验名称:处理机调度算法的实现2、预习要求:了解操作系统处理机调度的基本概念,处理机调度程序的功能,常用的处理机调度算法。C或C++编程方法与语句格式,提前初步编好实验程序。3、实验方式:通过实验室的微机上机,实际调试程序。4、实验要求:正确的设计有关的数据结构与各个功能模块,画出程序的
推荐度:
点击下载文档文档为doc格式
7dt8f3qhgr10e609m87w9sc9l3ppgr019xu
领取福利

微信扫码领取福利

微信扫码分享