Координирование действий машины

 

Одним из главных принципов, лежащих в основе современных операционных систем, является разделение понятий программы и деятельности по ее исполне­нию. Программа — это просто статический набор указаний, а выполнение про­граммы — динамическая деятельность, свойства которой меняются во времени. Эта деятельность называется процессом (process). Текущее состояние деятельно­сти называется состоянием процесса (process state). Это состояние включает уча­сток программы, который в данный момент выполняется (значение в счетчике команд), а также значения других регистров центрального процессора и соответ­ствующих ячеек памяти. Грубо говоря, состояние процесса — это моментальный снимок ресурсов машины в данное время. В разные моменты выполнения про­граммы имеют место разные состояния процесса.

Различие между программой и процессом подчеркивается еще и тем фактом, что отдельная программа может быть одновременно связана с несколькими про­цессами. Например, в системе коллективного использования с разделением вре­мени два пользователя могут одновременно редактировать разные документы. Оба действия используют одну и ту же программу редактирования текста, но каждому из них будет соответствовать отдельный процесс с собственным набо­ром данных и скоростью протекания. В такой ситуации операционная система хранит в оперативной памяти только одну копию программы редактирования текста и позволяет каждому процессу использовать ее в течение определенного кванта времени.

В обычном компьютере с разделением времени множество процессов конку­рируют за кванты времени. К этим процессам относится выполнение приклад­ных и обслуживающих программ, а также программ операционной системы. Именно операционная система должна координировать все эти процессы, то есть она должна убедиться в том, что каждый процесс располагает необходимыми ресур­сами (периферийные устройства, пространство в оперативной памяти и доступ к центральному процессору), что независимые процессы не мешают друг другу и ничто не препятствует обмену информацией между процессами.