Common Intermediate Language и системное программирование в Microsoft.Net. Макаров А.В - 100 стр.

UptoLike

Рис. 6.3. MPP система
иногда используют так называемые NUMA и cc-NUMA архите-
ктуры; они являются компромиссом между SMP и MPP система-
ми: оперативная память является общей и разделяемой между
всеми процессорами, но при этом память неоднородна по време-
ни доступа. Каждый процессорный узел имеет некоторый объем
оперативной памяти, доступ к которой осуществляется макси-
мально быстро; для доступа к памяти другого узла потребуется
значительно больше времени (см. рис. 6.4). cc-NUMA отличает-
ся от NUMA тем, что в ней на аппаратном уровне решены воп-
росы когерентности кэш-памяти (cache-coherent) различных
процессоров. Формально на NUMA системах могут работать
обычные операционные системы, созданные для SMP систем,
хотя для обеспечения высокой производительности приходится
решать нетипичные для SMP задачи оптимального размещения
данных и планирования с учетом неоднородности памяти.
Рис. 6.4. NUMA или cc-NUMA система
186
CIL и системное программирование в Microsoft .NET
Таким образом, с точки зрения реализации мультипроцессирования,
для разработчиков ПО важно иметь представление о том, каковы средства
взаимодействия между параллельно работающими ветвями кода – общая
память с равноправным или неравноправным доступом, либо некоторая
коммуникационная среда с механизмом пересылки данных. Наибольшее
распространение получили SMP и MPP системы, соответственно, боль-
шинство операционных систем содержат необходимые средства для эф-
фективного управления SMP системами. Для реализации MPP систем,
как правило, используются обычные операционные системы на всех узлах
и либо обычные сетевые технологии, с применением распространенных
стеков протоколов, либо специфичное коммуникационное оборудование
со своими собственными драйверами и собственными средствами взаимо-
действия с приложениями. NUMA системы распространены в меньшей
степени, хотя выпускаются серийно. Нормальным при этом является при-
менение массовых операционных систем, рассчитанных на SMP установ-
ки, несмотря на то, что это несколько снижает эффективность использо-
вания NUMA.
Windows содержит встроенные механизмы, необходимые для работы
на SMP; также возможна установка этой ОС на cc-NUMA системах (сов-
ременные версии Windows имеют механизмы поддержки cc-NUMA сис-
тем). Специальных, встроенных в ОС средств для исполнения приложе-
ний на MPP системах в Windows не предусмотрено. Windows предполагает
альтернативное применение MPP систем, построенных на обычных сетях,
для реализации web- или файловых серверов с балансировкой нагрузки по
узлам кластера.
6.1.1.2. Мультипрограммирование
Мультипрограммирование (то есть одновременное выполнение раз-
ного кода на одном или нескольких процессорах) возможно и без реально-
го мультипроцессирования. Конечно, при наличии только одного процес-
сора должен существовать некоторый механизм, обеспечивающий пере-
ключение процессора между разными выполняемыми потоками. Такой
режим разделения процессорного времени позволяет одному процессору
обслуживать несколько задач «как бы одновременно»: осуществляя бы-
строе переключение между разными задачами и выполняя в данный мо-
мент времени код только одной задачи, процессор создает иллюзию одно-
временного выполнения кода разных задач. Более того, даже на много-
процессорных системах при реальной возможности распараллеливания
задач по разным процессорам, обычно используют механизм разделения
времени на каждом из доступных процессоров. Формально мультипро-
граммирование предполагает именно разделение процессорного времени,
поэтому иногда его противопоставляют мультипроцессированию: реали-
Основы многозадачности
187
...
Среда передачи данных
ОЗУ
ЦПУ 1
...
Ш
и
н
а
ОЗУ
ЦПУ 2
Ш
и
н
а
ОЗУ
ЦПУ N
Ш
и
н
а
ШИНА
SMP 1 SMP 2 SMP N
186                        CIL и системное программирование в Microsoft .NET   Основы многозадачности                                             187


                                                                                    Таким образом, с точки зрения реализации мультипроцессирования,
                                            ...                                для разработчиков ПО важно иметь представление о том, каковы средства
           SMP 1        SMP 2                            SMP N                 взаимодействия между параллельно работающими ветвями кода – общая
                                                                               память с равноправным или неравноправным доступом, либо некоторая
                                                                               коммуникационная среда с механизмом пересылки данных. Наибольшее
                                                                               распространение получили SMP и MPP системы, соответственно, боль-
                           Среда передачи данных                               шинство операционных систем содержат необходимые средства для эф-
                                                                               фективного управления SMP системами. Для реализации MPP систем,
                                                                               как правило, используются обычные операционные системы на всех узлах
                                                                               и либо обычные сетевые технологии, с применением распространенных
                                                                               стеков протоколов, либо специфичное коммуникационное оборудование
                                                                               со своими собственными драйверами и собственными средствами взаимо-
                                                                               действия с приложениями. NUMA системы распространены в меньшей
             Рис. 6.3. MPP система                                             степени, хотя выпускаются серийно. Нормальным при этом является при-
      • иногда используют так называемые NUMA и cc-NUMA архите-                менение массовых операционных систем, рассчитанных на SMP установ-
        ктуры; они являются компромиссом между SMP и MPP система-              ки, несмотря на то, что это несколько снижает эффективность использо-
        ми: оперативная память является общей и разделяемой между              вания NUMA.
        всеми процессорами, но при этом память неоднородна по време-                Windows содержит встроенные механизмы, необходимые для работы
        ни доступа. Каждый процессорный узел имеет некоторый объем             на SMP; также возможна установка этой ОС на cc-NUMA системах (сов-
        оперативной памяти, доступ к которой осуществляется макси-             ременные версии Windows имеют механизмы поддержки cc-NUMA сис-
        мально быстро; для доступа к памяти другого узла потребуется           тем). Специальных, встроенных в ОС средств для исполнения приложе-
        значительно больше времени (см. рис. 6.4). cc-NUMA отличает-           ний на MPP системах в Windows не предусмотрено. Windows предполагает
        ся от NUMA тем, что в ней на аппаратном уровне решены воп-             альтернативное применение MPP систем, построенных на обычных сетях,
        росы когерентности кэш-памяти (cache-coherent) различных               для реализации web- или файловых серверов с балансировкой нагрузки по
        процессоров. Формально на NUMA системах могут работать                 узлам кластера.
        обычные операционные системы, созданные для SMP систем,
        хотя для обеспечения высокой производительности приходится             6.1.1.2. Мультипрограммирование
        решать нетипичные для SMP задачи оптимального размещения                    Мультипрограммирование (то есть одновременное выполнение раз-
        данных и планирования с учетом неоднородности памяти.                  ного кода на одном или нескольких процессорах) возможно и без реально-
                                                                               го мультипроцессирования. Конечно, при наличии только одного процес-
                                                                               сора должен существовать некоторый механизм, обеспечивающий пере-
                       Ш                    Ш                      Ш           ключение процессора между разными выполняемыми потоками. Такой
            ЦПУ 1               ЦПУ 2                   ЦПУ N                  режим разделения процессорного времени позволяет одному процессору
                       и                    и                       и
                                                  ...                          обслуживать несколько задач «как бы одновременно»: осуществляя бы-
                       н                    н                       н          строе переключение между разными задачами и выполняя в данный мо-
             ОЗУ                ОЗУ                      ОЗУ
                       а                     а                      а          мент времени код только одной задачи, процессор создает иллюзию одно-
                                                                               временного выполнения кода разных задач. Более того, даже на много-
                                                                               процессорных системах при реальной возможности распараллеливания
                                        ШИНА                                   задач по разным процессорам, обычно используют механизм разделения
                                                                               времени на каждом из доступных процессоров. Формально мультипро-
             Рис. 6.4. NUMA или cc-NUMA система                                граммирование предполагает именно разделение процессорного времени,
                                                                               поэтому иногда его противопоставляют мультипроцессированию: реали-