2.2 Объясните, в чем заключается концепция расслоения памяти.
2.3 Что такое двойная буферизация? Подробно опишите, каким образом могла бы работать схема тройной буферизации. При каких условиях могла бы быть целесообразной тройная буферизация?
2.4 Что такое спулинг? Как должна работать система входного спулинга, предназначенная для чтения перфокарт с устройства ввода?
2.5 Объясните, что такое «прямой доступ к памяти» и «захват цикла».
2.6 Опишите несколько способов реализации защиты памяти.
2.7 Опишите два различных способа организации взаимодействия между центральным процессором и каналом.
2.8 Приведите несколько причин, обусловивших появление концепции относительной адресации.
2.9 Сопоставьте принцип минимума привилегий с такими концепциями, как режим задачи, режим супервизора и привилегированные команды.
2.10 Укажите различия между селекторными, байт-мультиплексными и блок-мультиплексными каналами.
2.11 Укажите различия между машинным языком, языком ассемблера и языками высокого уровня.
2.12 Что такое макропроцессор?
2.13 Укажите различия между проблемно-ориентированными и процедурно-ориентированными языками.
2.14 При каких обстоятельствах целесообразно использовать быстрый компилятор без оптимизации? Когда следует применять оптимизирующий компилятор?
2.15 Чем интерпретаторы отличаются от ассемблеров и компиляторов? Когда более целесообразно использовать интерпретатор, чем компилятор?
2.16 Укажите сходства и различия абсолютных загрузчиков и перемещающих загрузчиков.
2.17 Что такое «привязка программы к памяти»? Почему и у пользователя и у системы появляются более гибкие возможности, если привязку программ к памяти выполнять как можно позднее?
2.18 Чем редакторы связей отличаются от связывающих загрузчиков?
2.19 Что такое микропрограммирование? Почему термин «микропрограммное обеспечение» уместен для обозначения микрокода, резидентно размещающегося в управляющей памяти?
2.20 Укажите различия между горизонтальным и вертикальным микрокодом.
2.21 Какие факторы могут повлиять на решение разработчика выбрать те или иные функции для реализации при помощи микрокода?
2.22 Что такое эмуляция? Почему микропрограммирование играет особенно важную роль при построении эмуляторов?
2.23 Объясните, каким образом может быть использовано микропрограммирование для специализации компьютера. Почему это может обеспечить высокую эффективность?
2.24 Объясните, почему понимание особенностей микропрограммирования имеет столь большое значение для разработчиков операционных систем.
Упражнения для примера микропрограммирования (п. 2.4.8)
2.25 Напишите для компьютера ITSIAC программу на машинном языке, которая будет суммировать числа, хранящиеся в ячейках с 50 по 99, и помещать результат в ячейку 100. Проследите выполнение этой программы в режиме интерпретации при помощи микропрограммы компьютера ITSIAC, приведенной в тексте.
2.26 Напишите на языке высокого уровня программу для моделирования работы компьютера ITSIAC. Для моделирования основной памяти используйте матрицу из 256 элементов. Каждое слово памяти имеет длину 16 бит. Различные регистры, в том числе АКК, РАКОП, РАП, РДП, РР, РАКУП и РМК, представьте при помощи переменных. Для реализации каждой микрооперации используйте операторы языка высокого уровня. Например, сложение содержимого рабочего регистра РР и аккумулятора АКК можно осуществить при помощи оператора на языке Паскаль
АКК := АКК + РР
Введите дополнительную команду останова HALT, обеспечивающую распечатку содержимого всех регистров и всех ячеек памяти компьютера ITSIAC, а затем завершающего сообщения «EOJ» (конец задания). На своей модели компьютера ITSIAC выполните программу, которую вы написали в упр. 2.25.
Литература
(Ва80) | Baer J. b., Computer Systems Architecture, Rockville, Md.i Computer Science Press, 1980. |
(Be81) | Belady L. A., Parmelee R. P., Scalzi C. A., "The IBM History of Memory Management Technology", IBM J. Res. Develop., Vol. 25, No 5, September 1981, pp. 491—503. |
(Br77) | Brown G. E., et al., "Operating System Enhancement through Firmware". SIGMICRO Newsletter, Vol. 8, September 1977, pp. 119—133. |
(Bs81) | Bashe C. J., Buchholtz W., Hawkins G. V., Ingram J. J., Rochester N., "The Architecture of IBM's Early Computers", IBM J. Res. Develop., Vol. 25, No. 5, September 1981, pp. 363—375. |
(Bu81) | Bucci G., Neri G., Baldassarri F., "MP80: A Microprogrammed CPU with a Microcoded Operating System Kernel", Computer, October 1981, pp. 81—90. |
(Ca80) | Campbell- Kelley M., "Programming the EDSAC". Annals of the History of Computing, Vol. 2, 1980, pp. 7—36. |
(Da78) | Davidson S., Shriver B. D., "An Overview of Firmware Engineering", Computer, May 1978, pp. 21—31. |
(1182) | Iliffe J. K-, Advanced Computer Design, Englewood Cliffs, N. J.s Prentice-Hall, 1982. |
(Ka73) | Kaplan K. R-, Winder R. O., "Cache-Based Computer Systems", Computer. Vol. 6, No. 3, 1973, pp. 30—36. |
(Ko77) | Kogge P. M., "The Microprogramming of Pipelined Processors", Proa, Fourth Annual Symposium on Computer Architecture, March 1977, pp. 63-69. |
(Le80) | Levy H. M., Eckhouse R. H., Jr., Computer Programming and Architecture: The VAX-ll, Bedford, Mass.: Digital Press, Digital Equipment Corporation, 1980. |
(Lo80) | Love H. H., Jr. "The Highly Parallel Supercomputers: Definitions, Applications, and Predictions", Proc. NCC, 1980, pp. 181—190. |
(Ma75) | Mallach E. G., "Emulator Architecture", Computer, Vol. 8, August 1975, pp. 24—32. |
(Pa81) | Padegs A, "System/360 and Beyond", IBM J. Res. Develop., Vol. 25, No. 5, September 1981, pp. 377—390. |
(Ph80) | Phelps В. Е., "Early Electronic Computer Developments at IBM", Annals of the History of Computing, Vol. 2, 1980, pp. 253—267. |
(Po81) | Pohm A. V., Smay T. A., "Computer Memory Systems", Computer, October 1981, pp. 93—110. |
(Ra76) | Rauscher T. G., Agrawala A. K., "Developing Application-Oriented Computer Architectures on General-Purpose Microprogrammable Machines", Proc. of 1976 NCC, Montvale, N. J.: AFIPS Press, pp. 715—722. |
(Ra78) | Rauscher T. G., Agrawala A. K., "Dynamic Problem-Oriented Redefinition of Computer Architecture via Microprogramming", IEEE Trans, on Computers, Vol. C-27, November 1978, pp. 1006—1014. |
(Ra80) | Rauscher T. G., Adams P. N., "Microprogramming: A Tutorial and Survey of Recent Developments", IEEE Trans, on Computers, Vol. C-29, No. 1, January 1980, pp. 2—20. |
(So75) | Sockut G. H., "Firmware/Hardware Support for Operating Systems; Principles and Selected History", SIGMICRO Newsletter, Vol. 6, December 1975, pp. 17—26. |
(St81) | Stankovic J. A., "The Types and Interactions of Vertical Migrations of Functions m a Multilevel Interpretive System", IEEE Trans, on Com.' puters, Vol. C-30, No. 7, July 1981, pp. 505—513. |
(Tu65) | Tucker S. G., "Emulation of Large Systems", С ACM, Vol. 8, 1965, pp. 753—761. |
(Wi51) | Wilkes M. V., The Best Way to Design on Automatic Calculating Machine, Report of the Manchester University Computer Inaugural Conference, Electrical Engineering Department of Manchester University, Manchester, England, July, 1951, pp. 16 — 18. Reprinted in Earl E. Swartzlander, 'Jr. (ed.), Computer Design Development — Principal Papers, Rochelle Park, N.J.: Hayden Book Co., 1976, pp. 266—270. |
(Wi69) | Wilkes M. V., "The Growth of Interest in Microprogramming: A Literature Survey", Comput. Surveys, Vol. 1, No. 3, September 1969, pp. 139— 145. |