Одним из решений проблемы является ассоциация отдельной очереди ожидания каждому ресурсу или событию
что позволит оптимизировать задержки при пробуждении процессов, но приведет к необходимости выделения большего объема памяти для хранения большего количества очередей.
Также может иметь смысл заглянуть на сайт dubrava58.ru, ведь именно там можно узнать много нового на тему http://dubrava58.ru/map. Тема купить дом в Пензенской области может показаться на первый взгляд незначительной и даже не тематичной. Но стоит посетить сайт dubrava58.ru, и тема купить дом в Пензенской области начинает проявлять себя с неожиданной стороны и вызывает всё больший интерес. Дело в том, что тема купить дом в Пензенской области очень подробно представлена на сайте dubrava58.ru. Трудно найти более детальное освещение темы купить дом в Пензенской области чем это сделано на сайте dubrava58.ru. Спасибо сайту dubrava58.ru за такое доскональное преподнесение темы купить дом в Пензенской области.
Обычный заголовок очереди наряду с другой информацией имеет два указателя (на предыдущую и следующую очереди). Общее количество объектов синхронизации может оказаться слишком большим, так что поддержка отдельной очереди ожидания для каждого из них является неприемлемой.
В системе Solaris 2.x представлено более эффективное решение [7]: каждый объект синхронизации поддерживает двухразрядное поле, указывающее на структуру турникета, которая содержит очередь ожидания и другую необходимую информацию
Ядро выделяет турникеты только для тех ресурсов, которые ожидают заблокированные нити. Для ускорения процедуры выделения ядро поддерживает набор турникетов, размер которого больше, чем общее количество активных нитей в системе. Такой подход удобен для приложений реального времени, так как дает минимальные задержки. Более подробно технология синхронизации системы Solaris 2.x описана в разделе 5.6.7.
Разделяемый и эксклюзивный доступ
Механизм приостановки и возобновления выполнения является удобным в том случае, если в один момент времени ресурс используется только одной нитью. Однако он не позволяет использовать более сложные протоколы, такие как синхронизация читающих-пишущих нитей. Иногда необходимо предоставить ресурс сразу нескольким нитям на чтение, но потребовать для его изменения эксклюзивных полномочий. Некоторые ресурсы, такие как файлы или каталоги, будут использоваться более эффективно при применении этой технологии.
Многопроцессорные системы
Многопроцессорные системы обладают тремя важнейшими свойствами. Во- первых, это модель памяти, определяющая способ ее разделения между всеми процессорами. Второй отличительной особенностью является аппаратная поддержка синхронизации. Под третьим свойством подразумевается программная архитектура, определяющая взаимодействие процессоров, подсистем ядра и пользовательских процессов.
Наиболее распространенные системы основаны на методе UMA или разделяемой памяти. В таких системах все процессоры обладают равнозначным доступом к основной памяти1 и устройствам ввода-вывода, которые обычно соединяются между собой единой шиной. С точки зрения разработки операционных систем эта модель является наиболее простой. Ее основным недостатком является масштабируемость. Архитектура UMA поддерживает небольшое количество процессоров. При увеличении числа CPU возникают конфликты в общей для всех шине. Одной из самых крупных систем, основанных на UMA, является SGI Challenge, поддерживающая до 36 процессоров на одной шине.
В системах NUMA каждый процессор имеет некоторый объем локальной памяти и обладает возможностью доступа к памяти других CPU. Скорость доступа к удаленной памяти ниже, чем локальный обмен.
Также существуют гибридные системы, в которых группы процессоров разделяют между собой некоторый объем локальной памяти и при этом обладают возможностью доступа к памяти других групп CPU. Модель NUMA весьма сложна для практической реализации, так как программисту требуется немало усилий для того, чтобы скрыть подробности аппаратной архитектуры от пользовательских приложений.
В системах NORMA каждый процессор обладает прямым доступом только к локальной для него области памяти. Доступ к удаленной памяти осуществляется посредством передачи сообщений. Аппаратура должна поддерживать высокую скорость взаимодействия, обладать большой пропускной способностью, достаточной для осуществления удаленного доступа к памяти. При построении систем на основе архитектуры NORMA необходимо реализовать в ОС управление кэш-памятью, поддержку модели на уровне планировщика, а также создать компиляторы, умеющие оптимизировать коды программ конкретно для данной архитектуры.
Инструкции взаимосвязи с загрузкой и хранения по условию
В некоторых процессорах применяется пара специальных инструкций загрузки и хранения, используемых для неделимых операций чтения, изменения и записи. Команда взаимосвязи с загрузкой (load-linked, иногда называемая load-locked) загружает значение из памяти в регистр и устанавливает флаг, заставляющий аппаратуру проверять это значение. Если какой-либо из процессов запишет данные в эту область памяти, аппаратное обеспечение сбросит флаг. Инструкция хранения по условию (store-conditional) сохраняет новую величину переменной в область памяти, представленную установленным флагом. Кроме этого, команда установит значение еще одного регистра, указывающего на то, что была проведена операция сохранения.
Опубликовал katy
July 06 2015 16:15:21 ·
0 Комментариев ·
3134 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.