c语言实现作业调度算法实验报告,时间片轮转调度算法的实验报告.doc

本文是一份关于使用C语言实现时间片轮转调度算法的实验报告。实验中,用户输入进程个数、时间片大小以及各进程的到达时间、运行时间。通过模拟调度,更新进程状态,输出每次调度后的进程信息。实验展示了如何根据进程到达顺序形成队列,以及如何在剩余时间不为0时进行下一轮调度,直至所有进程完成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间片轮转调度算法的实验报告

实验概述:【实验目的及要求】

用C语言编程实现时间片轮转调度算法

【实验原理】

基于调度算法思想用C语言编程实现Visual C++6.0实验内容:

本实验模拟在单处理机情况下处理机调度,用C语言编程实现先来先服务和最短作业优先调度算法。

【实验方案设计】

时间片大小固定,由用户输入。进程个数由用户输入。

每个进程用一个PCB表示。PCB包括进程名,到达时间,运行时间,剩余时间,进程状态,链接指针。其中,进程名,到达时间和运行时间由用户输入,剩余时间的初值等于运行时间。为简单起见,进程状态设为三种:就绪,运行和完成。链接指针指向下一个进程的PCB;

按照进程到达的先后顺序排成一个队列。设置一个队头指针指向队列中第一个进程,并设置一个队尾指针指向队列中的最后一个进程;

c. 执行调度时,先选择队首的第一个进程运行。另外设置一个指向当前运行进程的指针;

由于本实验是模拟实验,所以对选中进程并不实际启动运行,而只是执行:

被选中进程的状态置为运行态;

被选中进程的剩余时间减去时间片大小;

按照队列的顺序依次输出每个进程的进程名,到达时间,运行时间,剩余时间,进程状态。

用这三个操作来模拟进程的一次运行;

进程运行一次后,以后的调度则将当前指针依次下移一个位置,指向下一个进程,即调整当前运行指针,以指示应运行进程。同时还应判断该进程的剩余时间是否为0。如果不为0,则等待下一轮的运行;如果该进程的剩余时间为0,则将该进程的状态置为完成态,并退出队列;

f. 若处于就绪态的进程不为空,则重复第d步和第e步直到所有进程都运行完为止。

【实验过程】(实验步骤、记录、数据、分析)

测试用例1:

屏幕显示:Please input the process name, arrive time and run time

输入:

1 2 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值