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

프로세스의 메모리 구조(면접을 위한 CS 전공지식 노트)

by 해삼2 2023. 9. 17.
728x90
반응형
프로세스의 메모리 구조

프로세스의 메모리 구조  구성요소

코드 영역 (Code Segment 또는 Text Segment): 

프로세스의 실행 코드가 저장되는 영역입니다. 

이 영역은 실행 파일 (실행 가능한 프로그램) 내의 명령어들을 포함하고 있으며, 

CPU가 실행 코드를 읽어와 실행합니다. 

이 영역은 일반적으로 읽기 전용으로 설정되어 있으므로 프로그램 코드를 수정하지 못합니다.

데이터 영역 (Data Segment): 

데이터 영역은 초기화된 전역 변수 및 정적 변수가 저장되는 곳입니다. 

이 영역은 프로그램의 시작 시에 초기화되며, 프로그램의 수명 동안 유지됩니다.

BSS (Block Started by Symbol) 영역: 

BSS 영역은 초기화되지 않은 전역 변수 및 정적 변수를 저장하는 데 사용됩니다. 

이 영역은 프로그램이 실행될 때 0으로 초기화됩니다.

힙 영역 (Heap): 

힙 영역은 동적으로 할당된 메모리 블록을 저장하는 곳입니다. 

이 영역은 프로그램의 실행 중에 동적으로 메모리를 할당하고 해제하는 데 사용됩니다. 

대표적인 예로 C 또는 C++에서 malloc() 또는 new 연산자로 할당된 메모리가 힙에 저장됩니다.

스택 영역 (Stack): 

스택 영역은 함수 호출과 관련된 정보를 저장하는 데 사용됩니다. 

함수 호출 시 함수의 매개변수, 지역 변수, 반환 주소 등이 스택에 저장됩니다. 

스택은 후입선출 (Last-In, First-Out, LIFO) 구조를 가지며,

함수가 호출될 때 스택에 프레임을 추가하고 함수가 반환될 때 스택에서 제거됩니다.


프로세스 제어 블록 (Process Control Block, PCB): 

PCB는 각 프로세스에 대한 정보를 포함하는 자료구조입니다. 

이 정보에는 프로세스의 상태, 레지스터 값, 프로세스 ID, 우선 순위, 스케줄링 정보 등이 포함됩니다. 

PCB는 프로세스가 중단되고 나중에 재개될 때 중단된 상태를 복원하는 데 사용됩니다.

프로세스의 메모리 구조는 운영 체제에 따라 다를 수 있으며, 멀티태스킹 환경에서 여러 프로세스가 

동시에 실행되는 경우 메모리 관리와 보호가 중요한 역할을 합니다. 

메모리 구조는 프로세스의 안정성과 효율성을 보장하기 위해 정교하게 설계되어 있으며, 

운영 체제의 역할 중 하나는 메모리 관리를 효과적으로 수행하는 것입니다.

 

프로세스 메모리 구조 자세히 알기!!

코드 영역 (Code Segment):
해성이는 학교로 가는 길에 필요한 지침서를 가지고 있습니다. 

이 지침서에는 학교에 도착하고 수업을 듣는 데 필요한 모든 명령어와 지시사항이 포함되어 있습니다. 

코드 영역은 이 지침서의 내용을 담고 있으며, 

해성이는 이 내용을 따라가면서 학교에 도착하고 수업을 듣게 됩니다.

데이터 영역 (Data Segment):
해성이가 학교에 도착하면 학교에서 필요한 정보를 저장하는 데 사용됩니다. 

예를 들어, 해성이는 학번, 학교 이름, 수업 시간표 등의 정보를 데이터 영역에 저장합니다.

BSS 영역:
해성이는 아직 어떤 책을 들고 다녀야 할지 정해놓지 않았습니다. 

그러나 해성이는 나중에 책을 선택하고 이 정보를 BSS 영역에 저장할 것입니다. 

이 영역은 초기화되지 않은 변수를 저장하는 데 사용되며, 아직 값을 갖지 않습니다.

힙 영역 (Heap):
해성이는 학교에서 프로젝트를 수행해야 할 경우가 있습니다. 

이 때 필요한 자원, 예를 들어 프로젝트에 필요한 노트나 연구 자료, 메모리에 동적으로 할당됩니다. 

이 할당된 메모리 블록은 힙 영역에 저장되며, 해성이가 프로젝트를 완료한 후에 메모리를 

해제할 수 있습니다.

스택 영역 (Stack):
해성이가 학교에서 다양한 활동을 수행할 때마다 스택에 새로운 "프레임"이 추가됩니다. 

이 프레임에는 현재 활동과 관련된 정보가 포함되며, 활동이 완료되면 해당 프레임이 

스택에서 제거 됩니다. 

예를 들어, 수학 시험을 볼 때 스택에는 수학 시험 관련 정보가 추가됩니다.

프로세스 제어 블록 (PCB):
해성이의 프로세스 제어 블록에는 그의 학교 관련 정보가 포함됩니다. 

이 정보에는 해성이의 학생 ID, 학교에서의 현재 상태 (예: 수업 중, 쉬는 시간 등), 

우선 순위 (학년 또는 학업 성취도에 따라) 등이 포함됩니다. 

PCB는 학교 시스템이 해성이의 활동을 관리하고, 필요할 때 해성이의 상태를 저장하고 복원하는 데 

사용됩니다.

프로세스 메모리 구조는 해성이와 학교 활동을 표현하기 위한 비유적인 설명입니다. 

컴퓨터에서는 프로그램이나 프로세스가 메모리에 어떻게 구성되는지를 이해하기 위한 개념입니다.

 

728x90
반응형