В зависимости от Вашего распределения ~/.xsession
файл выполняется (сценарий оболочки) при вхождении X. И/или ~/.Xmodmap
файл получен xmodmap
процесс.
~/.profile
файл только выполняется оболочкой входа в систему (с или без X), таким образом это не правильное место
Количество процессоров: Обратите внимание на то, что нумерация запускается от 0 поэтому, если у меня есть процессор 1, у меня есть по крайней мере 2 из них
Ограничение к Потокам потоков не будет связано с ЦП (если Вы не сделаете приемы при помощи cpulimit и co. - в большинстве случаев Вы не были должны). Предположение, что Вы настроили ядро с 1000 Гц и нет никакого ввода-вывода, контекстное переключение сделано 1000 раз в секунду. Теперь в моих 2 установках Процессоров у меня есть приблизительно 300 потоков, работающих в данный момент, что означает это 6. (6) слоты будут выделены для каждого процесса. Безопасно предположить, что в любую секунду каждый процесс займет оба ядра.
Данный - алгоритмы лестницы, ввод-вывод делает его не необходимым верный, но каждый поток в одну секунду может быть на обоих ядрах - а также работающий нигде, поскольку это ожидает (таким образом, это не ограничено ни к какому ядру).
Гиперпоточность я предполагаю, что у Вас есть 4 базовых Intel iX с гиперпоточностью (если у Вас нет машины сдвоенного процессора). Гиперпоточность работает путем эмуляции отдельного ядра. Таким образом, если процесс ожидает на одном ядре ввода-вывода, это может переключиться на казнь другого - который, конечно, сложный вопрос далее.
Каждое ядро вкладывает свою собственную запись /proc/cpuinfo
, таким образом, существует большая избыточная информация здесь.
Для получения обзора того, сколько CPU и/или ядер Вы имеете сделайте что-то вроде этого:
# egrep 'processor|core id|physical id' /proc/cpuinfo
processor : 0
physical id : 0
core id : 0
processor : 1
physical id : 0
core id : 1
Это выполняется на моем однокристальном, двухъядерном компьютере. Таким образом, у меня есть два ядра, пронумерованные 0 и 1, но они оба принадлежат физическому CPU 0.
Компьютерным парням нравится рассчитывать от 0, помнить.
Вот вывод от двойного CPU, одножильной системы:
$ egrep 'processor|core id|physical id' /proc/cpuinfo
processor : 0
processor : 1
Таким образом, у меня есть два центральных процессора, но так как никакие ядра не указаны, я знаю, что каждая микросхема процессора имеет одноядерное.
Что-то немного более интересное:
$ egrep 'processor|core id|physical id' /proc/cpuinfo
processor : 0
physical id : 0
core id : 0
processor : 1
physical id : 0
core id : 1
processor : 2
physical id : 1
core id : 0
processor : 3
physical id : 1
core id : 1
Вот является мой двойной CPU двухъядерной системой. У меня есть "процессоры" 0-3, и каждый живет на процессоре 0 или 1 как базовый 0 или 1.
Вы получаете идею.
Однако я подозреваю, что у Вас есть двойной CPU четырехъядерная система с процессорами 0 до 7.
taskset(1)
sched_setaffinity(2)
или pthread функционирует с аналогичными именами. Это - что-то, что необходимо сделать только при очень определенных обстоятельствах (например, на устройстве специального назначения с конкретными целями скорости отклика) или для тестирования. Большую часть времени ядро решит, который мог ЦП работать на потоке лучше, чем человек. – Gilles 'SO- stop being evil' 05.10.2010, 00:12cpulimit
случайно. Зафиксированный путем добавления "и co".. – Maciej Piechotka 05.10.2010, 00:23