планирование потоков процессов

У меня есть следующий запрос относительно планирования потоков процесса. a) Если мой процесс A имеет 3 потока, то могут ли эти потоки быть запланированы одновременно на разных процессорах в SMP m/c или им будет предоставлен временной интервал на одном и том же процессоре.

б) Предположим, у меня есть два процесса A с 3 потоками и процесс B с 2 потоками (все потоки имеют одинаковый приоритет), тогда время процессора, выделенное каждому потоку (квант времени), зависит от количества потоков в процессе или нет? Поправьте меня, если я ошибаюсь, потому что процессорное время выделяется процессу, которое затем распределяется между его потоками, т. е. квант времени, отдаваемый потокам процесса A, меньше, чем у потоков процесса B.


person arvind    schedule 08.04.2010    source источник


Ответы (1)


Это зависит от вашей ОС и реализации потока. Потоки POSIX определяют интерфейс для определения того, как планируются потоки: каждый поток запланирован одинаково или каждый процесс запланирован одинаково. Не все типы планирования поддерживаются на всех платформах.

В Linux при использовании nptl поведение по умолчанию заключается в одинаковом планировании всех потоков, поэтому процесс с 10 потоками может получить в 10 раз больше времени, чем процесс с 1 потоком, если все одиннадцать потоков привязаны к ЦП.

person Dietrich Epp    schedule 08.04.2010