Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 5. Понятия процесса и потока. Классифика...docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
439.88 Кб
Скачать
      1. Переключение контекста процесса

До сих пор мы рассматривали операции над процессами изолированно, независимо друг от друга. В действительности же деятельность мультипрограммной операционной системы состоит из цепочек операций, выполняемых над различными процессами, и сопровождается переключением процессора с одного процесса на другой. Для корректного переключения процессора с одного процесса на другой необходимо сохранить контекст исполнявшегося процесса и восстановить контекст процесса, на который будет переключен процессор. Такая процедура сохранения/восстановления работоспособности процессов называется переключением контекста. Время, затраченное на переключение контекста, не используется вычислительной системой для совершения полезной работы и представляет собой накладные расходы, снижающие производительность системы. Оно меняется от машины к машине и обычно колеблется в диапазоне от 1 до 1000 микросекунд. Существенно сократить накладные расходы в современных операционных системах позволяет расширенная модель процессов, включающая в себя понятие threads of execution (нити исполнения или просто нити).

      1. Иерархия процессов

В UNIX системах заложена жесткая иерархия процессов. Каждый новый процесс, созданный системным вызовом, является дочерним к предыдущему процессу. Дочернему процессу достаются от родительского процесса переменные, регистры и т.п. Как только родительские данные скопированы, последующие изменения в одном из процессов не влияют на другой, но процессы помнят о том, кто является родительским. В таком случае в UNIX существует и прародитель всех процессов - процесс init.

Рис. 5.1. Дерево процессов для систем UNIX

В Windows не существует понятия иерархии процессов. Хотя можно задать специальный маркер родительскому процессу, позволяющий контролировать дочерний процесс.

      1. Состояние процессов

При исполнении процесс может изменять свое состояние следующим образом:

  • новый (new) - процесс создается операционной системой, но еще не начал выполняться;

  • исполняемый (running) - исполняются команды процесса на процессоре или процессорах компьютерной системы под управлением операционной системы;

  • ожидающий (waiting) - процесс ожидает наступления некоторого события, например, завершения ввода-вывода. В состоянии ожидания процесс не занимает процессор;

  • готовый к выполнению (ready) - процесс ожидает получения ресурсов процессора для его исполнения. В состояние готовности к выполнению процесс попадает обычно либо при его создании, либо после завершения ввода-вывода (из состояния ожидания);

  • завершенный (terminated) - исполнение процесса завершено.

Рис.5.2. Возможные переходы между состояниями.

На серверах для ускорения ответа на запрос клиента, часто загружают несколько процессов в режим ожидания. Как только сервер получит запрос, процесс переходит из состояния ожидания в состояние выполнения. Этот переход выполняется намного быстрее, чем запуск нового процесса.