본문 바로가기
목차훔치기/면접을 위한 CS 전공지식 노트

메모리 관리(면접을 위한 CS 전공지식 노트)

by 해삼2 2023. 9. 14.
728x90
반응형
메모리 관리

메모리 관리

메모리 관리(Memory Management)는 컴퓨터 시스템에서 주 메모리(RAM - Random Access Memory)를 효율적으로 관리하고 제어하는 프로세스 또는 기술을 의미합니다.

이는 컴퓨터의 중요한 부분 중 하나로, 다양한 프로그램 및 프로세스가 메모리를 공유하고,

데이터 및 명령어를 저장하고 접근하는 방법을 관리하여 시스템의 안정성과 성능을 유지하는 데

중요한 역할을 합니다.

 

메모리 관리 기능

할당 (Allocation): 

사용 가능한 메모리 공간 중에서 프로세스에게 필요한 양의 메모리를 할당합니다. 

이때 메모리는 물리적인 주소 공간에서 가용한 곳에 할당됩니다.

해제 (Deallocation): 

프로세스가 메모리를 더 이상 사용하지 않으면 해당 메모리를 해제하여 다른 프로세스가 사용할 수 있도록 

합니다.

보호 (Protection): 

각 프로세스는 다른 프로세스의 메모리 공간에 접근하지 못하도록 보호되어야 합니다. 

이를 통해 프로세스 간의 데이터 무결성과 보안을 유지할 수 있습니다.

가상 메모리 (Virtual Memory): 

실제 물리 메모리 크기보다 큰 가상 메모리 공간을 제공하여 물리 메모리의 한계를 극복합니다. 

이를 통해 더 많은 프로세스를 실행하고 프로세스 간에 메모리를 공유할 수 있습니다.

메모리 단편화 관리 (Memory Fragmentation Management): 

할당 및 해제 작업으로 인해 발생하는 내부 및 외부 메모리 단편화를 최소화하고, 

가용한 메모리 공간을 효율적으로 사용합니다.

스와핑 (Swapping): 

필요할 때 메모리에서 디스크로 데이터를 이동하고, 

다시 필요할 때 디스크에서 메모리로 데이터를 복원하여 물리 메모리의 한계를 극복하는 데 사용됩니다.

캐싱 (Caching): 

자주 사용되는 데이터나 명령어를 물리 메모리에 보관하여 프로세스의 실행 속도를 높입니다.

메모리 보상 (Memory Protection): 

프로세스가 잘못된 메모리 영역에 접근하거나 다른 프로세스의 메모리를 손상시키는 것을 방지하기 위한 

보안 메커니즘을 구현합니다.

메모리 관리는 운영 체제의 핵심 기능 중 하나이며, 시스템의 성능, 안정성, 보안을 결정하는 데 

큰 영향을 미칩니다. 

따라서 메모리 관리 기술과 알고리즘은 컴퓨터 과학과 운영 체제 설계에서 중요한 주제 중 하나입니다.

 

메모리 관리 관련 주요 개념 및 요소

Address Binding: 

프로그램 코드와 데이터를 메모리에 연결하는 개념입니다.


Fragmentation: 

메모리 단편화 관리에 관한 주제입니다.


Translation Look-aside Buffer (TLB): 

가상 주소와 물리 주소 간 변환을 빠르게 수행하기 위한 캐시에 대한 개념입니다.


Structure of the Page Table: 

가상 메모리 관리에서 사용되는 페이지 테이블의 구조에 관한 것입니다.

 

구체적인 메모리 관리 기법

Swapping: 

물리 메모리와 디스크 사이에서 프로세스를 이동하는 메모리 관리 기법입니다.


Contiguous Allocation: 

연속적인 메모리 할당 방식을 나타내며, 일부 운영 체제에서 사용될 수 있습니다.


Paging: 

상 메모리를 페이지로 나누어 물리 메모리에 할당하는 방식입니다.


Segmentation: 

메모리를 논리적인 세그먼트로 분할하여 관리하는 메모리 관리 기법입니다.


메모리 관리에는 이러한 개념과 기술을 조합하여 실제로 운영 체제에서 사용되는 

메모리 관리 전략 및 알고리즘이 개발됩니다. 

따라서 이러한 개념을 이해하고 적절하게 조합하는 것이 메모리 관리의 핵심입니다.

 

메모리 관리 기법 자세히 알기!!

Swapping

Swapping은 메모리 관리 기법 중 하나로, 러닝 중인 프로세스가 현재 메모리에 들어갈 공간이 없을 때

사용됩니다.

이때, 운영 체제는 현재 메모리에 있는 프로세스를 디스크나 다른 보조 저장장치로 스왑아웃하고,

새로운 프로세스를 메모리로 스왑인하는 방식입니다.

예시: 

러너 A가 운동장에서 러닝을 하고 있는데, 갑자기 러너 B가 합류하려고 합니다. 

그러나 운동장의 공간이 부족하여 러너 A는 잠시 휴식을 취하고, 러너 B가 운동장을 사용하도록 합니다. 

러너 A는 잠시 휴식 후 다시 운동장으로 돌아와 러닝을 계속합니다. 이렇게 러너 A와 B가 교대로 

운동장을 공유하는 것과 유사합니다.

Contiguous Allocation

Contiguous Allocation은 연속적인 메모리 공간을 할당하는 방식으로, 한 프로세스가 연속된 

메모리 공간에 할당됩니다.

예시: 

운동장을 여러 개의 연속된 레인으로 나눕니다. 

각 레인은 한 명의 러너에게 할당됩니다. 

러너들은 레인을 따라 연속적으로 러닝을 하며, 

각 레인은 다른 러너에게 할당되기 전까지 동일한 러너에게 계속 사용됩니다.

Paging

Paging은 가상 메모리 관리의 한 형태로, 러닝 중인 프로세스를 고정된 크기의 페이지로 나누고,

이 페이지들을 물리 메모리에 비연속적으로 할당하는 방식입니다.

예시: 

운동장을 작은 정해진 크기의 부분으로 나눕니다. 

러너들은 이 작은 부분을 페이지로 생각하고, 각 페이지는 물리적으로 분산된 곳에 할당됩니다.

러너는 페이지마다 이동하며 러닝을 합니다.

Segmentation:
세그멘테이션은 메모리를 논리적인 세그먼트로 분할하여 관리하는 방식으로,

각 세그먼트는 다른 크기와 유형을 가질 수 있습니다.

예시: 

운동장을 다양한 세그먼트로 나눕니다. 

예를 들어, 러너 A는 100m 러닝 트랙에서 러닝을 하고, 러너 B는 200m 러닝 트랙에서 러닝을 합니다. 

각 러너는 자신의 세그먼트에서 러닝을 하며, 세그먼트는 다른 크기와 유형을 가질 수 있습니다.

 

 

*바쁜 사람을 위한 깜찍한 정리

메모리 관리란 컴퓨터 시스템에서 램을 효율적으로 관리하고 제어하는 프로세스 기술을 의미합니다. 컴퓨터에서 어떠한 작업을 처리하기 위해서는 잠시동안 저장을 하며 그것을 cpr가 읽고 해당 작업을 hdd 등 보조 기억장치에다 전달해 주는 역할을 하는데 그 과정에서 잠시동안 저장을 해주는 과정이나 처리 등이 메모리 관리입니다. 메모리 관리에는 프로세스가 공간이 없을 때 다른 프로세스와 스왑인 하는 방식인 Swapping, 한 프로세스가 같은 메모리 공간에 할당하는 방식인 Contiguous Allocation, 가상으로 페이지를 나누고 그 페이지마다 메모리를 할당해 주는 방식인 Paging, 데이터의 세그먼트 크기마다 분할하여 관리하는 방식으로 서로 다른 크기와 유형을 가질 수 있는 Segmentation기법 등이 있습니다.
728x90
반응형