Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Флоренсов А.Н. УП Системное программное обеспечение.docx
Скачиваний:
46
Добавлен:
28.06.2021
Размер:
148.95 Кб
Скачать

Контрольные вопросы

1. В чем принципиальное отличие системного программного обеспечения от прикладного?

2. Дайте содержательное описание отличия архитектуры от структуры компьютера.

3. Укажите десять отличий ассемблера от языка высокого уровня.

4. В чем отличие этапа компиляции от этапа компоновки при разработке программ?

5. Каким средствам обозначения данных в языке Си отвечают прямая и косвенная адресация на ассемблере?

6. Каким средствам обозначения данных в языке Си отвечают непосредственная и базовая адресация на ассемблере?

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

8. Чем описание процедур на ассемблере существенно отличается от описания процедур на языке высокого уровня?

9. Какие способы передачи аргументов в процедуру ассемблера вы знаете? Обоснуйте условия целесообразности применения их в различных ситуациях.

10. Опишите, как на ваш взгляд, следует организовать возврат результата вычислений рекурсивной процедуры, если ее возвращаемое значение требует для размещения более двух регистров.

11. В языке Си для передачи экземпляра ekzstruct структуры в вызываемую функцию чаще всего используется запись вида имяфункции(. . ., &ekzstruct, ...) и очень редко подобный вид записи используется без символа &, исходя из понимания строения и роли кадра процедуры. Объясните, почему используется указанное употребление вызовов.

12. Сколько команд и каких потребуется вам для записи на ассемблере управляющих действий структуры управления do–while из языка высокого уровня?

13. Возьмите любой простой пример программы на языке высокого уровня и объясните, как элементы и части этой программы в какие сегменты программ на уровне архитектуры попадут после трансляции.

14. Сравните доступ к действиям операционной системы через команды прерываний и путем вызова через системные библиотеки. Какие достоинства и недостатки вы можете указать для каждого из этих подходов?

15. Какие существенные отличия для взаимодействия программ введены в 64-битную версию операционной системы Windows в отличие от 32-битной?

16. Какие существенные отличия для взаимодействия программ введены в 64-битную версию операционной системы Linux в отличие от 32-битной?

17. В чем заключается основное отличие ассемблерных программ для 32-битной версии операционной системы от аналогичных программ, написанных для 64-битной системы?

18. В чем существо сегментной организации исполняемых программ и исполняемых файлов?

19. Опишите принципы построения и использования библиотек объектных модулей.

20. В чем отличие построения и использования библиотек разделяемых исполняемых модулей в сравнении с библиотеками объектных модулей?

21. В чем отличие функций загрузчика программ от функций компоновщика? Возможно ли в общем случае обойтись без компоновщика?

22. Обоснуйте область целесообразного применения статической и динамической компоновки.

23. Укажите, в каких ситуациях программисту целесообразно использовать динамическую компоновку времени загрузки, а в каких – динамическую компоновку времени выполнения.

24. Сравните практическое удобство и перспективную целесообразность использования файлов определения модуля с библиотеками импорта на этапе компоновки программ.

25. Чему соответствуют библиотеки импорта в технологии MSWindows при разработке программ в операционной системе Linux? Почему, как вы думаете, в последнем случае библиотеки импорта не используются?