middlefitting

[Process] 프로세스란 무엇인가 본문

OS

[Process] 프로세스란 무엇인가

middlefitting 2023. 1. 26. 23:47

프로세스의 개념

프로세스는 실행중인 프로그램을 말합니다.

 

프로세스가 어떤 의미로 사용되었는지 알기 위해서는 문맥을 알아야 하는데,

 

문맥을 기준으로 프로세스가 어떻게 진행했는지, 시점이 어떤지 알 수 있기 때문입니다.

 

프로세스의 문맥은 다음과 같이 존재합니다.

  • CPU 수행 상태를 나타내는 하드웨어 문맥
    • Program Counte, Register
  • 프로세스의 주소 공간
    • Code, data, stack
  • 프로세스 관련 커널 자료 구조
    • PCB, Kernel stack

 

 

 

프로세스의 상태

프로세스는 상태가 변경되며 수행됩니다.

 

상태가 변경되는 가장 큰 요인은 한 프로세스가 CPU를 계속 점유하지 않고 서로 돌아가면서 쓰기 때문이며,

 

상태의 종류는 다음과 같습니다.

  1. New
    • 프로세스가 생성중인 상태를 말합니다.
  2. Ready
    • CPU를 점유하기 위한 조건을 만족하고, CPU를 기다리고 있는 상태를 말합니다.
  3. Running
    • CPU를 점유하고 있는 상태를 말합니다.
  4. Blocked
    • CPU를 점유하여도 당장 Instruction을 실행할 수 없는 상태를 말합니다.
    • 예시로는 I/O를 만족하지 않거나, 프로세스가 자신이 요청한 이벤트를 만족하지 못해 이벤트를 기다리거나, 프로그램을 메인 메모리 공간에 올려놓지 못한 상태가 존재합니다.
  5. Suspended
    • 프로세스가 외부에서 강제로 정지된 상태를 말합니다.
    • 디스크에 Swap out 된 상태이며, 외부에서 Resume을 해 주어야 다시 Active 상태로 돌아갈 수 있습니다.
  6. Terminated 
    • 프로세스가 종료중인 상태를 말합니다.
    • Instruction이 끝나서 할일을 마쳤지만, 아직 정리할게 남아있는 상태를 말합니다.

 

 

 

Process Control Block(PCB)

PBC란 운영체제가 각 프로세스를 관리하기 위해 프로세스별로 유지하는 정보를 말합니다.

 

해당 정보들은 다음과 같습니다.

  1. OS가 관리상 사용하는 정보
  2. CPU 수행 관련 하드웨어 정보
  3. 메모리 관련 정보
  4. 파일 관련 정보

 

 

 

참고문헌

KOWS 운영체제 - 반효경 교수님 - Process 1

http://www.kocw.net/home/search/kemView.do?kemId=1046323