DMA(Direct Memory Access)

  • 원칙적으로 메모리는 CPU에 의해서만 접근이 가능한 장치이다. 따라서, 주변장치들이 메모리에 접근하기 위해서는 CPU에게 인터럽트를 발생시켜 CPU가 일을 대행하는 식으로만 가능하다.
    → 컨트롤러가 CPU에게 인터럽트를 발생시키면, CPU는 컨트롤러의 로컬버퍼와 메모리 사이에서 데이터를 옮겨주는 역할을 한다.
  • 그런데, 모든 메모리 접근연산이 CPU에 의해서만 이루어지면, CPU의 효율성이 떨어지게 된다.
    이러한 문제를 해결하기 위해 메모리 접근이 가능한 DMA라는 장치를 두고 사용한다.
  • DMA는 일종의 컨트롤러로서, CPU가 주변 장치들의 메모리 접근 요청에 의해 자주 인터럽트 당하는것을 막아주는 역할을 한다.
    → 로컬버퍼에서 메모리로 읽어오는 작업을 CPU가 담당하는 것이 아니라, DMA가 대행함으로써 CPU는 원래하던 작업을 멈추고 인터럽트를 처리할 필요가 없게 된다.
  • DMA는 바이트단위가 아니라 블록(block)이라는 큰 단위로 정보를 읽어온 후에 CPU에게 인터럽트를 발생시켜서 해당 작업의 완료를 알려준다.

저장장치의 구조

  • 컴퓨터 시스템을 구성하는 저장장치는 크게 주기억장치보조기억장치로 나눌 수 있다.
    1) 주기억장치 : 보통 메모리라고 부름, 전원이 꺼지면 날라가는 휘발성인 RAM을 매체로 사용.
    2) 보조기억장치 : 비휘발성인 마그네틱 디스크를 주요 사용.
  • 보조기억장는 크게 파일시스템(file system)스왑영역(swap area)용을 사용한다. 1) 파일시스템용
    전원이 나가도 유지되어야하는 정보가 있으면 파일형태로 보조기억장치에 저장하게 됨.
    2) 스왑영역용 (메모리연장공간)
    메모리의 용량이 한정적이므로, 다수의 프로그램이 메모리에 동시에 올라가게 되면, 메모리 부족현상이 발생하게 된다.
    그래서 운영체제는 프로그램 실행에 당장 필요한 부분만 메모리에 올려놓고, 그렇지 않은 부분은 디스크의 스왑영역에 내려놓게 된다.
    디스크에 내려놓는 일을 스왑 아웃(swap out)시킨다고 말하며, 스왑 아웃된 부분이 필요할때는 다시 메모리 영역으로 올리게 된다. 실행중인 프로그램 내용을 내려놓는 스왑영역으로는 하드디스크가 가장많이 사용된다.
    스왑 영역에 저장된 프로그램의 내용은 프로그램이 종료될때 삭제됨.

저장장치의 계층구조

컴퓨터 시스템을 구성하는 저장장치의 계층구조는 다음과 같다.

content01

  • 상위 저장장치로 갈수록 접근속도가 월등히 빠르지만, 용량이 상대적으로 작고 값이 비싸다.
  • 따라서 당장 필요한 정보는 빠른 저장장치에 넣어두어 실행속도를 높이고, 그렇지 않은 정보는 상대적으로 느린 장치에 보관하게 된다.
  • 예를 들면, 캐쉬메모리는 가격적인 측면에서 메인메모리보다 비싸다. 그러나 여러가지캐슁기법을 이용해 적은 용량의 캐쉬메모리를 사용해서도 메인메모리와 같이 큰 용량을 가진것처럼 효율적으로 동작하도록 만들 수 있다.
  • 캐슁기법은 상대적으로 느린 저장장치에 있는 내용중에 당장 사용되거나 빈번히 사용될 정보를 빠른 저장장치에 선별적으로 저장해 두 저장장치 사이에 속도를 완충시키는 의미이다.
    캐슁기법은 캐쉬메모리 뿐만 아니라, 상대적으로 용량이 적은 빠른 저장장치의 성능향상을 위한 총체적 기법을 뜻한다.

출저