Стек потока и стек процесса?
Процесс имеет код программы, данные, стек, куча. У каждого процесса есть поток, это то что указывает какую команду выполнять из стека процессора? А когда несколько потоков то у каждого потока создаётся свой стек из которого выбирается какая команда выполняться должна?
Ответы (1 шт):
Вы ошибаетесь. Выполняемые команды не хранятся на стеке, они хранятся по указателю IP (instruction pointer).
Поток - это абстрактный термин, описывающий контекст выполнения программы в многопоточной среде. С потоком связывают набор регистров процессора, в том числе, stack pointer и instruction pointer, TLS и некоторые другие сущности, зависящие от операционной системы, рантайма и применяемого языка программирования.
Так что да, поток указывает, какую инструкцию выполнять, но это только малая часть от его контекста.