параллельные салаты, конкурентные бургеры, облачный кофе
https://habr.com/ru/company/wunderfund/blog/581994/
...есть захотелось
== An Intro to Threading in Python
https://realpython.com/intro-to-python-threading/
https://habr.com/ru/company/wunderfund/blog/581994/
...есть захотелось
== An Intro to Threading in Python
https://realpython.com/intro-to-python-threading/
Хабр
Разбираемся с параллельными и конкурентными вычислениями в Python
Я собираюсь рассказать историю о еде, раскрывающую различные возможности конкурентного и параллельного выполнения кода в Python. Прим. Wunder Fund: для задач, где не критичны экстремально низкие...
чот случайно даж задумался заюзать эту CMSку
Wagtail
https://habr.com/ru/post/582898/
https://python-noscripts.com/wagtail
и да по ходу питон превращается в пхп)))) наброс
Wagtail
https://habr.com/ru/post/582898/
https://python-noscripts.com/wagtail
и да по ходу питон превращается в пхп)))) наброс
Хабр
Wagtail — лучшая CMS на python в нашей галактике
Wagtail - это популярная CMS на основе Django. Django предоставляет огромные возможности - с его помощью созданы не только сайты, но и, например, популярный веб-сервис комментариев disqus , веб-сервис...
Forwarded from CyberYozh
Шифрование переписок в браузере
CryptoData – браузерное дополнение с функционалом шифрования данных для браузеров Mozilla Firefox и Google Chrome.
После установки дополнения. При нажатии на значок CryptoData появляется форма для текста, который вы хотите зашифровать (или расшифровать). Используемый алгоритм шифрования AES-256 на сегодняшний день является оптимальным решением для быстрого и безопасного шифрования. Если вдруг вас потянет в настройки сменить его на RC4 (Rivest cipher), настоятельно не советую: RC4 в 2018 году уже устарел и не является достаточно безопасным. Нажимаем Зашифровать, придумываем временный ключ. Ключ надо передать собеседнику альтернативным каналом.
Нажимаем Зашифровать, придумываем временный ключ. Ключ надо передать собеседнику альтернативным каналом.
CryptoData поможет вам зашифровать почту в онлайн-клиентах вроде Gmail, переписки в социальных сетях, но может применяться и для шифрования сообщений в мессенджерах.
CryptoData – браузерное дополнение с функционалом шифрования данных для браузеров Mozilla Firefox и Google Chrome.
После установки дополнения. При нажатии на значок CryptoData появляется форма для текста, который вы хотите зашифровать (или расшифровать). Используемый алгоритм шифрования AES-256 на сегодняшний день является оптимальным решением для быстрого и безопасного шифрования. Если вдруг вас потянет в настройки сменить его на RC4 (Rivest cipher), настоятельно не советую: RC4 в 2018 году уже устарел и не является достаточно безопасным. Нажимаем Зашифровать, придумываем временный ключ. Ключ надо передать собеседнику альтернативным каналом.
Нажимаем Зашифровать, придумываем временный ключ. Ключ надо передать собеседнику альтернативным каналом.
⚠️ Помните, что даже самый надежный алгоритм шифрования не будет безопасным при слабом, легко подбираемом ключе.CryptoData поможет вам зашифровать почту в онлайн-клиентах вроде Gmail, переписки в социальных сетях, но может применяться и для шифрования сообщений в мессенджерах.
чуток про мобильные сети
Эх жаль на канале уже год нет новых видео =(
== В чем разница между 1G, 2G, 3G и 4G? Детальный обзор
https://youtu.be/uNDvnJSUHd0
== Замирание сигнала в радиоканале
https://youtu.be/Rcvs1FOFYj0
- быстрые замирания
- медленные замирания (изза метео условий)
- многолучевость (тот же сигнал со смещением во времени)
- нестабильность параметров приемника/передатчика
- ослабление сигнала в лесу вдвое больше чем в городе
== Транкинговая система мобильной связи. Радиальная система мобильной связи
https://youtu.be/w1mVd9hktXs
радиальная - каждому отдельные частоты
транкинговая - каждой сессии отдельная частота
== Handover – один из основных принципов сотовой связи.
https://youtu.be/_eeKzommA9U
возможность перехода из одной соты в другую - БС измеряет качество связи и выбирает лучшую (только в режиме приема/передачи)
== Основной принцип построения сотовой связи.
https://youtu.be/0VDWVSfiapg
сота максимального радиуса 35км !!!
в городах часто не привышает 1.5км (изза нагрузки)
- при перегрузке уменьшают мощность перегруженной БС что бы переключить на другую БС
Одна бс состоит из нескольких кластерных антенн (каждая по 120 или 60 градусов)
одни и теже частоты используются многократно в разных кластерах ! так как они используются не в соседними а сотами через одни (минимум)
== история мобильной связи
https://youtu.be/9A3aOpE9dNk
Эх жаль на канале уже год нет новых видео =(
== В чем разница между 1G, 2G, 3G и 4G? Детальный обзор
https://youtu.be/uNDvnJSUHd0
== Замирание сигнала в радиоканале
https://youtu.be/Rcvs1FOFYj0
- быстрые замирания
- медленные замирания (изза метео условий)
- многолучевость (тот же сигнал со смещением во времени)
- нестабильность параметров приемника/передатчика
- ослабление сигнала в лесу вдвое больше чем в городе
== Транкинговая система мобильной связи. Радиальная система мобильной связи
https://youtu.be/w1mVd9hktXs
радиальная - каждому отдельные частоты
транкинговая - каждой сессии отдельная частота
== Handover – один из основных принципов сотовой связи.
https://youtu.be/_eeKzommA9U
возможность перехода из одной соты в другую - БС измеряет качество связи и выбирает лучшую (только в режиме приема/передачи)
== Основной принцип построения сотовой связи.
https://youtu.be/0VDWVSfiapg
сота максимального радиуса 35км !!!
в городах часто не привышает 1.5км (изза нагрузки)
- при перегрузке уменьшают мощность перегруженной БС что бы переключить на другую БС
Одна бс состоит из нескольких кластерных антенн (каждая по 120 или 60 градусов)
одни и теже частоты используются многократно в разных кластерах ! так как они используются не в соседними а сотами через одни (минимум)
== история мобильной связи
https://youtu.be/9A3aOpE9dNk
YouTube
В чем разница между 1G, 2G, 3G и 4G? Детальный обзор
В данном видео подробно рассмотрены 4 поколения мобильной связи. Начиная c 1G и заканчивая 4G.
1) Что такое G ? – 00:19;
2) Мобильная связь 1G. Сети первого поколения. Стандарты AMPS, NMT – 01:02;
3) Множественный доступ с частотным разделением FDMA – 01:32;…
1) Что такое G ? – 00:19;
2) Мобильная связь 1G. Сети первого поколения. Стандарты AMPS, NMT – 01:02;
3) Множественный доступ с частотным разделением FDMA – 01:32;…
https://google.github.io/flatbuffers/
Многообещающая либа для сериализации от гугла
Многообещающая либа для сериализации от гугла
== SSh-протокол. Защита
https://youtu.be/RzjxuSNTGeU
ничего нового, но если коротко:
- можно посмотреть лог попыток брутфорса на серваке
- вырубайте доступ по паролю вспринципе
- hydra работает оч просто
- fail2ban очень помогает сразу отрубать айпишники которые ошибаются в попытках авторизации на сервак
- лучше закрывать 22 порт и переносить его на чтото еще пятизначное
- закрывать доступ допустимыми IP пулами
https://youtu.be/RzjxuSNTGeU
ничего нового, но если коротко:
- можно посмотреть лог попыток брутфорса на серваке
/var/log/btmp
- можно посомтреть лог сессий на серваке /var/log/auth.log
- юзайте RSA ключи а не пароли- вырубайте доступ по паролю вспринципе
- hydra работает оч просто
- fail2ban очень помогает сразу отрубать айпишники которые ошибаются в попытках авторизации на сервак
- лучше закрывать 22 порт и переносить его на чтото еще пятизначное
- закрывать доступ допустимыми IP пулами
YouTube
SSh-протокол. Защита и атака
Дорогие друзья ❤️ У нас появился большой платный курс по анонимности и безопасности в сети. Ознакомиться с курсом можно 👉 https://book.cyberyozh.com/ru/kurs-kompleksnaya-nastrojka-bezopasnosti-i-anonimnosti/
Еще мы запустили небольшие платные курсы с ними…
Еще мы запустили небольшие платные курсы с ними…
== Why was Facebook down for five hours?
https://youtu.be/-wMU8vmfaYo
https://youtu.be/-wMU8vmfaYo
YouTube
Why was Facebook down for five hours?
Facebook was down for five hours last week. What happened and what do DNS and BGP have to do with it?
Facebook's explanation: https://engineering.fb.com/2021/10/05/networking-traffic/outage-details/
Support these videos on Patreon: https://www.patreon.com/beneater…
Facebook's explanation: https://engineering.fb.com/2021/10/05/networking-traffic/outage-details/
Support these videos on Patreon: https://www.patreon.com/beneater…
шикарный новый для меня канал по безопасности от разраба IBGroup
== Linux значит безопасно? О настройке Ubuntu для серверов и рабочих станций.
https://youtu.be/sJYa40oXJB0
- современное железо с TPM
- зашифровать весь диск с LUX
- секьюр бут!
- linux over tpm
- Kernel DMA protection!
- пароль большой и стойкий
то что у вас линукс это не значит безопасно
open source != безопасность
- обновляться ! обязательно !
- не работать под рутом
- минимизировать количество пакетов что устанавливаются
- SELinux
- AppArmor
- firewall - не юзать дефолты
- разрешить только доступ по ключам
- а нужен вообще ли доступ удаленный впринципе ?
- удалить лишние демоны и пр пакеты
- fail2ban
- жесткие полиси по бану за ошибку подключения
- ПРОВЕРЯЙ то что ставишь
== Как проверить свой айфон на слежку и взлом. Вирус Pegasus и защита вашего iOS устройства
https://youtu.be/I-ZwblCnBO4
- атаки идут в основном на встроенные приложения в ОС. остальные приложения работают в "песочницах"
- выключить IMessage
- сделать пароль больше чем 6 цифр
- отключить шторку при заблокрированном экране
== Linux значит безопасно? О настройке Ubuntu для серверов и рабочих станций.
https://youtu.be/sJYa40oXJB0
- современное железо с TPM
- зашифровать весь диск с LUX
- секьюр бут!
- linux over tpm
- Kernel DMA protection!
- пароль большой и стойкий
то что у вас линукс это не значит безопасно
open source != безопасность
- обновляться ! обязательно !
- не работать под рутом
- минимизировать количество пакетов что устанавливаются
- SELinux
- AppArmor
- firewall - не юзать дефолты
- разрешить только доступ по ключам
- а нужен вообще ли доступ удаленный впринципе ?
- удалить лишние демоны и пр пакеты
- fail2ban
- жесткие полиси по бану за ошибку подключения
- ПРОВЕРЯЙ то что ставишь
== Как проверить свой айфон на слежку и взлом. Вирус Pegasus и защита вашего iOS устройства
https://youtu.be/I-ZwblCnBO4
- атаки идут в основном на встроенные приложения в ОС. остальные приложения работают в "песочницах"
- выключить IMessage
- сделать пароль больше чем 6 цифр
- отключить шторку при заблокрированном экране
YouTube
Linux значит безопасно? О настройке Ubuntu для серверов и рабочих станций.
Итак, сегодня поговорим о безопасности Linux систем. К сожалению, тема настолько обширная, что не стоит рассчитывать на его полноту и ответы на все вопросы. С другой стороны даже базовых мер, рассказанных в видео зачастую не применяется, уповая на мнимое…
== Транзисторы и смерть закона Мура https://youtu.be/lHptVT-tS-Y
YouTube
Транзисторы и смерть закона Мура [2veritasium]
Помощь проекту: https://www.patreon.com/VertDider
Согласно закону Мура, вычислительная техника становится в 2 раза лучше каждые 18 месяцев. Главным образом — за счёт того, что размер транзисторов уменьшается, а их количество на чипе растёт. Но может ли такое…
Согласно закону Мура, вычислительная техника становится в 2 раза лучше каждые 18 месяцев. Главным образом — за счёт того, что размер транзисторов уменьшается, а их количество на чипе растёт. Но может ли такое…
== курс "Параллельное программирование"
https://youtube.com/playlist?list=PLlb7e2G7aSpQCPeKTcVBHJns_JOxrc_fT
про многопоточность, многопроцессорность, способы ускорить не толлько разбивая на много потоков, алгоритмы распределенных вычислений, opencl и пр
ШИКАРНЫЙ лектор. хороший курс
говорит быстро. поэтому больше чем в 1.5 не получилось ускорить
https://youtube.com/playlist?list=PLlb7e2G7aSpQCPeKTcVBHJns_JOxrc_fT
про многопоточность, многопроцессорность, способы ускорить не толлько разбивая на много потоков, алгоритмы распределенных вычислений, opencl и пр
ШИКАРНЫЙ лектор. хороший курс
говорит быстро. поэтому больше чем в 1.5 не получилось ускорить
BufWriter<Master<'_>>
== курс "Параллельное программирование" https://youtube.com/playlist?list=PLlb7e2G7aSpQCPeKTcVBHJns_JOxrc_fT про многопоточность, многопроцессорность, способы ускорить не толлько разбивая на много потоков, алгоритмы распределенных вычислений, opencl и пр …
== Лекция 1. Введение (курс «Параллельное программирование»)
https://youtu.be/kbERSWTGtKw
___Одно ядро
SIMD - Single Instruction Multi Data
SSE - Streaming SIMD Extensions
- это доп набор регистров 8 128битных регистров для 4 чисел по 32 бит (фп)
___Много ядер
- потоки
- процессы
- вычислительный кластер (MPI, Hadoop, spark)
- *fibers
последовательный код - тот который НЕВОЗМОЖНО распараллелить = работают с ним ГАРАНТИРОВАННО в одном потоке
единица планирования в ОС это один поток
IPC - interprocess communication
- file
- mmap
- pipe
- socket
socket - дексриптор в ОС (число) и работают в ОС как с файлом, как будто через сеть
критерий (много процессов или много потоков)
- быстродействие
- защищенность памяти процесса
- надежность
- поддерживаемость
TLB - translation localside buffer - кэш соответствия виртуализации mem
boost - абстракция над Win/Posix Threads
demon поток аппа ждать не будет
https://youtu.be/kbERSWTGtKw
___Одно ядро
SIMD - Single Instruction Multi Data
SSE - Streaming SIMD Extensions
- это доп набор регистров 8 128битных регистров для 4 чисел по 32 бит (фп)
___Много ядер
- потоки
- процессы
- вычислительный кластер (MPI, Hadoop, spark)
- *fibers
последовательный код - тот который НЕВОЗМОЖНО распараллелить = работают с ним ГАРАНТИРОВАННО в одном потоке
единица планирования в ОС это один поток
IPC - interprocess communication
- file
- mmap
- pipe
- socket
socket - дексриптор в ОС (число) и работают в ОС как с файлом, как будто через сеть
критерий (много процессов или много потоков)
- быстродействие
- защищенность памяти процесса
- надежность
- поддерживаемость
TLB - translation localside buffer - кэш соответствия виртуализации mem
boost - абстракция над Win/Posix Threads
demon поток аппа ждать не будет
== Лекция 2. Корректная работа с потоками
https://youtu.be/qA5XLTxmsP0
join ждет когда завершится тот поток который передали
что бы остановить поток раньше - послать сигнал ему
NPTL - Native Posix Threads Library
user-space переходит kernel-space для того что бы спланировать/управлять новый поток (потоками заведует ОС, ОС имеет защищенную модель памяти, владеет единолично этими данными) - стараться избегать переходов
поток проверяет у себя
любой syscall может завершить поток
каждый вызов test_cacnel совершает переход в кернел = медленно!
НО можно сказать что он не хочет быть завершен ! есть флаг
https://youtu.be/qA5XLTxmsP0
join ждет когда завершится тот поток который передали
что бы остановить поток раньше - послать сигнал ему
NPTL - Native Posix Threads Library
ps покажет процессыps -m еще покажет и потокиuser-space переходит kernel-space для того что бы спланировать/управлять новый поток (потоками заведует ОС, ОС имеет защищенную модель памяти, владеет единолично этими данными) - стараться избегать переходов
pthread_cancel просто устанавливает флаг IS_CANCELED этот флаг доступен внутри потока. сам код может решить что делать дальше. точное время завершения мы указать не можем.поток проверяет у себя
pthread_test_cancel() и если флаг выставлен то поток завершится. pthread_cleanup_push(*f)
pthread_test_cancel()
pthread_cleanup_pop(*f)
- формирование стэка функций для корректного завершения потока (освободить ресурсы например). если был вызван pthread_test_cancel
cancelation_point - может завершить текущий поток, договоренностьлюбой syscall может завершить поток
каждый вызов test_cacnel совершает переход в кернел = медленно!
НО можно сказать что он не хочет быть завершен ! есть флаг
YouTube
Лекция 2. Корректная работа с потоками
https://compscicenter.ru/
– Механизм запуска потока
– Корректное завершение потоков:
cancellation points (примеры кода в glibc)
interrupted exception
– Сравнение различных потоков (POSIX, boost/С++11, java)
– Проброс исключений между потоками
Лекция…
– Механизм запуска потока
– Корректное завершение потоков:
cancellation points (примеры кода в glibc)
interrupted exception
– Сравнение различных потоков (POSIX, boost/С++11, java)
– Проброс исключений между потоками
Лекция…
== Лекция 3. Примитивы синхронизации
https://youtu.be/kNWSciQtHEc
MUTEX - mutual exclusion - взаимное исключение
recursive_mutex
+ можно захватить в рамках одного потока НЕСКОЛЬКО раз (в обычном только один раз)
timed_mutex
+ захватить с ограничением по временем (типа если не удалось захватить на 10мс то не очень то и хотелось)
shared_mutex
+ захват на чтение
+ захват на чтение с возмоностью дозахвата на запись
spin_mutex
+ активное ожидание в захвате => НЕ ПРОВАЛИВАЕТСЯ В КЕРНЕЛ = бесконечный цикл в одном потоке
+ меньше вероятность блокировки при мелких операциях
CAS - Compare-and-set - compare-and-swap
и сравнивает и пытается записать если успешно. АТОМАРНА НА УРОВНЕ ПРОЦЕССОРА и возвращает успех (x86
два потока войдут в одно место НО ТОЛЬКО ОДИН сможет выполнить CAS операцию и получит там успех. поэтому второй пойдет на повторный цикл
Futex - fast userspace muTexes
Те операции которые могут быть в юзерспейсе - идут в юзерспейсе, а если не могут быть - проваливаются в кернел.
(тоже реализованы на CAS)
https://youtu.be/kNWSciQtHEc
MUTEX - mutual exclusion - взаимное исключение
pthread_mutex_* ВСЕГДА переводит в кернел = МЕДЛЕННО !recursive_mutex
+ можно захватить в рамках одного потока НЕСКОЛЬКО раз (в обычном только один раз)
timed_mutex
+ захватить с ограничением по временем (типа если не удалось захватить на 10мс то не очень то и хотелось)
shared_mutex
+ захват на чтение
+ захват на чтение с возмоностью дозахвата на запись
spin_mutex
+ активное ожидание в захвате => НЕ ПРОВАЛИВАЕТСЯ В КЕРНЕЛ = бесконечный цикл в одном потоке
atomic_cas
оч полезно когда работаешь с примитивами+ меньше вероятность блокировки при мелких операциях
CAS - Compare-and-set - compare-and-swap
и сравнивает и пытается записать если успешно. АТОМАРНА НА УРОВНЕ ПРОЦЕССОРА и возвращает успех (x86
cmpxchg)два потока войдут в одно место НО ТОЛЬКО ОДИН сможет выполнить CAS операцию и получит там успех. поэтому второй пойдет на повторный цикл
Futex - fast userspace muTexes
Те операции которые могут быть в юзерспейсе - идут в юзерспейсе, а если не могут быть - проваливаются в кернел.
(тоже реализованы на CAS)
YouTube
Лекция 3. Примитивы синхронизации
https://compscicenter.ru/
Необходимость синхронизации: простые гонки данных
Реализация примитивов синхронизации: алгоритм булочника
Виды мьютексов:
рекурсивные/нерекурсивные
read/write
spin
futex
CAS-операции и атомики
Лекция №3…
Необходимость синхронизации: простые гонки данных
Реализация примитивов синхронизации: алгоритм булочника
Виды мьютексов:
рекурсивные/нерекурсивные
read/write
spin
futex
CAS-операции и атомики
Лекция №3…
== Лекция 4. Condition variables. Алгоритмы синхронизации
https://youtu.be/79d5WI5RTp8
лениризуемость программы - это код который может дать одни и те же результаты при последовательном так и при паралелльном исполнении
https://youtu.be/79d5WI5RTp8
лениризуемость программы - это код который может дать одни и те же результаты при последовательном так и при паралелльном исполнении
YouTube
Лекция 4. Condition variables. Алгоритмы синхронизации
https://compscicenter.ru/
Condition variables:
Пример на POSIX
Пример на Java
Алгоритмы синхронизации:
Грубая
Тонкая
Лекция №4 в курсе "Параллельное программирование", весна 2016
Преподаватель курса: Евгений Леонидович Калишенко
Страница…
Condition variables:
Пример на POSIX
Пример на Java
Алгоритмы синхронизации:
Грубая
Тонкая
Лекция №4 в курсе "Параллельное программирование", весна 2016
Преподаватель курса: Евгений Леонидович Калишенко
Страница…
Forwarded from Записки админа
🔧 А вы знали, что в authorized_keys файле можно указывать не только сам ключ, но и дополнительные команды, или ограничения? Чуть подробнее об этом вот здесь: https://twitter.com/cyb3rops/status/1395009709787258882
А вообще, увидел я это в очередном, казалось бы, очевидном мануале по усилению безопасности SSH: https://blog.zsec.uk/locking-down-ssh-the-right-way/
#ssh #security #напочитать
А вообще, увидел я это в очередном, казалось бы, очевидном мануале по усилению безопасности SSH: https://blog.zsec.uk/locking-down-ssh-the-right-way/
#ssh #security #напочитать
Forwarded from oleg_log (Oleg Kovalov)
Ого какую вещь я не замечал.
Easy and simple Prometheus SLO (service level objectives) generator
https://github.com/slok/sloth
Easy and simple Prometheus SLO (service level objectives) generator
https://github.com/slok/sloth
== Лекция 5. Алгоритмы синхронизации
https://youtu.be/7aabRlVERPc
lock-free - гарантируется что ни один поток не будет заблокирован
wait-free - это lock-free + гарантируется за сколько шагов завершится
мы должны гарантировать иммутабельность структуры для CAS, что бы работать с числами большими чем одно машинное слово, передавая указатель на замену в CAS
https://youtu.be/7aabRlVERPc
lock-free - гарантируется что ни один поток не будет заблокирован
wait-free - это lock-free + гарантируется за сколько шагов завершится
мы должны гарантировать иммутабельность структуры для CAS, что бы работать с числами большими чем одно машинное слово, передавая указатель на замену в CAS
YouTube
Лекция 5. Алгоритмы синхронизации
https://compscicenter.ru/
Алгоритмы синхронизации:
– Оптимистичная
– Ленивая
– Неблокирующая
Классы алгоритмов:
– lock-free
– wait-free
– lock-free алгоритм снятия снэпшота атомарных регистров
Лекция №5 в курсе "Параллельное программирование"…
Алгоритмы синхронизации:
– Оптимистичная
– Ленивая
– Неблокирующая
Классы алгоритмов:
– lock-free
– wait-free
– lock-free алгоритм снятия снэпшота атомарных регистров
Лекция №5 в курсе "Параллельное программирование"…
== Лекция 6. Ошибки || программирования
https://youtu.be/2A3Q0dA6Tlc
1) dead lock
- перекрестный лок ресурсов = захватывать ресурсы глобально на уровне приложения
- использование не рекурсивного примитива синхронизации в одном потоке
- форк может скопировать и примитив синхронизации и форк будет ждать вечно ->
2) data race
в ФП они 99.999% невозможны
3) ABA' - подмена незаметная для других (буферизация, кэширование, аллокаторы)
4) потерянный сигнал (послали SIG но обработчик еще не поставили). надо выставлять SIG_MASK показывая явно что этот поток не реагирует на сигнал.
5) инверсия приорететов - когда низкоприорететный поток захватил лок и не успел с ним поработать. заблокировав этим более приорететные потоки. в результате работает тот кто посредине... а до малоприорететного может и не дойти очередь и самый приорететный может никогда не отблокироваться этим самым.
https://youtu.be/2A3Q0dA6Tlc
1) dead lock
- перекрестный лок ресурсов = захватывать ресурсы глобально на уровне приложения
- использование не рекурсивного примитива синхронизации в одном потоке
- форк может скопировать и примитив синхронизации и форк будет ждать вечно ->
pthread_at_fork()
fork делает COW относительно родительского, ну мол нафига копировать все ? давай скопируем только то что меняет родитель или собирается менять2) data race
в ФП они 99.999% невозможны
3) ABA' - подмена незаметная для других (буферизация, кэширование, аллокаторы)
4) потерянный сигнал (послали SIG но обработчик еще не поставили). надо выставлять SIG_MASK показывая явно что этот поток не реагирует на сигнал.
5) инверсия приорететов - когда низкоприорететный поток захватил лок и не успел с ним поработать. заблокировав этим более приорететные потоки. в результате работает тот кто посредине... а до малоприорететного может и не дойти очередь и самый приорететный может никогда не отблокироваться этим самым.
YouTube
Лекция 6. Ошибки || программирования
https://compscicenter.ru/
Основные ошибки многопоточного программирования:
– Гонки данных (Data Race)
– Взаимная блокировка (Deadlock)
– Потерянный сигнал
Специфические ошибки:
– Реакция потока на сигнал
– Блокировки при fork многопоточных…
Основные ошибки многопоточного программирования:
– Гонки данных (Data Race)
– Взаимная блокировка (Deadlock)
– Потерянный сигнал
Специфические ошибки:
– Реакция потока на сигнал
– Блокировки при fork многопоточных…
== Лекция 7. Атомарные снимки регистров
https://youtu.be/oq6krtEvCLA
обьяснение лайтовой версии алгоритма "MVCC" (который используется в любой нормальной БД)
https://youtu.be/oq6krtEvCLA
обьяснение лайтовой версии алгоритма "MVCC" (который используется в любой нормальной БД)
YouTube
Лекция 7. Атомарные снимки регистров
https://compscicenter.ru/
Wait-free атомарный снимок регистров
Решение проблемы ABA на tagged pointers
Лекция №7 в курсе "Параллельное программирование", весна 2016
Преподаватель курса: Евгений Леонидович Калишенко
Страница лекции на сайте CS центра: …
Wait-free атомарный снимок регистров
Решение проблемы ABA на tagged pointers
Лекция №7 в курсе "Параллельное программирование", весна 2016
Преподаватель курса: Евгений Леонидович Калишенко
Страница лекции на сайте CS центра: …
== Лекция 8. Java.util.concurrent
https://youtu.be/zMj1Qi_N9Qc
джаве видней какой мутекс заюзать... либо быть супер оптимистичной и вставить тут Spin-Lock либо быть более прагматичной - и вставить обычный мутекс
если так поулчается что всего один поток и много мутексов то жвм отрубает все мутексы совсем... и работает так до тех пор пока нет новых потоков
ну и да... ей видней когда наесться памяти и заснуть )))))
https://youtu.be/zMj1Qi_N9Qc
джаве видней какой мутекс заюзать... либо быть супер оптимистичной и вставить тут Spin-Lock либо быть более прагматичной - и вставить обычный мутекс
если так поулчается что всего один поток и много мутексов то жвм отрубает все мутексы совсем... и работает так до тех пор пока нет новых потоков
ну и да... ей видней когда наесться памяти и заснуть )))))
YouTube
Лекция 8. Java.util.concurrent
https://compscicenter.ru/
Пример CAS и ORM
Пулы потоков
Контроль задач через Future
Потокобезопасные контейнеры
Лекция №8 в курсе "Параллельное программирование", весна 2016
Преподаватель курса: Евгений Леонидович Калишенко
Страница лекции на сайте CS…
Пример CAS и ORM
Пулы потоков
Контроль задач через Future
Потокобезопасные контейнеры
Лекция №8 в курсе "Параллельное программирование", весна 2016
Преподаватель курса: Евгений Леонидович Калишенко
Страница лекции на сайте CS…