mir.pe (일반/어두운 화면)
최근 수정 시각 : 2024-11-09 15:52:23

DMA



파일:나무위키+유도.png  
은(는) 여기로 연결됩니다.
스타트렉에 등장하는 현상에 대한 내용은 암흑 물질 변칙 문서
번 문단을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.
1. Direct Memory Access
1.1. Remote Direct Memory Access
2. Dynamic Memory Allocation3. Digital Markets Act

1. Direct Memory Access

직접 메모리 접근은 주변기기에서 CPU의 처리를 거치지 않고 직접 RAM이나 저장장치에 접근해서 필요한 데이터를 가져오는 기능이다.

기존의 방식으로 주변기기끼리 통신을 하려고 한다면 주변기기 측에서 CPU에 필요한 메모리에 대한 정보를 주고 이를 CPU가 확인해서 해당 기기에게 데이터를 달라고 명령하고 데이터를 받아서 요청한 기기에 전송하는 과정을 거쳐야 했으나 DMA를 사용할 경우 CPU를 거치지 않고 데이터가 필요한 주변기기에서 직접 해당 기기의 메모리에 접근해서 필요한 정보를 가져옴으로써 더 빠르게 데이터를 가져오면서 동시에 CPU에 걸리는 부하또한 줄이는 효과가 있다.

다만 CPU를 거쳐가지 않는다는 점은 CPU를 통해 요청이 유효한 것인지를 확인할 수단이 없다는것을 의미하는 만큼 보안 위협에 시달릴수 있는데 대표적으로 Thunderbolt(인터페이스)에 있던 Thunderclap 취약점이 이 DMA기능을 이용한 취약점이다.

1.1. Remote Direct Memory Access

RDMA. DMA와의 차이점은 로컬 메모리가 아닌 원격 메모리에 액세스한다.

이 Remote Memory는 시스템 메모리가 아닌 전혀 다른 시스템에 장착된 메모리에 직접 액세스하게 되는데 원격지라는 특징에서도 유추할 수 있듯이 이더넷 카드 (NIC)에서 주로 사용된다. 10Gbps 가 넘어가는 시스템에서 대량의 데이터를 액세스하게 되면 기존의 네트워크 스택은 TCP/IP 로 인한 CPU의 오버헤드와 메모리 복사로 인해 오버헤드가 커지지만 RDMA를 지원하면 NIC이 각 시스템의 메모리에 직접 액세스하므로 CPU로 인한 오버헤드가 줄어든다.

2. Dynamic Memory Allocation

동적 메모리 할당이라고 부르며 컴파일 당시에 메모리를 할당하는게 아닌 프로그램 동작중에 임의로 필요한만큼 할당해서 사용하는 행위이다.

C나 C++에서 Malloc 함수등을 이용해 메모리를 새로 할당하는 행위등이 대표적인 동적 메모리 할당이며 C#이나 Java등의 언어에서는 인터프리터,JIT가 실시간으로 메모리 할당을 자동으로 수행한다.

이 기능을 쓰면 들어오는 자료 량에 따라서 필요한 메모리 량을 능동적으로 줄이고,키우고 할수 있기 때문에 처음부터 스택영역에 많은 메모리를 할당할 필요가 없지만 대신에 힙 영역 메모리에 임의로 공간을 추가하는 셈이라 제대로 관리를 안할경우 메모리 누수의 원흉이 된다.

3. Digital Markets Act

디지털 시장법. 유럽연합(EU)이 빅테크 기업의 시장 지배력을 억제하려는 목적으로 제정을 추진하고 있는 법안. # #

시장 지배력을 이용해 소비자의 선택권을 제한하는 소수 거대 플랫폼 사업자를 게이트키퍼(gatekeeper)로 지정하여 이들 기업을 대상으로 특별 규제를 적용하는 것이 골자이다.