Информатика операционные системы

Первый вызов, Fork, создает новую нить в том же адресном пространстве, в котором работает вызывающая нить. Новая нить выполняет процедуру, указанную в качестве параметра вызова Fork, а не процедуру родительской нити. После выполнения вызова родительская нить продолжает выполняться параллельно с порожденной нитью. Нить запускается с приоритетом и назначается на процессор в соответствии с параметрами процесса, к которому она относится.

Когда нить завершает свою работу, она выполняет вызов Exit. Если родительская нить заинтересована фактом завершения данной нити и выполнила вызов Join, то родительская нить блокирует себя до тех пор, пока данная нить, порожденная ею, не завершится. Если эта нить уже завершилась, родительская нить немедленно продолжает свое выполнение. Эти три вызова является грубыми аналогами системных вызовов UNIX'а FORK, EXIT и WAITPID.

Четвертый вызов, Detach, в UNIX'е отсутствует. Он обеспечивает способ, с помощью которого какая-либо нить может объявить, что ее не следует ждать. Обычно очистка стека и другой информации о состоянии родительской нити происходит только после того, как эта нить, присоединившая нить-потомок с помощью вызова Join, будет уведомлена о завершении нити-потомка. Для нити, выполнившей вызов Detach, такая очистка происходит немедленно после ее завершения (с помощью вызова Exit). В сервере это может быть полезно, когда для обслуживания каждого поступающего запроса инициализируется новая нить, а не используется уже существующая.

Вызов Yield говорит планировщику о том, что у нити нет полезной работы в данный момент времени, и она отдает управление процессором по собственной инициативе. В Mach, где обычно используется вытесняющая многозадачность, вызов Yield используется только для оптимизации. В системах с невытесняющей многозадачностью этот вызов - основной для планирования работы нитей.

Синхронизация осуществляется с помощью мьютексов и переменных состояния. Примитивами мьютексов являются вызовы Lock, Trylock и Unlock. Также есть примитивы для распределения и освобождения мьютексов. Примитивы мьютексов в С-пакете те же, что и в пакете DCE.

Информатика операционные системы

Персональный компьютер Novell NetWare специализированная операционная система Сетевые продукты Microsoft OS/2