1.3Переключение задач в многозадачных ОС. Многозадачность
Многозадачность (multitasking) – свойство ОС или среды исполнения обеспечивать возможность параллельной (или псевдопараллельной) обработки нескольких процессов.
Настоящая многозадачность возможна только в системах с несколькими процессорами (ядрами).
Типы многозадачности:
Процессная – планировщик ОС может управлять процессами
Поточная – планировщик ОС может управлять процессами и потоками
Многозадачность называется невытесняющей, когда
Загружаются в память два или более приложений
Процессорное время предоставляется только основному приложению
Второе приложение становится фоновым
Для выполнения фонового приложения его необходимо активизировать
Многозадачность называется кооперативной (совместная), когда
Для выполнения следующей программы текущая программа должна объявить о готовности отдать процессор
Преимущества такого вида многозадачности:
Не нужно защищать совместно используемые ресурсы
Легко преобразовать обычные программы в параллельные
Недостаток такого вида:
Выполняющаяся задача может не отдать процессор и остальные задачи не смогут выполниться
Трудно организовать многопоточную архитектуру ввода-вывода в ядре ОС в случае:
Одна задача инициировала операцию ввода-вывода и ждёт её завершения
В это время следует переключиться на другую задачу
Многозадачность называется вытесняющей, когда
Для выполнения следующей программы ОС принудительно приостанавливает выполнение текущей программы
Планировщик задач
Эффективное использование приоритетов
Преимущества:
Повышение надёжности
Возможность реализовать многопоточный ввод-вывод в ядре ОС
Возможность использования многоядерных и многопроцессорных систем
Недостатки:
Усложняется разработка приложений
Возникает требование реентерабельности
Необходимость защиты совместно используемых ресурсов
В приложении 1 можно ознакомиться с примерами параллельных программ.
2Аппаратная поддержка многозадачности
2.1Способы повышения быстродействия компьютеров
Архитектуры процессоров CISC и RISC
CISC – Complete Instruction Set Computer
Основная идея – сокращение количества машинных циклов на выполнение одной инструкции
Увеличивалось количество инструкций
Использовался микрокод
RISC – Reduced Instruction Set Computer
Сложные инструкции CISC используются редко – зачем их поддерживать, пусть все инструкции будут простыми
Вместо микрокода в ПЗУ (медленно) используется программа в ОЗУ (быстро)
Необходимо использование оптимизирующих компиляторов, зато не нужно писать на ассемблере
Все инструкции имеют одинаковую длину и состоят из битовых полей, которые можно декодировать одновременно
Используется большое количество регистров для сокращения количества обращений к памяти
Параллельная обработка
Использование двух и более независимых устройств для обработки данных
Эффективно для выполнения одной и той же операции для элементов массивов
Конвейризация
Типовые стадии конвейера – Выборка, Декодирование, Исполнение, Запись результатов. Конвейризация хорошо работает для обработки несвязанных данных. Плохо работает с ветвлениями и взаимозависимыми данными, а также в CISC. Однако, проблемы стараются решить с помощью таблицы регистров и переименования регистров.
Конвейризация стадий конвейера – суперковейерные компьютеры, однако это требует значительного увеличения тактовой частоты. Выполнение более одной операции одновременно – суперскалярные компьютеры (Два и более конвейеров, предусмотрен специальный аппаратный модуль, направляющий инструкции на разные конвейеры).
Производительность конвейерного устройства вычисляется по следующей формуле:
n – количество элементов в векторе
σ – время на инициализацию векторной команды
l – количество ступеней конвейера
τ – длительность выполнения ступени конвейера. На рисунке 8 изображена зависимость производительности конвейерного устройства от длины входных данных.
Рисунок 9. Зависимость производительности конвейерного устройства от длины входных данных.
Кэш-память
Кэш-память - это быстрое ОЗУ, расположенное между основной памятью и процессором
Основные действия Виды кэша
Единый кэш – инструкции и данные лежат в одной памяти
Гарвадская архитектура – данные и инструкции разделены
Уровни кэша
L1 – на частоте процессора
L2 – на частоте процессора или её половине
L3 – на частоте внешней шины
4.1 Законы Амдала
Первый закон
Производительность вычислительной системы, состоящей из связанных между собой устройств, в общем случае определяется самым непроизводительным элементом
Второй закон
Система состоит из s простых одинаковых универсальных устройств
При выполнении параллельной части алгоритма все устройства загружены одинаково
β – доля последовательных вычислений
Максимально возможное ускорение:
Третий закон
Система состоит из простых одинаковых универсальных устройств
При любом режиме её работы ускорение не может превзойти величины, обратной доли последовательных вычислений
|