Sunday, Feb 05th

Last update12:13:00 PM GMT

Вы находитесь на: FreeBSD Службы ядра Многозадачное программирование

Многозадачное программирование

Система FreeBSD поддерживает прозрачное многозадачное программирование: иллюзию параллельного выполнения нескольких процессов или программ. Она делает это путем переключения контекста, т. е. путем переключения между контекстами выполнения процессов. Предусмотрен также механизм для планирования выполнения процессов, т. е. для решения того, какой из них будет выполняться следующим. Предусмотрены возможности для обеспечения согласованного доступа к структурам данных, которые разделяются между различными процессами.

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

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

Сейчас 25 гостей онлайн

Реклама на сайте: