закончил физтех в далеком 2016м, весь материал на этот момент приходится знать по работе и так. Но структурированность и подача материала не оставляют шанса на пропуск новых видео. Поделился каналом со всеми кому могло быть релевантно)
мне кажется или лектор становится чуть улыбчивее с каждым видео ? это или весна так радует или поглощенные души с весенним настроением отражаются на лице этого некроманта?)
Лично мне не хватает какой-то визуализации - это кратно увеличит кол-во зрителей и кол-во тех, кто досмотрел до конца. Как пример - видео Alek OS, или же вариант попроще - курс по сетям от Андрея Созыкина - поток слов тут же отражается в некоторой визуализации - схемы, таблицы, и это очень сильно улучшает восприятие, особенно учитывая что речь о технической области
Очень доходчиво, всё по полочкам. Обожаю системное программирование на ассемблере(fasm|nasm) LInux - был счастлив увидеть здесь видео о работе с ядром на ассемблере.
Спасибо за Ваш труд. Очень полезно, но я немного запутался. Я полагал что процессы существуют в рамках потока, а сам поток это нечто связанное с ядрами процессора. Такое представление у меня от Node.js Или там эти понятия несколько отличаются или я не правильно их трактовал. Буду разбираться.
Здравствуйте, спасибо большое за видео! Подскажите пожалуйста, программа может состоять из нескольких процессов? Из видео как будто нет. Но где-то читал что может
Можно так сказать, например Google Chrome - у него много процессов, а "программа", с которой взаимодействует пользователь одна. Но, конечно, с точки зрения ОС программа в состоянии выполнения - это процесс, и никак иначе.
На этот счёт разные мнения есть, про pid vs pee-eye-dee, но эльф он и в средиземье эльф 😅 www.quora.com/How-should-I-pronounce-pid-as-in-Process-ID#:~:text=Pronounce%20pid%20(process%20ID)%20as,rhymes%20with%20kid%20or%20squid.
Спасибо, отлично структурированная инфа! user-level threads это получается те самые green threads т.е. легковесные потоки а-ля корутины/горутины/файберы?
В этом изложении темы мне не хватает описания адресного пространства много-поточных процессом и нюансов работы со стеками в них. И, кстати, мне вообще не попадалось хорошего изложения этой темы. Так что это вовсе не упрёк, а лишь слова для алгоритмов и скромное пожелание попробовать рассказать об этом в будущем. ;) 2024-03-19 11:30
Upd: а также, я помню, что т.н. "пользовательские потоки" нельзя было разнести по ядрам. Или что-то изменилось? Если нет, то на этом стоит сделать акцент, а то студенту покажется, что они лучше (быстрее создаются), в то время, как толку от них в определенных классах приложений - ноль.
Может кто нибудь объяснить что значит "в адресное пространство каждого процесса по фиксированному виртуальному адресу проецируется ядро" и зачем это нужно 03:42 за ранее спасибо
У ядра, как и у всех роцессов есть свой код и свои данные, и существует оно в единственном экземпляре. Каждому процессу в системе необходимо имет доступ к ядру - для выполнения системных вызовов, доступа к его данным. В микроядерных системах такой доступ предоставляется в виде межпроцессного взаимодействия посредством сообщений, а в монолитных системах физическая память, в которой расположен код и данные ядра отображается с помощью механизма виртуальной памяти в каждый процесс. Этакая общая память, если хотите, между процессами. Конечно же, она защищена определённым образом, иначе бы легко было всё испортить, но если не усложнять - то как-то так.
Я пользуюсь Windows разных версий и Windows Sergey тоже, из Linux привык к Ubuntu, из BSD предпочитаю FreeBSD, для обучения - ReactOS и NetBSD, на маках выбор небольшой - macOS, но девятку никогда всерьёз не использовал, только поигрался. Ну всякого разного ещё можно найти по мелочи.
@@abragin про windows мне понятно,я вот тоже когда пользовался то убунту приелась (в хорошем смысле) ) freebsd пробовал на виртуальной машине,говорят zfs молодец для серверов но он для меня как густой лес , мака у меня не было
Потому что адрес следующей команды (т.е. счетчик команд, регистр eip/rip) тоже копируется. Получается, что следующая команда - это то, что после fork().
Я про это как раз начал видео делать, но что-то там так много всего, что думаю разбить на несколько отдельных тем, и сперва ещё про файловую систему рассказать
@@abraginвначале задан тон терминалов и олдскульных текстовых редакторов, а потом появлятся ide и шиндовская панель задач. Возможно, стоило все сделать в одном стиле (vs + панели задач) либо (олдскульный редактор + htop). Ну, это конечно тонкости
Спасибо! Подготовка видео занимает довольно много времени, и дело даже не в технических моментах типа записи и монтажа видео, а в творческом: порой, неделю я просто думаю как выстроить повествование так, чтобы всё было логично "от и до", без перескакивания по темам, какие интересные подробности добавить, а что только мешает и можно исключить. И до тех пор, пока не выложу на всеобщее обозрение, не могут быть уверен насколько правильно сделал. Оценивают только зрители, по комментариям, лайкам и новым подписчикам я уже немножко понимаю, что было правильно, а что не очень.
@@abragin Есть опыт в подготовке контента, могу помогать в подготовке по мере возможностей. Помогаю из-за того, что контент интересный и не стандартный.
Объяснение очень хорошее, но все-таки из за неимения практики, это не до конца понятно. Надо бы несколько лабораторных работ сделать на С++ под Linux and Windows.
@@abragin я имел ввиду межпроцессное взаимодействие.в если адресное пространство у потоков общее в рамках процесса, то и конкуренция за ресурсы например переменные и их блокировки присутствует?
Не понимал раньше, книжки по С++ на 100-120 страниц. Для кого она написана? Кто уже досконально знает С++? Так и эти видео, чтобы хорошо объяснить матерьял конкретно в этом видео, понадобится пару часов, а кто и так знает что и зачем - зачем смотреть видео?
не понимаю, какие то книшки по плюсикам? стандарт плюсов - это 5000 страниц гонг-вопрос: а для кого и зачем пишутся какие то книшки по плюсикам? вы стандарт по плюсикам читайте, зачем вам какие то книшки? не хотите? а чего вдруг не хотите?
Шикарно. А можно видео где все это в практику превращается? Желательно на питоне, threading, multiprocessing с тонкостями, флагами и как это под капотом в линукс работает. :)
Минута молчания в конце как всегда прекрасна😅
Это прям стиль!
Взгляд в душу))
Это он через экран смотрит на зрителей и определяет для себя зашла ли тема)
К тому моменту просто уже все данные прочитаны и воспроизведены, а исполняемая программа ещё не завершена... Вот и получается пауза.
@@timandr7540 system_pause();
закончил физтех в далеком 2016м, весь материал на этот момент приходится знать по работе и так. Но структурированность и подача материала не оставляют шанса на пропуск новых видео. Поделился каналом со всеми кому могло быть релевантно)
Огромное спасибо! Очень приятно, что растёт не просто число просмотров, а количество подписчиков
мне кажется или лектор становится чуть улыбчивее с каждым видео ? это или весна так радует или поглощенные души с весенним настроением отражаются на лице этого некроманта?)
Лично мне не хватает какой-то визуализации - это кратно увеличит кол-во зрителей и кол-во тех, кто досмотрел до конца. Как пример - видео Alek OS, или же вариант попроще - курс по сетям от Андрея Созыкина - поток слов тут же отражается в некоторой визуализации - схемы, таблицы, и это очень сильно улучшает восприятие, особенно учитывая что речь о технической области
плюсую, не хватает визуализации
Сделайте под финальное молчание еще плавное погашение света в комнате....
Спасибо за познавательный контент, ждём продолжения
и в темноте только желтизна темных в ночи глаз ночного зверя что медленно высасывает твою душу
@@skiramish желтизна глаз - это плохо, печень лечить надо
Уходя гасите всех
@@АлександрЛеонов-ы4ж4ж Это если жёлтые склеры.
А если радужка --- то просто такой цвет глаз.
в конце стало страшно, но от того менее качественным контент не стал так что с ходу лайк
Концовки шедевр
Спасибо Вам огромное! С огромным удовольствием учился у такого преподавателя!!!
Еслиб еще докинули по мьютексы и семафоры былобы просто бомба!!!
Спасибо за видое, отличная подача материала!
Так ведь обязательно, у меня целый отдельный видосик под это запланирован
Блин очень доступно объяснили, но нужно пересмотреть
Отличная подача! Спасибо вам большое! Жду следующих видео в таком же формате!
Господи, спасибо большое! Какое ценное видео для меня!
Рад, что нравится! Если есть какие предложения, что можно улучшить - пишите, мне очень важна обратная связь
Спасибо за проделланную работу, все по сути и без воды.
Ein code, ein daten, ein zugriffsrechten… Sehr gut!
Ein Reich, ага)
Браво маэстро!
Спасибо! Очень интересная информация и доступная подача
Очень нравится. Спасибо автору за труд.
Хорошая подача материала!
Доктор Брагин, Вы - изумруд!
Спасибо, меня как раз недавно на собеседовании спрашивали, чем отличается поток от процесса. :)
Теперь я знаю :)
Коротко, четко и по делу
концовки -- огонь
Спасибо за ролик, очень классно и познавательно вышло
Спасибо за материал, и ещё раз спасибо за понятное изложение без воды!
Очень приятно, что цените и оставляете комментарии! Это для меня лучший мотиватор
Отличное видео! Рекомендую видео с канала на своих курсах!
Спасибо за увлекательное видео
Это Т-1000, мимикрирующий под доктора Брагина
Вкинул удочки куда плыть.
Спасибо.
Крутые видео, продолжай пожалуйста
Хотелось бы еще видео про виртуальное адресное пространство, как оно работает
Конечно, будет отдельное видео или даже не одно только про управлению памятью
Очень доходчиво, всё по полочкам.
Обожаю системное программирование на ассемблере(fasm|nasm) LInux - был счастлив увидеть здесь видео о работе с ядром на ассемблере.
Спасибо за видео!
большое спасибо за труд)
Спасибо за видео
Заставка у вас топ
А можно ещё рассказать про семафоры, мониторы, решение тупиков и как ОС использует память
Несомненно! th-cam.com/video/clRwA-JGBQI/w-d-xo.html
О, ретро-терм на заставках
Спасибо за Ваш труд. Очень полезно, но я немного запутался. Я полагал что процессы существуют в рамках потока, а сам поток это нечто связанное с ядрами процессора. Такое представление у меня от Node.js Или там эти понятия несколько отличаются или я не правильно их трактовал. Буду разбираться.
Наоборот: потоки существуют в рамках процесса. А в ноде там не совсем то... По умолчанию потоков и процессов там нет, а есть просто асинхронность
Одно кольцо чтоб править миром!
Здравствуйте, спасибо большое за видео! Подскажите пожалуйста, программа может состоять из нескольких процессов? Из видео как будто нет. Но где-то читал что может
Можно так сказать, например Google Chrome - у него много процессов, а "программа", с которой взаимодействует пользователь одна. Но, конечно, с точки зрения ОС программа в состоянии выполнения - это процесс, и никак иначе.
7:57 " Нет необходимости создавать отдельный процесс"
*Chrome:* Hold my beer.
Отличное видео. Я привык термины слышать на английском. Elf, Pid, немного порезали слух "ЕЛЬФ" и "ПИД" 😊
08:16 - Deutsch ist Deutsch 😉👍
На этот счёт разные мнения есть, про pid vs pee-eye-dee, но эльф он и в средиземье эльф 😅
www.quora.com/How-should-I-pronounce-pid-as-in-Process-ID#:~:text=Pronounce%20pid%20(process%20ID)%20as,rhymes%20with%20kid%20or%20squid.
@@abragin Точно-точно😂👍
Спасибо.
Спасибо!
А если некоторые понятия непонятны,но влезть хочется в понимание. Что можно почитать посмотреть по ОС?
Это ещё не все видео, тут будет это рассказано более подробно
Почитать можно Танненбаума, но у него довольно фундаментальная книга, там очень подробно
Можете, пожалуйста, сделать подобный разбор по видеокартам, как они с процессором взаимодействуют, про шейдеры, для чего OpenGL, DirectX, и т.д.?
Спасибо, отлично структурированная инфа!
user-level threads это получается те самые green threads т.е. легковесные потоки а-ля корутины/горутины/файберы?
Нуу не совсем, но очень близко. Это скорее pthreads в линуксе
Замени в конце своё дыхание на вейдеровское - запомнится всё на века.
Не забывай иногда моргать)
Зачем тратить энергию на бесполезное действие?
В этом изложении темы мне не хватает описания адресного пространства много-поточных процессом и нюансов работы со стеками в них.
И, кстати, мне вообще не попадалось хорошего изложения этой темы. Так что это вовсе не упрёк, а лишь слова для алгоритмов и скромное пожелание попробовать рассказать об этом в будущем. ;)
2024-03-19 11:30
Upd: а также, я помню, что т.н. "пользовательские потоки" нельзя было разнести по ядрам. Или что-то изменилось?
Если нет, то на этом стоит сделать акцент, а то студенту покажется, что они лучше (быстрее создаются), в то время, как толку от них в определенных классах приложений - ноль.
Кстати да, вы правы! Это нюанс, про который мало кто рассказывает. Эх, ладно 😀
Может кто нибудь объяснить что значит
"в адресное пространство каждого процесса по фиксированному виртуальному адресу проецируется ядро"
и зачем это нужно
03:42
за ранее спасибо
У ядра, как и у всех роцессов есть свой код и свои данные, и существует оно в единственном экземпляре. Каждому процессу в системе необходимо имет доступ к ядру - для выполнения системных вызовов, доступа к его данным. В микроядерных системах такой доступ предоставляется в виде межпроцессного взаимодействия посредством сообщений, а в монолитных системах физическая память, в которой расположен код и данные ядра отображается с помощью механизма виртуальной памяти в каждый процесс. Этакая общая память, если хотите, между процессами. Конечно же, она защищена определённым образом, иначе бы легко было всё испортить, но если не усложнять - то как-то так.
@@abragin Спасибо теперь яснее стало
а пользовательские потоки могут работать на нескольких ядрах процессора одновременно?
Лайк по дефолту, больше контентааа)
какой вы операционной системой пользуетесь и какая лучше субьективно?
Я пользуюсь Windows разных версий и Windows Sergey тоже, из Linux привык к Ubuntu, из BSD предпочитаю FreeBSD, для обучения - ReactOS и NetBSD, на маках выбор небольшой - macOS, но девятку никогда всерьёз не использовал, только поигрался. Ну всякого разного ещё можно найти по мелочи.
@@abragin про windows мне понятно,я вот тоже когда пользовался то убунту приелась (в хорошем смысле) ) freebsd пробовал на виртуальной машине,говорят zfs молодец для серверов но он для меня как густой лес , мака у меня не было
Если fork() создаёт копию процесса, то почему копия при выполнении сама не вызывает fork()?
Потому что адрес следующей команды (т.е. счетчик команд, регистр eip/rip) тоже копируется. Получается, что следующая команда - это то, что после fork().
@@apodavalov 👍
Я специально обратил внимание на то, что fork() *возвращается* дважды. А адрес возврата в стеке указывает уже на следующую инструкцию после call.
Процесс - это виртуальная среда для выполнения программы, части программы, нескольких программ... помоему как-то так звучит определение процесса
@abragin Если процессами управляет операционная система, то кто управляет потоками? как они выглядят? Это отдельный код в оперативной памяти?
Есть такое хорошее определение, которое я очень люблю: процесс - это контейнер для потоков [этого процесса]
@@alex.bragin то есть ОС сначала планирует какому процессу выделить квант времени, а уж потом какому потоку этого процесса дать исполниться?
@@ibnalvichannel4664 Да, можно сказать и так, зависит от конкретной реализации в ОС
А будет ли лекция по операционным системам реального времени? Очень интересно посмотреть, чтобы лучше разобраться
Вот про это ещё не планировал. Если будет достаточный интерес, то обязательно сделаю
А каким образом машинный код становится PE?
Я про это как раз начал видео делать, но что-то там так много всего, что думаю разбить на несколько отдельных тем, и сперва ещё про файловую систему рассказать
@@abragin отлично! Подождём ролика.
Для полного антуража не хватает только текстового редактора vim
А как насчёт emacs?
@@abraginпросто там среди прочего проскакивала какая-то ide с директориями слева.
@@abraginвначале задан тон терминалов и олдскульных текстовых редакторов, а потом появлятся ide и шиндовская панель задач. Возможно, стоило все сделать в одном стиле (vs + панели задач) либо (олдскульный редактор + htop). Ну, это конечно тонкости
@@abraginв любом случае, лайк и подписка. Фундаментальных знаний не хватает, конечно, современному кодингу
04:25 что за "среда выполнения" ?
В финале - это наш HAL9000
Ура, ждал, ждал видео.
Спасибо! Подготовка видео занимает довольно много времени, и дело даже не в технических моментах типа записи и монтажа видео, а в творческом: порой, неделю я просто думаю как выстроить повествование так, чтобы всё было логично "от и до", без перескакивания по темам, какие интересные подробности добавить, а что только мешает и можно исключить. И до тех пор, пока не выложу на всеобщее обозрение, не могут быть уверен насколько правильно сделал. Оценивают только зрители, по комментариям, лайкам и новым подписчикам я уже немножко понимаю, что было правильно, а что не очень.
@@abragin
Есть опыт в подготовке контента, могу помогать в подготовке по мере возможностей. Помогаю из-за того, что контент интересный и не стандартный.
Объяснение очень хорошее, но все-таки из за неимения практики, это не до конца понятно. Надо бы несколько лабораторных работ сделать на С++ под Linux and Windows.
Практические работы тоже будут!
@@abragin Буду ждать с нетерпением!
база кормит
Потому что это основа это так сказать база
Пошла вода в хату, потоком!
Вы походу в гляделки всегда выигрывали )
Да он просто зверь, это чемпион
В 4:12 вроде моргнул
Что такое виртуальный адрес я так и не понял. Это означает,что оно физически не выполняется по инструкцииям в процессоре или что?
Согласен с вами, про это будет отдельное видео
Ein code
Ein Daten
Ein Zugriffsrecht
"Достаточно лишь информации для управления потоком" ))))))))
А, той самой информации, точно, не той что для процесса
Процесс ведь не обязательно в состоянии выполнения )
❤
"Один код. Одни данные. Один уровень доступа" 😂😂😂
Потоки получается менее накладны чем процессы?
Да, но не совсем
поток, если сильно упрощать, выбрасыая TLS и другие мелочи, это ещё один блок памяти для стека в куче процесса
@@abragin я имел ввиду межпроцессное взаимодействие.в если адресное пространство у потоков общее в рамках процесса, то и конкуренция за ресурсы например переменные и их блокировки присутствует?
@@tree-service да, память ведь общая
@@tree-service конкуренция за ресурсы в любом случае существует, что у процессов, что у потоков
Находка
Шел, шел и нашел клад в недрах ютуба
Не понимал раньше, книжки по С++ на 100-120 страниц. Для кого она написана? Кто уже досконально знает С++? Так и эти видео, чтобы хорошо объяснить матерьял конкретно в этом видео, понадобится пару часов, а кто и так знает что и зачем - зачем смотреть видео?
Несколько раз перечитал и так и не понял: надо делать ещё проще, надо делать на 2 часа, или не надо делать вообще?
не понимаю, какие то книшки по плюсикам?
стандарт плюсов - это 5000 страниц
гонг-вопрос: а для кого и зачем пишутся какие то книшки по плюсикам?
вы стандарт по плюсикам читайте, зачем вам какие то книшки?
не хотите? а чего вдруг не хотите?
Диаграммы не хватает
В каком месте?
08:14 🤣🤣🤣
... как использовать 45 непонятных слов, что бы объяснить другое непонятное слово... Скоро процесс не объяснения, а введение в заблуждение.. 🤣🤣🤣
Ваша физиономия сильно отвлекает.
Там процентов 90 кадра заполнено чем-то ещё, смотрите туда 😅
вы слушаете глазами что ли?
может вам лучше в балет или модельеры?
это без шуток, какие шутки?
Шикарно. А можно видео где все это в практику превращается?
Желательно на питоне, threading, multiprocessing с тонкостями, флагами и как это под капотом в линукс работает. :)
Будет, но потом 😅
нахрен питон, чистый с!!!
@@DyaFedyaЛучше ASM
8:16 какой постметаироничный кек в аннотации!