Главная » (2) Системные вызовы ядра (функции языка Си)





ИМЯ


migrate_pages - переносит все страницы процесса на другой набор узлов



ОБЗОР


#include <numaif.h>

long migrate_pages(int pid, unsigned long maxnode,
const unsigned long *old_nodes,
const unsigned long *new_nodes);

Компонуется при указании параметра -lnuma.



ОПИСАНИЕ


Вызов migrate_pages() пытается перенести все страницы процесса с идентификатором
pid, находящиеся в памяти узлов old_nodes, в память узлов new_nodes. Страницы, не
расположенные в узлах old_nodes, не переносятся. При переносе на new_nodes ядро в
максимально возможной степени поддерживает относительную топологию связи внутри
old_nodes.

Аргументы old_nodes и new_nodes представляют собой указатели на маски битов
номеров узлов, до maxnode в каждой маске. Эти маски обрабатываются как массивы
беззнаковых целых long (в ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 456 | Добавил: Администратор | Дата: 21.11.2017 | Комментарии (0)





ИМЯ


memfd_create - создаёт анонимный файл



ОБЗОР


#include <sys/memfd.h>

int memfd_create(const char *name, unsigned int flags);

Замечание: В glibc нет обёрточной функции для данного системного вызова; смотрите
ЗАМЕЧАНИЯ.



ОПИСАНИЕ


Вызов memfd_create() создаёт анонимный файл и возвращает ссылающийся на него
файловый дескриптор. Анонимный файл и ведёт себя как обычный файл и может быть
изменён, обрезан, отображён в памятью и т.д. Однако в отличие от обычного файла он
располагается в ОЗУ и не имеет энергонезависимого хранилища. Как только все ссылки
на файл удаляются, он автоматически исчезает. Анонимные файлы располагаются в
анонимной памяти. Поэтому у файлов, создаваемых memfd_create(), такая же семантика
как и областей анонимной памяти, выделяемой с помощью mmap(2) с флагом
MAP ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 462 | Добавил: Администратор | Дата: 21.11.2017 | Комментарии (0)





ИМЯ


membarrier - задаёт барьеры памяти в наборе нитей



ОБЗОР


#include <linux/membarrier.h>

int membarrier(int cmd, int flags);



ОПИСАНИЕ


Системный вызов membarrier() помогает сократить накладные расходы инструкций
барьера памяти, которые требуются при доступе к памяти в многоядерных системах.
Однако данный системный вызов затратнее чем барьер памяти, поэтому чтобы
использовать его эффективно недостаточно просто заменить им барьеры памяти,
требуется понимание описанного далее.

При использовании барьеров памяти нужно принимать во внимание, что барьер памяти
всегда должен или иметь противоположную сторону барьера, или что модель памяти
архитектуры этого не требует.

При работе бывает, что одна сторона барьера (которую будем называть «быстрой
стороной») применяется чаще чем другая (кот ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 443 | Добавил: Администратор | Дата: 21.11.2017 | Комментарии (0)





ИМЯ


mbind - устанавливает политику на область памяти



ОБЗОР


#include <numaif.h>

long mbind(void *addr, unsigned long len, int mode,
const unsigned long *nodemask, unsigned long maxnode,
unsigned flags);

Компонуется при указании параметра -lnuma.



ОПИСАНИЕ


Вызов mbind() устанавливает политику памяти NUMA, состоящую из режима политики и
нуля или более узлов, на область памяти, начинающуюся с addr и длиной len байт.
Политикой памяти задаётся на каком узле будет выделяться память.

Если область памяти, заданная аргументами addr и len, включает «анонимную» область
памяти — область памяти, созданную с помощью системного вызова mmap(2) с
аргументом MAP_ANONYMOUS — или файл, отображённый в память с помощью вызова
mmap(2) с флагом MAP_PRIVATE, то страницы будут выделены в соот ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 423 | Добавил: Администратор | Дата: 21.11.2017 | Комментарии (0)





ИМЯ


madvise - отсылает предложения по использованию памяти



ОБЗОР


#include <sys/mman.h>

int madvise(void *addr, size_t length, int advice);

Требования макроса тестирования свойств для glibc (смотрите feature_test_macros(7)):

madvise():
Начиная с glibc 2.19:
_DEFAULT_SOURCE
Начиная с glibc 2.19:
_BSD_SOURCE



ОПИСАНИЕ


Системный вызов madvise() используется, чтобы дать совет или указать направление
ядру о диапазоне адресов, начинающемся с адреса addr и имеющем размер length байт.
В большинстве случаев, целью такого совета является повышение производительности
системы или приложения.

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

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 541 | Добавил: Администратор | Дата: 21.11.2017 | Комментарии (0)





ИМЯ


afs_syscall, break, fattach, fdetach, ftime, getmsg, getpmsg, gtty, isastream,
lock, madvise1, mpx, prof, profil, putmsg, putpmsg, security, stty, tuxcall,
ulimit, vserver - нереализованные системные вызовы



ОБЗОР


Нереализованные системные вызовы.



ОПИСАНИЕ


Данные системные вызовы не реализованы в ядре Linux.



ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ


Эти системные вызовы всегда возвращают -1 и устанавливают для errno значение
ENOSYS.



ЗАМЕЧАНИЯ


Заметим, что ftime(3), profil(3) и ulimit(3) реализованы в виде библиотечных
функций.

Некоторые системные вызовы, такие как alloc_hugepages(2), free_hugepages(2),
ioperm(2), iopl(2) и vm86(2), существуют только для некоторых архитектур.

Некоторые системны ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 403 | Добавил: Администратор | Дата: 21.11.2017 | Комментарии (0)





ИМЯ


stat, fstat, lstat, fstatat - считывает состояние файла



ОБЗОР


#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

int stat(const char *pathname, struct stat *statbuf);
int fstat(int fd, struct stat *statbuf);
int lstat(const char *pathname, struct stat *statbuf);

#include <fcntl.h> /* определения констант AT_* */
#include <sys/stat.h>

int fstatat(int dirfd, const char *pathname, struct stat *statbuf,
int flags);

Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

lstat():
/* glibc 2.19 и старее */ _BSD_SOURCE
|| /* начиная с glibc 2.20 */ _DEFAULT_SOURCE
|| _XOPEN_SOURCE >= 500
|| /* начиная с glibc 2.10: */ _POSIX_C_SOURCE >= 200112L

fstatat():
Начиная с glibc 2.10:
_POSIX_C_SOURCE >= ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 444 | Добавил: Администратор | Дата: 21.11.2017 | Комментарии (0)

« 1 2 ... 29 30 31 32 33 ... 59 60 »