Process scheduling is one of the key tasks of every operating system. Proper implementation of a scheduler reflects itself in a system responsiveness, especially when processes require execution in real-time. Multimedia playback is one of these processes, also being one of the most common operating system tasks nowadays. In the beginning of this thesis, I present theoretical basics of scheduling: its goals, different scheduling types and basics algorithms. I cover scheduling in single-processor and multi-processor systems. The work continues with a detailed inspection of the source code and an explanation of internals of the following operating systems: FreeBSD, Linux, and Windows NT. In the end, I conduct measurement of scheduler latencies of different Linux kernels under un-loaded and loaded system conditions.
|