인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

mhyim님의 프로필 이미지

작성한 질문수

기출로 대비하는 개발자 전공면접 [CS 완전정복]

Q. segmentation에 대해서 설명해 주세요. (외 3문제)

실행중인 프로세스는 메모리를 연속적으로? 아니면 불연속적으로 사용하나요?

작성

·

30

0

안녕하세요?

 

이번 챕터 강의를 듣다가

실제 실행되는 프로세스들이 실제로는 메모리를 연속적으로 사용하는지 불연속적으로 사용하는지

궁금해서 질문드리게 되었습니다.

 

이전에는 {힙 스택 데이터 코드} 모델을 보여주셔서 연속적이라고 생각하고 있었는데요,

page와 segmentation 모델 보면 불연속적이라는 생각이 들었습니다.

 

단순 관점의 차이인가? 싶어서 질문드립니다!

답변 1

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. mhyim님.

실행중인 프로세스의 메모리 사용에 대한 이해

프로세스가 메모리를 사용하는 방식은 연속 할당(Contiguous Allocation)과 불연속 할당(Non-contiguous Allocation)으로 나눌 수 있습니다.

  1. 연속 할당(Contiguous Allocation): 프로세스가 메모리를 하나의 연속된 블록으로 사용합니다. 초기의 메모리 관리 기법으로서 간단하지만, 외부 단편화가 발생할 수 있습니다.

  2. 불연속 할당(Non-contiguous Allocation): 페이징(Paging) 또는 세그멘테이션(Segmentation) 기법을 사용하여 메모리를 분할하고, 필요한 만큼 할당합니다. 이는 외부 단편화를 최소화하고 메모리 활용 효율을 높입니다.

모델별 설명

  • 힙, 스택, 데이터, 코드 모델에서는 프로세스의 내부 메모리 구조를 이해하기 쉽게 연속된 형태로 설명합니다. 이는 개념의 이해를 돕기 위한 것입니다.

  • 페이징과 세그멘테이션은 메모리 할당을 실제로 처리하는 방식으로, 물리적 메모리는 불연속적으로 사용됩니다. 페이징 시스템은 메모리를 고정된 크기의 페이지로 나누어 사용하고, 세그멘테이션은 가변 크기의 세그먼트를 사용합니다.

결론

프로세스는 이론적으로는 연속된 메모리 구조(힙, 스택, 데이터, 코드)를 가지고 있지만, 실제 운영체제에서는 효율적인 메모리 사용과 단편화 완화를 위해 불연속적인 메모리 할당 기법인 페이징과 세그멘테이션을 주로 사용합니다.

유사한 질문을 다룬 정보를 아래 링크에서 확인할 수 있습니다:

  1. 질문: 페이징과 메모리 할당 - 페이징을 통한 메모리 관리와 연속 할당에 대한 설명이 포함되어 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

mhyim님의 프로필 이미지

작성한 질문수

질문하기