Для корректной работы в многонитевых системах необходимо пересматри¬вать не только fork, но и многие другие системные вызовы. Все LWP процесса разделяют между собой общий набор файловых дескрипторов. Это может стать причиной возникновения конфликта в случае, если один из LWP закроет файл, который в текущий момент времени считывается или в него ведется запись другим LWP. Файловый указатель на смещение также используется совместно всеми нитями через дескриптор, поэтому применение функции Iseek одним из LWP повлияет на работу с этим файлом всех остальных нитей. Эта проблема проиллюстрирована.
Используется при считывании из файла или записи в файл для запоминания той позиции, откуда необходимо начинать чтение или запись при следующем вызове read или write. — Прим. ред. необходимо прочесть данные из файла, начиная со смещения offl, для чего он вызывает функцию Iseek, а затем — read. Между двумя означенными вызовами другой процесс Л2 применяет Iseek в отношении того же файла, указывая при этом другое смещение. Такая ситуация приведет к тому, что Л1 считает не те данные. Приложение должно решать подобные проблемы самостоятельно, используя какой-либо протокол блокирования файлов. Альтернативным решением являются механизмы ядра системы, которые позволяют производить произвольный ввод-вывод атомарно.
Каждый процесс имеет один текущий рабочий каталог и использует одну структуру пользовательских полномочий. Так как полномочия могут изменять¬ся в любой момент времени, ядро должно использовать их атомарно и только однажды перед системным вызовом. Все LWP процесса используют совместно одно и то же адресное пространство и могут манипулировать им одновременно при помощи различных системных вызовов, таких как mmap или brk. Такие вызовы должны быть безопасными (в отношении нитей) во избежание повреждения адресного пространства процесса. Программистам следует внимательно относиться к последовательности таких операций, так как в противном случае результат может быть непредсказуем.
Хотите выгодно выделить свой товар среди конкурирующих, да и просто желаете понравится потребителю? Обращайтесь в производство гофрокоробов в москве, мы создадим для вас надежную и привлекательную упаковку из картона.