Дмитрий Спасибо Огромное лично мне ваши лекции наиболее понятные из всего с чем мне приходилось сталкиваться настолько лаконично и с примерами, даже такие сложные темы с вами становятся понятными и простыми )
Дмитрий, здравствуйте! Выражаю благодарность за Ваши уроки. Лучшее, что есть в ру-сегменте. Было бы здорово увидеть от Вас подробное объяснение systemd.
@@DmitryKetov Дмитрий, большое спасибо за столь быструю обратную связь, обязательно изучу. Еще раз: большое спасибо за Ваши труды! Изменяю сообщение: сейчас прошел по ссылке - а там Ваша книга. Обязательно куплю.
В топе остались метрики wa - (i/o)wait time, si software interrupts, hi hardware interrupts, st steal time/stolen time (украденное время - ожидание доступа к использованию хостового cpu виртуалкой)
Большое спасибо за Ваши лекции. Смотрю с удовольствием. Возникло несколько вопросов. А работает ли вытесняющая многозадачность для user space нитей в Unix? Раз уж планировщик ничего не знает о нитях из user space, то какой механизм отвечает за их переключение внутри процесса? А как при кооперативной многозадачности планировщик поймет, что процесс ждёт ввод-вывод, если внутри работает несколько нитей? Если ждёт хотя бы одна нить? Или когда ждут всё?
>А работает ли вытесняющая многозадачность для user space нитей в Unix? Нет, это невозможно. > какой механизм отвечает за их переключение внутри процесса? Добровольное переключение нити в другой контекст, см. например www.gnu.org/software/pth/pth-manual.html#item_pth_yield > планировщик поймет, что процесс ждёт ввод-вывод, Никак, весь процесс будет спать.
Т.е. дочерние процессы, формируемые основным процессом это и есть нить? (Ведь по сути они под управлением основного процесса, а следовательно и имеют общее адресное пространство)
То, что формируется "основным" процессом может быть и нитью и другим процессом. Зависит от способа формирования. Если fork() то получится процесс, если pthread_create() то нить. Но на деле в обоих случаях произойдет обращение к ядру при помощи системного вызова clone() в параметрах которого будет указано какие ресурсы у формируемого процесса должны быть общими с формирующими. Если все - получится нить. Если никаких - получится процесс.
Подскажите, нить в юзер спейсе рассматривается планировщиком процессов как равнозначный процесс, т.е. она стоит в общей очереди на выполнение с простыми процессами? Или же эти нити как бы внутри процесса и рассматриваются планировщиком как один процесс?
User space нити ядру не видны, планировщик отдает управление процессу, и его больше ничего не волнует. Те нити которые рассматриваются планировщиком как равнозначный "процесс" это как раз kernel-space нити.
Тут два выхода. Или "мышки кололись, плакали, но продолжали есть кактус" или "чемодан, вокзал, другой утюб канал" :) А если серьезно, то контент не пилился "на продажу", это был просто видеожурнал для студентов.
Как же я рад что случайно наткнулся на этого препода. Уже несколько дней смотрю взахлеб.
Вообще случайно наткнулся и не пожалел! А как насчет собираться за кружкой кофе для обсуждений?
@@ЯковМоторин-н7я Препод супер, уже заказал его книгу даже на эмоциях )
Дмитрий Спасибо Огромное лично мне ваши лекции наиболее понятные из всего с чем мне приходилось сталкиваться настолько лаконично и с примерами, даже такие сложные темы с вами становятся понятными и простыми )
покупаю книгу вашу, спасибо за лекции !
Прекрасный материал,спасибо.
Снимаю шляпу, отлично объясняете
Супер )) Спасибо
Эх, если бы в моём Инсте так объясняли предмет!
Хабаровск 96-2001 год специальность "Вычислительные машины". Примерно так и объясняли. Смотрю и ностальгирую.
Очень хороший уровень лекций на канале
Дмитрий, здравствуйте! Выражаю благодарность за Ваши уроки. Лучшее, что есть в ру-сегменте.
Было бы здорово увидеть от Вас подробное объяснение systemd.
Не то, что-бы прям очень подробное, но достаточное для начинающих есть в bhv.ru/product/vnutrennee-ustrojstvo-linux-2-izd/
@@DmitryKetov Дмитрий, большое спасибо за столь быструю обратную связь, обязательно изучу. Еще раз: большое спасибо за Ваши труды!
Изменяю сообщение: сейчас прошел по ссылке - а там Ваша книга. Обязательно куплю.
@@DmitryKetov Таки купил Вашу книгу, отличная! Спасибо!
Отличнейшие лекции, мне очень по нраву
В топе остались метрики wa - (i/o)wait time, si software interrupts, hi hardware interrupts, st steal time/stolen time (украденное время - ожидание доступа к использованию хостового cpu виртуалкой)
Большое спасибо за Ваши лекции. Смотрю с удовольствием.
Возникло несколько вопросов.
А работает ли вытесняющая многозадачность для user space нитей в Unix?
Раз уж планировщик ничего не знает о нитях из user space, то какой механизм отвечает за их переключение внутри процесса?
А как при кооперативной многозадачности планировщик поймет, что процесс ждёт ввод-вывод, если внутри работает несколько нитей? Если ждёт хотя бы одна нить? Или когда ждут всё?
>А работает ли вытесняющая многозадачность для user space нитей в Unix?
Нет, это невозможно.
> какой механизм отвечает за их переключение внутри процесса?
Добровольное переключение нити в другой контекст, см. например www.gnu.org/software/pth/pth-manual.html#item_pth_yield
> планировщик поймет, что процесс ждёт ввод-вывод,
Никак, весь процесс будет спать.
Звук ужасный, увы(
Т.е. дочерние процессы, формируемые основным процессом это и есть нить? (Ведь по сути они под управлением основного процесса, а следовательно и имеют общее адресное пространство)
То, что формируется "основным" процессом может быть и нитью и другим процессом. Зависит от способа формирования. Если fork() то получится процесс, если pthread_create() то нить. Но на деле в обоих случаях произойдет обращение к ядру при помощи системного вызова clone() в параметрах которого будет указано какие ресурсы у формируемого процесса должны быть общими с формирующими. Если все - получится нить. Если никаких - получится процесс.
@@DmitryKetov а возможно ли формирование дочернего процесса дочерним процессом?
@@vinar9232 Не просто возможно, но это еще и основа основ. Так и строится дерево процессов
Спасибо, интересно. За нити, волокна не понял для чего, зачем. Что можно дополнительно посмотреть?
Можно глянуть в книге vk.com/linux.internals, там есть с примерами и доп. объяснением
Потрясающе!
вы лучший!!!!!
почему нить а не поток ?
По сути.
Процессы (веревка) из нитей, нити из волокон.
Да и вообще www.google.com/search?q=thread&udm=2
Подскажите, нить в юзер спейсе рассматривается планировщиком процессов как равнозначный процесс, т.е. она стоит в общей очереди на выполнение с простыми процессами? Или же эти нити как бы внутри процесса и рассматриваются планировщиком как один процесс?
User space нити ядру не видны, планировщик отдает управление процессу, и его больше ничего не волнует.
Те нити которые рассматриваются планировщиком как равнозначный "процесс" это как раз kernel-space нити.
Спасибо!
а где взять презентацию или схемы ???
Судя по всему только купить его книгу. Там по сути все это есть
@@suhomlinov-vitaliy книга шикарная)
Мерзкие клацания заставляют чувствовать себя мазохистом, взявшимся смотреть эти лекции
ну нах
Тут два выхода. Или "мышки кололись, плакали, но продолжали есть кактус" или "чемодан, вокзал, другой утюб канал" :) А если серьезно, то контент не пилился "на продажу", это был просто видеожурнал для студентов.
Дмитрий рассказывает про ядро, но получается очень интересно. Мне бы такого преподователя в мое время обучения!