Главная » (7) Различные описания, соглашения и прочее





ИМЯ


signal-safety - функции async-signal-safe



ОПИСАНИЕ


Функцией async-signal-safe называется функция, которую безопасно вызывать внутри
обработчика сигналов. Многие функции не являются async-signal-safe. В частности,
нереентерабельные функции, обычно, небезопасно вызывать в обработчиках сигналов.

Виды проблем, которые делают функцию небезопасной, можно быстро понять на примере
реализации библиотеки stdio, все функции которой являются не async-signal-safe.

При выполнении буферизируемого ввода-вывода в файл функции stdio должны вести
статически выделенный буфер и связанные с ним счётчики и индексы (или указатели),
содержащие количество данных и текущее положение в буфере. Предположим, что
основная программа находится в середине вызова функции stdio, напри ... Читать дальше »

Категория: (7) Различные описания, соглашения и прочее | Просмотров: 1121 | Добавил: Администратор | Дата: 18.11.2017 | Комментарии (0)





ИМЯ


signal - обзор сигналов



ОПИСАНИЕ


В Linux поддерживаются надёжные (reliable) сигналы POSIX (далее, «стандартные
сигналы») и сигналы реального времени POSIX.

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

В таблицах далее есть столбец «Действие», в котором указан обработчик по умолчанию
для каждого сигнала:

Term Действие по умолчанию — завершение процесса.

Ign Действие по умолчанию — игнорирование сигнала.

Core Действие по умолчанию — завершение процесса и вывод дампа в файл (смотрите
core(5)).

Stop Действие по умолчанию — остановка процесса.

Cont Действие по умолчанию — продолжение работы п ... Читать дальше »

Категория: (7) Различные описания, соглашения и прочее | Просмотров: 636 | Добавил: Администратор | Дата: 18.11.2017 | Комментарии (0)





ИМЯ


sigevent - структура для уведомления из асинхронных процедур



ОБЗОР


#include <signal.h>

union sigval { /* Данные, передаваемые с уведомлением */
int sival_int; /* целое */
void *sival_ptr; /* указатель */
};

struct sigevent {
int sigev_notify; /* метод уведомления */
int sigev_signo; /* сигнал уведомления */
union sigval sigev_value; /* данные, передаваемые
с уведомлением */
void (*sigev_notify_function) (union sigval);
/* функция, используемая для нити
notification (SIGEV_THREAD) */
void *sigev_notify_attributes;
/ ... Читать дальше »

Категория: (7) Различные описания, соглашения и прочее | Просмотров: 909 | Добавил: Администратор | Дата: 18.11.2017 | Комментарии (0)





ИМЯ


shm_overview - обзор общей памяти POSIX



ОПИСАНИЕ


API общей памяти POSIX позволяет процессам обмениваться информацией через общую
область памяти.

Доступные интерфейсы:

shm_open(3) Создаёт и открывает новый объект, или открывает существующий
объект. Аналог open(2). Вызов возвращает файловый дескриптор,
которые используется другими интерфейсами, описанными далее.

ftruncate(2) Назначает размер общего объекта памяти (размер создаваемого объекта
общей памяти равен нулю).

mmap(2) Отображает объект общей памяти в виртуальное адресное пространство
вызвавшего процесса.

munmap(2) Удаляет отображение объекта общей памяти ... Читать дальше »

Категория: (7) Различные описания, соглашения и прочее | Просмотров: 532 | Добавил: Администратор | Дата: 18.11.2017 | Комментарии (0)





ИМЯ


session-keyring - общая сеансовая связка ключей процесса



ОПИСАНИЕ


Связка ключей сеанса — это связка ключей для привязки ключей от имени процесса.
Обычно, она создаётся pam_keyinit(8) при входе пользователя в систему и
добавляется связь, на которую указывает user-keyring(7). Также, PAM может отозвать
связку ключей сеанса при выходе пользователя (обычно, PAM так и делает). Связка
ключей сеанса имеет имя (описание) _ses.

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

В утилите keyctl(1) подобным образом можно использовать «@s» вместо числового
идентификатора ключа.

Связка ключей ... Читать дальше »

Категория: (7) Различные описания, соглашения и прочее | Просмотров: 519 | Добавил: Администратор | Дата: 18.11.2017 | Комментарии (0)





ИМЯ


sem_overview - обзор семафоров POSIX



ОПИСАНИЕ


Семафоры POSIX позволяют процессам и нитям синхронизировать свою работу.

Семафор представляет собой целое число, значение которого никогда не будет меньше
нуля. Над семафорами выполняются две операции: увеличение значения семафора на
единицу (sem_post(3)) и уменьшение значения семафора на единицу (sem_wait(3)).
Если значение семафора равно нулю, то операция sem_wait(3) блокирует работу до тех
пор, пока значение не станет больше нуля.

Есть два вида семафоров POSIX: именованные семафоры и безымянные семафоры.

Именованные семафоры
Именованные семафоры отличают по именам вида /имя — строка (с null в конце)
до NAME_MAX-4 (т. е., 251) символов, состоящая из начальной косо ... Читать дальше »

Категория: (7) Различные описания, соглашения и прочее | Просмотров: 713 | Добавил: Администратор | Дата: 18.11.2017 | Комментарии (0)





ИМЯ


sched - обзор планирования работы ЦП



ОПИСАНИЕ


Начиная с Linux 2.6.23 планировщиком по умолчанию является CFS — «полностью
честный планировщик» (Completely Fair Scheduler). Планировщик CFS заменил
использовавшийся ранее «O(1)».

Краткие сведения о программном интерфейсе
Для управления планированием, алгоритмом и приоритетом процессов (более точно,
нитей) на ЦП в Linux имеются следующие системные вызовы:

nice(2)
Назначает новое значение уступчивости вызвавшей нити и возвращает новое
значение уступчивости.

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

setpriority(2) ... Читать дальше »

Категория: (7) Различные описания, соглашения и прочее | Просмотров: 655 | Добавил: Администратор | Дата: 18.11.2017 | Комментарии (0)

« 1 2 3 4 5 6 7 ... 18 19 »