С точки зрения программного обеспечения существуют три типа многопроцессорных систем: основанные на связке ведущий-ведомый, несимметричные и симметричные. Модель типа ведущий-ведомый (master-slave) является несимметричной [8], так как один из процессоров в системе играет роль ведущего (master), в то время как остальные являются подчиненными (slave).
Также может иметь смысл заглянуть на сайт plasticform.ru, ведь именно там можно узнать много нового на тему http://plasticform.ru/services/izgotovlenie_press-form/. Тема пресс-форма для литья может показаться на первый взгляд незначительной и даже не тематичной. Но стоит посетить сайт plasticform.ru, и тема пресс-форма для литья начинает проявлять себя с неожиданной стороны и вызывает всё больший интерес. Дело в том, что тема пресс-форма для литья очень подробно представлена на сайте plasticform.ru. Трудно найти более детальное освещение темы пресс-форма для литья чем это сделано на сайте plasticform.ru. Спасибо сайту plasticform.ru за такое доскональное преподнесение темы пресс-форма для литья.
В таких системах возможна ситуация, при которой только ведущий процессор обладает правом обработки ввода-вывода и получения прерываний от различных устройств. В некоторых случаях коды ядра выполняются только на ведущем процессоре, при этом остальные CPU могут быть заняты исключительно пользовательскими программами. При соблюдении таких условий упрощается разработка систем, но преимущества многопроцессорных архитектур используются далеко не в полной мере. Результаты тестов показали [1], что в системах UNIX тратится более 40% общего процессорного времени на выполнение в режиме ядра. Следовательно, наиболее приемлемым вариантом является
распределение подпрограмм ядра между несколькими процессорами.
В функционально несимметричных многопроцессорных системах различные подсистемы выполняются на отдельных процессорах. Например, на одном из процессоров могут работать сетевые процедуры, в том время как другой занят обработкой ввода-вывода. Такой вариант более подходит для специализированных систем, чем для систем общего применения, к которым относится UNIX. Одной из удачных реализаций модели является файловый сервер Auspex NS5000 [10].
Симметричная многопроцессорная обработка (symmetric multiprocessing, SMP) является наиболее популярной моделью выполнения. В системах, основанных на этой архитектуре, все процессоры равнозначны и разделяют между собой единственную копию кодов и данных ядра, а также обладают доступом к различным системным ресурсам, таким как память или периферийные устройства. В режиме ядра может функционировать каждый процессор. Пользовательский процесс может быть направлен диспетчером на выполнение на любой CPU системы. В этой главе мы будем описывать только системы, основанные на архитектуре SMP (если не указано иное).
Оставшаяся часть главы посвящена современным механизмам синхронизации, применяемым в однопроцессорных и многопроцессорных системах.
Проблема быстрого роста
При освобождении ресурса нитью происходит пробуждение всех остальных нитей, ожидавших объект. При этом только одна из них может занять ресурс, в то время как остальные нити обнаружат его заблокированным и снова перейдут в режим ожидания. Такой подход приводит к дополнительной загрузке системы, тратящей определенное время на возобновление работы нитей и контекстные переключения.
Описанная проблема не фатальна для однопроцессорных систем, поскольку в один момент времени текущим является только одна нить, которая может освободить ресурс. Однако в многопроцессорных архитектурах вероятно возникновение ситуации, когда несколько нитей, ожидавших освобождения ресурса, могут быть направлены планировщиком на выполнение одновременно на различных процессорах, что приведет к новой попытке получения этого ресурса всеми нитями. Такая ситуация получила название проблемы быстрого роста.
В случае если только одна нить оказалась заблокированной в ожидании ресурса, все равно между операциями восстановления работоспособного состояния нити и началом ее выполнения происходит определенная задержка. За этот промежуток времени ресурс может успеть занять совершенно' другая нить, что приведет к повторной блокировке первой нити. Если такая ситуация будет возникать часто, то она способна повлечь устаревание нити.
В текущих разделах вы увидели краткое описание проблем традиционной модели синхронизации, влияющих на корректную работу системы и ее производительность. Оставшаяся часть главы посвящена описанию механизмов синхронизации, подходящих как для однопроцессорных, так и для многопроцессорных систем.
Опубликовал katy
July 06 2015 16:16:58 ·
0 Комментариев ·
2966 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.