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

var  
    su  : string;        // What we want split
    si  : TStringList;   // Result of splitting
    Delimiter : string;
    ...
    Delimiter := ';';
    si.Text := ReplaceStr(su, Delimiter, #13#10);

Строки в списке si будут содержать разделенные строки.

13
задан Léo Léopold Hertz 준영 28 August 2009 в 19:01
поделиться

9 ответов

Я не могу поверить, что люди не сравнивают такие вещи, как аппаратное и программное обеспечение или не подчеркивают ОС в некоторых моментах.

Сравнение сигнала и прерывания :

Разница в том, что while прерывания отправляются в операционную система аппаратно , сигналы отправлено процессу операционным system или другими процессами. Примечание что сигналы не имеют ничего общего с программные прерывания, которые все еще отправлено аппаратным обеспечением (сам процессор, в этом случае). (источник)

Определения

  1. процесс = программа в исполнении, согласно книге ниже

Для дальнейшего чтения

  1. сравните сигнал с Прерывания и исключения

  2. Книга Таненбаума «Современные операционные системы» Системы

13
ответ дан 1 December 2019 в 17:34
поделиться

Руководство относится к очень простому механизму, которые позволяют процессам или операционной системе уведомлять другие процессы путем отправки сигнала. Операционная система может использовать его, чтобы уведомить программы о прерываниях их (сигнал SIGABRT) или об отказе сегментации (часто вызываемый путем доступа к нулевому указателю, SIGSEGV), назвать двух из них.

Некоторые сигналы использования серверов Unix, таким образом, администратор может использовать kill, чтобы отправить им сигнал, заставляя их перечитать их конфигурационный файл, не требуя, чтобы они перезапустили.

существуют меры по умолчанию, принятые для некоторых сигналов, и другие сигналы просто проигнорированы. Например, на получают SIGSEGV, программа завершается при получении SIGCHLD, означать, что дочерний процесс умер, будет результатом по умолчанию ни в чем специальном.

существует ANSI C стандартная функция, которая устанавливает обработчик сигналов, который является функцией, которая может выполнить некоторый код при получении сигнала, названного signal (чтение в man signal). В различном Unix та функция ведет себя отличающаяся, таким образом, ее использованию препятствуют. Его страница справочника относится к sigaction функция (читайте man sigaction), который ведет себя последовательный, и также более мощен.

15
ответ дан Johannes Schaub - litb 28 August 2009 в 19:01
поделиться

Сигнал является сообщением, или к целевому процессу, или к ОС о целевом процессе. Это - часть API Unix (и определяется в различных стандартах POSIX).

Read man kill, man signal, и man sigaction.

Другой ТАК вопросы, которые могли бы быть полезными:

5
ответ дан Community 28 August 2009 в 19:01
поделиться
  • 1
    Плохая вещь, что это, кажется, только работает, если у пользователя, запускающего тесты автоматизации, есть административные привилегии. Иначе это не будет работать – Alexander 9 July 2012 в 14:27

Физический сигнал и сигнал Unix являются действительно различными понятиями. Когда сигнал Unix отправляется от одного процесса до другого, нет никакого определенного соответствующего физического сигнала. Сигналы Unix являются просто абстракцией, таким образом, программисты могут говорить о процессах, связывающихся друг с другом.

сигналы Unix, возможно, назвали сообщениями, событиями, уведомлениями, или даже искусственным термином как "frobs". Разработчики просто выбрали имя "сигнал", и это придерживалось.

10
ответ дан Greg Hewgill 28 August 2009 в 19:01
поделиться
  • 1
    @Alexander В этом случае, я не могу интегрировать его с Гудзоном:-/ – Legolas 9 July 2012 в 18:24

Некоторые из моих примечаний:

Позволяет асинхронную передачу

  • Между процессами, принадлежащими тому же пользователю
  • От системы до любого процесса
  • От администратора системы к любому процессу
  • , Вся связанная информация находится в самом сигнале
  • Много различных сигналов

SIGINT

  • От системы до всех процессов, связанных с Триггером терминала
  • : ^C нажал
  • Usual способ остановить рабочий процесс

SIGFPE

  • От ядра до единственного процесса
  • Триггер: ошибка в операции с плавающей точкой

SIGKILL

  • К единственному процессу
  • Остановки выполнение целевого процесса

SIGALRM

  • От ядра до единственного процесса
  • Триггер: истечение таймера

SIGTERM

  • К единственному процессу
  • Рекомендует процессу завершиться корректно

SIGUSR1, SIGUSR2

  • От любого процесса до любого другого
  • Без предопределенного семантического
  • Свободно применимый программистами

Отправка сигнала к другому процессу

  • международное уничтожение (изодромный с предварением, signal_ID)

, программист может решить, что сделать, когда сигнал получен

  • Использование, поведение по умолчанию
  • Игнорирует, это
  • Выполняет функцию пользователя

, Обнаруживающую прерванную запись

if (write(fd, buff, SIZE)<0) {
  switch (errno) {
   case EINTR:
    warning(“Interrupted write\n”);
    break;
  }
}…
4
ответ дан Codingday 28 August 2009 в 19:01
поделиться

Сигнал является сообщением, которое может быть отправлено в рабочий процесс.

, Например, чтобы сказать интернет-Демону (inetd) перечитывать его конфигурационный файл, это должно быть отправлено сигнал SIGHUP.

, Например, если бы идентификатор текущего процесса (PID) inetd является 1234, Вы ввели бы: уничтожьте-SIGHUP 1234

3
ответ дан Paul Lydon 28 August 2009 в 19:01
поделиться

В этом случае средства связи 'сообщение'. Таким образом, это отправляет сообщение в процесс, который может сказать процессу делать различные вещи.

1
ответ дан Greg Leaver 28 August 2009 в 19:01
поделиться

Сигнал Unix является своего рода сообщением, которое может быть отправлено в и от процессов Unix. Они могут сделать, вещам нравится, говорят процессу выходить (SIGKILL) или что процесс имел недопустимую ссылку памяти (SIGSEGV) или что процесс был уничтожен пользователем, поражающим управление-c (SIGINT).

от *отклоняют командную строку, введите:

сигнал

человека, что желание должно Вы все доступные сигналы.

0
ответ дан hacintosh 28 August 2009 в 19:01
поделиться
  • 1
    Я думаю, что получил его работа, посмотрите, что мой ответ ниже, к сожалению, jenkins имеет быть быть администратором: ( – Alexander 10 July 2012 в 14:53

Сигнал является "событием, сообщением или структурой данных, переданной между вычислительными процессами" (от Википедия ).

2
ответ дан Ben 28 August 2009 в 19:01
поделиться
  • 1
    Попробованный оба из них и I' m все еще запрашиваемый. – drekka 29 June 2012 в 01:19
Другие вопросы по тегам:

Похожие вопросы: