На главную Добавить в "Избранное" Связаться с нами
 
     
 
 

Введение Установка Linux Архитектура Linux Секреты работы Картинная галерея Статьи

 

 
   
 
 

Debian GNU/Linux : Paragon NTFS for Linux 5.x  : Panda Security for Linux Медиа-пак  : Gentoo Linux 2007.0 Xor Edition Nero Linux 3 : KNOPPIX : Fedora 10 : OpenSUSE 11.0 : ASPLinux 12 Standard : Свободный офис : ASPLinux 12 Express  Полный каталог

 
 

 

 

  Проблемы, связанные с многопроцессорными системами  
 

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

  

     struct queue {                                        

                                                          

     } *bp, *bp1;                                         

     bp1->forp=bp->forp;                                  

     bp1->backp=bp;                                       

     bp->forp=bp1;                                        

     /* рассмотрите возможность переключения контекста в  

      * этом месте */                                     

     bp1->forp->backp=bp1;                                

 

Включение буфера в список с двойными указателями

 

Предположим, что этот фрагмент выполняется одновременно двумя процессами на разных ЦП, причем процессор A пытается поместить вслед за структурой bp структуру bpA, а процессор B структуру bpB. По поводу сопоставления быстродействия процессоров не приходится делать никаких предположений: возможен даже наихудший случай, когда процессор B исполняет 4 команды языка Си, прежде чем процессор A исполнит одну. Пусть, например, выполнение программы процессором A приостанавливается в связи с обработкой прерывания. В результате, даже несмотря на блокировку остальных прерываний, целостность данных будет поставлена под угрозу .

 

Ядро обязано удостовериться в том, что такого рода нарушение не сможет произойти. Если вопрос об опасности возникновения нарушения целостности оставить открытым, как бы редко подобные нарушения ни случались, ядро утратит свою неуязвимость и его поведение станет непредсказуемым. Избежать этого можно тремя способами:

 

•   Исполнять все критические операции на одном процессоре, опираясь на стандартные методы сохранения целостности данных в однопроцессорной системе;
•   Регламентировать доступ к критическим участкам программы, используя элементы блокирования ресурсов;
•  Устранить конкуренцию за использование структур данных путем соответствующей переделки алгоритмов.
 

Первые два способа здесь мы рассмотрим подробнее, третьему способу будет посвящено отдельное упражнение.

 

   
 
 
Картинная галерея
Галерея eLinux : Последние добавления : Последние добавления : Часто просматриваемые : Поиск по галерее
Linux введение : Обучение Linux : Установка Linux : Взаимодействие в сети : Команды Linux : Архитектура Linux : Работа с Linux
Секреты работы : Временные операции : Переферия
 
 

 

 
   
 
 

385 руб.

Антивирус Dr.Web Mail Gateway

Dr.Web Mail Gateway – комплексное модульное решение для обработки и фильтрации входящего и исходящего трафика на серверах под управлением Unix (Linux/FreeBSD/Solaris(x86). 

Список версий:

Антивирус Dr.Web Mail Gateway


570 руб.

FastScript

FastScript —библиотека для выполнения скриптов. Она будет полезна разработчикам, желающим добавить возможности исполнения скриптовых программ в свои проекты. FastScript написан полностью на 100% Object Pascal и может быть установлен в Borland Delphi 4-2007, Borland C++Builder 4-6, Borland Kylix 1-3 и Lazarus. 

Список версий:

FastScript


Полный каталог

 
 

 

 
   
 
   
 

 

 

 

 

Все права защищены.

Копирование запрещено.

Rambler's Top100

Дизайн:

ССтудия Onta.ru