Вместе с добавлением в операционную систему поддержки нитей, были добавлены новые и расширены некоторые старые функции для работы с процессами. Теперь планировщик управляет работой нитей, а не процессов. Обработчик сигналов по-прежнему описывается на уровне процессов, однако для каждой нити можно задать маску сигналов. Вот несколько примеров измененных и новых функций: getprocs, getthrds, ptrace, getpri, setpri, yield и sigprocmask.
Эти функции можно отнести к следующим категориям:
exec:, execl, execv , execle, execve, execlp, execvp и exect | |
Запуск в вызывающем процессе новой программы | |
fork и vfork | Создание нового процесса |
reboot | Повторный запуск системы |
siginterrupt | Задает список функций, которые должны запускаться повторно после получения специального сигнала прерывания |
pause | Приостанавливает процесс до получения сигнала |
wait, wait3, waitpid | Приостанавливает процесс до тех пор, пока не будет прерван или завершен дочерний процесс |
abort | Завершает текущий процесс и создает дамп памяти путем отправки сигнала SIGOT |
exit, atexit и _exit | Завершает процесс |
kill и killpg | Завершает текущий процесс или группу процессов путем отправки сигнала |
ctermid | Возвращает полное имя терминала, управляющего текущим процессом |
cuserid | Возвращает буквенно-цифровое имя пользователя, связанное с текущим процессом |
getpid, getpgrp и getppid | Возвращает ИД процесса, группы процессов и родительского процесса, соответственно |
getprocs | Возвращает записи из таблицы процессов |
getthrds | Возвращает записи из таблицы нитей |
setpgid и setpgrp | Задает ИД группы процессов |
setsid | Создает сеанс и задает идентификаторы групп процессов |
uname и unamex | Возвращает имя текущей операционной системы |
acct | Включает и выключает режим учета ресурсов процесса |
ptrace | Трассировка процесса |
brk и sbrk | Изменяет размер сегмента данных |
getdtablesize | Возвращает размер таблицы дескрипторов |
getrlimit, setrlimit и vlimit | Устанавливают ограничения на системные ресурсы для текущего процесса |
getrusage, times и vtimes | Выводит информацию об использовании ресурсов |
plock | Блокируют процессы, текст или данные в памяти |
profil | Запускает и завершает профайлер, собирающий информацию о частоте обращения по различным адресам программы |
ulimit | Устанавливает ограничения на ресурсы для пользовательского процесса |
getpri | Возвращает приоритет планирования процесса |
getpriority, setpriority и nice | Возвращает или устанавливает значение приоритета процесса |
setpri | Устанавливает постоянное значение приоритета планирования процесса |
yield | Освобождает процессор для процессов с более высоким приоритетом |
compare_and_swap | Обновляет переменную длиной в слово при выполнении заданного условия и возвращает ее значение; выполняется как атомарная операция |
fetch_and_add | Обновляет переменную длиной в слово; выполняется как атомарная операция |
fetch_and_and и fetch_and_or | Устанавливает или сбрасывает биты переменной длиной в слово; выполняется как атомарная операция |
semctl | Управляет операциями над семафором |
semget | Возвращает набор семафоров |
semop | Выполняет операции над семафором |
raise | Отправляет сигнал работающей программе |
sigaction, sigvec и signal | Задает реакцию на получение сигнала |
sigemptyset, sigfillset, sigaddset, | |
Предназначена для создания и работы с маской сигналов | |
sigpending | Задает набор сигналов, отправка которых блокируется |
sigprocmask, sigsetmask и sigblock | Устанавливает маску сигналов |
sigset, sighold, sigrelse и sigignore | Дополнительные функции обработки и управления сигналами |
sigsetjmp и siglongjmp | Сохраняет и возвращает содержимое стека и маски сигналов |
sigstack | Задает содержимое стека сигналов |
sigsuspend | Изменяет набор заблокированных сигналов |
ssignal и gsignal | Реализуют средство отправки сигналов |
msgctl | Предназначена для управления сообщениями |
msgget | Выводит на экран идентификатор очереди сообщений |
msgrcv | Считывает сообщение из очереди |
msgsnd | Отправляет сообщения в очередь сообщений |
msgxrcv | Принимает расширенное сообщение |
psignal | Печать сообщений о сигналах системы |