본문 바로가기

CS/Operating System

[운영체제] 프로세스(Process)란?

728x90

1. 프로세스 (Process)

  • 컴퓨터에서 연속적으로 실행되고 있는 프로그램이다.
  • 프로세스 제어블록(PCB)을 가진 실행 가능한 프로그램이다.
  • 운영체제가 관리하는 실행 단위이며, 프로세서가 할당되는 곳이다.

2. 스레드 (Thread)

  • 프로세스 내에서 실행되는 흐름의 단위이다.
  • 하나의 프로세스는 최소 하나 이상의 스레드를 가지며, 스레드는 경량 프로세스라고 불린다.
  • 각 스레드는 독립된 스택 영역을 가지지만, 부모 프로세스의 코드, 데이터, 힙 영역을 공유한다.

3. 메모리상의 프로세스 영역

프로세스 영역 설명
코드 영역 - 실행할 프로그램의 코드가 저장되는 공간
- 함수, 제어문, 상수 등이 포함
데이터 영역 - 전역 변수와 정적 변수가 할당되는 공간
- 프로그램 종료 시 메모리에서 소멸
스택 영역 - 지역 변수와 함수 매개 변수가 저장됨.
- 함수 실행이 완료되면 정보는 사라짐.
힙 영역 동적 메모리 할당을 위해 프로그래머가 직접 관리하는 공간

 

4. 프로세스 상태 전이

(1) 프로세스 상태 전이 절차

상태 설명
준비(Ready) 프로세스가 프로세서 할당을 기다리는 상태
실행(Running) 프로세스가 프로세서를 할당받아 실행 중인 상태
대기(Wait) I/O 처리가 필요하여 실행을 중단하고 대기 중인 상태

 

(2) 프로세스 상태 전이 용어

용어 설명
Dispatch 준비 상태에서실행 상태로 전이되는 과정
Wake Up 대기 상태에서 준비 상태로 전이되는 과정
Spooling 입/출력 데이터를 디스크에 모아뒀다가 한꺼번에 처리하는 과정

 

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

  • 운영체제가 프로세스 정보를 저장하는 공간이다.
  • 각 프로세스가 생성될 때 고유한 PCB가 생성되며, 프로세스 종료 시 PCB가 제거된다.

 

6. 문맥 교환 (Context Switching)

  • 하나의 프로세스가 CPU 사용을 마치고, 다른 프로세스가 CPU를 사용하도록 전환하는 과정이다.
  • 현재 실행 중인 프로세스의 상태(문맥)는 PCB에 저장되고, 새로운 프로세스의 상태는 PCB에서 읽어와 CPU 레지스터에 적재된다.
  • 문맥 교환은 멀티탱스킹(멀티 프로세싱)을 가능하게 하며, 여러 프로세스가 동시에 실행되는 것처럼 보이게 한다.
728x90