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

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

用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

2 3 2

3 4 3

屏幕显示:Please input the slice

1

屏幕输出结果:

********************************************

name arrive run rest state

1 2 1 0 running

2 3 2 2 ready

3 4 3 3 ready

********************************************

name arrive run rest state

2 3 2 1 running

3 4 3 3 ready

********************************************

name arrive run rest state

2 3 2 1 ready

3 4 3 2 running

********************************************

name arrive run rest state

2 3 2 0 running

3 4 3 2 ready

********************************************

name arrive run rest state

3 4 3 1 running

********************************************

name arrive run rest state

3 4 3 0 running

********************************************

测试数据2:

2 3 1

1 2 3

5 4 2

测试数据3:

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

  1. 操作系统实验二——时间片轮转调度算法(RR算法)(新进程放队首和队尾两种C++实现)

    情况介绍 基本原理 系统将所有就绪进程按照FCFS的原则,排成一个队列依次调度. 把CPU分配给队首进程,执行一个时间片(10-100ms). 时间片用完后,系统计时器发出时钟中断,该进程将被剥夺CP ...

  2. c语言实现进程调度优先权调度算法和时间片轮转调度算法

    ** 1.算法原理 ** 时间片轮转调度算法 a.在时间片轮转调度算法中,系统根据先来先服务的原则,将所有的就绪进程排成一个就绪队列,并且每隔一段时间产生一次中断,激活系统中的进程调度程序,完成一次处 ...

  3. 【进程调度算法】时间片轮转调度算法、多级反馈队列调度算法(Java实现)

    时间片轮转调度算法(RR)是十分简单的进程调度算法. 进程在执行时的情况 在该时间片内进程执行完毕,这种情况调度程序将立即把该进程弹出队列,并把CPU分配给新的队首进程 在该时间片内进程未执行完毕,调 ...

  4. 操作系统作业调度算法c语言,操作系统课程设计报告电梯调度算法c语言实现.doc...

    操作系统课程设计报告电梯调度算法c语言实现 操作系统课程设计报告电梯调度算法c语言实现 :调度 算法 电梯 课程设计 操作系统 操作系统课程设计报告 模拟操作系统课程设计 写一个简单的操作系统 篇一: ...

  5. 操作系统实验二(调度算法模拟-先进先出-时间片轮转法-优先服务调度算法)

    实验二 进程调度 一.     实验目的 1.       理解进程运行的并发性. 2.       理解处理器的三级调度. 3.       掌握先来先服务的进程调度算法. 4.       掌握短 ...

  6. python2048小游戏程序设计大作业_C语言大作业报告——2048小游戏程序

    大作业题目 类型 游戏 班 号 学 号 所在院系 学 期 2020 年春季学期 任课教师 实验类型 综合设计型 实验目的:  掌握程序设计的基本算法和简单数据结构基础,能够综合运用基本控制语句.算法 ...

  7. 进程调度之时间片轮转调度算法(实验三)

    在分时系统中,最简单最常用的就是基于时间片轮转调度算法,时间片轮转调度算法是非常公平的处理机分配方式,让就绪队列的每个进程每次仅运行一个时间片. 1.时间片轮转调度算法的基本原理 在时间片轮转调度算法 ...

  8. java语言实现的时间片轮转调度算法和动态优先级调度算法

    java语言实现的时间片轮转调度算法和动态优先级调度算法 一.代码: 二.程序运行演示 总结 贪方便用java实现老师的作业,虽然写的乱七八糟的,但是也想发出来给人看看,评论喷我吧!. 一.代码: 作 ...

  9. 安徽工程大学C语言程序设计实验报告,安徽工业大学嵌入式实验报告.docx

    安徽工业大学嵌入式实验报告 <嵌入式系统实验报告>指导教师:陆勤姓名:程少锋学号:139074366班级:物联网131班实验一B 熟悉实验开发环境一.实验目的熟悉ADS1.2 开发环境,学 ...

最新文章

  1. ACM 竞赛高校联盟 练习赛 第二场 BC
  2. css实现让页面的footer始终位于底部
  3. ISSET_SE 错误异常
  4. 基于混合云存储系统的电影推荐引擎小结
  5. 由partition看窗口函数
  6. STM32工作笔记0040---认识MOS管
  7. android 4.0 禁用系统home键
  8. UVa 10048 (Floyd变形) Audiophobia
  9. 【Java中的网络编程】
  10. linux-inject:注入代码到运行的Linux进程中
  11. 代码重构的方法和经验_实战篇:一个核心系统 3 万行代码的重构之旅
  12. ie11 华表_IE11网页加载项和控件不能运行的解决方法
  13. Depsolving loop limit reached
  14. 如何在Google Chrome中手动设置位置信息
  15. Kafka节点扩容、缩容后reassign partition
  16. 私钥记录-支付宝接入
  17. Qgis教程3:数据美化
  18. 国风虚拟人形象频频亮相,虚拟数字人为传统文化传播提供了新载体
  19. huffman算法实现文件的压缩与解压
  20. 如何在android运行lua脚本(最简单的讲解,一看就懂)

热门文章

  1. Java环境配置与eclipse安装破解与汉化
  2. 如何通过Excel数据批量生成DM码
  3. 未来的趋势————以ChatGPT为标杆的AI对生活的影响是巨大的
  4. 一个使用Ruby on Rails开发LBS网站的简单实例
  5. PMP培训机构怎么选?这几个维度是关键
  6. [C#]Http请求报头设置
  7. YOLOv5的一些评价指标(训练图的中文解释)
  8. Pywin32操作Excel数据的类
  9. STM32F1与STM32CubeIDE编程实例-HMC5883电子罗盘驱动
  10. 【Matlab】开发环境介绍及学习方法