本课程为大连理工大学操作系统课程的一部分,主要内容聚焦于通过编程实践探索和理解各种进程调度算法。学生将深入学习并实现不同类型的调度策略,如先来先服务、短作业优先及多级反馈队列等,并分析其在实际场景中的应用与优劣,从而培养解决复杂系统问题的能力。
实验要求包括完整代码以及22页的实验报告。进程调度算法涵盖先来先服务(FCFS)、最短作业时间优先(SJF)非抢占式与抢占式、最高响应比调度(HRN)。每位参与者必须完成非抢占式的 SJF 算法,并从其余三种中选择一种,共计两种算法模拟。
衡量各算法性能的参数包括计算进程平均周转时间和平均带权周转时间。具体实验内容如下:
1. 编写实现本任务所需程序。
2. 建立进程控制块(PCB),至少包含以下信息:a) 进程名称;b) 执行时长;c) 到达就绪队列的时间;d) 开始执行时间;e) 结束执行时间;
3. 编写调度算法的实现代码。
4. 实现进程及相关信息的输入功能,支持从键盘或文件读取数据的方式;
5. 模拟时间片和时间流逝。程序需提供计算时间的方法,例如每按一次空格键代表2个单位的时间流逝或者使用系统时钟模拟;
6. 当一组进程序列执行完毕后,输出结果信息:每个进程的开始和结束时间、周转时间和带权周转时间,并对整个序列进行平均周转时间和平均带权周转时间计算。以特定格式在屏幕上显示或写入文件中;同时生成调度顺序图。
7. 实现数据与磁盘文件之间的读取操作。
使用上述算法分别针对以下就绪进程队列执行,计算每种情形下的平均周转时间和平均带权周转时间:
| 进程号 | 到达时间 | 执行时长 |
| ------ | -------- | -------- |
| 0 | 0 | 1 |
| 1 | 1 | 35 |
| ... | ... | ... |
| 9 | 13 | 1 |
| 10 | 14 | 7 |
| ... | ... | ... |
请根据以上要求完成实验。