MainPage/Computer Architech/Labs
Лабораторная работа №1. Техническая проблема
- Murphy’s law : Anything that can go wrong will go wrong.
Руководство по проведению лабораторной работы №1 для преподавателей
Цель: ознакомить учащегося с комплексной технической проблемой, связывающей воедино множество аспектов разработки, эксплуатации и поддержки компьютерных систем.
目标:让学生熟悉一个复杂的技术问题,该问题将计算机系统的开发、操作和支持的许多方面联系在一起。
Задачи: 任务:
-
Выбор технической проблемы для анализа.
选择一个技术问题进行分析。Основной критерий выбора технической проблемы: знакомство с ней должно представлять практическую ценность для слушателей. Сделать их лучше как специалистов за счёт нового знания о том, как лучше организовывать рабочие процессы, какие методы и технологии применять. В качестве технической проблемы может выступить:
选择技术问题的主要标准:熟悉它并对学生具有实用价值。 通过有关如何更好地组织工作流程、使用哪些方法和技术的新知识,使他们成为更好的专家。 技术问题可能包括:- Инцидент или postmortem, посвящённый неблагоприятному стечению обстоятельств, в рамках которого что-то случилось. К примеру:
事件或事后分析,专门针对发生某事的不利环境组合。 例如:- спутник должен был сесть на поверхность Марса, но вместо этого впечатался в грунт на огромной скорости;
卫星原本应该降落在火星表面,但却以极快的速度撞向地面; - “автопилот” автомобиля сбил человека насмерть;
汽车的“自动驾驶仪”将一名男子撞死; - инженеры много лет назад приняли решение о том, как хранить строки или даты, последствия мы расхлебываем до сих пор;
工程师多年前就决定了如何存储字符串或日期,我们仍在处理后果; - инженер обновил настройки магистрального маршрутизатора и целый регион испытывал серьезные проблемы с интернет-сервисами;
工程师更新了骨干路由器的设置,整个地区的互联网服务出现了严重问题; - Meltdown и Spectre или “дооптимизировались”.
崩溃和幽灵或“额外优化”。
- спутник должен был сесть на поверхность Марса, но вместо этого впечатался в грунт на огромной скорости;
- Комплексная техническая проблема, имеющая несколько подходов к её решению, сменяющих друг-друга, вследствие изменения окружающего мира:
一个复杂的技术问题,有多种解决方法,由于周围世界的变化而相互替换:- представление текстов в компьютере;
在计算机上呈现文本; - устройство баз данных;
数据库设备; - принципы построения распределённых систем.
构建分布式系统的原则。
- представление текстов в компьютере;
- Глубокий анализ технического вопроса, имеющего множество подводных камней и неочевидных нюансов.
对存在许多陷阱和不明显细微差别的技术问题进行深入分析。
- Инцидент или postmortem, посвящённый неблагоприятному стечению обстоятельств, в рамках которого что-то случилось. К примеру:
-
Согласование технической проблемы и содержания доклада.
协调技术问题和报告内容。Согласование реализуется через бота в телеграмме. Обычно это занимает около недели (загрузка, ожидание ревью, получение замечаний, исправление, повтор). Вам будет необходимо загрузить в бота описание вашего доклада одним сообщением. Сообщение должно иметь следующий вид:
协调是通过电报中的机器人实现的。 这通常需要一周左右的时间(上传、等待审核、接收评论、更正、重复)。 您需要在一条消息中将报告的描述上传到机器人。 该消息应如下所示:<Название доклада одной строкой> <一行报告标题> <Описание доклада> <报告说明> <Источники> <来源> <Вопрос> <问题>
Требования: 要求:
- Название доклада. Должно отражать конкретную тему, чтобы было видно если в группе намечается дубль.
报告标题。 它应该反映一个特定的主题,以便可以看到小组中是否计划进行双打。 - Описание доклада. Объём – 1-2 экрана телефона. Должно включать:
报告描述。 体量——1-2个手机屏幕。 应包括:- Компактное описание того, о чём доклад в свободной форме. Один небольшой абзац.
以自由形式对报告内容进行简洁描述。 一小段。 - Класс технических проблем, которым посвящён доклад. Область применения знаний из вашего доклада. Один небольшой абзац.
报告专门讨论的技术问题类别。 报告中知识的应用范围。 一小段。 - Какие полезные знания даст ваш доклад (подходы к разработке, контролю качества, инструменты и методы, понимание уязвимостей). Рекомендуется оформить в виде конкретного списка.
您的报告将提供哪些有用的知识(开发方法、质量控制、工具和方法、对漏洞的理解)。 建议将其格式化为特定列表的形式。
- Компактное описание того, о чём доклад в свободной форме. Один небольшой абзац.
- Список найденных источников / документов / публикаций по выбранному случаю.
所选案例的已找到来源/文件/出版物列表。 - Вопрос к экзамену по вашему докладу:
根据您的报告提出的考试问题:- Знание ответа на ваш вопрос должно быть полезно для студента в современных реалиях.
了解问题的答案对于现代现实中的学生应该很有用。 - Ответ на вопрос должен занимать примерно пару минут содержательной речи.
问题的答案应该需要几分钟的有意义的演讲。 - Ответ на вопрос должен быть конкретным и обозримым, к примеру: “Расскажите о методах тестирования ПО?” позволяет дать практически любой ответ, в то же время: “Методы оценки качества тестового покрытия. Test coverage и другие метрики.” будет гораздо конкретнее.
问题的答案应该具体且易于理解,例如:“请告诉我们有关软件测试方法的信息?” 允许您同时给出几乎任何答案:“评估测试覆盖率质量的方法。测试覆盖率和其他指标。” 将会更加具体。 - Старайтесь задать вопрос так, чтобы было просто понять, что ожидается в ответ. К примеру:
尝试以易于理解预期答复的方式提出问题。 例如:- “В чём заключается механизм ошибки ED-4312?” – кто помнит о том, что такое ED-4312 и с чем это связано? Лучше спросить: “Как работает механизм переполнения буфера в рамках ED-4312?”
“ED-4312 错误的机制是什么?” ——谁还记得 ED-4312 是什么以及它与什么有关? 更好的问题是:“ED-4312 中的缓冲区溢出机制如何工作?” - “Перечислите все уязвимости проекта X.” Лучше: “В проекте X присутствовали следующие уязвимости: … Опишите механизм их использования для атаки?”
“列出 Project X 的所有漏洞。” 更好:“X 项目中存在以下漏洞:…描述利用它们进行攻击的机制?”
- “В чём заключается механизм ошибки ED-4312?” – кто помнит о том, что такое ED-4312 и с чем это связано? Лучше спросить: “Как работает механизм переполнения буфера в рамках ED-4312?”
- Вопрос должен быть связан с тематикой дисциплины.
问题必须与学科主题相关。
- Знание ответа на ваш вопрос должно быть полезно для студента в современных реалиях.
- Название доклада. Должно отражать конкретную тему, чтобы было видно если в группе намечается дубль.
-
Подготовка доклада. Артистичная и интерактивная форма доклада приветствуется. Он должен включать (конкретная структура – на ваше усмотрение):
报告的准备。 鼓励艺术和互动的演示。 它应该包括(具体结构由你决定):- описание технической проблемы или инцидента, объяснение значимости;
技术问题或事件的描述、意义的解释; - описание необходимых для понимания технических деталей, приветствуются диаграммы рассматриваемых систем и проблем;
欢迎对理解所需的技术细节、系统图表和正在考虑的问题进行描述; - описание сути технической проблемы;
技术问题本质的描述; - принятые меры в связи с инцидентом или доступные варианты решения технической проблемы, их сравнения;
针对事件采取的措施或解决技术问题的可用选项及其比较; - мораль, сделанные индустрией выводы, и изменение практик инженерии компьютерных систем:
计算机系统工程中的道德、行业发现和不断变化的实践:- самый важный элемент доклада, именно это знание должно стать полезным для слушателей;
报告中最重要的要素,这些知识应该对听众有用; - следует ориентироваться на современное состояние вопроса, а не на времена инцидента (изобретение интеграционного тестирования сегодня выглядит странно);
你应该关注问题的当前状态,而不是事件发生的时间(集成测试的发明在今天看起来很奇怪); - мораль и выводы должны выходить за пределы рассмотренного кейса (не будьте Капитаном Очевидностью);
道德和结论应该超出所考虑的情况(不要成为显而易见的船长); - мораль может быть адресована: 道德可以解决:
- разработчикам (чтобы буферы в ваших системах не переполнялись, достаточно отказаться от …);
开发人员(为了防止系统中的缓冲区溢出,拒绝就足够了……); - пользователям (чтобы ваши файлы не зашифровали, достаточно только …);
用户(为了防止您的文件被加密,您需要做的就是……); - администраторам и т.п. 管理员等
- разработчикам (чтобы буферы в ваших системах не переполнялись, достаточно отказаться от …);
- мораль не должна сводиться к “надо лучше стараться”, к примеру: “надо полностью протестировать X” – дежурная фраза, так как не отражает:
道德不应该被简化为“你需要更加努力”,例如:“你需要充分测试X”——这是一个常用短语,因为它不反映:- Что значит “полностью протестировано”?
“完全测试”是什么意思? - Возможно ли “достаточно протестировать”?
是否可以“测试足够”? - Как оценить качество тестирования?
如何评价测试质量? - Как построить тестирование так, чтобы это было эффективно?
如何构建测试以使其有效? - Какие методы тестирования появились в рассматриваемой области с прошлого века?
自上世纪以来,该领域出现了哪些测试方法? - И т.п. 等等
- Что значит “полностью протестировано”?
- самый важный элемент доклада, именно это знание должно стать полезным для слушателей;
- описание технической проблемы или инцидента, объяснение значимости;
- Выступление в рамках лабораторного занятия в формате диалога с аудиторией (аудитория вправе остановить докладчика в любой момент и задать ему интересующий вопрос).
在实验课的框架内以与观众对话的形式进行演讲(观众有权随时阻止演讲者并问他感兴趣的问题)。 -
(опционально) Написание статьи по связанному с темой вашего доклада вопросу.
(可选)就与您的报告主题相关的问题撰写一篇文章。По итогам доклада вами может быть написана небольшая детализированная статья по частному вопросу вашего доклада.
根据报告的结果,您可以就报告中的特定问题撰写一篇简短而详细的文章。- Тема и акценты статьи должны быть согласованы с преподавателем [по лабораторным работам]. Процедура согласования:
文章的主题和重点必须与[实验室工作]老师达成一致。 审批程序:- В ведомости найдите и откройте лист
lab1-article-topics
.
在工作表中,找到并打开工作表“lab1-article-topics”。 - Для свободной от текста и комментариев строки оставьте 4 комментария:
对于没有文字和注释的行,请留下 4 条注释:- Группа
- ФИО
- Тема – акцент/комментарий
- Фамилия преподавателя по лаб. 1
- Тема должна быть конкретной и иметь практическую значимость для читателя.
主题必须具体且对读者有实际意义。 - Темы не должны повторяться.
- В ведомости найдите и откройте лист
- Согласованная тема статьи вместе с именем студента вносится в README.md файл преподавателем с необходимыми комментариями. Структура разделов README документа поддерживается преподавателем. Примерный вид:
- Механизмы защиты от переполнения буферов (Иванов Иван Иванович, P12345) -- акцент на средствах уровня компиляции.
- После согласования и внесения темы
README.md
– можно приступать к написанию статьи. - Статья должна быть оформлена в виде документа в формате markdown в репозитории статей по лаб. 1 (ссылку см. выше).
- Статья оформляется в виде Merge Request-а, в котором:
- Файл статьи в виде:
<year>/<topic-in-english.md>
. Объём порядка 10-12k символов. - Картинки (при необходимости):
<year>/<topic-in-english>/*.png
. Размер файлов до 700kb каждый. - Добавление ссылки на статью в README файл вида:
[Механизмы защиты от переполнения буферов (Иванов Иван Иванович, P12345)](RELATIVE_LINK)
. - CI должен проходить успешно.
- Отсутствие merge conflict. Их устранение – задача студента.
- Ревью статьи делается через MR. Следите за обновлениями.
- Статья считается сданной после слияния с основной веткой.
- Файл статьи в виде:
- Оценивание статей:
- 0 баллов – MR не принят.
- 5 баллов – ваша статья является законченной статьёй по заявленной теме. MR принят.
- 6-10 баллов – вы написали отличную, интересную и полезную статью и у вас нет замечаний.
- Тема и акценты статьи должны быть согласованы с преподавателем [по лабораторным работам]. Процедура согласования:
ВНИМАНИЕ: разобранные на лабораторных занятиях сценарии и технические решения будут включены в экзамен по предмету, поэтому:
- К подготовке статей необходимо относиться ответственно, так как именно ваши материалы будут предоставлены вам и вашим коллегам для подготовки. Если необходимо, вы всегда можете прикрепить ссылки на свои материалы в
lab1-journal.md
. - Других докладчиков необходимо слушать внимательно и, если непонятно, спрашивать.
- Группы для лабораторных работ №1 могут отличаться от групп с точки зрения университета. Они не могут меняться в течение семестра. Экзамен необходимо сдавать с одногруппниками по лабораторной работе №1.
Лабораторная работа №2. Архитектурные принципы 实验室工作No.2 架构原则
Цель: ознакомить учащегося с принципами, связанными с архитектурой компьютерных систем, не вошедшими в лекционный курс, а также демонстрация того, насколько по-разному может быть воспринят материал разными людьми.
目的: 向学生介绍讲座课程中未涵盖的与计算机系统架构相关的原理,并演示不同的人如何以不同的方式感知这些材料。
Задачи (необходимо повторить для каждого предоставленного материала):
目标(必须针对提供的每种材料重复):
- Ознакомление с предоставленными материалами.
熟悉所提供的材料。 - Написание эссе на тему прочитанного материала в свободной форме, которое должно включать:
以自由阅读材料为主题写一篇文章,内容应包括:- основные мысли, высказанные автором/авторами материалов (с вашей точки зрения);
材料作者表达的主要想法(从您的角度来看); - характеристику практической и научной значимости материала;
材料的实际和科学意义的表征; - ваше рассуждение на тему, в котором вы можете согласиться с автором, не согласиться, дополнить или как-то иначе прокомментировать материал.
您对某个主题的推理,您可以同意、不同意、补充或以其他方式评论该材料。
- основные мысли, высказанные автором/авторами материалов (с вашей точки зрения);
- Загрузка эссе в информационную систему.
将论文上传至信息系统。 - Рецензирование эссе ваших коллег по данному материалу. Написание отзыва для автора. Double blind (рецензент не знает, кто автор эссе; автор не знает, кто его рецензирует).
复习同事关于本材料的论文。 为作者写评论。 双盲(审稿人不知道论文的作者是谁;作者也不知道是谁在审稿)。
Примечание: 笔记:
- Размер эссе – 512-4096 символов (максимальный размер сообщения в Telegram).
文章大小 - 512-4096 个字符(Telegram 中的最大消息大小)。- В случае если вам никак не уложиться в этот лимит, вы можете вынести окончание эссе в документ по ссылке. В таком случае:
如果您无法满足此限制,您可以通过链接将论文结尾添加到文档中。 在这种情况下:- анонимность вашего эссе обеспечивается вами;
您保证论文的匿名性; - будет ли рецензент дочитывать ваше эссе – на его усмотрение, имеет право сказать tldr.
审稿人是否会读完你的论文由他自行决定,他有权说tldr。
- анонимность вашего эссе обеспечивается вами;
- В случае если вам никак не уложиться в этот лимит, вы можете вынести окончание эссе в документ по ссылке. В таком случае:
- Начало работы над каждым из эссе, срок его загрузки и рецензирования будут публиковаться в чате курса.
每篇论文的开始工作、上传和审阅的截止日期将在课程聊天中发布。 - Материалы любого эссе могут быть изменены до начала работы над ним. Будьте внимательны!
任何论文的材料在开始工作之前都可能会发生变化。 当心! - Если вы срываете срок загрузки эссе, ваше эссе сможет пройти и выполнить рецензирование лишь в конце семестра с другими должниками.
如果您错过了上传论文的截止日期,您的论文将只能在学期末与其他债务人一起审核并通过。 - Если вы срываете срок рецензирования эссе, то получаете штраф к баллам за рецензирование.
如果您错过审阅论文的截止日期,您将受到审阅分数的处罚。
Эссе 1 (2023)
Эссе 2 (2023)
Эссе 3 (2023)
Pool
- Modeling in engineering and science – Edward Lee – Communications of the ACM – 2019
- The Problem with Threads – Edward A. Lee – The Problem with Threads
- Science and Engineering for Cyber-Physical Systems – Edward Lee – 2021
- The Rise of Worse is Better, Richard P. Gabriel
- На момент написания сервер лежит, зеркало: 在撰写本文时,服务器已关闭,镜像为: web.archive.org
- Это выдержка из большего эссе, которое лучше читать целиком, для ясности: 这是一篇较大文章的摘录,为了清楚起见,最好完整阅读该文章: Lisp: Good News, Bad News, How to Win Big – Richard P. Gabriel
- Зеркало полной статьи: web.archive.org
Лабораторная работа №3. На кончиках пальцев Цель:
экспериментальное знакомство с устройством процессоров через моделирование; получение опыта работы с компьютерной системой на нескольких уровнях организации.
Данная лабораторная работа носит практический характер. Она включает разработку:
языка программирования и транслятора; системы команд; модели процессора; реализацию и тестирование работы алгоритмов.
Детали задания: Лабораторная работа №3. На кончиках пальцев Пример реализации транслятора и модели процессора: Brainfuck