Когда начинается именно «выполнение процесса»?На каком этапе он находится в процессоре / памяти? - PullRequest
0 голосов
/ 16 октября 2018

Состояние процесса определяется либо содержимым регистра + счетчиком программы (когда он находится на ЦП), либо макетом памяти, т. Е. Текстом, данными, кучей и стеком (когда он находится в памяти)

Итак, когда мыточно скажем:

  1. процесс начал свое выполнение?
  2. Он имеет различные состояния, через которые он проходит в своем жизненном цикле, в каком состоянии он находится в памяти и на этапе на процессоре?

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Контекст процесса определяется значениями регистра.Большинство процессоров имеют инструкцию Load Process Context или эквивалентную последовательность инструкций, которые загружают регистры процесса из его блока контекста процесса.Процесс начинает выполнение по завершении этой инструкции (или последовательности инструкций).

Что касается состояний процесса, то они полностью зависят от системы.

0 голосов
/ 16 октября 2018

Я бы сказал, что точная точка, в которой процесс запущен, равна:

  • Когда планировщик впервые дает процессу (или начальному потоку или задаче процесса) время ЦП(для относительно стандартной многозадачной системы ОС, в которой ядро ​​не рассматривается как отдельная планируемая сущность).

  • Когда ядро ​​впервые возвращается из «пространства ядра» в новый процесс«пользовательское пространство» (для многозадачных систем, где ядро ​​является отдельным планируемым объектом).

  • В любой (неопределимой) точке во время создания процесса (для системыкоторый не поддерживает многозадачность).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...