Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_na_gosy.doc
Скачиваний:
24
Добавлен:
01.05.2025
Размер:
4 Мб
Скачать
☆

Содержание

  [убрать] 

  • 1 Свойства многозадачной среды

  • 2 Трудности реализации многозадачной среды

  • 3 История многозадачных операционных систем

  • 4 Типы псевдопараллельной многозадачности

    • 4.1 Невытесняющая многозадачность

    • 4.2 Совместная или кооперативная многозадачность

    • 4.3 Вытесняющая или приоритетная многозадачность (режим реального времени)

  • 5 Проблемные ситуации в многозадачных системах

    • 5.1 Голодание (starvation)

    • 5.2 Гонка (race condition)

    • 5.3 Инверсия приоритета

  • 6 Ссылки

  • 7 Примечания

Свойства многозадачной среды[править | править исходный текст]

Примитивные многозадачные среды обеспечивают чистое «разделение ресурсов», когда за каждой задачей закрепляется определённый участок памяти, и задача активизируется в строго определённые интервалы времени.

Более развитые многозадачные системы проводят распределение ресурсов динамически, когда задача стартует в памяти или покидает память в зависимости от её приоритета и от стратегии системы. Такая многозадачная среда обладает следующими особенностями:

  • Каждая задача имеет свой приоритет, в соответствии с которым получает процессорное время и память

  • Система организует очереди задач так, чтобы все задачи получили ресурсы, в зависимости от приоритетов и стратегии системы

  • Система организует обработку прерываний, по которым задачи могут активироваться, деактивироваться и удаляться

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

  • Система обеспечивает защиту адресного пространства задачи от несанкционированного вмешательства других задач

  • Система обеспечивает защиту адресного пространства своего ядра от несанкционированного вмешательства задач

  • Система распознаёт сбои и зависания отдельных задач и прекращает их

  • Система решает конфликты доступа к ресурсам и устройствам, не допуская тупиковых ситуаций общего зависания от ожидания заблокированных ресурсов

  • Система гарантирует каждой задаче, что рано или поздно она будет активирована

  • Система обрабатывает запросы реального времени

  • Система обеспечивает коммуникацию между процессами

Трудности реализации многозадачной среды[править | править исходный текст]

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

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

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

Такие потоки называют также потоками выполнения (от англ. thread of execution); иногда называют «нитями» (буквальный перевод англ. thread) или неформально «тредами».

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

Многопоточность (как доктрину программирования) не следует путать ни с многозадачностью, ни с многопроцессорностью, несмотря на то, что операционные системы, реализующие многозадачность, как правило реализуют и многопоточность.

К достоинствам многопоточности в программировании можно отнести следующее:

  • Упрощение программы в некоторых случаях за счет использования общего адресного пространства.

  • Меньшие относительно процесса временны́е затраты на создание потока.

  • Повышение производительности процесса за счет распараллеливания процессорных вычислений и операций ввода-вывода.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]