운영체제 | 프로세스 구조

Faithful Dev·2025년 1월 25일

컴퓨터 공학

목록 보기
23/81

프로세스 구조는 운영체제에서 실행 중인 프로그램을 구성하는 기본 요소로, 프로세스가 제대로 동작할 수 있도록 여러 구성 요소로 이루어져 있다.


코드(텍스트) 섹션

  • 실행될 프로그램 코드가 저장되는 영역이다.
  • 읽기 전용으로 설정되어 있어 다른 프로세스가 임의로 수정할 수 없다.
  • 함수, 명령어, 상수 등이 포함된다.

데이터 섹션

  • 프로그램에서 사용하는 전역 변수와 정적 변수가 저장되는 영역이다.
  • 초기화된 데이터와 초기화되지 않은 데이터로 나뉜다:
    • 초기화된 데이터: 프로그램 시작 전에 값이 설정된 전역 변수.
    • 초기화되지 않는 데이터(BSS): 선언되었지만 초기화되지 않은 전역 변수.

힙(Heap)

  • 동적으로 메모리를 할당받는 영역.
  • 런타임 중 프로그램에 의해 메모리가 할당되고 해제된다.
  • 크기는 변할 수 있으며, 메모리 누수(memory leak)가 발생하지 않도록 관리가 필요하다.

스택(Stack)

  • 함수 호출과 관련된 지역 변수, 반환 구조, 매개변수가 저장되는 영역이다.
  • LIFO(Last in, First Out) 구조로 작동하며, 함수가 호출되거나 종료될 때마다 스택 프레임이 추가되거나 제거된다.
  • 스택 오버플로우(Stack Overflow)는 스택 크기가 제한을 초과할 때 발생한다.

프로세스 제어 블록(PCB)

  • 운영체제가 관리하는 구조체로, 프로세스의 메타데이터를 저장한다.
  • 주요 정보:
    • 프로세스 상태: 실행, 대기, 준비 등.
    • 프로세스 ID(PID): 프로세스를 고유하게 식별하는 번호.
    • CPU 레지스터 값: 프로세스 중단 시 현재 상태를 저장.
    • 메모리 관리 정보: 페이지 테이블, 세그먼트 정보 등.
    • I/O 상태 정보: 열려 있는 파일, 입출력 장치 정보.

파일 및 리소스 정보

  • 프로세스가 사용하는 파일, 네트워크 연결, 하드웨어 리소스 등의 정보가 포함된다.
  • 이를 통해 프로세스가 필요한 데이터를 읽거나 저장하고, 외부 자원에 접근할 수 있다.

프로세스 상태

  • 프로세스는 실행 중, 대기 중, 준비 상태 등 다양한 상태를 가질 수 있다.
  • 상태 전환은 프로세스 스케줄러와 운영체제에 의해 제어된다.

프로세스 구조의 특징

  • 메모리 공간은 각 프로세스가 독립적으로 소유하며, 다른 프로세스와 직접적으로 간섭하지 못한다.
  • 운영체제는 다중 프로세스를 효과적으로 관리하기 위해 컨텍스트 스위칭과 메모리 보호를 제공한다.

이 구조는 운영체제가 프로세스를 관리하고 효율적으로 자원을 배분할 수 있도록 돕는 핵심 개념이다.

profile
Turning Vision into Reality.

0개의 댓글