버스 마스터링

버스 마스터링(Bus mastering)은 수많은 버스 구조에서 지원하는 기능으로, 버스에 연결된 장치가 트랜잭션을 시작할 수 있게 도와 준다. "퍼스트 파티 DMA"라고도 부르며, 이는 시스템 DMA 컨트롤러가 실제로 전송을 하는 서드 파티 DMA와는 대조된다.

어떠한 종류의 버스들은 하나의 장치(일반적으로 CPU 등)만이 트랜잭션을 시작할 수 있게 한다. PCI와 같은 현대의 대부분의 버스 구조는 여러 개의 장치들에 버스 마스터링을 허용할 수 있는데 이는 일반 목적의 운영 체제 성능을 상당히 개선시켜 주기 때문이다. 일부 실시간 운영 체제는 주변 기기가 버스 마스터가 되는 것을 금지하는데 이는 스케줄러가 더 이상 버스를 중재하지 못하여 결정적인 레이턴시를 제공하지 못하기 때문이다.

버스 마스터링은 이론적으로 하나의 주변 기기를 다른 기기와 직접 통신할 수 있게 하지만, 실제로는 거의 모든 주변 기기는 기본 메모리에 DMA를 수행할 목적으로 버스 마스터링을 이용한다.

여러 개의 장치가 버스 마스터링을 할 수 있다면 여러 개의 장치가 동시에 버스를 운영하려는 시도를 방지하는 중재 계획이 필요하다. 각기 다른 수많은 계획이 여기에 사용되는데 이를테면 SCSI는 개별 SCSI ID를 위한 고정된 우선 순위를 지니고 있다. PCI의 경우 사용할 알고리즘을 지정하지 않는다.

참조 
  How Bus Mastering Works - Tweak3D

컴퓨터 버스
메인보드