电 子 科 技 大 学 实 验 报 告 学生姓名:满博 学 号:2823103017 指导教师: 罗惠琼 一、实验室名称:软件实验室 A 2412 二、 实验项目名称:进程调度算法的设计(时间片轮转调度算法 R R ) 说明:同时采用了新旧教材的 RR 算法(两种算法都在实验报告中给出) 三、 实验原理: 在多道程序系统中,一个作业被提交后必须经过处理机调度后,方能获得处理机执行。对调度的处理又都可采用不同的调度方式和调度算法。调度算法是指:根据系统的资源分配策略所规定的资源分配算法。 RR 算法:每次调度时,把 CPU 分配给队首进程,并且令其执行一个时间片,时间片的大小从几个 ms到几百 ms。当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便依据此信号来停止该进程的执行;并且把它送往就绪队列的队尾;然后,再把处理剂分配给就绪队列中的新队首进程,同时也让它执行一个时间片。这样就可以保证就绪队列中的所有进程在一个给定时间内均能获得一时间片的处理机执行时间。换言之,系统能在给定的时间内相应所有用户的请求。 四、实验目的: 通过对进程调度算法的设计,深入理解进程调度的原理。 五、实验内容: 1. 编写RR算法。 进程通过定义一个进程控制块的数据结构(PCB)来表示; 每个进程需要赋予进程ID、进程到达时间、进程需要运行的总时间的属性; 以1 为时间片单位; 2. 调试无误后运行。 3. 输入需要请求调入的页号。 4. 查看执行结果,根据执行结果判断实验是否成功。 六、实验器材(设备、元器件): 1.基本环境要求 ①宽敞整洁专用实验室 ②必备的基本实验工具 2.最低设备要求 ① 计算机 CPU 不小于 800MHZ; ② 计算机内存不小于 128M; 3.软硬件要求 ① 实验平台 Visual c++ 6.0 七、实验步骤: 1.新教材R R 代码: #include #define n 5 #define num 5 #define max 65535 typedef struct pro { int PRO_ID; int arrive_time; int sum_time; int flag; }Pro; void RR(int p) { int i,j,c=0; int count=num; int timer=0; Pro seq[n],t; Pro temp_seq[n]; for(i=0;i