You are on page 1of 1

Open Source Operating System

Linux

Linux provides the fork system call with the traditional functionality of duplicating
a process. Linux also provides the ability to create threads using the clone system call.
However, Linux does not distinguish between processes and threads. In fact, Linux
generally uses the term task rather than process or thread when referring to a flow of
control within a program. When clone is invoked, it is passed a set of flags that
determine how much sharing is to take place between the parent and child tasks.

Linux has two separate process scheduling algorithms. One is a time-sharing


algorithm for fair, pre-emptive scheduling among multiple processes; the other is
designed for real-time tasks, where absolute priorities are more important than fairness.
The scheduling algorithm used for routine, time-sharing tasks received a major overhaul
with version 2.5 of the kernel. Prior to version 2.5, the Linux kernel ran a variation of the
traditional UNIX scheduling algorithm. Among other issues, problems with the traditional
UNIX scheduler are that it does not provide adequate support for SMP systems and that
it does not scale well as the number of tasks on the system grows. The overhaul of the
scheduler with version 2.5 of the kernel now provides a scheduling algorithm that runs in
constant time known as regardless of the number of tasks on the system.

You might also like