Computer Science/Computer Science

메모리(Memory) : 하드웨어, 메모리 계층 구조 / 메모리 접근 기술: DMA, Overlay, Swapping

Ofglen 2023. 7. 11. 14:32

하드웨어

컴퓨터 하드웨어는 크게 프로세서, 메모리(기억장치), 주변장치로 구성되며 서로 시스템 버스로 연결된다.

 

 

시스템 버스: 회로가 모두 버스다. 데이터들을 각 컴포넌트가 연결해서 주고받을 수 있게 연결하는 것.

  • data bus: 데이터를 전송 시스템
  • address bus: 물리적 주소를 찾음
  • contral bus:

 

 

 

 

하드웨어 구성

검은색 선: 데이터 흐름,  빨간색 선: 제어 흐름

 

 

  • Register: CPU 안에서 사용하는 메모리 저장 공간
  • DMA(Direct Memory Access): CPU의 제어 없이 메모리에 있는 데이터에 접근하는 것 (Assembly Language: CPU 제어 명령어)
  • Control Unit(제어 장치): 제어 부분
  • Combinational Logic(연산 장치): 레지스터와 연산장치 부분은 데이터 부분

 

 

메모리 계층 구조

프로그램을 실행하거나 데이터를 참조하기 위해서는 모든 것이 메인 메모리에 있어야 하는데

이때 불필요한 프로그램이지만 저장되어야 할 것들은 보조 기억장치에 저장되고 당장 실행되어야 할 것들을 메인 메모리로 옮긴다.

 

 

 

캐시

메인 메모리는 프로세서와 보조기억장치 사이에 존재하고 이때 둘 사이의 속도 향상을 위해 관여한다.

이때 프로세서와 메인 메모리 간에도 속도 향상을 위해 관여하는 것이 존재하는데 그것은 캐시이다.

프로세서 <-> 캐시 <-> 메인 메모리 <-> 보조기억장치 및 주변장치

 

 

 

보조기억장치

DMA (Direct Memory Access)

DMA(Direct Memory Access): 메모리는 CPU에 의해서만 접근 가능하지만 CPU가 모든 입출력 작업을 할 때 비효율적이기 때문에 DMA를 사용한다. DMA는 CPU의 개입 없이 주변 장치가 직접 시스템 메모리에 데이터를 읽고 쓸 수 있도록 하는데, 이를 통해 CPU는 다른 작업을 수행하거나 대기할 필요 없이 데이터 전송을 수행할 수 있으며, 전체 시스템 성능을 향상시킨다.

Byte가 아니고 Block 단위로 데이터에 접근해서 대용량 빠르게 전송할 수 있다.

 

 

오버레이(Overlay)

오버레이(Overlay): 프로그램이 실행될 때 메모리에 프로그램의 여러 부분이 겹쳐져 있는 기술이다. 메모리 공간이 제한적인 환경에서 큰 프로그램을 실행하기 위해 사용된다. 특정 시간에 필요한 부분만 메모리에 적재시킨다.

오버레이 기술을 통해 프로그램은 필요한 부분만 메모리에 로드하고, 실행 중에 필요한 다른 부분으로 교체하여 메모리를 효율적으로 활용할 수 있다.

 

 

 

 

스와핑(Swapping)

스와핑(Swapping): 메모리와 디스크 사이에 로드되어 있는 프로세스를 옮기는(swap) 방법이다. 

메모리에 로드된 프로세스 중 일부가 실행되지 않는 상황에서 운영 체제는 해당 프로세스의 일부를 디스크로 스왑아웃하고, 다른 프로세스를 메모리에 스왑인하여 실행할 수 있다. 이를 통해 더 많은 프로세스를 실행할 수 있으며, 메모리 부족 상황에서도 운영 체제의 성능을 유지할 수 있다.

 

서버(리눅스)에서 사용하지 않는다. 0으로 세팅

보류 중인 I/O와 swap을 수행할 수 없다.

Ex. 최대 메모리에 10개 프로세스를 올릴 수 있다고 가정하면, 11번째 프로세스가 실행되었을 때 메모리가 꽉 차서 올릴 수가 없기 때문에 오랫동안 사용하지 않은 프로세스를 잠깐 내리고 그 사이에 11번째 프로세스를 실행시키는 것이다. 이때 잠깐 내린 프로세스는 SSD에 잠깐 저장하고 수행한다.

 

 

https://resilient-923.tistory.com/397

 

 

'Computer Science > Computer Science' 카테고리의 다른 글

백업, 복원, 배포 무중단  (0) 2023.07.11
입출력 인터페이스  (0) 2023.07.11
RAID : RAID 0, RAID 1, RAID 5, RAID 6  (0) 2023.07.11
스토리지(Storage)  (0) 2023.07.10