Лекция 4. Condition variables. Алгоритмы синхронизации

  Рет қаралды 11,072

Computer Science Center

Computer Science Center

8 жыл бұрын

compscicenter.ru/
Condition variables:
Пример на POSIX
Пример на Java
Алгоритмы синхронизации:
Грубая
Тонкая
Лекция №4 в курсе "Параллельное программирование", весна 2016
Преподаватель курса: Евгений Леонидович Калишенко
Страница лекции на сайте CS центра: goo.gl/qm2xe7

Пікірлер: 7
@shackoor
@shackoor 3 жыл бұрын
Относительно new as a system call. И автор лекции и господин Олег Левченко озвучили полуправду, что порой хуже неправды в целом. Триггерит ли new системный вызов - и да и нет одновременно. Как так? Память - это один из основных и важнейших ресурсов в ОС, и ее выделение и управление не может обходиться без ядра системы (читай - системных вызовов). Но такой вызов слишком дорог, это известно всем, и по сему, в рамках алгоритмов оптимизации, разработчики операционных систем/компиляторов пошли на некоторые ухищрения, в результате которых на аллоциорванных страницах памяти new не проваливается в kernel, но если ресурс страницы памяти будет исчерпан, то следующий new станет причиной системного вызова, для аллоцирования нового сегмента/страницы в памяти. Так как автор лекций прекрасно об этом знает, и является профессионалом своего дела, то он понимает, что если есть хотя бы малая вероятность попасть на системный вызов в высоконагруженной среде - значит эту вероятность надо рассматривать как 100%-ую. К сожалению, надо наверное такие вещи проговаривать, что бы не вводить в заблуждение людей незнающих.
@user-yc2rj3du8f
@user-yc2rj3du8f 9 ай бұрын
Эдуардов Эдуард... Походу, родоки не сильно парились с именем)
@lizzienovigot
@lizzienovigot Жыл бұрын
В примере на java с wait/notify есть while танец, из-за возможности спонтанных просыпаний, а в коде на C нет. Почему?
@ki16or
@ki16or 3 жыл бұрын
иммутабельная? синоним персистентная. еще не досмотрел до конца, но возможно там дальше вспомнили.
@lizzienovigot
@lizzienovigot Жыл бұрын
Это не одно и тоже.
@oleglevchenko5772
@oleglevchenko5772 5 жыл бұрын
Классная лекция. Тока не приводит new к системному вызову, по крайней мере на Линуксе. Легко проверяется strace'ом.
@illiadenysenko7776
@illiadenysenko7776 4 жыл бұрын
Если это выделение в куче, то от состояния алокатора зависит, насколько я понимаю. Если отхватил себе достаточно памяти, то не будет. А если вот этот new потребовал новую память, а у нас ее пока что нет, то будет сискол.
Лекция 5. Алгоритмы синхронизации
1:26:01
Computer Science Center
Рет қаралды 10 М.
Лекция 6. Ошибки || программирования
1:22:46
Computer Science Center
Рет қаралды 9 М.
Получилось у Миланы?😂
00:13
ХАБИБ
Рет қаралды 4,9 МЛН
Slow motion boy #shorts by Tsuriki Show
00:14
Tsuriki Show
Рет қаралды 10 МЛН
Nastya and SeanDoesMagic
00:16
Nastya
Рет қаралды 40 МЛН
Подготовка к Java собеседованию #6 Stream API
32:06
Стандарт C++11/14: вывод типов и move семантика
2:08:05
Computer Science Center
Рет қаралды 11 М.
Многопоточность в Java: основы
1:23:05
Computer Science Center
Рет қаралды 111 М.
[C++11] STL: Coundition Variable - Прерывание потоков
11:36
Лекция 3. Примитивы синхронизации
1:22:27
Computer Science Center
Рет қаралды 17 М.
Самая глупая ошибка в коде на C++
2:59
Яндекс Образование
Рет қаралды 27 М.
Получилось у Миланы?😂
00:13
ХАБИБ
Рет қаралды 4,9 МЛН