Process Scheduling and Execution

Process Scheduling

  • Definition of Process Scheduling

    • The method by which an operating system decides the order in which processes are executed by the CPU.

  • CPU Execution Requirements

    • For a CPU to start executing a process:

      • The process must be in a ready state.

      • Multiple processes may be ready, causing a need for a selection mechanism.

The Ready Queue

  • Description

    • A ready queue is a data structure that holds all processes that are ready to run but are waiting for CPU allocation.

    • Visual representation:

      • A diagram shows multiple entries in the ready queue and one process currently using the CPU.

CPU Scheduler

  • Function of CPU Scheduler

    • The CPU scheduler is a critical component of the operating system. Its roles include:

      • Managing how processes utilize CPU resources.

      • Deciding which of the ready processes is dispatched to the CPU for execution.

      • Determining the time quantum or how long a process is allowed to run before being preempted.

Preemption

  • Definition of Preemption

    • An operation in which the operating system interrupts an executing process to save its current state (context).

  • Preemption Mechanism

    • Required for effective CPU management, allowing the OS to manage multiple processes efficiently and fairly.

Scheduling Algorithm

  • Description

    • After a process is preempted, the CPU scheduler runs a scheduling algorithm to select the next process from the ready queue.

Dispatching Processes

  • Process Dispatching

    • Once a process is selected by the scheduler, the OS must:

      • Dispatch or transfer control of the CPU to the selected process.

      • Switch into the context of the selected process to begin execution.

Efficiency of the Operating System

  • Importance of Efficiency

    • CPU resources are limited and must be utilized effectively:

      • Minimize the time spent executing scheduling algorithms and other OS operations.

      • Focus on running processes rather than overhead related to management tasks.

  • Design and Implementation

    • Emphasizes the need for:

      • Efficient designs of scheduling algorithms.

      • Efficient implementations to reduce the overhead during scheduling processes.

      • Effective data structures for representing the state of waiting processes.

Information for Scheduling Decisions

  • Key Information Used in Scheduling

    • Priority of Processes

      • Processes may have different priority levels that affect scheduling decisions.

    • Historical Data

      • Records about how long each process has run in the past can influence future scheduling choices.

    • Other Relevant Information

      • Additional metrics or data deemed useful for making informed scheduling decisions may also be utilized.