Новости и изменения
Здесь отображаются изменения сайта.
Вопросы по курсу «Архитектура компьютеров»
Вопросы соответствуют содержанию учебника Patterson, Hennessy, Computer Organization and Design: The Hardware/Software Interface, 5th Edition, 2013
- 8 основных идей при разработке компьютерных архитектур. Инфраструктура исполнения программ. Организация компьютера
- Полупроводниковые технологии изготовления процессоров и памяти
- Производительность. Физические ограничения мощности вычислительных систем. Переход к аппаратному параллелизму вычислений
- Измерение производительности Intel Core i7
- Представление операций и операндов в аппаратуре
- Беззнаковая и знаковая целочисленная арифметика
- Представление инструкций, логические операции и ветвления
- Поддержка вызова процедур в аппаратуре
- Работа со строками, порядок байт в слове (эндианность)
- Адресация MIPS для 32 бит непосредственных аргументов и адресов
- Поддержка параллелизма на уровне инструкций, синхронизация
- Трансляция и запуск программы на С, пример
- Массивы, ссылки, индексы и указатели
- Статическая/динамическая компиляция и интерпретация программ с точки зрения исполнения на процессоре
- Набор инструкций ARMv7 (32-bit)
- Набор инструкций x86
- Набор инструкций ARMv8 (64-bit)
- Реализация в аппаратуре сложения, вычитания и умножения
- Реализация в аппаратуре деления
- Реализация в аппаратуре и особенности использования вычислений с плавающей точкой
- Параллелизм в компьютерной арифметике, параллелизм слотов операндов
- Расширения SIMD и векторные инструкции в x86
- Использование SIMD для ускорения матричного умножения
- Обзор устройства процессора MIPS
- Принципы разработки синхронных логических схем. Строб (тактирование).
- Устройство операционного автомата (Datapath). Одностадийная реализация.
- Минимальная реализация процессора MIPS, добавление автомата управления
- Обзор конвейерной архитектуры процессора
- Конвейеризация операционного и управляющего автоматов
- Обработка зависимости инструкций по данным, обходы и пропуски тактов
- Обработка зависимости инструкций по управлению, предсказание переходов
- Аппаратная поддержка исключений
- Методы реализации параллелизма инструкций
- Конвейеры ARM Cortex-A8 и Intel Core i7
- Использование параллелизма инструкция для ускорения умножения матриц
- Методы разработки цифровых конвейерных процессоров с использованием языков описания аппаратуры (HDL)
- Технологии производства компьютерной памяти (запоминающих устройств)
- Основные принципы кэширования
- Измерение и улучшение производительности кэширования
- Повышение надежности памяти. Измерение надежности. Корректирующие коды.
- Аппаратная поддержка виртуальных машин
- Виртуальная память
- Общий подход к проектированию иерархической памяти
- Управление состоянием кэша при помощи конечного автомата
- Параллелизм и иерархическая память, когерентность кэшей
- RAID массивы запоминающих устройств
- Разработка кэш контроллеров
- Иерархия памяти ARM Cortex-A8 и Intel Core i7
- Использование предвыборки кэша для ускорения умножения матриц
- Сложности разработки параллельных программ
- Инструкции SISD, MIMD, SIMD, SPMD и векторные инструкции
- Аппаратная поддержка многопоточных вычислений
- Многоядерные и многопроцессорные системы с общей памятью
- Обзор архитектуры графических процессоров (GPU)
- Кластеры, дата-центры, суперкомпьютеры и другие многопроцессорные архитектуры на основе обмена сообщениями
- Обзор сетевых топологий многопроцессорных систем
- Обзор сетевых протоколов и оборудования для соединения узлов кластеров, дата-центров и суперкомпьютеров
- Измерение и моделирование производительности многопроцессорных систем
- Сравнение производительности Intel Core i7 и NVIDIA Tesla GPU 550
- Использование многопроцессорных систем для ускорения умножения матриц
Цифровая обработка сигналов. Вопросы к экзамену.
- Временные ряды и дискретные системы. Линейные дискретные системы инвариантные к сдвигу.
- Коммутативность ЛДИС. Импульсная характеристика.
- Дискретизация непрерывного сигнала. Алиасинг. Дискретизация низкочастотных сигналов.
- Дискретизация сигналов в полосе частот.
- Дискретное преобразование Фурье. Свойства ДПФ. Утечка между отсчетами ДПФ. Окна. Потея амплитуды для некратных частот.
- Разрешение ДПФ, дополнение нулями и связь с дискретизацией спектра сигнала. Усиление сигнала в результате ДПФ.
- ДПФ прямоугольного окна.
- Быстрое преобразование Фурье. Вывод БПФ-2, перестановка битов в индексах.
- Фильтры с конечной импульсной характеристикой (КИХ). Связь со сверткой, теорема о свертке. Расчет НЧ фильтров.
- Расчет полосовых КИХ фильтров.
- Фазовая характеристика КИХ фильтров.
- Анализ КИХ фильтров. Групповая задержка, АЧХ, оценка количества коэффициентов.
- Фильтры с бесконечной импульсной характеристикой (БИХ). Преобразование Лапласа. Устойчивость непрерывного фильтра.
- z-преобразование. Устойчивость дискретного фильтра.
- Использование полюсов и нолей для анализа фильтров. Сравнение КИХ и БИХ фильтров.
- Вычислительно-эффективные реализации БИХ фильтров.
- Расчет дискретных БИХ фильтров по непрерывному прототипу.
- Расчет дискретных БИХ фильтров с использованием билинейного преобразования.
- Специальные фильтры. Дифференциатор. Интегратор. Согласованный фильтр. Гребенчатый фильтр.
- Интерполированный НЧ фильтр.
- Банки узкополосных фильтров.
- Квадратурная составляющая сигнала.
- Квадратурная демодуляция.
- Дискретное преобразование Гильберта.
- Передискретизация сигналов. Прореживание, интерполяция.
- Полифазные фильтры.
- Фильтры половинной частоты. Передискретизация с использованием интерполированных КИХ фильтров.
- Каскад интеграторов и гребенчатых фильтров.
- Усреднение сигналов.
- Форматы данных и точность вычислений. Вычисления с фиксированной точкой.
- Вычисления с плавающей точкой.
Вопросы к экзамену по курсу "Введение в функциональное программирование"
- Определение функционального программирования. Связь с императивным программированием. Связь с другими моделями вычислений, тезис Черча-Тюринга.
- Строгие нестрогие и спекулятивные вычисления. Динамическая и статическая типизация. Практическое применение функционального программирования.
- Нетипизированное лямбда-исчисление.
- Примитивно типизированное лямбда-исчисление. Рекурсивные типы. Интуиционисская логика. Проверка типов.
- Изоморфизм Карри-Говарда.
- Параметрический полиморфизм. Вывод типов.
- Категории. Категория множеств, Порядок. Свободный моноид. Связь категорий и графов. Изоморфизм категорий. Коммутативные диаграммы.
- Произведения и суммы объектов категорий.
- Категория Circ.
- Категория Flow.
- Дистрибутивные категории. Связь с императивным программированием.
- Типы данных как категории. Доказательство свойств.
- Система автоматизации доказательств Coq. Функциональное программирование в Coq. Использование вывода типов для доказательства теорем в интуиционисской логике.
- Использование ssreflect. Эквивалентность и переисывание. Булева рефлексия.
- Использование ssreflect. Индуктивные доказательства. Кодирование структур.
- Сравнение синтаксиса Java и Scala
- Представление структур данных в Scala
- Функциональный подход к обработке ошибок
- Ленивые вычисления в Scala
- Функциональный параллелизм
- Тестирование свойств
- Парсер как композиция частичных парсеров
- Моноиды и монады
- Аппликативные функторы
- Локальные эффекты и изменяемое состояние.
- Ввод/вывод. Потоковый ввод/вывод.
- Обработка больших данных. Преимущества функционального программирования для масштабирования.
- Использование Scala для обработки больших данных. Платформа SMACK (Spark, Mesos, Akka, Kasandra, Kafka).
- Apache Spark
- Akka
- Apache Kafka
- Интеграция компонент SMACK и связь с функциональным программированием.
Задачи по программированию. I семестр
Задача 1. Перевернуть строку неизвестной длины
Считывать из стандартного ввода символы до двух ‘ ‘. Распечатать их в обратном порядке. Длина строки больше 256 символов.
Библиография курса "Разработка сред управляемого исполнения на примере виртуальной машины Java"
- Abraham, S., and Patel, J. Parallel garbage collection on a virtual memory system. In International Conference on Parallel Processing and Applications, pages 243–246, L’Aquila, Italy, September 1987. Elsevier North Holland.
- Adl-Tabatabai, A.-R.,Bharadwaj, J., Chen, D.-Y., Ghuloum, A., Menon, V., Murphy, B., Serrano, M., and Shpeisman, T. The StarJIT compiler: A dynamic compiler for managed runtime environments. Intel Technology Journal, 7(1):19–31, Feb. 2003.
- Agarwal, A., Bianchini, R., Chaiken, D., Johnson, K. L., Kranz, D., Kubiatowicz, J., Lim, B.-H., Mackenzie, K., and Yeung, D. The MIT Alewife machine: architecture and performance. In ISCA ’95: Proceedings of the 22nd annual international symposium on Computer architecture, pages 2–13, New York, NY, USA, 1995. ACM Press.
- Albion M. Butters, Ph.D. Total Cost of Ownership: A Comparison of C/C++ and Java. http://www.evansdata.com
- Alpern, B., Attanasio, C. R., Barton, J. J., Cocchi, A., Hummel, S. F., Lieber D., Ngo, T., Mergen, M., Shepherd, J. C., and Smith, S. Implementing Jalape˜no in Java. In OOPSLA’99, pp. 314–324.
- Alpern, B., Attanasio, D., Barton, J. J., Burke, M. G., Cheng, P., Choi, J.-D., Cocchi, A., Fink, S. J., Grove, D., Hind, M., Hummel, S. F., Lieber, D., Litvinov, V., Mergen, M., Ngo, T., Russell, J. R., Sarkar, V., Serrano, M. J., Shepherd, J., Smith, S., Sreedhar, V. C., Srinivasan, H., and Whaley, J. The Jalape˜no virtual machine. IBM System Journal, 39(1), Feb. 2000.
- Alpern, B., M. Butrico, A. Cocchi, J. Dolby, S. J. Fink, D. Grove, and T. Ngo. Experiences porting the Jikes RVM to Linux/IA32. In Proceedings of the 2nd Java Virtual Machine Research and Technology Symposium, pages 51–64, Berkeley, CA, USA, 2002. USENIX Association.
- Alverson, R., D. Callahan, D. Cummings, B. Koblenz, A. Porterfield, and B. Smith. The Tera computer system. In ICS ’90: Proceedings of the 4th International Conference on Supercomputing, pages 1–6, New York, NY, USA, 1990. ACM Press.
- Apache Harmony project (DRLVM). http://harmony.apache.org
- Apache License, Version 2.0, http://apache.org/licenses/LICENSE-2.0
- Apache. Apache Harmony, 2006. http://harmony.apache.org/.
- Appel, A. W. Axiomatic bootstrapping: a guide for compiler hackers. ACM Trans. Program. Lang. Syst., 16(6):1699–1718, 1994.
- Back, G., and W. C. Hsieh. The KaffeOS Java runtime system. ACM Trans. Program. Lang. Syst., 27(4):583–630, 2005.
- Bacon, D. F., Cheng, P., and Rajan, V. T. A real-time garbage collector with low overhead and consistent utilization. In Proceedings of the 30th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (New Orleans, Louisiana, Jan. 2003). SIGPLAN Notices, 38, 1, 285-298.
- Bacon, D. F., Cheng, P., and Rajan, V. T. Controlling fragmentation and space consumption in the Metronome, a real-time garbage collector for Java. In Proceedings of the Conference on Languages, Compilers, and Tools for Embedded Systems (San Diego, California, June 2003). SIGPLAN Notices, 38, 7, 81-82.
- Bacon, D. F., S. J. Fink, and D. Grove. Space- and time-efficient implementation of the Java object model. In ECOOP ’02: Proceedings of the 16th European Conference on Object-Oriented Programming, pages 111–132, London, UK, 2002. Springer-Verlag.
- Beck, K., M. Beedle, A. van Bennekum, A. Cockburn, W. Cunningham, M. Fowler, J. Grenning, J. Highsmith, A. Hunt, R. Jeffries, J. Kern, B. Marick, R. C. Martin, S. Mellor, K. Schwaber, J. Sutherland, and D. Thomas. Manifesto for agile software development, 2001. http://agilemanifesto.org/.
- Ben-Ari, M. Algorithms for on-the-fly garbage collection. ACM Trans. Program. Lang. Syst. 6, 3 (1984), 333-344
- Benitez, M. E. and J. W. Davidson. Target-specific global code improvement: Principles and applications. Technical report, Charlottesville, VA, USA, 1994.
- Bershad, B., S. M. Blackburn, H. Boehm, M. Cierniak, C. Click, D. Frampton, D. Gregg, D. Grove, X. Li, B. Mathiske, and G. Skinner. First Moxie brainstorming meeting, Dec. 2005. http://moxie.sf.net/.
- Bishop, P. Computer Systems With a Very Large Address Space and Garbage Collection. PhD thesis, MIT, May 1977.
- Blackburn, S. M., H. Boehm, M. Cierniak, C. Click, D. Grove, M. Hermenegildo, T. Hosking, K. S. McKinley, J. E. B. Moss, M. Lagergren, S. Srinivas, D. Stefaovic, J. Vitek, G. Wright, and M. Wolczko. Second Moxie brainstorming meeting, Jan. 2006. http://moxie.sf.net/.
- Blackburn, S. M., Hosking, A. L. Barriers: Friend or Foe? ISMM’04, October 24–25, 2004, Vancouver, British Columbia, Canada.
- Blackburn, S. M., P. Cheng, and K. S. McKinley. Oil and water? High performance garbage collection in Java with MMTk. In Proceedings of the 26th International Conference on Software Engineering, pages 137–146, Scotland, UK, May 2004.
- Blackburn, S. M., R. Garner, C. Hoffman, A. M. Khan, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanovi´c, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The DaCapo benchmarks: Java benchmarking development and analysis. In OOPSLA ’06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-Oriented Programing, Systems, Languages, and Applications, New York, NY, USA, Oct. 2006. ACM Press.
- Blackburn, S. M., Sergey I. Salishev, Mikhail Danilov, Oleg A. Mokhovikov, Anton A. Nashatyrev, Peter A. Novodvorsky, Vadim I. Bogdanov, Xiao Feng Li and Dennis Ushakov. The Moxie JVM Experience. Department of Computer Science, The Australian National University, TR-CS-08-01, April 2008.
- Boehm, H. 1993. Space efficient conservative garbage collection. In Proceedings of the ACM SIGPLAN 1993 Conference on Programming Language Design and Implementation (Albuquerque, New Mexico, United States, June 21 - 25, 1993). R. Cartwright, Ed. PLDI ‘93. ACM, New York, NY, 197-206.
- Boehm, H.-J., Demers, A. J., and Shenker, S. Mostly parallel garbage collection. In Proceedings of the ACM SIGPLAN ‘91 Conference on Programming Language Design and Implementation, pages 157-164 (Toronto, ON, Canada, June 1991. ACM Press.)
- Bruening, D., and J. Chapin. Systematic testing of multithreaded programs. Technical Report MIT-LCS-TM-607, MIT, May 2000.
- Building and Running Singularity. http://www.codeplex.com/singularity/SourceControl/FileView.aspx?itemId=142222&changeSetId=6601
- Cierniak, M., B. T. Lewis, and J. M. Stichnoth. Open runtime platform: flexibility with performance using interfaces. In JGI ’02: Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande, pages 156–164, New York, NY, USA, 2002. ACM Press.
- Click, C., Tene, G., and M. Wolf. The pauseless GC algorithm. In VEE ’05: Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments, pages 46–56, New York, NY, USA, 2005. ACM Press.
- Czajkowski, G., Dayn`es, L., and Titzer, B. A multi-user virtual machine. In USENIX 2003 Annual Technical Conference, San Antonio, TX, pages 85–98, Berkeley, CA, 2003. USENIX Association.
- Dean, J., C. Chambers, and D. Grove. Selective specialization for object-oriented languages. In PLDI ’95: Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation, pages 93–102, New York, NY, USA, 1995. ACM Press.
- Dean, J., G. DeFouw, D. Grove, V. Litinov, and C. Chambers. Vortex: An optimizing compiler for object-oriented languages. In ACM Conference on Object–Oriented Programming Systems, Languages, and Applications, pages 83–100, San Jose, CA, Oct. 1996.
- Detlefs, D., Flood, C., Heller, S., Printezes, T. Garbage-First Garbage Collection. ISMM 04 (October 24-25 2004. Vancouver, Canada)
- Detlefs, D., Flood, C., Heller, S., Printezes, Garbage-First: Low Latency, High Throughput Garbage Collection http://www.research.ibm.com/ismm04/slides/detlefs.pdf
- Doligez, D., and Leroy, X. A concurrent, generational garbage collector for a multithreaded implementation of ML. In Conference Record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 113{123, New York, NY, 1993. ACM.
- Ertl, K., and D. Gregg. Retargeting JIT compilers by using C-compiler generated executable code. In PACT ’04: Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques, pages 41–50, Washington, DC, USA, 2004. IEEE Computer Society.
- Fahndrich, M., M. Aiken, C. Hawblitzel, O. Hodson, G. Hunt, J. R. Larus, , and S. Levi. Language support for fast and reliable message-based communication in singularity os. In The first ACM SIGOPS EuroSys conference (EuroSys 2006), pages 177–190, 2006.
- Flack, C., Hosking, T., and Vitek, J. Idioms in Ovm. Technical Report CSD-TR-03-017, Purdue University, 2003.
- Flood, C. H., Detlefs, D., Shavit, N., and Zhang, X. Parallel garbage collection for shared memory multiprocessors. In Proceedings of the Java. Virtual Machine Research and Technology Symposium, Monterey, April 2001. USENIX.
- Frijters, J. IKVM.NET Weblog. http://weblog.ikvm.net/
- Gagnon, E. M., and L. J. Hendren. SableVM: A research framework for the efficient execution of Java bytecode. In Java Virtual Machine Research and Technology Symposium, pages 27–40. USENIX, 2001.
- Gamma, E., R. Helm, R. Johnson, and J. Vlissides. Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1995.
- Garthwaite, A. and White, D.. The GC interface in the EVM. Technical report, Mountain View, CA, USA, 1998.
- Glew, N., S. Triantafyllis, M. Cierniak, M. Eng, B. T. Lewis, and J. M. Stichnoth. LIL: An architecture-neutral language for virtual-machine stubs. In Proceedings of the 3rd Virtual Machine Research and Technology Symposium, May 6-7, 2004, San Jose, CA, USA, pages 111–125, 2004.
- GNU General Public License, version 2 (GPLv2). http://www.gnu.org/licenses/gpl-2.0.html
- GNU General Public License, version 2, with the Classpath Exception. http://openjdk.java.net/legal/gplv2+ce.html
- Goldberg, D. What Every Computer Scientist Should Know About Floating-Point Arithmetic, ACM Computing Surveys, Volume 23, No 1, March 1991
- Gosling, J., B. Joy, G. Steel, and G. Bracha. The Java Language Specification, Third Edition. Prentice Hall, 3rd edition, 2005.
- Grarup, S., Seligmann, J. Incremental Mature Garbage Collection. M. Sc. Thesis, Aarhus University, August 1993
- Hudson, R. L., Eliot, J., Moss, B. Sapphire: Copying GC without stopping the world (2001), In Joint ACM Java Grande — ISCOPE 2001 Conference
- Hudson, R. L., and Moss, E. B. Incremental garbage collection for mature objects. In Proc. Of the International Workshop on Memory Management (St. Malo, France, Sept. 1992), Y. Bekkers and J. Cohen, Eds., vol. 637 of Lecture Notes in Computer Science
- Hudson, R. L., Morrison, R., Moss, J. E. B., Munro, D. S. Garbage Collecting the World: One Car at a Time. Proc. OOPSLA 97, pp.162-175.
- Hunt, G. C., and J. R. Larus. Singularity: Rethinking the Software Stack. Operating Systems Review, Vol. 41, Iss. 2, pp. 37-49, April 2007. ACM SIGOPS.
- IEEE 754. http://grouper.ieee.org/groups/754/
- Ingalls, D. T. Kaehler, J. Maloney, S. Wallace, and A. Kay. Back to the future: the story of squeak, a practical smalltalk written in itself. In OOPSLA ’97: Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 318–326, New York, NY, USA, 1997. ACM Press.
- Jikes Research Virtual Machine (RVM). http://jikesrvm.sourceforge.net
- Kulkarni, P., W. Zhao, S. Hines, D. Whalley, X. Yuan, R. van Engelen, K. Gallivan, J. Hiser, J. Davidson, B. Cai, M. Bailey, H. Moon, K. Cho, and Y. Paek. VISTA: VPO interactive system for tuning applications. Trans. On Embedded Computing Sys., 5(4):819–863, 2006.
- Lahti, W. SharpOS: We are the Chicken and The Egg (draft). http://www.sharpos.org/redmine/wiki/3/Draft_Publicity_Article
- Lamport, L. Garbage collection with multiple processes: an exercise in parallelism. In Proc. Of the 1976 International Conference on Parallel Processing (1976), pp. 50-54
- Leslie, B. and G. Heiser. Iguana/L4, 2006. http://ertos.nicta.com.au/research/l4/. T. Lindholm and F. Yellin. The Java Virtual Machine Specification, Second Edition. Prentice Hall, 2rd edition, 1999.
- Lowry, M. C. A New Approach to The Train Algorithm For Distributed Garbage Collection. School of Comp. Science, University of Adelaide, 2004.
- McCorkle, E. L. 2006. Modern features for systems programming languages. In Proceedings of the 44th Annual Southeast Regional Conference (Melbourne, Florida, March 10 - 12, 2006). ACM-SE 44. ACM, New York, NY, 691-697.
- McDirmid, S., M. Flatt, and W. C. Hsieh. Jiazzi: new-age components for old-fashioned Java. In OOPSLA ’01: Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, pages 211–222, New York, NY, USA, 2001. ACM Press.
- Moxie. The Moxie Project, 2006. http://moxie.sf.org/.
- Palacz, K., J. Baker, C. Flack, C. Grothoff, H. Yamauchi, and J. Vitek. Engineering a common intermediate representation for the Ovm framework. Science of Computer Programming, 57(3):357–378, 2005.
- Paleczny, M., C. A. Vick, and C. Click. The Java HotSpot server compiler. In Java Virtual Machine Research and Technology Symposium. USENIX, 2001.
- Pixley, C. An incremental garbage collection algorithm for multi-mutator systems. Distributed Computing 6, 3 (Dec. 1988), 41-49.
- Prangsma, E. Why Java is practical for modern operating systems. In Libre Software Meeting, 2005. Presentation only. See www.jnode.org.
- Seacord, R.C., Plakosh D, Lewis GA. Modernizing Legacy Systems, Addison-Wesley Professional; 1 edition, 2001.
- Serrano, M., R. Bordawekar, S. Midkiff, and M. Gupta. Quicksilver: a quasistatic compiler for Java. In OOPSLA ’00: Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 66–82, New York, NY, USA, 2000. ACM Press.
- Shapiro, J. Programming language challenges in systems codes: why systems programmers still use C, and what to do about it. In PLOS ’06: Proceedings of the 3rd workshop on Programming languages and operating systems, page 9, New York, NY, USA, 2006. ACM Press.
- Shaylor, N., Simon, D. N., and Bush, W. R. A Java Virtual Machine architecture for very small devices. In LCTES ’03: Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems, pages 34–41, New York, NY, USA, 2003. ACM Press.
- Siebert, F. Eliminating external fragmentation in a non-moving garbage collector for Java. In International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (San Jose, California, Nov. 2000), pp. 9-17
- Standard ECMA-335: Common Language Infrastructure (CLI). http://www.ecma-international.org/publications/standards/Ecma-335.htm
- Steele, G. L. Multiprocessing compactifying garbage collection. Commun. ACM 18, 9 (Sept. 1975), 495-508
- Swinehart, D.C., Zellweger, P.T., Beach, R.J. and Hagman R.B. A Structural View of the Cedar Programming Environment. ACM Transactions on Programming Languages and Systems, 8 (4). pp. 419-490. October 1986.
- Taivalsaari, A. Implementing a Java virtual machine in the Java programming language. Technical Report SMLI TR-98-64, Sun Microsystems, Mountain View, CA, USA, 1998.
- Ungar, D. and R. B. Smith. Self: The power of simplicity. In OOPSLA ’87: Conference proceedings on Object-oriented programming systems, languages and applications, pages 227–242, New York, NY, USA, 1987. ACM Press.
- Whaley, J. Joeq: a virtual machine and compiler infrastructure. In IVME ’03: Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators, pages 58–66, New York, NY, USA, 2003. ACM Press.
- Wurthinger, T. Incremental Garbage Collection: The Train Algorithm www.ssw.uni-linz.ac.at/General/Staff/TW/Wuerthinger05Train.pdf
- zlib License. http://www.gzip.org/zlib/zlib_license.html
Вопросы к зачет у "Использование ОО методологии в исследовательских проектах"
1. Зачем нужна методология программирования.
2. Что такое структурная сложность, как с ней бороться.
3. Модель системы, стандартные виды деятельности при разработке системы.
4. Процессы разработки системы, достоинства и недостатки.
5. Тестирование, зачем. Виды тестов. Когда какие тесты писать.
6. Структурная методология. Достоинства и недостатки.
7. Базовые понятия ООП. Инкапсуляция, Наследование, Полиморфизм.
8. Объектная модель системы. Стандартные способы изображения.
9. Атомарность взаимодействия. Модель актеров. Наблюдаемость.
10. Сообщения и методы. Типичные ошибки взаимодействия объектов.
11. Агрегация и атомарность взаимодействий.
12. Поддержка ООП в языке Java и C#. Виртуальные методы.
13. ОО Анализ. Идентификация объектов и классов.
14. Идентификация структур, доменов, атрибутов и сервисов.
15. ОО Проектирование, аспекты системы (пользовательский интерфейс, управление выполнением, управление данными).
16. Аспект пользовательского интерфейса. Модель-Наблюдатель.
17. Аспект управления выполнением. Нити. Синхронное и асинхронное взаимодействие.
18. Модели ввода/вывода. Влияние на модель системы.
19. Наблюдаемость. Неизменяемые объекты. Реализация Read/Write Lock.
20. Пассивная модель взаимодействия. Необходимые предположения. Команда.
21. Аспект управления данными. Сериализация.
22. ОО Программирование. Самодокументирующийся код.
23. ОО Тестирование. Жизненный цикл тестов, тестирование пользовательского интерфейса. Тестирование производительности.
24. ОО Переработка кода. Признаки необходимости переработки кода. Основные способы переработки кода.
25. Оптимизация.
26. Инструментальные средства.
27. Использованные шаблоны проектирования (фабрика, команда, наблюдатель).
28. Лицензии СПО: BSD, APL, GPL/LGPL v2, GPL/LGPL v3
Вопросы к экзамену "Разаработка систем управляемого исполнения"
- Виртуальная машина и MRE. Достоинства и недостатки MRE по сравнению с естественным кодом платформы
- Основные компоненты MRE и их назначение.
- Внешний интерфейс Java (JNI).
- Внешний интерфейс CLI.
- Процесс верификации класса Java.
- Интерпретация. Шаблонная JIT компиляция. Оптимизирующая JIT и AOT компиляция.
- Организация памяти современного процессора (L1, L2, L3 Cache, TLB, Virtual memory)
- Представление в памяти объекта и класса. Хеш код объекта, 2 битная упаковка, однобитная упаковка слова состояния монитора
- Реализация вызовов через интерфейс.
- Реализация стека вызовов, реализация локальных данных нити.
- Назначение планировщика и связь с синхронизацией.
- Каузальная модель памяти Java
- Атомарные операции. Толстые и тонкие мониторы.
- Резервация мониторов.
- Метрики скорости системы управления памятью. Способы выделения памяти.
- Трехцветная раскраска, трехцветный инвариант, варианты реализации.
- Подсчет ссылок. Двухпальцевый алгоритм.
- Поколения объектов. Реализация.
- Parallel Mark/Sweep. Concurrent Mark/Sweep (IBM JDK)
- Break Table, Mark/Compact, Mark/Sweep/Compact.
- Полупространственный копирующий алгоритм.
- Сборка младших поколений в Oracle JDK CMS.
- Характеристики алгоритма Sapphire.
- Характеристики алгоритма Train.
- Характеристики алгоритма G1.
- Оптимизирующий JIT Компилятор. Особенности MRE.
- Структура оптимизирующего компилятора.
- Промежуточное представление и оптимизации высокого и низкого уровня.
- Модель динамической перекомпиляции. Особенности JIT компилятора. Замена кода.
- Динамическое профилирование.
- Системы реального времени. Метрики систем реального времени. Проблемы реализации MRE реального времени.
- Свойства JSR1. Типы памяти. Типы нитей. Особенности компиляции.
- Характеристики алгоритма Metronome.
- Транзакционная паямять
- Протокол MESI
- Intel Transactional Synchronization Extensions
- Нарушение локальности и способы его исправления. Проблемы взаимодействия с OS и направления интеграции.
- Характеристики стандартных тестовых нагрузок.