From 456b3cb8c040a69a1487219b7a060d6ea33bc5de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B0=D1=80=D0=BF=D0=B8=D1=87=20=D0=94=D0=BC=D0=B8?= =?UTF-8?q?=D1=82=D1=80=D0=B8=D0=B9=20=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0?= =?UTF-8?q?=D0=BD=D0=B4=D1=80=D0=BE=D0=B2=D0=B8=D1=87?= Date: Wed, 28 May 2025 14:53:10 +0300 Subject: [PATCH] chore(*): add details --- src/layouts/BaseLayout.astro | 1 + src/slides/signals/index.astro | 71 +++++++++++++++++++++++++++++++++- 2 files changed, 71 insertions(+), 1 deletion(-) 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 +