Глава 15, Отображение памяти и DMA |
Предыдущая Содержание Следующая |
В этой главе углубляется в область управления памятью в Linux, с акцентом на методах, которые являются полезными для автора драйвера устройства. Многие типы программирования драйвера требуют некоторого понимания того, как работает виртуальная подсистема памяти; материал, который мы рассмотрим в этой главе не раз пригодится, когда мы перейдём к некоторым из наиболее сложных и критических по производительности подсистемам. Подсистема виртуальной памяти является также весьма интересной частью основного ядра Linux и, следовательно, она заслуживает внимания.
Материал в этой главе состоит из трёх разделов:
•Первый рассматривает реализацию системного вызова mmap, который позволяет отображение памяти устройства непосредственно в адресное пространство пользовательского процесса. Не все устройства требуют поддержки mmap, однако, для некоторых отображение памяти устройства может дать значительный прирост производительности. •Затем мы посмотрим на пересечение границы с другой стороны, обсуждая прямой доступ к страницам пользовательского пространства. Такая возможность необходима сравнительно небольшому числу драйверов; во многих случаях ядро выполняет такого рода отображение, когда драйвер даже не подозревает об этом. Но понимание того, как отображать память пользовательского пространства в ядро (используя get_user_pages) может быть полезным. •Заключительный раздел рассматривает операции ввода/вывода с прямым доступом к памяти (DMA), которые обеспечивают периферии прямой доступ к системной памяти. Конечно, все эти методы требуют понимания того, как в Linux работает управление памятью, поэтому мы начнём с обзора этой подсистемы.
|
Предыдущая Содержание Следующая |