DMA(Direct Memory Access)
2024. 1. 11. 12:08ㆍCS/운영체제
DMA(Direct Memory Access)
- 원칙적으로 메모리는 cpu에 의해서만 접근할 수 있는 장치이다.
- 따라서 CPU외의 장치가 메모리에 접근하기 위해서 CPU에게 인터럽트를 발생시켜 CPU가 이를 대행하는 식으로만 가능하다.
- 하지만, 모든 메모리 접근 연산이 cpu에 의해서만 이루어질 경우, 입출력 장치가 메모리 접근을 원할때마다 인터럽트에 의해 CPU의 업무가 방해를 받게되어
- CPU사용의 효율성이 저하되는 문제가 발생한다.
- 이러한 비효율성을 cpu외에 메모리 접근이 가능한 장치를 하나 더 두는 경우가 많은데, 이와 같은 장치를 DMA(Direct Memory Access)라고 부른다.
- DMA는 일종의 컨트롤러로, CPU가 입출력 장치들의 메모리 접근 요청에 의해 자주 인터럽트 당하는 것을 막아주는 역할을 한다.
- DMA를 사용하게 되면, 로컬 버퍼에서 메모리를 읽어오는 작업을 CPU가 담당하는 것이 아니라, DMA가 대행한다.
- DMA는 바이트(byte)단위가 아니라 블록(block)이라는 큰 단위로 정보를 메모리로 읽어온 후에 cpu에게 인터럽트를 발생시켜 해당 작업의 완료를 알려준다.
- 결과적으로, DMA를 통해 CPU에게 발생하는 인터럽트 발생 빈도를 줄여 CPU의 효율적인 관리와 빠른 입출력 연산을 수행할 수 있다.
'CS > 운영체제' 카테고리의 다른 글
프로세스 관리 (0) | 2024.01.15 |
---|---|
동기식 I/O와 비동기식 I/O의 공통점과 차이점 (1) | 2024.01.11 |
폴링이 뭐야? 인터럽트와 비교되는 개념이라는데? (1) | 2024.01.11 |
멀티프로세스와 멀티스레드의 차이 (1) | 2024.01.11 |
부모 프로세스는 자식 프로세스를 어떻게 만들어내고, 자식프로세스는 어떻게 자신만의 코드를 실행할까? (0) | 2024.01.11 |