[CS] 프로그램과 프로세스, 스레드

Jay ·2022년 6월 26일
0

프로그램(Program)

작업을 위해서 실행할 수 있는 파일

프로세스(Process)

실행되고 있는 컴퓨터 프로그램
(Computer program in execution)

프로세스의 구성요소

Register
Counter
Stack
Heap
code

스레드(Thread)

프로세스의 실행 단위
한 프로세스 안에서 여러개의 스레드가 있을 수 있다.
각 스레드 별로 stack을 가지지만, Data는 공유한다.

멀티 프로세싱 VS 멀티 스레딩

CPU의 최대 활용을 위해 프로그램의 둘 이상의 부분을 동시에 실행하는 기술.

멀티 스레딩

  • 적은 메모리공간 차지
  • 적은 통신 비용 / 효율적 시스템 자원 관리 가능
  • Context Switching이 빠름
  • 스레드 간 자원을 공유하기 때문에 동기화 문제가 발생 가능(병목현상, 데드락)

멀티 프로세싱

  • 프로세스 간에 영향을 주지 않아 안정성이 높음
  • 메모리공간과 CPU를 비교적 많이 차지함.
  • Context Switching 과정에서 시간이 비교적 많이 소모

컨텍스트 전환

CPU를 한 프로세스/스레드 에서 다른 프로세스/스레드로 전환하는 것

profile
Jay입니다.

0개의 댓글