这是我们的课程设计,请不要给出具体代码,大家可以讨论思路。呵呵
你是否真的理解了os中的进程调度和作业调度呢?
操作系统课程设计题目与要求
(2004.12)
一、 题 目
使用线程模拟进程调度
1.模拟进程调度具有的基本功能
(1) 按下面的进程状态变换图调度进程
(2)用户进程来自文件,每个文件表示一个用户进程,进程文件的格式如下:
C 100
I 50
O 30
C 200
O 20
1)该虚拟进程表示的含义是:先在CPU上计算100秒,再在输入设备上输入数据50秒,输出30秒,再计算200秒,最后在输出设备上输入20秒,进程结束。
2)字母表示进程要进行计算、输入和输出,后面的数字表示相应操作的时间单位。用户进程具体执行步骤和每一步需要的时间自己设定。
2)要求该实验中至少有10个用户进程文件PRO1,PRO2,…..,PRO10。
(3)按时间片轮转方法进行进程调度,时间片自己设定。调度时按先来先服务和优先级策略选择用户进程执行。
(4)模拟时设置四个线程模块,分别是进程创建模块PRO_CREATE、进程执行模块PRO_EXEC、进程完成I/O操作模块PRO_IO,和进程撤消模块PRO_EXIT。并按就绪、等待和执行形成三个进程状态队列。
该实验必须用线程实现(线程部分参考有关编程书籍)。
(5)要求使用进程控制块PCB,使用作业表(可以参考教材内容设置必要的信息)
(6)实验输出包含两个部分:
1) ①输出执行每个用户进程的时间(由于使用时间片,一个进程可能需要多个时间片来完成,因此在输出时,这个进程的两次执行之间可能有其它进程),假如时间片为50,则输出可能是:
pro1 50(说明:用户进程1执行了一个时间片)
pro2 50(说明:用户进程2执行了一个时间片)
pro3 50(说明:用户进程3执行了一个时间片)
pro4 30(说明:该进程执行30就要求I/O,因此调度下一个进程执行)
…
pro1 50(说明:用户进程1执行了下一个时间片)
…
②输入/输出线程为进程提供服务的进程名字和时间,例如:
pro1 10
pro2 40
pro3 20
…
pro2 10
…
2) 每个用户进程从开始到完成的每一步的起始时间,结束时间,如:
pro1:I 执行 开始时间1 结束时间1
执行 开始时间2 结束时间2
输入/输出 开始时间3,结束时间3
执行时间4 结束时间4
…
pro2:…
2.选用程序设计语言:C++、C等。
二、课程设计需提交内容:
1.通过邮件将已调试通过的完整的模拟程序及运行需要的数据和执行结果发给相关教师,最好是让辅导教师在机器上检查,并回答有关问题。
2.提交“课程设计说明书”,其内容详见下面“课程设计说明书的要求”;
3.提交时间:在课程设计机结束后三天内。
三、课程设计说明书应具有的内容及其参考评分标准:
(1)设计思想说明(5分);
(2)所设计的系统结构的说明(15分);
(3)数据结构的说明(5分);
(4)各模块的算法流程图(5分);
(5)程序清单:格式规范,注意加注释(包含关键字、方法、变量等),在每个模块前加注释,注释不得少于20%;(共60分)
(6)使用说明书(即用户手册)(5分)
(7)体会,建议(5分)
四、注意事项
1.按“课程设计需提交内容”提交完整的相关设计资料。
2.严禁抄袭,复制设计内容,查出后相关同学设计成绩以零分处理。
3.所提交源程序应是能够运行通过的完整程序。发邮件的时候不要重复发,打包是不要包含OBJ文件和无关文件,否则发送的内容太多。邮件主题用班级、学号、姓名
五、提示
用户进程以文本文件的形式保存磁盘上,创建线程模块读文件并为每个文件建立PCB,再填入适当数据,这样就有了初始用户进程,并且这些用户进程在就绪队列。
建立三个队列:就绪、执行和等待。
建立执行线程模块,按先来先服务、时间片轮转方法进行调度。输入/输出线程模块完成I/O。
三个线程并发执行,根据队列和当前状态为作业提供服务。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)