Scheduling algorithms: -

-Scheduling algorithms are computational techniques used to manage and optimize the allocation of resources over time.

-They are applied in a wide range of fields, including computer science, manufacturing, transportation, and project management, to ensure efficient resource utilization.

-There are many job scheduling algorithms some of them are mentioned below,

i.   Job Scheduling Algorithms

ii.  Task/Process Scheduling Algorithms

iii. Real-Time Scheduling Algorithms

iv. Batch Scheduling Algorithms

v.  Disk Scheduling Algorithms

vi. Machine Scheduling Algorithms

 

Job scheduling:-

-Job scheduling refers to the process of allocating and managing tasks or jobs in a way that optimizes resource utilization, reduces waiting times.

- There are various scheduling algorithms like FCFS (First-Come, First-Served), SJF (Shortest Job First), Priority Scheduling, and EDF (Earliest Deadline First), each with its own approach to task prioritization and resource allocation.

-Ex. In a computer's operating system, it's like deciding which programs and tasks to run, in which order, and for how long to ensure your computer runs smoothly and responsively.

 

The activity selection problem: -

 -The activity selection problem involves choosing a maximum number of non-overlapping activities from a set of activities, where each activity has a start and end time.

-The goal is to select activities to maximize the number of non-overlapping tasks that can be accomplished within a given time frame, ensuring efficient resource utilization and avoiding conflicts.

-The most common approach to solving the activity selection problem is a greedy algorithm.

-Ex. Imagine you have a conference room booked for a day and multiple meetings scheduled. You want to choose the meetings that don't overlap in time to make the best use of the room.