МНОГОЗАДАЧНОСТЬ

Операционная система Linux является многозадачной. За многозадачность отвечает ядро. Что же представляет собой многозадачность? Мы привыкли под этим термином понимать концепцию одновременного выполнения нескольких программ. Однако такое понимание не является корректным в плане программирования. Во - первых - реально многозадачности не существует. Во вторых - есть понятие процесс, и есть понятие программа, которые нельзя отождествлять.

Итак, многозадачности не существует. Действительно, любой компьютер - это императивная машина, т.е. машина, основанная на последовательном анализе состояния вычислителя и изменении состояния этого вычислителя. Число комбинаций всевозможных состояний в такой системе конечно. Многозадачность, реализованная в операционных системах - это иллюзия, весьма удобная пользователю. Любая многозадачность - это абстракция императивности. То есть, мы думаем, что два процесса выполняются одновременно, а на самом деле они просто поочередно используют процессор для выполнения своих команд. За очередностью использования процессора следит ядро, которое и создает иллюзию многозадачности.

Чем же программа отличается от процесса? Программа - это нечто, готовое к выполнению, а процесс - это выполняющийся экземпляр программы. Почему экземпляр? Все дело в том, что одну и ту же программу можно запустить, например, два раза. Таким образом, получится два процесса, хотя программа одна.