프로세스와 스레드

WestZero·2021년 3월 31일
0

프로세스란?

운영체제의 주된 기능은 프로세스의 생성과 종료이다.

  • 실행 중인 프로그램
  • 독립적일 수도 있고 협조적일 수도 있음.
  • 그 중 협조적 프로세스는 논리적 주소 공간을 직접 공유하거나 파일을 통해서만 데이터를 공유할 수 있음.
  • 두 개 이상의 다수의 프로세서가 협력적으로 작업을 동시에 처리하는 것을 멀티 프로세스라 함.

프로세스 상태

  • 프로세스 상태는 프로세스의 현재 활동에 의해 정의됨.

문맥 교환

  • 프로세서를 다른 프로세스로 전환하려면 이전 프로세스 상태 레지스터 내용을 보관하고, 또 다른 프로세스의 레지스터를 적재하는 문맥교환 과정을 거침.

오버헤드

오버헤드(overhead)는 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간 · 메모리 등을 말한다.

문맥 교환에서의 오버헤드는 문맥 교환에 소요되는 비용으로, 스레드 등을 사용해 문맥 교환을 최소화해야 한다.


스레드란?

  • 프로세스보다 더 작은 단위
  • 입출력장치 등의 자원 할당에는 관계하지 않고, 단지 프로세스 스케줄링의 단위로만 사용함.
  • 자원을 제어하는 개체
  • 자원을 공유하므로 하나의 프로세스 안에 여러 개의 스레드가 존재할 수 있음. 이를 멀티 스레드라고 함.

프로세스와 스레드의 차이점

  • 실행점의 차이 : CPU가 하나인 시스템에서 프로세스는 하나의 프로세스만 실행되므로 실행점이 하나이지만, 스레드는 한 프로세스 안에 여러 개의 스레드가 존재하므로 실행점이 여러 개임.
  • 병행성의 차이 : CPU가 하나인 시스템에서 프로세스는 순차적으로 실행되고, 스레드는 병행 실행이 가능함

0개의 댓글