- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2-时间片轮转RR算法
操作系统实验报告
一、实验题目
时间片轮转算法(RR算法)
二、实验目的
模拟实现时间片轮转调度算法。
理解时间轮转算法的处理机调度的基本思想。
三、实验要求
1.初始化函数,输入各个进程的到达时间以及需要的运行的时间。
2.设置时间片大小,实现进程有等待到运行状态的转换。
3.进程运行时间结束后从进程列表中删除该进程。
四、实验内容
在时间片调度算法的模拟实现中,时间片就是分配给进程运行的一段时间。在轮转法中,系统将所有的可运行(即就绪)进程按先来先服务的原则,排成一个队列,每次调度时把CPU分配给队首进程,并令其执行一个时间片。当某进程执行的时间片用完时,系统发出信号,通知调度程序,调度程序便据此信号来停止该进程的执行,并将刚运行的进程送到运行队列的末尾,等待下一次执行;然后,把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。这样就可以保证运行队列中的所有进程,在一个给定的时间内,均能获得一时间片的处理机执行时间。
本实验设计一个有N个进程并发的进程调度程序,采用时间片轮转算法。
每一个进程用一个进程控制块PCB表示。PCB包含信息有:进程名name,进程号id,进程状态state,进程所需运行时间need_time,进程运行时间run_time。进程运行时间以时间片为单位进行计算。(程序中以按任意键表示运行一次CPU时间片)每个进程的状态有就绪W,运行R,和完成F(撤销进程)。就绪的进程获得CPU后只能运行一个时间片,运行完运行时间run_time+1。如果运行一个时间片后,进程的run_time等于need_time(即已经达到所需运行时间),则撤销该进程并提示,如果还未达到,则将其放到队尾,进入就绪状态等待下一次时间片分配。每一次调度程序都打印一次运行情况,包括:运行的进程,就绪队列的进程,已经所有进程的PCB(不包括已经撤销的进程)。
q = (PCB*)malloc(sizeof(PCB)),清屏语句的使用system(“cls”);等。然而,实验的运行结果还不是很完美,每个进程在最后一个时间片的运行过程中,进程列表的更新总是修改错误。不过在在本次试验中学到了不少东西,一点点的在进步。
附录:
#include stdio.h
#include stdlib.h
#include conio.h
#include windows.h
static int id = 0;
int process_num;
int current_process;
struct pcb
{char name[20];
int id;
char state;
int need_time;
int run_time;
struct pcb *next;
}*p, *q, *first_pcb = NULL;
typedef struct pcb PCB;
/* 排序输出各个进程PCB */
void printSort()
{ int i;
q = first_pcb;
for(i = 0; i process_num;)
{
if(i == q - id) {
printf(|%s\t\t|%d\t\t|%c\t\t|%d\t\t|%d\n, q - name, q - id, q - state, q - need_time, q - run_time);
i++;
q = first_pcb;
} else {
q = q - next;
if(q == NULL) {
q = first_pcb;
i++;
}
}
}
}
/* 调度一次PCB并显示 */
void showPCB()
{
//int i;
first_pcb - run_time++;
first_pcb - state = r;
/* 进程执行完毕,将其清除出链表 */
if((first_pcb - run_time) == (first_pcb - need_time)) {
current_process--;
printf(进程%s已经运行完毕, first_pcb - name);
system(pause);
first_p
您可能关注的文档
- 00428093 李兮旸 金融衍生品案例分析.doc
- (安福金龙火腿)年产15万条低盐发酵火腿清洁生产项目.doc
- 01 旅游文化学概论.ppt
- 03 旅游客体-山水文化.ppt
- 03外汇政策宣讲课件—外汇账户-陈效群.ppt
- 02国家级精品课程 乒乓球教学课件 第二章 乒乓球运动基本理论知识.ppt
- 04国家级精品课程 乒乓球教学课件 第四章 乒乓球战术.ppt
- 04外汇政策宣讲课件-资本项目业务介绍-王冬梅.ppt
- 05 建设工程发包与承包法规.ppt
- 05外汇政策宣讲课件-外债和对外担保-高耘华.ppt
- 《GB/T 32151.42-2024温室气体排放核算与报告要求 第42部分:铜冶炼企业》.pdf
- GB/T 32151.42-2024温室气体排放核算与报告要求 第42部分:铜冶炼企业.pdf
- GB/T 38048.6-2024表面清洁器具 第6部分:家用和类似用途湿式硬地面清洁器具 性能测试方法.pdf
- 中国国家标准 GB/T 38048.6-2024表面清洁器具 第6部分:家用和类似用途湿式硬地面清洁器具 性能测试方法.pdf
- 《GB/T 38048.6-2024表面清洁器具 第6部分:家用和类似用途湿式硬地面清洁器具 性能测试方法》.pdf
- 《GB/T 18238.2-2024网络安全技术 杂凑函数 第2部分:采用分组密码的杂凑函数》.pdf
- GB/T 18238.2-2024网络安全技术 杂凑函数 第2部分:采用分组密码的杂凑函数.pdf
- 《GB/T 17215.686-2024电测量数据交换 DLMS/COSEM组件 第86部分:社区网络高速PLCISO/IEC 12139-1配置》.pdf
- GB/T 13542.4-2024电气绝缘用薄膜 第4部分:聚酯薄膜.pdf
- 《GB/T 13542.4-2024电气绝缘用薄膜 第4部分:聚酯薄膜》.pdf
文档评论(0)