操作系统实验 作业调度
1.实验目的 加深对作业调度算法的理解。 2.实验内容 此实验模拟批处理系统中的作业调度,并采用响应比高者优先算法作为作业调度算法。 3.实验说明 从输入井中选择作业读入内存,使其获得处理器,得到运行的机会,即为作业调度。输入井中的作业用“作业控制块”(JCB)标识,为了进行作业调度,将作业控制块组成一个队列,这个队列称为后备队列。 模拟实验中没有实际作业,作业控制块中的信息内容只使用了模拟实验中需要的数据。作业控制块中包括作业名、作业大小、所需打印机台数、所需磁带机数量、作业估计执行时间、作业等待时间、指向下一个作业控制块的指针等内容。将作业控制块组成一个队列,实验中采用动态链表的方式模拟作业的后备队列。作业控制块采用结构型数据模拟。 模拟实验中,主存采用可移动的可变分区管理方法,即只要主存空闲区总和比作业大就可以满足作业对主存的需求。对打印机和磁带机这两种独占设备采用静态分配法,即作业执行前必须获得所需资源,并且执行完才归还。 实验中作业的调度采用响应比高者优先算法。响应比为作业的等待时间和作业估计执行时间之比。首先计算出输入井中满足条件的作业的响应比,从中选择响应比最高的一个作业装入主存储器,分配资源。由于是模拟实验,可将作业控制块出队装入主存储器的工作用输出作业名模拟,同时修改系统的资源数量。 模拟实验时,可以首先假设系统的资源情况。假设系统资源只有主存64MB、磁带机4台、打印机2台,然后手工输入某个时刻输入井中的各个作业情况,最后进行作业调度,并将结果输出。 批处理系统中的作业调度模拟程序主要由创建作业队列的程序段(在主函数中)和作业调度函数组成。 操作系统实验中的作业调度是批处理系统中至关重要的一个环节,其目标是有效地分配系统资源,以提高系统的整体效率。在本实验中,学生将通过模拟批处理系统来深入理解作业调度算法,特别是响应比高者优先算法。 1. **作业调度算法**: 实验采用的调度算法是响应比高者优先(HRN,High Response Ratio Next)。该算法考虑了作业的等待时间和预计执行时间,以响应比(等待时间/预计执行时间)作为调度依据。响应比高的作业被认为更需要优先处理,因为它已经等待了较长时间,同时考虑到执行时间,确保不会过度偏爱短作业。 2. **作业控制块(JCB)**: JCB是操作系统中记录作业状态和需求的数据结构,包括作业名、大小、所需打印机和磁带机数量、预计执行时间、等待时间等信息。在实验中,这些信息用于决策作业的调度优先级。 3. **资源管理**: 主存使用可移动的可变分区管理,只要空闲内存总和大于作业需求即可满足。打印机和磁带机采取静态分配,即作业执行前必须分配到所需资源,执行完毕后归还。这要求在调度时需检查资源可用性。 4. **实验实现**: - **数据结构**:定义了结构体`JCB`,包含作业的基本属性,如名称、大小、资源需求、执行和等待时间等,以及指向下一个JCB的指针,形成动态链表模拟后备队列。 - **程序设计**:实验程序包括创建作业队列和调度函数。在主函数中创建队列,然后输入作业信息,设置初始状态。之后,根据作业的响应比进行调度,每次调度后更新作业的等待时间并删除已调度的作业。 5. **设计思路**: - 初始化阶段,通过`Creat(head)`创建带有头结点的链表,并用`input(head)`输入作业信息并设置提交时刻和等待时间为0。 - 调度阶段,使用`work(head)`处理0时刻的作业,然后通过`compare(head)`计算后续作业的响应比,调度响应比最高的作业。 - 每次调度后,需要更新剩余作业的等待时间(增加已执行作业的运行时间),并删除已调度的作业。 6. **程序流程**: - 输入作业参数。 - 创建并输入作业队列。 - 显示后备队列状态。 - 处理初始时刻的作业。 - 计算并比较后续作业的响应比,调度响应比最高的作业。 - 重复上述步骤,直到所有作业完成。 通过这样的模拟实验,学生能够直观地理解作业调度的过程,学习如何根据响应比高者优先原则进行作业选择,同时掌握如何处理资源分配和释放,这对于理解和设计操作系统的核心调度策略至关重要。实验的结果分析能帮助学生更好地评估不同调度策略对系统性能的影响。
剩余7页未读,继续阅读
- chao232chao2014-02-19该资源对我有用!
- 粉丝: 5
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助