Уровни распараллеливания процессов

Параллелизм управления можно вводить на разных уровнях:

  • • на самом низком уровне элементы параллелизма могут содержаться в отдельных машинных командах. Он не доступен программистам и управляется компилятором или аппаратным обеспечением;
  • • параллелизм на уровне блоков позволяет программистам контролировать высказывания: они знают, какие высказывания будут выполняться последовательно, а какие – параллельно. Исходя из этого, можно записать произвольную комбинацию команд для последовательного или параллельного выполнения;
  • • параллелизм на уровне более крупных структурных единиц позволяет вызвать следующую процедуру, не ожидая завершения текущей процедуры. Это означает, что вызывающая программа и вызванная процедура будут работать параллельно. Такой параллелизм обеспечивает одновременный запуск большого числа параллельных процедур.

Параллелизм, реализуемый путем создания или порождения для каждого процесса нескольких потоков. Каждый поток имеет свой счетчик команд, свои регистры и стек, но разделяет все остальное адресное пространство (а также все глобальные переменные) со всеми другими потоками. Потоки работают независимо друг от друга, иногда на разных процессорах. В одних системах операционная система располагает информацией обо всех потоках и осуществляет планирование потоков; в других системах каждый пользовательский процесс сам выполняет планирование потоков и управляет потоками, а операционной системе об этом неизвестно.

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

 
< Пред   СОДЕРЖАНИЕ     След >