본문 바로가기

Study for Backend/Computer Science

[컴퓨터 공학] 메모리

 

Memory

Register

CPU 안에서 데이터 보관

 

SRAM (Static RAM)

- Flip-flop (F/F)으로 작동하는 방식

- 전류 신호가 오기 전까지는 상태가 변화하지 않아 안정적임

   (단, RAM자체는 휘발성이라 전원을 끄면 사라짐)

- L1, L2, L3 캐쉬 포함

   (최대한 가장 많이 사용하는 메모리의 데이터를 넣어놓고 메모리까지 접근하지 않고

    CPU가 가져다 쓸 수 있게 함)

- 일반적인 data, 변수, stack 저장용

- 주로 임베디드 컴퓨터에 사용

 

DRAM (Dinamic RAM)

- 축전기 (Capacitor, CAP)로 작동하는 방식

- 시간에 흐름에 따라 메모리가 변화하기 때문에 일정 간격으로 충전이 필요하여

   Refresh 회로에 신호를 보내줘야 함

- 주로 대형 컴퓨터에서 사용

 

SSD/HDD(하드디스크)

컴퓨터를 꺼도 데이터를 보전함

 

DMA (Direct Memory Access)

- CPU가 캐쉬까지는 데이터를 가져오는데 관여 (Instruction Fetch)

- 메모리, SSD 에서 데이터를 가져오는데까지 관여하면 CPU 활용도가 낮아짐

   (DMA를 만들어서 메모리, SSD에서 데이터를 관리하면 CPU는 이 시간에 명령실행에 사용될 수 있음)

 

IO Devices

Input / Output Devices (Network Card, CD-ROM, Mouse, Keyboard, Printer)

Bus를 통해 IO Device에 데이터를 송수신

 

프로그래밍 관점의 메모리 모델

Heap

- 사용자에 의해 메모리 공간이 동적으로 할당되고 해제됨
- 메모리의 낮은 주소에서 높은 주소의 방향으로 할당됨

- 힙 공간이 부족하면 객체 생성이 불가하고 객체지향 프로그램이 동작하지 않게 됨

 

 

PCB (Process Control Block)

- 프로세스가 실행중인 상태를 캡처/구조화해서 저장

 

 

Context Switching

- 문맥교환. CPU에 실행할 프로세스를 교체하는 기술.
- Program Counter나 Stack Point만 바꿔주면 프로세스 저장상태를 기반으로 실행 가능

- 어셈블리어로 이루어져 있음

- 세부 동작 방법

1) 실행을 중지할 프로세스 정보를 해당 프로세스의 PCB를 업데이트 해서 메인 메모리에 저장

2) 다음 실행할 프로세스 정보를 메인 메모리에 있는 해당 PCB 정보 (PC와 SP)를  CPU 레지스터에 넣고 실행

 

 

IPC (InterProcess Communication)

- 프로세스가 서로 통신하고 동작을 동기화할 수 있도록 하는 메커니즘

- 프로세스 간의 협력 방법

- 프로세스는 공유 메모리(Shared Memory)와 메시지 전달(Message Passing) 를 통해 서로 통신함

- 통신을 위한 별도의 공간을 만들어주어야 함

- 대표적인 IPC 기법으로 Message Queue, Shared Memory, Pipe, Semaphore, Socket 등이 있음

Shared Memory

 

 

 

 

 

 

관련link

https://m.blog.naver.com/ycpiglet/221984934010

 

SRAM 과 DRAM의 차이와 특징, 뜻 이해 (암기하기 쉬운 방법)

메모리를 공부하다보면 RAM이 크게 두 가지로 분류되는 걸 알 수 있다. 바로 SRAM과 DRAM 오늘...

blog.naver.com

https://tcpschool.com/c/c_memory_structure

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

https://dar0m.tistory.com/233

 

[OS] 프로세스 간 통신 방법(Inter Process Communication, IPC)

개념 프로세스들 간의 의사소통하는 것을 IPC라고 한다. 프로세스가 통신 가능하다는 것은 서로 다른 프로세스가 데이터를 주고 받을 수 있다는 것이며, 동시에 접근 가능한 메모리 즉, 프로세스

dar0m.tistory.com