<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.atp-fivt.org/index.php?action=history&amp;feed=atom&amp;title=%D0%A2%D0%9F%D0%9C%D0%A1</id>
	<title>ТПМС - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.atp-fivt.org/index.php?action=history&amp;feed=atom&amp;title=%D0%A2%D0%9F%D0%9C%D0%A1"/>
	<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%A2%D0%9F%D0%9C%D0%A1&amp;action=history"/>
	<updated>2026-10-16T14:46:14Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%A2%D0%9F%D0%9C%D0%A1&amp;diff=450&amp;oldid=prev</id>
		<title>Shajdurova.es: Полностью удалено содержимое страницы</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%A2%D0%9F%D0%9C%D0%A1&amp;diff=450&amp;oldid=prev"/>
		<updated>2020-06-28T11:47:22Z</updated>

		<summary type="html">&lt;p&gt;Полностью удалено содержимое страницы&lt;/p&gt;
&lt;a href=&quot;https://wiki.atp-fivt.org/index.php?title=%D0%A2%D0%9F%D0%9C%D0%A1&amp;amp;diff=450&amp;amp;oldid=447&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Shajdurova.es</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%A2%D0%9F%D0%9C%D0%A1&amp;diff=447&amp;oldid=prev</id>
		<title>Shajdurova.es: Создание страницы «ТПМС»</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%A2%D0%9F%D0%9C%D0%A1&amp;diff=447&amp;oldid=prev"/>
		<updated>2020-06-28T11:42:55Z</updated>

		<summary type="html">&lt;p&gt;Создание страницы «ТПМС»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Общие сведения =&lt;br /&gt;
* Семестр: 4 (второй курс)&lt;br /&gt;
* Форма контроля: дифф. зачет&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Материалы прошлых лет&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [https://gitlab.com/Lipovsky/tpcc-course-2020 Репозиторий 2020 года]&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PL4_hYwCyhAvalRjpPlvaCYPpPE8TL-fn3 Видео лекций 2020 года]&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PL4_hYwCyhAvY-mbXKJwKLLdafLrSOIgRN Видео семинаров 2020 года]&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PL4_hYwCyhAvbW4DHFV3CY5CqupNqPf4jS Видео лекций 2019 года]&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PL4_hYwCyhAvZgIfxf4nLnjXprGGWBs5VO Видео семинаров 2019 года]&lt;br /&gt;
&lt;br /&gt;
= Преподаватели =&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Лектор&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** Липовский Роман&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Семинаристы&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** Александр Гришутин&lt;br /&gt;
** Дмитрий Инютин&lt;br /&gt;
** Евгений Госткин&lt;br /&gt;
** Евгений Шлыков&lt;br /&gt;
** Камиль Талипов&lt;br /&gt;
** Мария Феофанова&lt;br /&gt;
** Никита Михайлов&lt;br /&gt;
** Роман Санду&lt;br /&gt;
** Степан Калинин&lt;br /&gt;
** Вадим Плахтинский&lt;br /&gt;
** Михаил Анухин&lt;br /&gt;
&lt;br /&gt;
= Критерии получения оценки =&lt;br /&gt;
Домашние задания&lt;br /&gt;
В ходе семестра вам будет предложено X домашних заданий, в каждом задании будет несколько задач.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Стоимости&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
У каждой задачи будет своя стоимость в баллах.&lt;br /&gt;
У каждого домашнего задания (и иногда – у отдельных задач) будет дедлайн, после которого стоимость задач снижается.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Лимиты&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
У каждого домашнего задания будет лимит в баллах. Иногда он будет равен сумме баллов за отдельные задачи, а иногда суммарная стоимость задач будет чуть выше, чтобы можно было добирать баллы после дедлайна.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Дедлайны&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Стандартный дедлайн на домашнее задание – 2 недели. После дедлайна в течение недели стоимость задач линейно падает в два раза. После этого стоимость задачи не меняется.&lt;br /&gt;
Домашние задания будут наслаиваться друг на друга, будьте к этому готовы и планируйте свое время.&lt;br /&gt;
Не оставляйте решение домашнего задания на последние выходные перед дедлайном!&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Защита&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Чтобы задача была зачтена, мало написать код и пройти тесты, нужно защитить задачу.&lt;br /&gt;
Формат защиты остается на усмотрение семинариста, но в самом общем виде процедуру можно описать так: семинарист атакует вас каверзными вопросами на понимание тонкостей задачи и решает, достаточно ли вашего понимания или нет.&lt;br /&gt;
На защиту тоже устанавливается дедлайн. Сделано это для того, чтобы:&lt;br /&gt;
* Нагрузка на семинаристов и ассистентов распределялась равномерно в течение семестра&lt;br /&gt;
* Вы не успевали забывать решения собственных задач&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Базовая оценка&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
В конце семестра баллы за все домашние задания суммируются, после чего результат нормируется в базовую оценку от 0 до 8 баллов.&lt;br /&gt;
Точные правила округления будут известны во второй половине семестра, но можно сказать сразу, что выбить 8 баллов на этом этапе будет крайне сложно, для этого придется прорешивать почти все домашние задания.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Обязательные задачи&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Некоторые домашние работы и отдельные задачи будут обязательными для получения зачета.&lt;br /&gt;
Дедлайна на защиту для них не будет. Но помните, что если вы решите сдавать их в самом конце семестра, то семинарист может физически не успеть проверить их. В этот момент приоритет будет отдаваться студентам, которые претендуют на более высокие оценки.&lt;br /&gt;
&lt;br /&gt;
= План курса =&lt;br /&gt;
Темы лекций и семинаров:&lt;br /&gt;
# Introduction&lt;br /&gt;
# Взаимное исключение&lt;br /&gt;
# Механика потоков&lt;br /&gt;
# Мелкогранулярные блокировки&lt;br /&gt;
# Когерентность кэшей&lt;br /&gt;
# Модели памяти - I&lt;br /&gt;
# Moдели памяти - II&lt;br /&gt;
# Futures / Promises&lt;br /&gt;
# Лок-фри&lt;br /&gt;
# Планировщик / Work stealing&lt;br /&gt;
# Coroutines [в С++] - I&lt;br /&gt;
# Coroutines [в С++] - II&lt;br /&gt;
# ?&lt;br /&gt;
# Final&lt;br /&gt;
&lt;br /&gt;
= Список рекомендуемых материалов =&lt;br /&gt;
* Intro&lt;br /&gt;
** [https://deadlockempire.github.io/ Игра-тренировка Deadlock Empire]&lt;br /&gt;
** [https://github.com/chriskohlhoff/asio/ Asio]&lt;br /&gt;
** [http://think-async.com/Asio/asio-1.12.2/doc/asio/overview/core/basics.html Basic Asio Anatomy]&lt;br /&gt;
** [https://www.youtube.com/watch?v=D-lTwGJRx0o Thinking Asynchronously: Designing Applications with Boost.Asio], [http://cpp.mimuw.edu.pl/files/boost_vs_qt/asio/thinking_asynchronously.pdf слайды]&lt;br /&gt;
** [https://web.archive.org/web/20160714182232/https://www3.nd.edu/~dthain/courses/cse40243/fall2015/intel-intro.html Introduction to X86-64 Assembly for Compiler Writers]&lt;br /&gt;
** [https://manybutfinite.com/post/journey-to-the-stack/ Journey to the Stack]&lt;br /&gt;
** [https://eli.thegreenplace.net/2011/09/06/stack-frame-layout-on-x86-64/ Stack frame layout on x86-64]&lt;br /&gt;
&lt;br /&gt;
* Mutex&lt;br /&gt;
** [https://eli.thegreenplace.net/2018/basics-of-futexes/ Basics of Futexes]&lt;br /&gt;
** [https://www.microsoft.com/en-us/research/uploads/prod/2019/04/fork-hotos19.pdf A fork() in the road]&lt;br /&gt;
&lt;br /&gt;
* Condvar&lt;br /&gt;
** [https://preshing.com/20150316/semaphores-are-surprisingly-versatile/ Semaphores are Surprisingly Versatile]&lt;br /&gt;
** [http://greenteapress.com/semaphores/LittleBookOfSemaphores.pdf Little book of semaphores]&lt;br /&gt;
&lt;br /&gt;
* Fibers&lt;br /&gt;
** [https://www.boost.org/doc/libs/1_60_0/libs/coroutine/doc/html/coroutine/intro.html Корутина]&lt;br /&gt;
** [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4024.pdf Distinguishing coroutines and fibers.]&lt;br /&gt;
** [https://www.youtube.com/watch?v=Ts-1mWBmTNE Гор Нишанов, C++ Coroutines – a negative overhead abstraction]&lt;br /&gt;
** [https://github.com/lewissbaker/cppcoro A library of C++ coroutine abstractions for the coroutines TS]&lt;br /&gt;
** [https://www.youtube.com/watch?v=J31o0ZMQEnI Project Loom with Ron Pressler and Alan Bateman]&lt;br /&gt;
** [http://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html Project Loom: Fibers and Continuations for the Java Virtual Machine]&lt;br /&gt;
** [https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ForkJoinPool.html ForkJoinPool – планировщик (Java)]&lt;br /&gt;
** [https://github.com/Kotlin/KEEP/blob/master/proposals/coroutines.md Kotlin Coroutines Proposal]&lt;br /&gt;
** [https://www.youtube.com/watch?v=_hfBv0a09Jc KotlinConf 2017 - Introduction to Coroutines by Roman Elizarov]&lt;br /&gt;
** [https://jeffknupp.com/blog/2013/04/07/improve-your-python-yield-and-generators-explained/ Генераторы]&lt;br /&gt;
** [https://journal.stuffwithstuff.com/2013/01/13/iteration-inside-and-out/ Iteration Inside and Out]&lt;br /&gt;
** [https://twitter.github.io/finagle/guide/Futures.html Concurrent Programming with Futures]&lt;br /&gt;
** [https://github.com/facebook/folly/blob/master/folly/docs/Futures.md Folly Futures]&lt;br /&gt;
** [https://lewissbaker.github.io/2017/11/17/understanding-operator-co-await C++ Coroutines: Understanding operator co_await]&lt;br /&gt;
** [http://think-async.com/Asio/asio-1.12.2/doc/asio/tutorial/tuttimer2.html Using a timer asynchronously.]&lt;br /&gt;
** [https://blog.acolyer.org/2015/11/23/hashed-and-hierarchical-timing-wheels/ Hashed and Hierarchical Timing Wheels: Data Structures for the Efficient Implementation of a Timer Facility]&lt;br /&gt;
&lt;br /&gt;
* Futures&lt;br /&gt;
** [http://think-async.com/Asio/asio-1.16.0/doc/asio/overview/core/strands.html Strands: Use Threads Without Explicit Locking]&lt;br /&gt;
** [https://monkey.org/~marius/funsrv.pdf Marius Eriksen – Your Server as a Function]&lt;br /&gt;
** [https://www.youtube.com/watch?v=UL3TtTgt3oU CppCon 2017: Gor Nishanov “Naked coroutines live (with networking)”]&lt;br /&gt;
** [https://engineering.fb.com/developer-tools/futures-for-c-11-at-facebook/ Futures for C++11 at Facebook] &lt;br /&gt;
** [http://aturon.github.io/blog/2016/08/11/futures/ Zero-cost futures in Rust]&lt;br /&gt;
** [http://aturon.github.io/blog/2016/09/07/futures-design/ Designing futures for Rust]&lt;/div&gt;</summary>
		<author><name>Shajdurova.es</name></author>
	</entry>
</feed>