Практикум: таблица свойств сигналов

⏱ 30 мин · 🧩 заданий: 5

Шесть свойств из задачи 1

В задаче экзамена у таблицы шесть столбцов. Для каждого — точный критерий и список сигналов с «+».

1. Связан с аппаратным событием

Критерий: первоисточник — исключение процессора при выполнении инструкции (ядро лишь переводит его в сигнал).

«+»: SIGSEGV, SIGBUS, SIGFPE, SIGILL, SIGTRAP.

Не путать: SIGTTIN, SIGINT — генерирует драйвер терминала (программная часть ядра); SIGPIPE, SIGCHLD — программные события ядра.

2. Останавливает процесс (не только завершает)

Критерий: действие по умолчанию — Stop.

«+»: SIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU.

Не путать: SIGKILL только завершает; SIGCONT, наоборот, продолжает.

3. Выставляется по инициативе программиста

Критерий: сигнал предназначен для явной отправки программой или пользователем (kill, raise, abort, sigqueue), а не генерируется ядром в ответ на событие.

«+»: SIGUSR1, SIGUSR2, SIGABRT (через abort()), сигналы реального времени, SIGTERM, SIGSTOP, SIGKILL, SIGCONT (kill -9, kill -STOP, kill -CONT, fg).

Не путать: формально kill может послать любой сигнал, но вопрос о том, кто обычно выставляет сигнал. Оговорка: SIGKILL иногда посылает и ядро (OOM killer).

4. Нельзя запретить доставку

Критерий: сигнал нельзя заблокировать маской (а также игнорировать и перехватить).

«+»: только SIGKILL и SIGSTOP.

Оговорки: SIGCONT продолжает остановленный процесс даже заблокированным; SIGABRT через abort() разблокируется принудительно. Но заблокировать их можно.

5. По умолчанию игнорируется

Критерий: действие по умолчанию — Ign.

«+»: SIGCHLD, SIGURG, SIGWINCH.

Оговорка: у SIGCONT действие по умолчанию — Cont: работающий процесс его «не замечает», остановленный — продолжает. Некоторые таблицы (и преподаватели) относят его к игнорируемым — если ставите «+», поясните.

6. Не «слипается»

Критерий: экземпляры ставятся в очередь, а не хранятся одним битом.

«+»: сигналы реального времени SIGRTMIN…SIGRTMAX.

Шпаргалка

АППАРАТНЫЕ: SEGV BUS FPE ILL TRAP ОСТАНАВЛИВАЮТ: STOP TSTP TTIN TTOU ПРОГРАММИСТ: USR1 USR2 ABRT TERM KILL STOP CONT RT* НЕ БЛОКИРУЮТСЯ: KILL STOP ИГНОРИРУЮТСЯ: CHLD URG WINCH (CONT — «продолжить») НЕ СЛИПАЮТСЯ: SIGRTMIN … SIGRTMAX

Алгоритм заполнения таблицы

  1. Для каждого сигнала вспомните источник: процессор, ядро, терминал или программа.
  2. Вспомните действие по умолчанию: Term, Core, Ign, Stop, Cont.
  3. Это SIGKILL или SIGSTOP? Только они не блокируются.
  4. Это сигнал реального времени? Только они не слипаются.
  5. В спорных ячейках (SIGCONT, SIGABRT, SIGKILL от OOM killer) поставьте выбранный знак и коротко поясните рядом.

Заполните таблицу экзамена

Полностью задача 1 с разбором каждой строки — в уроке «Разбор задачи 1» модуля «Подготовка к экзамену». Попробуйте сначала заполнить её сами по алгоритму выше.

Итог

  • Шесть свойств — шесть простых критериев: источник, действие Stop, явная отправка, неблокируемость, действие Ign, очередь.
  • Списки «+» короткие: запомните шпаргалку.
  • Спорные ячейки: SIGCONT (продолжает даже заблокированным; действие Cont), SIGABRT через abort(), SIGKILL от OOM killer — отвечайте с пояснением.

Практика решено 0 из 5

Вы не вошли — ответы проверяются, но прогресс не сохранится. Войти или зарегистрироваться.
Задание 1 Заполнить таблицу

Тренировка 1: столбец за столбцом. Какие сигналы связаны с аппаратным событием, а какие по умолчанию останавливают процесс?

Связан с аппаратным событиемОстанавливает (по умолчанию)
SIGSEGV
SIGTSTP
SIGILL
SIGTTOU
SIGINT
SIGSTOP
SIGBUS
Отметьте ячейку — «+», пустая — «−».
Задание 2 Заполнить таблицу

Тренировка 2. Какие сигналы нельзя заблокировать, какие по умолчанию игнорируются, какие не слипаются?

Нельзя запретить доставкуПо умолчанию игнорируетсяНе «слипается»
SIGKILL
SIGWINCH
SIGRTMAX
SIGSTOP
SIGURG
SIGRTMIN+3
SIGTERM
Отметьте ячейку — «+», пустая — «−».
Задание 3 Заполнить таблицу

Тренировка 3: полная таблица на других сигналах (не тех, что в экзамене). Столбцы — как в задаче 1.

Связан с аппаратным событиемОстанавливает процессВыставляется по инициативе программистаНельзя запретить доставкуПо умолчанию игнорируетсяНе «слипается»
SIGSEGV
SIGINT
SIGUSR1
SIGTSTP
SIGALRM
SIGWINCH
SIGRTMAX
SIGTERM
SIGILL
SIGTTOU
Отметьте ячейку — «+», пустая — «−».
Задание 4 Один вариант ответа

В каком столбце задачи 1 у сигнала SIGCHLD стоит «+»?

Задание 5 Один вариант ответа

Какой сигнал из таблицы задачи 1 не получает ни одного «+»?

Войдите, чтобы отмечать пройденные уроки.