Операционные системы используют концепцию процессов и потоков для запуска программ.
Когда вы загружаете программу, процесс создается. Процесс имеет свою собственную память и учетные данные, и этот процесс может только читать / записывать в свою собственную память и делать через ядро все, что позволяют его учетные данные.
В системе с одним ЦП ОС проходит через каждый запущенный процесс и дает ему часть процессорного времени, циклически перебирая. Только один процесс фактически выполняется в данный момент времени. (Если процесс ожидает или «заблокирован» для ввода-вывода, очень распространенное условие, он пропускается.)
Процесс может разделить часть себя как поток. По сути, это две части одного процесса, имеющие два отдельных витка на процессоре (все потоки процессов «живут» в процессе и могут видеть его память).
Процесс также может
- порождает другой отдельный новый процесс - т.е. загружает отдельную программу. Проводник Windows порождает процессы при запуске программ.
- форкировать другой процесс - т.е. создавать свою копию как отдельный процесс (не поток) - это часто встречается в операционных системах Unix / Linux.
Если имеется более одного ядра ЦП, а процесс начинается на одном ядре, ОС может разместить свои потоки на других ядрах, а если процесс порождает или разветвляет другие процессы, он может размещать их на других ядрах, отличных от родительского процесса.
ОС управляет тем, какие ядра она использует, и может даже время от времени прозрачно переносить процессы на разные процессоры, чтобы сохранять равновесие. В Windows и, возможно, в Linux вы можете закрепить «сходство» с процессором, чтобы оно оставалось только на определенных ядрах, если вы хотите.
Таким образом, если приложение порождает потоки и / или процессы для выполнения своей работы, оно получит выгоду от нескольких ядер ЦП. Если этого не произойдет, эта конкретная программа не будет. Ваша ОС будет по-прежнему назначать другие программы другим ядрам, поэтому это может означать, что другие программы будут меньше влиять на вашу однопоточную однопроцессную программу.