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