进程控制与调度算法实验报告

木来 木来

实验一 进程控制与调度算法

1、实验目的

1 理解进程的概念,明确进程和程序的区别;

2、掌握进程控制方法;

3、掌握进程调度算法。

2、实验要求

1、编写程序,模拟实现以下功能:

创建新的进程;查看运行进程;查看就绪进程;查看阻塞进程;阻塞某个进程;显示全部进程;唤醒进程;撤销进程。

2、在以上程序的基础上,创建5-10个进程(进程数任选)。分别计算先来先服务调度算法、短进程优先调度算法、优先级调度算法、高响应比优先调度算法下进程的执行顺序,以及平均周转时间和平均带权周转时间。

3、实验环境

使用的是visual Studio2013,编程语言选用的是C语言。

4、实验内容

首先需要创建一个PCB的结构体。

1.png

然后根据PCB的结构体,编写创建进程的相关函数,并进行测试。

2.png

在创建进程的基础上,编写查看运行进程的相关函数等其他相关函数

3.png

然后在主函数中进行模拟测试,结果正确并且逻辑无问题,表示测试成功。

然后编写先来先服务调度算法,首先会根据进程的到达时间,对进程进行排序

然后再计算进程的开始运行时间、完成时间、周转时间、带权周转时间和进程的算法执行次序,还有平均周转时间和平均带权周转时间。

然后对主函数进行了一些优化,变成了如下的选择模式:

4.png

在创建进程后,执行先来先服务FCFS算法,结果如下:

5.png

5、实验总结

一开始不太懂如何去做,不停的去借鉴别人的代码,在CSDN上大概看了有十几个人的代码分享后,于是终于写出了自己的几百行代码。

首先遇到的是VS2013执行C语言会出现闪退问题,于是引入了#include<stdlib.h>之后,在main函数的最后写入    system("pause");将其解决。

然后遇到的是scanf不安全的错误,也通过百度解决了

0 条评论