实验一 进程控制与调度算法
1、实验目的
1、理解进程的概念,明确进程和程序的区别;
2、掌握进程控制方法;
3、掌握进程调度算法。
2、实验要求
1、编写程序,模拟实现以下功能:
创建新的进程;查看运行进程;查看就绪进程;查看阻塞进程;阻塞某个进程;显示全部进程;唤醒进程;撤销进程。
2、在以上程序的基础上,创建5-10个进程(进程数任选)。分别计算先来先服务调度算法、短进程优先调度算法、优先级调度算法、高响应比优先调度算法下进程的执行顺序,以及平均周转时间和平均带权周转时间。
3、实验环境
使用的是visual Studio2013,编程语言选用的是C语言。
4、实验内容
首先需要创建一个PCB的结构体。
然后根据PCB的结构体,编写创建进程的相关函数,并进行测试。
在创建进程的基础上,编写查看运行进程的相关函数等其他相关函数
然后在主函数中进行模拟测试,结果正确并且逻辑无问题,表示测试成功。
然后编写先来先服务调度算法,首先会根据进程的到达时间,对进程进行排序
然后再计算进程的开始运行时间、完成时间、周转时间、带权周转时间和进程的算法执行次序,还有平均周转时间和平均带权周转时间。
然后对主函数进行了一些优化,变成了如下的选择模式:
在创建进程后,执行先来先服务FCFS算法,结果如下:
5、实验总结
一开始不太懂如何去做,不停的去借鉴别人的代码,在CSDN上大概看了有十几个人的代码分享后,于是终于写出了自己的几百行代码。
首先遇到的是VS2013执行C语言会出现闪退问题,于是引入了#include之后,在main函数的最后写入system("pause");将其解决。
然后遇到的是scanf不安全的错误,也通过百度解决了