본문 바로가기
Computer Science

프로세스와 스레드의 차이

by 융식 2022. 6. 14.

프로세스

  • 현재 실행되고 있는 프로그램.
  • 최소 한개 이상의 스레드가 프로그램을 실행시키는 것.
  • 프로그램이 메모리에 적재되면 프로세스가 됨

프로세스의 상태변화

운영체제가 프로세서 스케줄러를 이용하여 관리.

프로세스 스케줄러는 선정한 작업의 상태를 변화시키며 프로세스의 생성에서 종료까지 과정 수행.

 

  1. 준비 → 실행 : dispatch
  2. 실행 → 준비 : timeout
  3. 실행 → 대기(보류) : block
  4. 대기(보류) → 준비 : wakeup

 

 

 

 

스레드

  • 프로세스의 직접 실행 정보를 제외한 나머지 관리정보를 공유 
  • 스레드 마다 다른 프로시저, 다른 실행 기록( 별도 스택 필요)
  • 관련 자원과 함께 메모리 공유 가능 하므로 데이터 손상 고려

 

간단 용어 설명

SP : 스택 포인터

SR : 순서열 레지스터 == Instruction Address Register

PC : 프로그램 카운터

 

 

 

스레드 병령 수행의 이점

  • 프로세스의 자원과 메모리 공유 가능
  • 다중 처리로 성능과 효율 향상
  • 다중 스레드의 프로세스는 실행 환경 정보가 따로 있지만 서로 공유하므로, 문맥 교환이 훨씬 경제적