模拟进程调度

1. 基本信息

姓名 学号 班级 是否编译成功 是否运行结果正确(逻辑也要正确)
是/否 是/否

如果代码运行不正确,写报告时,呈现所做的努力,按以下格式来写:

# 2.  做了什么
# 3.  碰到什么样的问题
# 4. 针对遇到的问题,你做了哪些努力

如果运行结果正确,按以下方式来写:

  • 结合关键代码,解释代码背后的原理(对于别人不能一眼就能明白你代码要做什么的,你要给出解释)
  • 给出测试结果,并解释运行结果
  • 文末,再给出完整的代码

以下是代码运行正确的报告格式:

[!Warning]

实验报告内容应结合源代码分析,而不是贴个源代码,对源代码进一步解释,源代码只是服务于你的报告内容。

因此,应该按模块来讲解,而不是把一人代码文件贴上去,做增强版代码解释。

以下模板只是作为参考,可以根据需要,增加和删减章节。

2. 主函数

2.1 读取测试数据

2.2 选择调度算法部分

2.3 测试部分

3. PCB及进程创建

3.1 PCB定义

3.2 进程创建

3.3 进程销毁

3.4 平均等待时间和平均带权周转时间计算

4. 先来先服务调度

FIFO很简单,不需要算法介绍。直接给出算法实现部分。

5. 短作业优先

5.1 调度算法原理

描述你实现算法的技术细节,比如可抢占、不可抢占。

5.2 调度时机

什么时候调度,比如采用不可抢占,作业在运行过程中,来了一个进程,这个时候是没有调度的。

6. 优先级+时间片轮转

6.1 调度算法原理

6.2 算法实现

比如用什么样的数据结构存储进程链表,就绪队列是一个还是多个。

7. 运行结果及分析

呈现你是如何测试你的程序。

给出运行结果,并分析。对于这个小规模的测试(test_data_5.csv),需要手动演算,再来判断演算结果与程序运行结果是否一致。对于test_data_200.csv,不需要手动推演。

7.1 测试数据test_data_5.csv

7.2 测试数据test_data_200.csv

8. 实验过程中遇到的问题及解决方法

写下你实验过程中遇到的问题,以及你是如何解决的。也可以写下你对此实验的感想。

9. 附完整源代码

(1)process_schedule.c

(2)process_schedule.h

本文系Spark & Shine原创,转载需注明出处本文最近一次修改时间 2022-07-23 22:14

results matching ""

    No results matching ""