diff --git a/ru/kse/index.sgml b/ru/kse/index.sgml new file mode 100644 index 0000000000..78b12e53d9 --- /dev/null +++ b/ru/kse/index.sgml @@ -0,0 +1,256 @@ + + + + + + + %includes; + + +Выполнено"> +Выполняется"> +Заброшено"> +Не начиналось"> +Решено"> +Не решено"> + + + + %developers; + +]> + + + &header; + +
Объекты планирования ядра (Kernel Scheduler Entities - KSE) представляет + собой систему многопоточного выполнения ядра, архитектура которой подобна + Scheduler Activations [Андерсон и другие]. Она обеспечивает баланс между + моделями многопоточного выполнения пользовательского уровня (1:N) и уровня + ядра (1:1), обладает большинством преимуществ обоих подходов, и несколькими + их отрицательными сторонами.
+ +В этом проекте имеются две стороны: поддержка на уровне ядра и поддержка + на уровне пользователя. Поддержка на уровне ядра представляет собой + модификации к планировщику FreeBSD; пользовательская половина является + реализацией &posix;-потоков выполнения, которые используют преимущества + дополнительных служб ядра.
+ +Целью является замена имеющейся на данный момент пользовательской системы + многопоточного выполнения в библиотеке libc_r и параметре -pthread + компилятора gcc, на новую библиотеку libpthread, которая будет + компоноваться при использовании параметра -lpthread компилятора + gcc.
+ + +Вся работа над KSE выполняется в 5.0-CURRENT. Для построения ядра с + изменениями, касающимися KSE, не требуется никаких специальных параметров + ядра (изменения не отделимы от планировщика FreeBSD).
+ +Для использования KSE в приложении вам необходимо скомпоновать его с + библиотекой libpthread; это делается весьма однозначнм образом. В + make-файлах приложения измените параметр компилятора -pthread или + параметр компоновщика -lc_r на -lpthread и выполните + компоновку повторно. В качестве альтернативного способа вы можете + использовать файл /etc/libmap.conf для отображения libc_r в + libpthread (обратитесь к libmap.conf(5)).
+ + ++ +
Далее приведен неполный общий перечень задач:
+ +Модуль | +Задача | +Ответственный | +Последнее обновление | +Состояние | +
---|---|---|---|---|
libpthread | +Написание страницы справки kse(2), описывающей новые системные + вызовы. | +&a.archie; | +10 сентября 2002 | +&status.done; | +
libpthread | +Repo-копия библиотеки libpthread из libc_r. | +хозяин cvs | +16 сентября 2002 | +&status.done; | +
libpthread | +Использование KSE для планирования процессов. | +&a.mini; | +30 октября 2002 | +&status.done; | +
libpthread | +Планирование простаивающего контекста по возможности. | +&a.mini; | +2 ноября 2002 | +&status.done; | +
libpthread | +Направление сигналов в потоки. | +&a.deischen; &a.davidxu; | +28 июня 2003 | +&status.done; | +
libpthread | +Разделение для SMP. | +&a.deischen; | +3 мая 2003 | +&status.done; | +
kernel | +Разделение для SMP. | +&a.davidxu; | +3 мая 2003 | +&status.done; | +
libpthread | +Запуск нескольких KSE (один на каждый CPU). | +&a.davidxu; | +3 мая 2003 | +&status.done; | +
libpthread, kernel | +Реализация машинно-зависимых функций для alpha. | +&a.marcel; | +30 августа 2003 | +&status.wip; | +
libpthread, kernel | +Реализация машинно-зависимых функций для amd64. | +&a.davidxu; &a.deischen; | +30 августа 2003 | +&status.done; | +
libpthread, kernel | +Реализация машинно-зависимых функций для i386. | +&a.davidxu; &a.deischen; | +30 августа 2003 | +&status.done; | +
libpthread, kernel | +Реализация машинно-зависимых функций для ia64. | +&a.marcel; | +30 августа 2003 | +&status.done; | +
libpthread, kernel | +Реализация машинно-зависимых функций для sparc64. | +&a.jake; | +30 августа 2003 | +&status.wip; | +
kernel | +Реализация схемы сигналов, специфичной для KSE. | +&a.davidxu; | +28 июня 2003 | +&status.done; | +
libpthread | +Реализация границ системных потоков. | +&a.deischen; | +3 мая 2003 | +&status.done; | +
kernel | +Эффективное ограничение системных потоков (отсутствие вызовов при + их блокировке). | +&a.davidxu; | +30 августа 2003 | +&status.done; | +