Немного из мэйл листов FreeBSD, N5 30.03.2003 Потоки вида 1:1
В ядре FreeBSD 5.0-CURRENT уже практически всё готово для поддержки
потоков вида 1:1, однако основные усилия разработчиков KSE направлены
на разработку потоков вида M:N, её ядерной части и пользовательской библиотеки.
Так как эта разработка грозит затянуться, Jeff Roberson сделал реализацию
потоков
вида 1:1 на основе инфраструктуры KSE,
но используя при этом свой API, а не тот, который описан в
kse(2).
Весьма вероятно, что во FreeBSD 5.1-RELEASE уже будут
отлаженные потоки с поддержкой на уровне ядра и совместимые
со стандартом POSIX pthreads.
03.04.2003:
Первый вариант уже находится в репозитарии и опробован в работе
с Mozilla, OpenOffice и KDE.
Пользовательская библиотека libthr бинарно совместима с библиотекой libc_r.
То есть, если приложение собрано с динамически подгружаемой библиотекой
libc_r, то можно сделать симлинк на libthr и проверить работоспособность
с новыми потоками.
Для доступа к данным, специфичным для каждого потока,
на платформе x86 используется сегментный регистр gs,
в котором хранится селектор LDT.
Так как для каждого потока используется свой селектор, то
максимально возможное число потоков на платформе x86 ограничено
максимальным числом селекторов в LDT - 8192.
На платформе sparc64 используется регистр g6 и такого жёсткого
ограничения на число потоков нет.
Возможно, в будущем реализация измениться, например, все потоки
будут использовать один и тот же селектор, а при переключении потоков
ядро будет модифицировать сам дескриптор в LDT.
Сейчас же селектор и дескриптор устанавливаются на пользовательском
уровне сразу после создания потока.
Хотя возможен и другой вариант - использование libthr с большим количеством
потоков будет сочтено нецелесообразным и вместо этого будет рекомендоваться
использовать потоки модели M:N, реализованные в библиотеке libkse.
Поддержка PAE
Во FreeBSD 5.0-CURRENT появилась
поддержка PAE, позволяющая использовать
до 64G физической памяти на процессорах PentiumPro и выше.
Хотя адресное пространство процесса ограничено 4G (на самом деле, даже 3G),
тем не менее, PAE позволяет хранить больше используемых страниц в памяти,
не прибегая к свопу.
Наиболее оптимально использование PAE с устройствами и их драйверами,
поддерживающими 64-битную адресацию.
(C) Игорь Сысоев http://sysoev.ru |