diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index d744f80..1a58b66 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -24,6 +24,7 @@ const { title } = Astro.props; /> {title} + diff --git a/src/slides/signals/index.astro b/src/slides/signals/index.astro index 6126a9d..8f208ae 100644 --- a/src/slides/signals/index.astro +++ b/src/slides/signals/index.astro @@ -6,6 +6,15 @@ export const description = "Cигналы, их типы и как они используются в Node.js для управления процессами и обработки событий."; --- + +

Что такое сигналы?

@@ -101,6 +110,62 @@ export const description =
+
+
+

Чем являются сигналы на базовом уровне

+
+
+

+ Сигналы в Linux на уровне ядра — это механизм асинхронного уведомления + процессов, реализованный через прерывания на уровне ОС. +

+
+
+

Реализация

+

Очередь сигналов в ядре

+

+ Ядро поддерживает очередь непрочитанных сигналов для каждого + процесса. +

+

Обработка сигналов в процессе

+

+ Каждый процесс хранит информацию о полученных сигналах в полях sigaction, pending_signals и blocked. +

+
+
+

Жизненный цикл сигнала

+ +
    +
  1. + Генерация +

    + Например: через kill(), аппаратное прерывание, + исключение. +

    +
  2. + +
  3. + Доставка +

    + Ядро помечает сигнал как "ожидающий" в pending маске + процесса. +

    +
  4. + +
  5. + Обработка +

    + При переключении контекста ядро проверяет pending и вызывает обработчик (если не заблокирован). +

    +
  6. +
+
+
+

Обработка сигналов в node.js

@@ -181,5 +246,9 @@ export const description =

Ссылка на репозитарий с кодом и презентацией

-

https://gitea.meettya.ru/Meettya/signal-slides

+

+ https://gitea.meettya.ru/Meettya/signal-slides +