Архитектура КС 2MIT 2020
Общее
Проводят курс: Евгений Баталов (eabatalov89 at gmail dot com) и Дмитрий Лапшин (au-cpp at ldvsoft dot net).
За основу взяты видео с курса на Stepik, их надо просматривать когда будет заданно на лекции. Дополнительно к лекциям мы будем иногда уточнять и дополнять материалы, вплоть до нового материала.
Раз в неделю (текущая договорённость: по субботам в 13:00) проводится занятие, где разбираются вопросы по прошлым лекциям, рассказывается новый материал, обсуждаются вопросы по домашним заданиям и выдаются новые.
Отчётность по курсу состоит из суммы домашних заданий (~70%) и экзамена (~30%) с блоком по практике, точные правила уточняются.
Лекции
- Лекция №1 (16 янв): вводная.
- К следующему занятию: прослушать блок «Введение. Принципы построения ЭВМ» на Stepik.
- Лекция №2 (23 янв): basics of bus design.
- К следующему занятию: прослушать блок «Введение в язык ассемблера» на Stepik.
- Лекция №3 (30 янв): соглашения о вызове функций.
- Лекция №4 (6 фев): параллелизм в процессорах на уровне инструкций и данных.
- К следующему занятию: прослушать блок «Базовые элементы операционной системы» на Stepik.
- Лекция №5 (13 фев): системные вызовы на примере Linux.
- К следующему занятию: прослушать блок «Процессы, потоки, многозадачность» на Stepik.
- Лекция №6 (20 фев): процессы, потоки, многозадачность.
- К следующему занятию: прослушать секции 5.1, 5.2, 5.3 из блока «Организация памяти» на Stepik.
- Лекция №7 (27 фев): адресные пространства и память.
- Лекция №8 (6 мар): управление памятью в Linux.
- Лекция №9 (10 Апр): Иерархия памяти, кэширование, DMA.
- Лекция №10 (17 Апр): Контекст CPU, планировщик задач, прерывания.
- Лекция №11 (15 Мая): Работа с файлами в Linux, файловые системы 1.
- К следующему занятию: прослушать секции 5.4, 5.5 из блока «Организация памяти» на Stepik.
- Лекция №12 (22 Мая): Работа с файлами в Linux, файловые системы 2.
- К следующему занятию: прослушать блок «Межпроцессное взаимодействие» на Stepik.
- Лекция №13 (29 Мая): Межпроцессное взаимодействие.
- Лекция №X: Архитектура ядра Linux.
Практики
Практики будут выдаваться на занятиях.
Правила отправки решений
Студенты поделены на две группы. Студенты группы 1 присылают решения на почту Евгению, студенты группы 2 присылают решения на почту Дмитрию. Решения можно присылать во вложении к письму или в виде ссылки на Github.
Тема письма обязательно должна соответствовать следующему формату:
ВШЭ Архитектура КС домашнее задание <номер домашнего задания> <фамилия> <имя>
Если тема письма не соответсвует заданному формату, то письмо скорее всего будет проигнорировано.
Каждое решение проверяется только один раз.
Задания
- Задание №1 (23 янв): считаем и мигаем
- Дедлайн: 29 января 23:59. Если договоримся об изменении сообщим отдельно.
- Задание №2 (30 янв): командуем своим процессором
- Дедлайн: 13 февраля 12:59. Если договоримся об изменении сообщим отдельно.
- Задание №3 (13 фев): прыжки в ядро
галактики- Дедлайн: 20 февраля 12:59.
- Задание №4 (06 мар): запоминаем друзей
- Дедлайн: 20 марта 12:59. Обратите внимание, что через неделю, 13 марта, будет выдано следующее задание.
- Задание №5 (13 мар): Nether Brick SLAB
- Дедлайн: 20 марта 12:59. Обратите внимание, что неделю назад, 6 марта, было выдано другое задание с тем же дедлайном.
- Задание №6 (22 мая): Tarантул на файловом древе
- Дедлайн: 05 июня 12:59.