Product SiteDocumentation Site

3.2. Processor Scheduling

When you use System Monitor, you will see a lot of simultaneous processes. A process is a list of instructions from an application (although sometimes a process is the entire application). In System Monitor, most processes are idle, which means the process does not use the processor but waits until it has a task.
Modern computers have processors with more than one processor core, so modern processors can run more than one process at the same time. Even high-performance computers have more processes than processor cores, so operating systems must decide which processes can run, when processes can run, and which processor cores to use. We call this processor scheduling.
In Linux systems like Fedora, access to memory, hard disks, networks, audio hardware, and other things is also scheduled. A scheduling algorithm is instructions for to decide which process can access which resources at what times. We can use different scheduling algorithms to optimize our computer for different tasks.
For everyday use, the default scheduling algorithm, fair queueing, is a good choice. Fair queueing ensures all applications have equal access to your computer's hardware. Fair queueing is not useful for audio production environments. If you decide to record a live concert, and the PackageKit update manager starts to check for software updates, you do not want this to interrupt your concert recording. Wait the fair queueing scheduling algorithm, PackageKit has equal priority with your recording software, and may cause a glitch in the recording.
The realtime scheduling algorithm is a better choice for audio production enivironments. You can use realtime scheduling to prioritize some processes, like audio recording processes. If you decide to record a live concet, and the PackageKit update manager starts to check for software updates, realtime scheduling means PackageKit would not use the processor if the audio recording application is.
Remember that realtime scheduling does not prevent applications and processes from starting. Realtime scheduling means that, if a low-priority process and a high-priority process both want to use your computer's hardware, the high-priority process will use the hardware first. Also note that applications may appear to stop responding (to "freeze"), if you encounter a situation where a high-priority process uses your computer's hardware and causes the graphics process to wait.