2011-gre-cs-practice-book.pdf/Q33 — различия между версиями
Материал из DISCOPAL
Ydanyok (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | + | == Вопрос: Q33-08c765 == | |
− | + | ||
Что из перечисленного обычно происходит при выполнении вызова процедуры на процессоре? | Что из перечисленного обычно происходит при выполнении вызова процедуры на процессоре? | ||
− | I. Обновляется программный счетчик. | + | * I. Обновляется программный счетчик. |
− | II. Обновляется указатель стека. | + | * II. Обновляется указатель стека. |
− | III. Кэш данных очищается для предотвращения проблем с псевдонимами. | + | * III. Кэш данных очищается для предотвращения проблем с псевдонимами. |
Строка 20: | Строка 19: | ||
=== Объяснение === | === Объяснение === | ||
− | 1. Программный счетчик (Program Counter) действительно обновляется, когда выполняется вызов процедуры. Это необходимо для того, чтобы после завершения процедуры выполнение программы продолжилось с правильного места. | + | * 1. Программный счетчик (Program Counter) действительно обновляется, когда выполняется вызов процедуры. Это необходимо для того, чтобы после завершения процедуры выполнение программы продолжилось с правильного места. |
− | + | * 2. Указатель стека (Stack Pointer) также обновляется. При вызове процедуры данные могут помещаться в стек (например, аргументы функции), поэтому указателю стека нужно измениться. | |
− | 2. Указатель стека (Stack Pointer) также обновляется. При вызове процедуры данные могут помещаться в стек (например, аргументы функции), поэтому указателю стека нужно измениться. | + | * 3. Кэш данных может быть очищен, чтобы избежать проблем с псевдонимами ([https://en.wikipedia.org/wiki/Aliasing_(computing) aliasing]). Псевдонимизация возникает, когда одна и та же область памяти имеет разные имена, и очистка кэша помогает гарантировать, что все изменения, сделанные до этого момента, будут записаны обратно в память перед выполнением новой процедуры. |
− | + | ||
− | 3. Кэш данных может быть очищен, чтобы избежать проблем с псевдонимами (aliasing). Псевдонимизация возникает, когда одна и та же область памяти имеет разные имена, и очистка кэша помогает гарантировать, что все изменения, сделанные до этого момента, будут записаны обратно в память перед выполнением новой процедуры. | + | |
Таким образом, все три пункта (I, II и III) могут происходить при вызове процедуры. | Таким образом, все три пункта (I, II и III) могут происходить при вызове процедуры. | ||
Строка 30: | Строка 27: | ||
{{cstest-source|2011-gre-cs-practice-book.pdf|31|33}} | {{cstest-source|2011-gre-cs-practice-book.pdf|31|33}} | ||
− | + | {{question-ok|[[Участник:StasFomin|StasFomin]] 15:44, 19 декабря 2024 (UTC)}} | |
− | {{question-ok | + | |
− | + |
Версия 15:44, 19 декабря 2024
Вопрос: Q33-08c765
Что из перечисленного обычно происходит при выполнении вызова процедуры на процессоре?
- I. Обновляется программный счетчик.
- II. Обновляется указатель стека.
- III. Кэш данных очищается для предотвращения проблем с псевдонимами.
Ответы
- Правильный ответ: I, II и III
- Только I
- Только II
- Только I и II
- Только I и III
Объяснение
- 1. Программный счетчик (Program Counter) действительно обновляется, когда выполняется вызов процедуры. Это необходимо для того, чтобы после завершения процедуры выполнение программы продолжилось с правильного места.
- 2. Указатель стека (Stack Pointer) также обновляется. При вызове процедуры данные могут помещаться в стек (например, аргументы функции), поэтому указателю стека нужно измениться.
- 3. Кэш данных может быть очищен, чтобы избежать проблем с псевдонимами (aliasing). Псевдонимизация возникает, когда одна и та же область памяти имеет разные имена, и очистка кэша помогает гарантировать, что все изменения, сделанные до этого момента, будут записаны обратно в память перед выполнением новой процедуры.
Таким образом, все три пункта (I, II и III) могут происходить при вызове процедуры.
Исходники — вопрос 33 на 31 странице книги «2011-gre-cs-practice-book.pdf»