Бакалавриат
2023/2024![Learning Objectives](/f/src/global/i/edu/objectives.svg)
![Expected Learning Outcomes](/f/src/global/i/edu/results.svg)
![Course Contents](/f/src/global/i/edu/sections.svg)
![Assessment Elements](/f/src/global/i/edu/controls.svg)
![Interim Assessment](/f/src/global/i/edu/intermediate_certification.svg)
![Bibliography](/f/src/global/i/edu/library.svg)
Архитектура компьютера и операционные системы
Статус:
Курс обязательный (Прикладной анализ данных)
Направление:
01.03.02. Прикладная математика и информатика
Где читается:
Факультет компьютерных наук
Когда читается:
2-й курс, 3, 4 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Викторов Артем Константинович,
Канахин Алексей Алексеевич,
Махов Александр Михайлович,
Махов Александр Сергеевич,
Столяров Роман Константинович,
Татарников Андрей Дмитриевич
Язык:
английский
Кредиты:
5
Контактные часы:
136
Course Syllabus
Abstract
The course is classified as a compulsory subject; it is a two-module course (semester B quartiles 3 and 4). The course is divided into two logical parts. The part is given during semester B quartile 3 and is dedicated to computer architecture and assembly programming. The second part is given during semester B quartile 4 and covers operating system organisation and system programming. The syllabus is prepared for teachers responsible for the course (closely related disciplines), teaching assistants, students enrolled in the course as well as experts and statutory bodies carrying out assigned or regular accreditations.
Learning Objectives
- Study foundations of computer architecture (on the example of RISC-V).
- Acquire assembly language programming skills.
- Study operating system organisation (on the example of Linux).
- Learn how to create system software.
Expected Learning Outcomes
- Understand the concepts of memory hierarchy, cache memory, and virtual memory.
- Be able to create operating-system level software in the C programming language.
- Translate high-level programming language code into assembly instructions and vice versa.
- Understand assembly language and be able to write assembly programs.
- Understand fundamental operating systems structures such as processes, system calls, scheduling, virtual memory, and file systems.
- Understand fundamentals of computer architecture.
- Understand fundamentals of operating system organisation.
- Understand how pipelining works.
Course Contents
- Computer architecture concept.
- Data types. Byte ordering. Integer formats.
- Computer organization. Microprocessor. RISC and RISC-V. Assembly language.
- RISC-V instructions. Instruction formats. Arithmetic and load/store instructions.
- Pseudo instructions, macros, and includes. Conditions, loops, and arrays.
- Subroutines. Call stack. Calling conventions.
- Memory-mapped I/O (MMIO).
- Floating-point format. IEEE 754. Floating-point instructions.
- Exceptions, traps, and interrupts.
- Instruction-level parallelism: Pipelining.
- Caches.
- Virtual memory.
- Data-level parallelism: Vector, SIMD, GPU.
- Thread-level parallelism.
- Optimizations.
- Domain-specific architectures. Tensor Processing Unit.
- Operating system architecture. Linux.
- C programming language. GNU tools (GCC, Make).
- System calls.
- Linking and loading. Libraries and binary file format.
- Strings and regular expressions.
- Processes and threads.
- Synchronization.
- Inter-process communication.
- Filesystem.
- Devices and other special files.
- Permissions.
- Shell. I/O redirection.
- SystemD services.
- Sockets.
- Networking.
- Distributed operating systems.
- Virtualization.
- Security.
- High-level languages and operating system.
Assessment Elements
- Homework
- Quizzes
- Class presence
- Final Test
- Class activityEach time you broadcast a solution of a task during class hours, you get this point.
Interim Assessment
- 2023/2024 4th module0.1 * Class presence + 0.35 * Final Test + 0.45 * Homework + 0.1 * Quizzes
Bibliography
Recommended Core Bibliography
- Harris, D. M., & Harris, S. L. (2012). Digital Design and Computer Architecture (Vol. 2nd ed). Amsterdam: Elsevier Ltd. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=472255
- Архитектура компьютера, Таненбаум, Э., 2014
- Компьютерные системы. Архитектура и программирование : взгляд программиста, Брайант, Р. Э., 2005
- Современные операционные системы, Таненбаум, Э., 2012
Recommended Additional Bibliography
- Hennessy, J. L., Asanović, K., & Patterson, D. A. (2012). Computer Architecture : A Quantitative Approach (Vol. 5th ed). Waltham, MA: Morgan Kaufmann. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=407995
- Sweetman, D. (2007). See MIPS Run (Vol. 2nd ed). San Francisco, Calif: Morgan Kaufmann. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=195985
- Операционная система UNIX : учеб. пособие для вузов, Робачевский, А. М., 2003