В чём заключается
многозадачность Windows? Она
глючит и работает
одновременно. Анекдот |
Хотя с этим понятием большинство читателей "Компьютерных вестей", пусть и интуитивно, но знакомы, есть всё-таки и меньшинство. Думаю, для них эта небольшая заметка будет достаточно полезной и интересной.
Под многозадачностью обычно понимают способность операционной системы обеспечивать параллельное выполнение нескольких процессов. При этом выделяют параллельное выполнение, которое обеспечивается особенностями "железа" (т.е., фактически, несколькими процессорами) - тогда многозадачность называют истинной. В случае, если аппаратное обеспечение не в состоянии обеспечить истинную многозадачность, эта функция возлагается на операционную систему, и тогда говорят о псевдопараллельном выполнении процессов. В современных системах, как правило, используется вытесняющая многозадачность, при которой от процесса не требуется никакого ответа, если операционной системе вдруг становится необходимо его прервать. При таком типе многозадачности один "зависший" процесс не станет причиной краха всей системы.
В многозадачных системах существует понятие приоритета процесса. Чем выше приоритет, тем больше ресурсов (т.е. процессорного времени и доступной оперативной памяти) отводит система этому процессу. Каждый процесс рано или поздно будет передан на выполнение, но, конечно, реально для процессов с самым низким приоритетом это "рано или поздно" может не наступить до самого окончания работы пользователя, если при этом запущено достаточное количество процессов с низким приоритетом.
В многозадачной операционной системе остро стоит вопрос защиты работы одних приложений от вмешательства других. С этой целью используют такие приёмы, как выделение виртуального пространства адресов памяти каждому приложению и блокировка доступа к файлам, уже используемым другими приложениями.
В современных операционных системах концепция многозадачности получила своё дальнейшее развитие в виде многопоточности. Каждый процесс может состоять из множества потоков, выполняющихся операционной системой параллельно (или псевдопараллельно) друг другу. Это позволяет организовать различные приоритеты выполнения задач в рамках одного сложного приложения, что просто неоценимо для выполнения фоновых задач.
Вадим СТАНКЕВИЧ