_SC_THREADS | _POSIX_THREADS | Поддерживает потоки |
_SC_THREAD_ATTR_ STACKADDR | _POSIX_THREAD_ATTR_ STACKADDR | Поддерживает атрибут адреса стека потока |
_SC_THREAD_ATTR_ STACKSIZE | _POSIX_THREAD_ATTR_ STACKSIZE | Поддерживает атрибут размера стека потока |
_SC_THREAD_STACK_ MIN | PTHREAD_STACK_MIN | Минимальный размер стека потока в байтах |
_SC_THREAD_THREADS_MAX | PTHREAD_THREADS MAX | Максимальное количество потоков на процесс |
_SC_THREAD_KEYS_MAX | PTHREAD_KEYS_MAX | Максимальное количество ключей на процесс |
_SC_THREAD_PRIO_INHERIT | _POSIX_THREAD_PRIO_ INHERIT | Поддерживает опцию наследования приоритета |
_SC_THREAD_PRIO | _POSIX THREAD_PRIO | Поддерживает опцию приоритета потока |
_SC_THREAD_PRIORITY_ SCHEDULING | _POSIX_THREAD_PRIORITY_SCHEDULING | Поддерживает опцию планирования приоритета потока |
_SC_THREAD_PROCESS_SHARED | _POSIX_THREAD_PROCESS_SHARED | Поддерживает синхронизацию на уровне процесса |
_SC_THREAD_SAFE_ FUNCTIONS | _POSIX_THREAD_SAFE_FUNCTIONS | Поддерживает функции безопасности потока |
_SC_THREAD_ DESTRUCTOR_ ITERATIONS | _PTHREAD_THREAD_DESTRUCTOR_ITERATIONS | Определяет количество попыток, направленных на разрушение потоковых данных при завершении потока |
_SC_CHILD_MAX | CHILD_MAX | Максимальное количество процессов, разрешенных для UID |
_SC_PRIORITY_ SCHEDULING | _POSIX_PRIORITY_ SCHEDULING | Поддерживает планирование процессов |
_SC_REALTIME_ SIGNALS | _POSIX_REALTIME_SIGNALS | Поддерживает сигналы реального времени |
_SC_XOPEN_REALTIME_THREADS | _XOPEN_REALTIME_ THREADS | Поддерживает группу потоковых средств реального времени X/Open POSIX |
_SC_STREAM_MAX | STREAM_MAX | Определяет количество потоков данных, которые один процесс может открыть одновременно |
_SC_SEMAPHORES | _POSIX_SEMAPHORES | Поддерживает семафоры |
_SC_SEM_NSEMS_MAX | SEM_NSEMS_MAX | Определяет максимальное количество семафоров, которое может иметь процесс |
_SC_SEM_VALUE_MAX | SEM_VALUE_MAX | Определяет максимальное значение, которое может иметь семафор |
_SC_SHARED_MEMORY_ OBJECTS | _POSIX_SHARED_MEMORY_OBJECTS | Поддерживает объекты общей памяти |
Управление критическими разделами
Параллельно выполняемые процессы (или потоки в одном процессе) могут совместно использовать структуры данных, переменные или отдельные данные. Разделение глобальной памяти позволяет процессам или потокам взаимодействовать друг с другом и получать доступ к общим данным. При использовании нескольких процессов разделяемая глобальная память является внешней по отношению к ним. Внешнюю структуру данных можно использовать для передачи данных или команд между процессами. Если же необходимо организовать взаимодействие потоков, то они могут иметь доступ к структурам данных или переменным, являющимся частью одного и того же процесса, которому они принадлежат.