Operating System(OS)에 이어서 Part2에는 다음과 같은 순서*로 알아보겠습니다.
*공룡책을 기반
[프로세스 관리]
1. 프로세스
2. 스레드와 병행성
3. CPU 스케줄링
[프로세스 동기화]
4. 프로세스동기화
5. 동기화 예제
6. 교착상태
[메모리 관리]
7. 메인 메모리
8. 가상 메모리
[저장장치 관리]
9. 대용량 저장장치 구조
10. 입출력 시스템
[파일시스템]
11. 파일시스템
12. 파일시스템 구현
Operating System(OS) Part2 - 7. 메인 메모리
1.개요
컴퓨터 시스템에서 메인 메모리는 프로세스가 실행되는 동안 필요한 데이터를 저장하는 핵심 자원입니다. 메인 메모리 시스템의 설계와 관리 방식은 시스템 성능에 큰 영향을 미칩니다. 이 글에서는 메모리의 기본 개념과 주요 메모리 관리 기법에 대해 설명하고자 합니다.
1) 메모리
메모리는 컴퓨터에서 데이터를 저장하고 접근하는 장치로, 주로 휘발성인 RAM(Random Access Memory)을 의미합니다. 메모리는 CPU가 빠르게 데이터를 읽고 쓰는 데 필요한 저장소로 사용됩니다.
2) Address Binding
Address Binding은 프로그램이 메모리에서 사용할 주소를 결정하는 과정입니다. 이 과정은 세 단계로 이루어집니다: 컴파일 시간(compile time), 로드 시간(load time), 실행 시간(execution time). 각 단계에서 주소 바인딩 방식이 다르며, 실행 시간 주소 바인딩이 가장 유연합니다.
3) Logical vs Physical
논리 주소(Logical Address)는 프로그램 관점에서의 주소이며, 물리 주소(Physical Address)는 실제 메모리의 주소입니다. 주소 변환은 메모리 관리 장치(MMU)에 의해 이루어지며, 논리 주소를 물리 주소로 변환합니다.
4) MMU (Memory Management Unit)
MMU는 논리 주소를 물리 주소로 변환하는 하드웨어 장치입니다. 이는 메모리 보호와 프로세스 격리를 위해 중요한 역할을 합니다. MMU는 주소 변환을 통해 프로그램이 할당된 메모리 공간을 안전하게 접근할 수 있도록 합니다.
5) Dynamic Loading
동적 로딩(Dynamic Loading)은 프로그램 실행 시 필요한 모듈을 메모리에 로드하는 기법입니다. 이를 통해 메모리 사용을 최적화하고, 프로그램이 실제로 필요한 모듈만 로드하여 효율성을 높입니다.
6) Dynamic Linking and Shared Libraries
동적 링킹(Dynamic Linking)은 실행 시간에 라이브러리를 연결하는 방식입니다. 공유 라이브러리(Shared Libraries)는 여러 프로그램이 공통으로 사용하는 라이브러리를 메모리에 한 번만 로드하여 메모리 사용을 줄입니다. 이는 시스템 전체의 메모리 효율성을 향상시킵니다.
* 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받을 수 있습니다.
2 Contiguous Memory Allocation
1) 메모리 할당 방법
메모리 할당은 프로세스가 실행될 때 필요한 메모리 공간을 할당하는 과정입니다. 주요 방법으로는 연속 메모리 할당과 비연속 메모리 할당이 있습니다.
2) Contiguous Memory Allocation
연속 메모리 할당(Contiguous Memory Allocation)은 각 프로세스가 연속된 메모리 공간을 할당받는 방식입니다. 이는 관리가 간단하지만, 단편화(fragmentation) 문제가 발생할 수 있습니다.
3) 동적 메모리 할당
동적 메모리 할당은 프로세스가 실행 중에 필요에 따라 메모리를 할당받는 방식입니다. 이는 메모리 사용의 효율성을 높이지만, 관리가 복잡할 수 있습니다.
4) Fragmentation 단편화
단편화는 메모리 할당 후 남는 작은 빈 공간들이 발생하는 문제입니다. 내부 단편화(Internal Fragmentation)는 고정 크기의 블록 할당 시 발생하고, 외부 단편화(External Fragmentation)는 가변 크기의 블록 할당 시 발생합니다.
5) Segmentation
세그멘테이션(Segmentation)은 프로세스를 논리적인 세그먼트로 나누어 각 세그먼트를 연속된 메모리 공간에 할당하는 방식입니다. 이는 프로그래머가 더 논리적인 프로그램 구조를 설계하는 데 도움을 줍니다.
3 Paging
페이징(Paging)은 메모리를 동일한 크기의 페이지로 나누고, 프로세스도 동일한 크기의 페이지로 분할하여 메모리에 할당하는 방식입니다. 각 페이지는 메모리의 임의의 프레임에 할당되며, 페이지 테이블을 통해 논리 주소를 물리 주소로 변환합니다.
'IT Auditor Study > 운영체제' 카테고리의 다른 글
[Part2-공룡책] 9. 대용량 저장장치 구조 - Operating System(OS) (2) | 2024.06.08 |
---|---|
[Part2-공룡책] 8. 가상 메모리 - Operating System(OS) (2) | 2024.06.06 |
[Part2-공룡책] 6. 교착상태(2/2) - Operating System(OS) (2) | 2024.06.06 |
[Part2-공룡책] 6. 교착상태(1/2) - Operating System(OS) (0) | 2024.06.06 |
[Part2-공룡책] 5. 동기화 예제 - Operating System(OS) (0) | 2024.06.06 |