作业
作业(job)是在多道批处理系统中用户提交给系统的一项相对独立的工作。它不仅包括了程序和数据,还应该提供一份作业说明书,系统根据说明书来控制程序运行。在批处理操作系统中,是以作业为基本单位从外存调入内存。
作业控制块(JCB)
多道批处理系统中,每一个作业都有单独的作业控制块,其中保存了系统对作业管理和调度所需的所有信息。
每当一个新作业被提交时,便由“作业注册”程序为新作业创建一个JCB,然后装入后备队列等待调度。
作业调度的主要任务
作业调度的任务是根据JCB中的信息,检查系统资源是否满足作业运行需要的资源需求,并按照一定的算法从外存将作业转移到内存,分配相应的资源。因此作业调度需要解决主要问题:
1. 接纳多少作业: 调度程序应该从后备队列调入多少个作业来使CPU利用率和系统吞吐量最大。系统希望能装入更多的作业来完成更多的任务,但是太多的作业又会造成内存内存不足而影响服务质量。所以作业调度算法需要解决调度数量的问题。
2. 接纳那些作业:作业之间有提交的先后顺序不同,还有紧迫程度的不同。所以调度算法也要能解决作业调度先后顺序的问题。
先来先服务(FCFS)调度算法
先来先服务(First come first serve)是最简单的调度方式。顾名思义就是根据作业提交的顺序依次调度。这种方法优先考虑了在系统中等待时间最长的作业,从后备队列选取队首的几个作业为它们分配内存和资源。
优点:考虑到了作业的等待时间,让等待更久的作业先运行