Внутренности Linux - КИТ 2024

Sdílet
Vložit
  • čas přidán 23. 06. 2024
  • Спикер: Андрей Мичурин, руководитель группы разработки компонентов Деплоя
    Рассмотрим, как работают планировщик процессов и подсистема виртуальной памяти. Проговорим, для чего нужны прерывания. И узнаем, что такое cgroup и namespace.

Komentáře • 16

  • @SmallSlowTank
    @SmallSlowTank Před dnem +1

    Спасибо, было очень интересно!
    00:00:00 Ожидание начала трансляции
    00:05:03 Начало. Содержание.
    00:05:50 Зачем?
    00:06:44 Процессы - дитя INIT-а
    00:44:52 Планировщик
    01:12:20 Прерывания
    01:22:33 Системные вызовы
    01:30:30 Перерыв
    01:44:37 Память процесса
    02:26:04 Изоляция
    02:50:35 Вопросы
    03:09:45 Завершение трансляции

  • @michurinandrey
    @michurinandrey Před 10 dny +9

    Спасибо за просмотр и интерес к технологиям.
    Хочу отметить, что в данной лекции я допустил несколько неточностей, ошибок и опечаток.
    * 17:02 clone() будет видно, если трейсить bash из которого я запускаю strace
    * 25:01 обрабатывать нельзя только kill
    * 42:49 Stopped обозначается T
    * 44:33 Terminated обозначается X
    * 40:54 LA учитывает не только R, но процессы с D стейтом.
    * 2:44:21 utc namespace - про имя хоста
    Будьте внимательны!

  • @user-jn3qi7eu2y
    @user-jn3qi7eu2y Před 4 dny +1

    Очень познавательно! Спасибо за лекцию

  • @user-yo8wm5bd6z
    @user-yo8wm5bd6z Před 13 dny

    Спасибо за очень интересную лекцию!

  • @p4m3remostone71
    @p4m3remostone71 Před 2 dny

    34:02 в 2024 так не делали, 31 декабря 2023 блин последний день когда через мц можно пайпы через мц отправить в логи

  • @ep4sh
    @ep4sh Před 10 dny

    17:02 немного тут Вас не понял - "этот вызов имел под собой и fork и exec" - мы запускаем strace, который также создаёт child процесс. Чтобы увидеть желаемый вызов нужно запустить второй bash (в соседнем pty, например), в котором запустить strace c аттачем по pid на первый баш (strace -p $PID) - то системный вызов (clone, все же это Linux) будет видно.

    • @michurinandrey
      @michurinandrey Před 10 dny +1

      Очень крутое замечание!
      Без clone() никуда, действительно надо стрейсить баш из которого вызываем, что бы поймать clone()!
      Тут главная мысль, что все пишут про fork() && exec(), а по факту, мы видим другое clone && execve.

  • @user-xz6mo6wn4d
    @user-xz6mo6wn4d Před 12 dny

    40:54 LA - это не количество процессов, исполняющихся на CPU (в состоянии Running). Это отношение всех процессов (с состояниями R и D) к имеющимся ресурсам CPU

    • @michurinandrey
      @michurinandrey Před 11 dny

      Спасибо !
      Я это подсветил в своем комментарии выше. Ошибки опечатки и неточности описываю там .

  • @ep4sh
    @ep4sh Před 9 dny

    2:02:56 где-нибудь тут можно было упомянуть про TLB, наверно про него и был вопрос (косвенно, если я верно понял..)

  • @fish9370
    @fish9370 Před 9 dny +1

    Будто Роберта Лава перечитал. Конечно поверхностно, но для студентов наверно глубже пока и не надо

    • @michurinandrey
      @michurinandrey Před 9 dny +1

      Я в лекции прям явно упоминал, что это краткий пересказ Роберта Лава, в моей интерпретации и с моими ошибками. Спасибо за просмотр.

  • @ilyazuyev2884
    @ilyazuyev2884 Před 5 hodinami

    системный вызов malloc? )

  • @user-rb6fv4fe2v
    @user-rb6fv4fe2v Před 12 dny

    Нельзя так нагло обманывать неокрепшие умы детей про load average.
    Когда в Linux впервые появились средние значения нагрузки, они отражали только потребность в ресурсах процессора, как и в других ОС. Но позднее они претерпели изменения, в них включили не только выполняемые задачи, но и те, что находятся в непрерываемом состоянии (TASK_UNINTERRUPTIBLE или nr_uninterruptible). Это состояние используется ветвями кода, которые хотят избежать прерывания по сигналам, в том числе задачами, блокированными дисковым вводом/выводом, и некоторыми блокировками. Вы могли уже сталкиваться с этим состоянием: оно отображается как состояние "D" в выходных данных ps и top. На странице ps(1) его называют «uninterruptible sleep (usually IO)».

    • @michurinandrey
      @michurinandrey Před 12 dny +1

      Спасибо за уточнение!
      Действительно, похоже сейчас это так работает.

  • @GanginNegative
    @GanginNegative Před 2 dny

    Наконец-то хоть на понятном русском языке объяснют бугуртские технологии без всякой нераскрытой терминологии и на реальных примерах