Research Paper from the year 2011 in the subject Computer Science - Commercial Information Technology, grade: A, Massachusetts Institute of Technology, language: English, abstract: CPU scheduling is a technique used by computer operating systems to manage the usage of the computer's central processing unit. In a multi-programming environment whereby several processes are running on the same processor, it is essential to use scheduling criteria to avoid collisions in the computer's operations. This will help users in a given information technology oriented firm to share server spaces and resources like printers and file storage spaces. In the multi-tasking environment, a program called CPU scheduler selects one of the ready processes and allocates the processor to it. There are a number of occasions when a new process can or must be chosen to run: When a running process block and changes its state to 'Blocked', When a timer for a running process expires, When a waiting process unblocks and changes its state to 'Ready', and When a running process terminates and changes its state to 'Exit' (Wikipedia, 2013). Different types of scheduling programs referred to as algorithms can be employed in CPU scheduling instances. Among the most popular scheduling algorithms is Shortest Job First (SJF). SJF gives the processor to the process with the shortest next time allocation known as the burst. If there are processes with similar CPU bursts in the event queue, the scheduler uses First Come First Served algorithm which allocates the first process to arrive in the queue to the processor regardless of its burst time. It operates under the assumption that the length of the next CPU burst of each of the processes in ready queue is known (CPU scheduling, 2013). The SJF algorithm can be used in both pre-emptive and non-preemptive methods. The algorithm can be preemptive or not. Shortest Job First with preemption uses priority measure to determine the next process to be given the CPU.
Recommendations
Simulation Based Job Scheduling Optimization for Batch Workloads
ICPE '19: Proceedings of the 2019 ACM/SPEC International Conference on Performance EngineeringWe present a simulation based approach for scheduling jobs that are part of a batch workflow. Our objective is to minimize the makespan, defined as completion time of the last job to leave the system in a batch workflow with dependencies. The existing ...
Scheduling algorithms for multiprogramming in a hard-real-time environment
Readings in hardware/software co-designThe problem of multiprogram scheduling on a single processor is studied from the viewpoint of the characteristics peculiar to the program function that need guaranteed service. It is shown that an optimum fixed priority scheduler possesses an upper ...