PL Perl  ·  30 вопросов  ·  ~85 мин  ·  ⏱ Таймер 25:00  ·  Сложный  · 

Процессы, сигналы и fork

Профессиональные сценарии по теме «Процессы, сигналы и fork» проверяют диагностику, производительность, безопасность и способность защитить архитектурное решение. В тесте 30 вопросов: код нужно не только читать, но и трассировать, проверять на отказ, сопоставлять несколько правдоподобных решений. Ровно 18 заданий содержат фрагменты Perl; остальные проверяют выбор подхода в реальной ситуации. Если в условии не сказано иначе, предполагаются современный Perl 5.40+, strict и warnings; внешние модули рассматриваются в указанном контексте.

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 30 вопросов отведено 85 минут. В каждом вопросе верен только один вариант. После завершения откроются общий результат, оценки по 6 тематическим шкалам и подробный разбор.
Вопрос 1 из 30
Какое утверждение точно описывает поведение фрагмента «Создание процесса» с `$pid`, `fork` и `child_work`?
PerlСоздание процесса
my $pid=fork();
die 'fork' unless defined $pid;
if($pid==0){ child_work(); exit 0 }
parent_work($pid);
Вопрос 2 из 30
Как точнее всего описать действие фрагмента с `$pid`, `$status` и `wait`?
PerlОжидание дочерних процессов
my $pid=wait();
my $status=$?;
say $status >> 8;
Вопрос 3 из 30
Как ведёт себя участок «Сигналы» при выполнении?
PerlСигналы
local $SIG{TERM}=sub { $stop=1 };
while(!$stop){ do_one_unit() }
cleanup();
Вопрос 4 из 30
Что непосредственно следует из показанного кода с `$pid` и `fork`?
PerlЗомби-процессы
for(1..10){ my $pid=fork(); exit 0 unless $pid }
sleep 60;
Вопрос 5 из 30
Какое описание не теряет важный побочный эффект участка с `getppid`?
PerlНаблюдаемость и диагностика
say join ' ', $$, getppid(), scalar localtime;
Вопрос 6 из 30
Не запуская фрагмент «Надёжность в эксплуатации», выберите точное описание его работы.
PerlНадёжность в эксплуатации
my $pid=fork();
if($pid==0){ exec @cmd; die "exec: $!" }
waitpid($pid,0);
Вопрос 7 из 30
Что в этом коде нарушает ожидаемое поведение?
PerlСоздание процесса
my $pid=fork();
child_work() unless $pid;
Вопрос 8 из 30
Какой риск связан именно с операциями `$pid`, `waitpid` и `retry`?
PerlОжидание дочерних процессов
waitpid($pid,0);
if($?){ retry() }
Вопрос 9 из 30
Где находится первопричина возможного сбоя в коде с `$SIG`, `$lock` и `save_all`?
PerlСигналы
$SIG{TERM}=sub { save_all(); unlink $lock; exit };
Вопрос 10 из 30
Где находится первопричина возможного сбоя в коде с `$SIG`?
PerlЗомби-процессы
$SIG{CHLD}='IGNORE';
Вопрос 11 из 30
Где находится первопричина возможного сбоя в коде с ключевыми операциями?
PerlНаблюдаемость и диагностика
warn "worker failed";
Вопрос 12 из 30
Какой дефект проявится в варианте «Надёжность в эксплуатации» с `$tool`, `$arg` и `system`?
PerlНадёжность в эксплуатации
system("$tool $arg");
Вопрос 13 из 30
Как правка с `$pid`, `defined` и `fork` меняет поведение на неудобном входе?
PerlСоздание процесса
defined(my $pid = fork()) or die "fork: $!";
if ($pid == 0) {
    run_child();
    exit 0;
}
Вопрос 14 из 30
Как правка с `$pid`, `$status` и `$exit` меняет поведение на неудобном входе?
PerlОжидание дочерних процессов
waitpid($pid, 0);
my $status = $?;
if ($status == -1) {
    die "waitpid: $!";
} elsif ($status & 127) {
    warn 'child died from signal ' . ($status & 127);
} else {
    my $exit = $status >> 8;
    record_exit_code($exit);
}
Вопрос 15 из 30
Как правка с `$SIG`, `$ok` и `$sock` меняет поведение на неудобном входе?
PerlСигналы
local $SIG{PIPE}='IGNORE';
my $ok=print {$sock} $data;
Вопрос 16 из 30
Почему пограничный случай больше не теряется в участке с `$SIG` и `waitpid`?
PerlЗомби-процессы
$SIG{CHLD}=sub { 1 while waitpid(-1, WNOHANG)>0 };
Вопрос 17 из 30
Что изменилось в работе фрагмента «Наблюдаемость и диагностика»?
PerlНаблюдаемость и диагностика
log_event(event=>'child_exit',pid=>$pid,job=>$job,status=>$status,elapsed=>$dt);
Вопрос 18 из 30
Как правка с `$tool`, `@args` и `$s` меняет поведение на неудобном входе?
PerlНадёжность в эксплуатации
system {$tool} $tool, @args;
my $s=$?;
Вопрос 19 из 30
Какой вывод объединяет результат, дефект и исправление в теме «Создание процесса»?
Вопрос 20 из 30
Какое правило отделяет семантику Perl от случайно удачного запуска?
Вопрос 21 из 30
Какой вывод стоит перенести из учебного примера «Сигналы» в рабочий код?
Вопрос 22 из 30
На что следует опираться при ревью кода по теме «Зомби-процессы»?
Вопрос 23 из 30
Какую закономерность проверяют задания темы «Наблюдаемость и диагностика»?
Вопрос 24 из 30
Какое положение темы «Надёжность в эксплуатации» помогает выбрать надёжную реализацию?
Вопрос 25 из 30
Какое предостережение по теме «Создание процесса» нельзя заменить включением strict и warnings?
Вопрос 26 из 30
Какое предостережение по теме «Ожидание дочерних процессов» нельзя заменить включением strict и warnings?
Вопрос 27 из 30
Какое предостережение по теме «Сигналы» нельзя заменить включением strict и warnings?
Вопрос 28 из 30
Какое ограничение блока «Зомби-процессы» следует проверять отдельным примером?
Вопрос 29 из 30
Какое утверждение о теме «Наблюдаемость и диагностика» не приписывает механизму лишних гарантий?
Вопрос 30 из 30
Что остаётся верным о теме «Надёжность в эксплуатации», если учитывать контекст, отказ и побочный эффект?

Ответьте на все 30 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу