实验一 进程调度程序设计

  • 格式:docx
  • 大小:103.29 KB
  • 文档页数:2

实验一 进程调度程序设计
一、目的和要求
1. 实验目的
(1)掌握时间片轮转的进程调度算法;
(2)掌握带优先级的进程调度算法;
(3)选用面向对象的编程方法。
2.实验内容
编写并调试一个模拟的进程调度程序,采用“最高优先数优先”调度算法对五
个进程进行调度。
“最高优先数优先”调度算法的基本思想是把CPU分配给就绪队列中优先数
最高的进程。
静态优先数是在创建进程时确定的,并在整个进程运行期间不再改变。
动态优先数是指进程的优先数在创建进程时可以给定一个初始值,并且可以按一
定原则修改优先数。例如:在进程获得一次CPU后就将其优先数减少1。或者,
进程等待的时间超过某一时限时增加其优先数的值,等等.
二、设计过程
1、采用的数据结构:类名PCB
2、成员函数的设计说明
(1)函数名:void chushihua (int) ; 功能:初始化当前进程对象数据
(2)函数名:void refresh(); 功能:进程等待操作即等待时间增加并重新计算优先级
(3)函数名:void pcb _prin(); 功能:显示当前进程数据岛屏幕上
(4)函数名:void run _pcb(); 功能:该进程的执行操作
(5)函数名: float get_yxj(); 功能:当前进程的优先级信息作为返回值返回给调用函数
(6)函数名: int get_time(); 功能:清理已运行结束的进程同时统计当前未运行完进程数
3、全局函数设置
(1)函数名:void run(); 功能:动态优先级模拟主要过程函数
(2)函数名:paixu(); 功能:对当前进程按优先级从高到低排序原理为冒泡排序
4、类的设计
进程类pcb的private数据成员有float yxj(优先级浮点型)、int s_time(服务时间整形)、int
w_time(等待时间 整形)、char name(进程名字字符型)。这些数据本身就是操作系统里非常敏
感的数据,用类来设计保证了数据的安全性,类外任何函数都不能直接调用这些数据。
三、实验流程图
四、程序运行结果
五、参考文献:
http://wenku.baidu.com/link?url=q6Uqx8Dx6ZPcSr84vOKi-yE_Nk8luNojVC7-2lGPt-ETc6bEiW
SIgYj7DpNrPJraSDk6eXZ8_q3VWEhbK7NBAluH9wZoNE0Df6EzgWNIJz7