CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
15.12.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Дистрибутивы :: BSD :: DragonFly BSD

DragonFly - Новая модель устройств ввода-вывода

Ввод-вывод значительно легче наладить, чем VFS, потому что большинство устройств уже работают асинхронно, несмотря на полусинхронный API. Рассматриваемая модель ввода-вывода предполагает три крупных направления работы:

  1. Для представления данных ввода-вывода будут использованы диапазоны объектов виртуальной памяти, а не системных или пользовательских адресов. Это позволит устройствам ввода-вывода работать совершенно независимо от порождающих их пользовательских процессов.
  2. Ввод-вывод устройства будет контролироваться системой "порт/работа_с_сообщениями" (см. http://www.dragonflybsd.org/goals/messaging.cgi).
  3. Ввод-вывод устройства обычно будет сериализоваться через одну или несколько нитей. Каждое устройство обычно будет управляться своей собственной нитью, но некоторые особо мощные устройства могут управляться несколькими потоками (до одного на процессор). Многонитевые устройства не обязательно будут конкурировать за ресурсы. Например, стек ТСР можно было бы сделать многонитевым, приписывая к каждой нити работу с целевыми портами с одинаковыми номерами портов по модулю N, это обеспечить использование нескольких нитей (и несколько процессорах) без конфликтов.

В сообщениях ввода-вывода будут использоваться неструктурированные 64-битные байтовые смещения, а не номера блоков.

Заметим, что сообщения могут обрабатываться устройством синхронно. Не следут ошибаться, полагая, что сообщения безусловно сериализуются в поток устройства, поскольку это не так. Подробности см. на http://www.dragonflybsd.org/goals/messaging.cgi.

Следует также отметить, что интерфейс устройства разрабатывается достаточно гибким, чтобы позволить устройствам функционировать как пользовательским процессам, а не нитям ядра. Хотя в течение некоторого времени мы, вероятно, не сможем добиться этой возможности, она является нашей конечной целью. Есть множество преимуществ в том, чтобы прозрачно вынести механизмы, подобные виртуальным блочным устройствам или даже целым файловым системам, в пользовательское пространство.





Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds