Понятие процесса и потока в Windows

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

Какая разница между процессом и потоком? С точки зрения пользователя компьютера, особенно в том случае, если каждый процесс обладает только одним потоком, то разницы фактически никакой. С точки зрения ОС, как было отмечено выше, процесс — это единица владения ресурсами, а поток — единица диспетчеризации и распределения процессорного времени. Кроме того, в ходе выполнения потока могут быть созданы другие потоки, которые в свою очередь, мог>т создавать другие потоки и т.д. Два процесса не могут обладать общими ресурсами, если при этом они не используют специальных механизмов операционной системы. Напротив, все потоки, принадлежащие одному процессу, имеют доступ ко всем ресурсам этого процесса, включая память, открытые файлы и другие ресурсы.

При программировании в Windows, чтобы запустить какую-либо существующую программу, используется системный вызов CreateProcess.

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