프로세스의 메모리 구조
프로세스의 메모리 구조 구성요소
코드 영역 (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는 학교 시스템이 해성이의 활동을 관리하고, 필요할 때 해성이의 상태를 저장하고 복원하는 데
사용됩니다.
프로세스 메모리 구조는 해성이와 학교 활동을 표현하기 위한 비유적인 설명입니다.
컴퓨터에서는 프로그램이나 프로세스가 메모리에 어떻게 구성되는지를 이해하기 위한 개념입니다.
'목차훔치기 > 면접을 위한 CS 전공지식 노트' 카테고리의 다른 글
멀티프로세싱(면접을 위한 CS 전공지식 노트) (0) | 2023.09.19 |
---|---|
PCB(면접을 위한 CS 전공지식 노트) (0) | 2023.09.18 |
프로세스의 상태(면접을 위한 CS 전공지식 노트) (0) | 2023.09.16 |
프로세스와 컴파일 과정(면접을 위한 CS 전공지식 노트) (0) | 2023.09.15 |
메모리 관리(면접을 위한 CS 전공지식 노트) (0) | 2023.09.14 |