운영 체제(OS)의 관점에서 "직접 메모리 접근(Direct Memory Access, DMA)"은 CPU의 개입 없이 주변장치가 시스템 메모리에 직접 데이터를 읽고 쓸 수 있게 하는 하드웨어 기능입니다. DMA는 특히 대용량 데이터 전송에 효율적이며, CPU의 부담을 줄여 시스템 성능을 향상시킵니다.
정의: DMA는 CPU를 거치지 않고 주변장치(예: 하드 드라이브, 네트워크 카드, 사운드 카드 등)가 시스템 메모리에 직접 접근할 수 있도록 해주는 기능입니다.
목적: 이 기능의 주된 목적은 CPU의 부담을 줄이고 데이터 전송의 효율성을 높이는 것입니다. CPU가 데이터 전송을 관리하는 대신, DMA 컨트롤러가 이 역할을 담당하여 CPU를 다른 작업에 할당할 수 있게 됩니다.
DMA 컨트롤러: DMA 연산은 DMA 컨트롤러라는 특수한 하드웨어에 의해 수행됩니다. 이 컨트롤러는 주변장치와 메모리 간의 데이터 전송을 관리합니다.
메모리 접근: 주변장치가 데이터를 전송할 준비가 되면, DMA 컨트롤러는 메모리 주소를 지정하고 데이터 전송을 시작합니다. 이 과정에서 CPU는 관여하지 않습니다.
인터럽트와 완료 신호: 데이터 전송이 완료되면, DMA 컨트롤러는 CPU에 인터럽트를 보내 전송이 완료되었음을 알립니다. 이를 통해 CPU는 전송된 데이터를 처리할 수 있습니다.
장점:
단점:
DMA는 시스템의 전체적인 성능과 효율성을 향상시키는 중요한 기능입니다. 특히 데이터 집약적인 작업과 입출력이 많은 시스템에서 그 중요성이 두드러집니다. 그러나 DMA의 사용은 시스템 설계에 추가적인 고려사항을 요구하며, 메모리 접근과 관련된 자원 관리에 영향을 미칩니다.