Андрей Робачевский - Операционная система UNIX

Тут можно читать онлайн Андрей Робачевский - Операционная система UNIX - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-osnet, издательство BHV - Санкт-Петербург, год 1997. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Операционная система UNIX
  • Автор:
  • Жанр:
  • Издательство:
    BHV - Санкт-Петербург
  • Год:
    1997
  • Город:
    Санкт-Петербург
  • ISBN:
    5-7791-0057-8
  • Рейтинг:
    4.63/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Андрей Робачевский - Операционная система UNIX краткое содержание

Операционная система UNIX - описание и краткое содержание, автор Андрей Робачевский, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Книга посвящена семейству операционных систем UNIX и содержит информацию о принципах организации, идеологии и архитектуре, объединяющих различные версии этой операционной системы.

В книге рассматриваются: архитектура ядра UNIX (подсистемы ввода/вывода, управления памятью и процессами, а также файловая подсистема), программный интерфейс UNIX (системные вызовы и основные библиотечные функции), пользовательская среда (командный интерпретатор shell, основные команды и утилиты) и сетевая поддержка в UNIX (протоколов семейства TCP/IP, архитектура сетевой подсистемы, программные интерфейсы сокетов и TLI).

Для широкого круга пользователей

Операционная система UNIX - читать онлайн бесплатно полную версию (весь текст целиком)

Операционная система UNIX - читать книгу онлайн бесплатно, автор Андрей Робачевский
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

В системах UNIX BSD 4.x структура sigactionимеет следующий вид:

struct sigaction {

void (*sa_handler)();

sigset_t sa_mask;

int sa_flags;

};

где функция-обработчик определена следующим образом:

void handler(int signo, int code, struct sigcontext *scp);

В первом аргументе signoсодержится номер сигнала, codeопределяет дополнительную информацию о причине поступления сигнала, a scpуказывает на контекст процесса.

Для UNIX System V реализована следующая возможность получения более полной информации о сигнале. Если установлен флаг SA_SIGINFO, то при получении сигнала sigбудет вызван обработчик, адресованный полем sa_sigaction. Помимо номера сигнала, обычно передаваемого обработчику сигнала, ему будет переданы указатель на структуру siginfo_t, содержащую информацию о причинах получения сигнала, а также указатель на структуру ucontext_t, содержащую контекст процесса.

Структура siginfo_tопределена в файле и включает следующие поля:

int si_signo Номер сигнала
int si_errno Номер ошибки
int si_code Причина отправления сигнала

В поле si_signoхранится номер сигнала. Поле si_codeимеет следующий смысл: если его значение меньше или равно нулю, значит сигнал был отправлен прикладным процессом, в этом случае структура siginfo_tсодержит также следующие поля:

pid_t si_pid Идентификатор процесса PID
uid_t si_uid Идентификатор пользователя UID

которые адресуют процесс, пославший сигнал; если значение si_codeбольше нуля, то оно указывает на причину отправления сигнала. Список возможных значений si_codeдля некоторых сигналов, соответствующих полю si_signo, приведен в табл. 2.19

Таблица 2.19. Значения поля si_code структуры siginfo_t для некоторых сигналов

Значение поля si_signo Значение поля si_code Описание
SIGILL Попытка выполнения недопустимой инструкции
ILL_ILLOPC Недопустимый код операции (opcode)
ILL_ILLOPN Недопустимый операнд
ILL_ADR Недопустимый режим адресации
ILL_ILLTRP Недопустимая ловушка (trap)
ILL_PRVOPC Привилегированный код операции
ILL_PRVREG Привилегированный регистр
ILL_COPROC Ошибка сопроцессора
ILL_BADSTK Ошибка внутреннего стека
SIGFPE Особая ситуация операции с плавающей точкой
FPE_INTDIV Целочисленное деление на ноль
FPE_INTOVF Целочисленное переполнение
FPE_FLTDIV Деление на ноль с плавающей точкой
FPE_FLTOVF Переполнение с плавающей точкой
FPE_FLTUND Потеря точности с плавающей точкой (underflow)
FPE_FLTRES Неоднозначный результат операции с плавающей точкой
FPE_FLTINV Недопустимая операция с плавающей точкой
FPE_FLTSUB Индекс вне диапазона
SIGSEGV Нарушение сегментации
SEGV_MAPPER Адрес не отображается на объект
SEGV_ACCERR Недостаточно прав на отображаемый объект
SIGBUS Ошибка адресации
BUS_ADRALN Недопустимое выравнивание адреса
BUS_ADRERR Несуществующий физический адрес
BUS_OBJERR Аппаратная ошибка, связанная с объектом
SIGTRAP Ловушка
TRAP_BRKPT Процессом достигнута точка останова
TRAP_TRACE Ловушка трассирования процесса
SIGCHLD Завершение выполнения дочернего процесса
CLD_EXITED Дочерний процесс завершил выполнение
CLD_KILLED Дочерний процесс был "убит"
CLD_DUMPED Ненормальное завершение дочернего процесса
CLD_TRAPPED Трассируемый дочерний процесс находится в ловушке
CLD_STOPPED Выполнение дочернего процесса было остановлено
CLD_CONTINUED Выполнение остановленного дочернего процесса было продолжено
SIGPOLL Событие на опрашиваемом устройстве
POLL_IN Поступили данные для ввода
POLL_OUT Свободны буферы данных
POLL_MSG Сообщение ожидает ввода
POLL_ERR Ошибка ввода/вывода
POLL_PRI Высокоприоритетные данные ожидают ввода
POLL_HUP Устройство отключено

Уже отмечалось, что при получении сигнала от пользовательского процесса структура siginfo_tсодержит дополнительные поля (табл. 2.20).

Таблица 2.20. Дополнительные поля структуры siginfo_t

Значение поля si_signo Дополнительные поля Значение
SIGILL SIGFPE caddr_t si_addr Адрес недопустимой инструкции
SIGSEGV SIGBUS caddr_t si_addr Адрес недопустимой области памяти
SIGCHLD pid_t si_pid Идентификатор дочернего процесса
int si_status Код возврата сигнала
SIGPOLL long si_band Ошибка канала (для модулей STREAMS)

Установить маску сигналов или получить текущую маску можно с помощью функции sigprocmask(2) :

#include

int sigprocmask(int how, sigset_t *set, sigset_t *oset);

Маска сигналов изменяется в соответствии с аргументом how, который может принимать следующие значения:

SIG_BLOCK Результирующая маска получится путем объединения текущей маски и набора set
SIG_UNBLOCK Сигналы набора setбудут удалены из текущей маски
SIG_SETMASK Текущая маска будет заменена на набор set

Если указатель setравен NULL, то аргумент how игнорируется. Если аргумент osetне равен NULL, то в набор, адресованный этим аргументом, помещается текущая маска сигналов.

Функция sigpending(2) используется для получения набора заблокированных сигналов, ожидающих доставки:

#include

int sigpending(int how, sigset_t *set, sigset_t *oset);

Список сигналов, ожидающих доставки, возвращается в наборе, адресованном аргументом set.

Системный вызов sigsuspend(2) замещает текущую маску набором, адресованным аргументом set, и приостанавливает выполнение процесса до получения сигналов, диспозиция которых установлена либо на завершение выполнения процесса, либо на вызов функции-обработчика сигнала.

#include

int sigsuspend(const sigset_t *set);

При получении сигнала, завершающего выполнение процесса, возврата из функции sigsuspend(2) не происходит. Если же диспозиция полученного сигнала установлена на вызов функции-обработчика, возврат из sisuspend(2) происходит сразу после завершения обработки сигнала. При этом восстанавливается маска, существовавшая до вызова sigsuspend(2) .

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Андрей Робачевский читать все книги автора по порядку

Андрей Робачевский - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Операционная система UNIX отзывы


Отзывы читателей о книге Операционная система UNIX, автор: Андрей Робачевский. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x