저장소 logo 저장소

1. 프로세스 개념

프로세스란 실행 중인 프로그램(Program in Execution)을 의미.

실행 파일 형태로 존재하던 프로그램이 Memory에 적재되고 CPU를 할당받아 실행되는 상태를 Process라고 함.

즉,

프로그램이 CPU에서 실행되기 위해서는 반드시 Memory에 적재된 상태 필요.


2. Process와 메모리

Memory는 CPU가 직접 접근할 수 있는 컴퓨터 내부 기억장치 의미.

프로그램 실행을 위해서는 프로그램 코드와 데이터가 Memory에 적재된 상태 필요.

프로세스에 할당되는 메모리 공간은 다음 4가지 영역으로 구성.

각 Process는 이러한 메모리 공간을 독립적으로 할당받는 구조.


3. 프로세스 메모리 구조

영역 설명
Code 영역 실행할 프로그램의 코드가 저장되는 메모리 영역 의미
Data 영역 전역 변수(Global)와 Static 변수가 저장되는 메모리 영역 의미
Heap 영역 프로그래머가 동적으로 메모리를 할당(malloc) / 해제(free)하는 메모리 영역 의미
Stack 영역 함수 호출 시 생성되는 지역 변수와 매개변수가 저장되는 임시 메모리 영역 의미

4. CPU 연산과 Program Counter Register

프로그램 실행을 위해 CPU가 실제 명령어 연산 수행 필요.

CPU 내부에는 PC(Program Counter) Register 존재.

PC Register 역할은 다음과 같음.

동작 과정은 다음과 같은 구조.

  1. Process가 Memory에 적재되는 과정.
  2. Code 영역에 프로그램 명령어 저장 구조.
  3. PC Register가 다음 실행할 명령어 주소를 가리키는 구조.
  4. CPU가 해당 명령어를 읽어 연산 수행.
  5. 다음 명령어 주소로 이동하는 반복 구조.

이 과정의 반복을 통해 프로세스 실행 구조 형성.


핵심 정리

프로세스

  • 실행 중인 프로그램 상태 의미.
  • Program이 Memory에 적재되고 CPU를 할당받아 실행되는 상태 의미.

프로세스 메모리 구조

  • Code : 프로그램 코드 저장 영역.
  • Data : 전역 변수 / static 변수 저장 영역.
  • Heap : 동적 메모리 할당 영역.
  • Stack : 함수 호출 시 생성되는 지역 변수 저장 영역.

참고 자료

  1. KOCW, 운영체제 강의자료
    https://contents.kocw.or.kr/KOCW/document/2015/cup/weonsunghyun/3.pdf
  2. University of Illinois Chicago, Operating Systems Notes, “Processes”
    https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/3_Processes.html

« B+Tree Index vs Hash I...
Multi 프로세스 »