Программирование в многопроцессорных системах
В однопроцессорной системе нити обрабатываются поочередно: каждой из них выделяется квант времени. В многопроцессорных системах несколько нитей обрабатываются одновременно - каждый процессор обрабатывает отдельную нить. Обработка нескольких нитей процесса на разных процессорах иногда позволяет повысить общую производительность. Однако преимущества многопроцессорных систем проявляются только в случае программ с несколькими нитями.
Большинство пользователей может не задумываться о том, сколько процессоров в системе, так как за организацию работы в многопроцессорной среде отвечает операционная система и ее программы. Пользователи могут связать свои процессы с процессорами (тогда эти процессы будут обрабатываться только на указанных процессорах), однако это делать не обязательно и, как правило, не нужно. Даже для большинства разработчиков преимущества многопроцессорных систем сводятся к возможности разбиения процесса на несколько нитей. С другой стороны, разработчики компонентов ядра вынуждены учитывать некоторые особенности многопроцессорных систем при создании программ и переносе готовых программ в такие системы.