Как отличаются последовательности команд, когда они видны процессором и процессом? - PullRequest
0 голосов
/ 11 февраля 2019

Вот то, что я мог бы собрать до сих пор, потенциально упрощенно:

  • ЦП выбирает следующую команду для выполнения в соответствии с указателем инструкций, который является частью текущего выполняющегося процесса.Таким образом, процессор на самом деле не имеет представления о последовательности команд, он знает только о команде, которая должна быть выполнена в данный момент.
  • Инструкции, принадлежащие процессу, сохраняются в его сегменте .text.Таким образом, процесс может прочитать свой список инструкций (?).Процесс может изменить свой указатель инструкций

Теперь я не совсем понимаю, как это помогло бы мне ответить на вопрос в заголовке.Есть ли помимо того, что я упомянул, концептуальное различие, которое я упускаю?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Как отличаются последовательности команд, когда они видны процессором и процессором?

Это похоже на домашнее задание, где ожидаемый ответ зависит от того, что было представлено добыл задан вопрос.

Случайные гипотетические примеры:

  • если в курсе говорилось о неупорядоченном выполнении, то ответ мог бы быть чем-то вроде «процесс думает, что инструкции происходят»по одному в указанном порядке, в то время как процессор знает, что они не происходят по одному и не происходят в указанном порядке ".

  • , если курс говорил о lispмашин, тогда ответ может быть «процесс думает, что его инструкции выполнены, но на самом деле они интерпретируются или переводятся в совершенно разные инструкции, и инструкции, которые видит процесс, не похожи на инструкции, которые видит процессор»

  • если в курсе говорилось о планировании, то ответ мог бы быть «процесс думает, что его инструкции - толькоy инструкции выполнены, но ЦП может регулярно переключаться между потоками инструкций из множества отдельных процессов ".

  • , если в курсе говорилось о SMT, то ответ может быть" ЦП получает инструкции из 2 (илиподробнее?) различные процессы и отправляет их всех вниз по конвейеру для выполнения, а затем выясняет, какая инструкция пришла откуда и в конце;и процесс не знает, что это происходит "

  • , если в курсе говорилось об управлении виртуальной памятью, то ответ мог бы быть" процесс думает, что инструкции обращаются к ОЗУ виртуальной памяти, но ЦП может не выполнятьсяинструкция и может сгенерировать ошибку страницы, чтобы позволить ОС делать кучу причудливых трюков, о которых процесс не знает "

0 голосов
/ 11 февраля 2019

Память содержит данные.Как эти данные интерпретируются, зависит от того, как процессор обращается к ним.Одно и то же место в памяти можно интерпретировать как инструкцию, целое число, символ или число с плавающей запятой.

Единственное, что делает ячейку памяти инструкцией, - это то, что регистр счетчика программ указывает на нее.Процессор захватывает данные в расположении счетчика программ.Затем он выполняет инструкцию.Счетчик программ должен знать, как долго эта инструкция и, если она не является инструкцией ветвления, должна добавить эту длину к ПК.

Большинство процессоров позволяют помечать страницы памяти как неисполняемые / исполняемые.

Компоновщик установит начальное значение ПК в исполняемом файле.Кроме этого, как правило, нет ничего, что говорит "это инструкции".

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