메모리 관리
메모리 관리
메모리 관리(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기법 등이 있습니다.
'목차훔치기 > 면접을 위한 CS 전공지식 노트' 카테고리의 다른 글
프로세스의 상태(면접을 위한 CS 전공지식 노트) (0) | 2023.09.16 |
---|---|
프로세스와 컴파일 과정(면접을 위한 CS 전공지식 노트) (0) | 2023.09.15 |
메모리 계층(면접을 위한 CS 전공지식 노트) (0) | 2023.09.13 |
컴퓨터 구성요소(면접을 위한 CS 전공지식 노트) (0) | 2023.09.12 |
운영체제의 역할과 구조(면접을 위한 CS 전공지식 노트) (0) | 2023.09.11 |