What is Job Queue? (Explained)

3
52
What is Job Queue

What is Job Queue?

In relation to the jobs of a computer processor, a job queue refers to the location where all its jobs are stored before these are sent to it for processing. It can also be referred to as the list of incoming jobs on hold.

In theory, the job queue signifies the initial location where the batch jobs submitted to the system goes to, before they become active in the subsystem.

These jobs are held here awaiting a number of different factors to be met and allocated.

KEY TAKEAWAYS

  • Jobs in the job queue appear as an ordered list, which is determined on the basis of their availability, the date and time values, and their priority.
  • The subsystem allocates the job queue through the job queue entry and it can be placed on the queue even when the subsystem has not been started. The job in the queue is processed only when it is started.
  • Each of the jobs held in the queue has its own job queue priority based on which these are allocated in order to the subsystems. This priority can be managed through job properties while a job is held in the job queue.
  • Though every system is provided with a base set of job queues, you can always create further job queues if you need them.
  • There may be several subsystems associated with a job queue but jobs can be allocated to only one of these at a time. Jobs are usually allocated by the subsystem monitor.

Understanding Job Queue

Understanding Job Queue

Typically, a job queue refers to jobs entering into the system that are ordered and stored. This is actually the list of jobs that wait to be processed by the subsystems.

This means that the jobs in the job queue will remain there unless there is an active subsystem that is free and ready to accept jobs from the job queue.

Read Also:  Direct Mapped vs Fully Associative Cache: 13 Differences 

These subsystems can carry out tasks received from several different job queues, but, at a time, one subsystem can process jobs from only one specific job queue.

Job queues can be created either in an independent disk pool or you may even use the one in the system.

However, the jobs listed in the job queue created in an independent disk pool will end only when an IPL or Initial Program Load of the system occurs or when the disk pool is varied off.

Ideally, when a job queue is created in an independent disk pool, the jobs on it do not move to a new system.

From the perspective of the system software, a job queue, which is also called input queue or batch queue, refers to a specific type of data structure.

This is typically retained by the job scheduler software which actually contains the jobs to do.

It maintains the queue so that jobs from the pool are available for the software to run as and when required.

Jobs, in this case, refer to the programs that are submitted by the users and are to be executed. These are held in the job queue awaiting batch processing.

There may be multiple batch queues used by the scheduler. This helps in separating the jobs based on their types and other specific parameters such as:

  • Estimated execution time
  • Job priority
  • Resource requirements

There are several benefits of using batch queues which include but are not limited to:

  • Resource sharing among different users of the computer
  • Time shifting job processing to the computer when it is less busy
  • Avoiding idling of computing resources
  • Eliminating the need for human supervision every minute
  • Allowing better utilization of costly computing resources around the clock.

Jobs are selected from a job queue on the basis of different factors such as:

  • Maximum active jobs that are running in the subsystem and no more jobs are sent if the maximum limit is reached
  • Priority of jobs on the job queue where the higher priority jobs are sent first
  • The sequence specified by the job queue entry of the subsystem.
Read Also:  What is Channel I/O (Input/Output)? Types, Function & More

Jobs are identified by the job queue entry and accordingly these are chosen for running in the subsystem.

If a job queue is allocated to a subsystem already, it must complete and de-allocate it before receiving further jobs.

If there is no job queue and the subsystem is started, the job queue is allocated when:

  • There is a job queue created
  • A job queue is renamed as defined for the subsystem
  • A job queue is shifted to a different library and the resultant and qualified name and that of the subsystem description matches
  • The library holding the job queue is renamed and the resultant and qualified name and that of the subsystem description matches.

Multiple job queues can be created for normal work and for special purposes on the basis of the following parameters:

  • Long-running jobs
  • Overnight jobs
  • High priority jobs
  • Jobs with specific resource requirements
  • Programmer work
  • Sequential running.

The subsystem monitor selects jobs from these multiple job queues based on the sequence number. It can assign more than one job queue.

The security of the job queue can be maintained by teasers if they are authorized. Usually there are three ways in which they can be authorized such as:

  • By assigning pool control authority to the user in the user profile
  • By assigning job control authority to the user in the user profile
  • When the user has the necessary object right in the job queue as specified by the authority check parameter.

What is Job Queue

Where is the Job Queue Found?

Usually, in conventional batch systems, the job queue is found in the secondary memory.

Read Also:  Wired vs Wireless Technology: 21 Differences

Some of the jobs in this job queue may, however, be picked by the job scheduler or the long term scheduler to move them into the primary memory or RAM.

However, if you consider the modern time-sharing operating systems or batch systems that are designed mainly for multiprogramming, the newly created jobs may go directly to the Random Access Memory or RAM.

This means that these jobs will be located in the ready queue and hence it can be interpreted in the same way as the ready queue.

Job Queue Vs Ready Queue

  • In a job queue all the processes that are entering the system are stored, but, in comparison, the ready queue retains all those processes that are in the ready state
  • A job queue is related to non-demand paged systems, but, in comparison, a ready queue is related to demand paging
  • A job queue is the list of processes that are stored in the secondary memory, while, in comparison, a ready queue stores the processes in the main memory
  • The processes listed in the job queue wait to be allocated in the main memory, but in comparison, the processes in the ready queue await to be scheduled on a CPU or a core.

Conclusion

A job queue holds the jobs that are needed to be processed by the subsystems of a computer based on their priority.

Ideally, any process that comes to the system cannot go to the CPU directly but needs to wait in a job queue first.

From there, it will be allocated to the main memory of the system and then to the CPU.

About Taylor

AvatarTaylor S. Irwin is a freelance technology writer with in-depth knowledge about computers. She has an understanding of hardware and technology gained through over 10 years of experience.

3 Comments
Oldest
Newest
Inline Feedbacks
View all comments