프로세스와 스레드

Next-Step·2023년 5월 23일
0

프로세스


  • 운영체제로부터 자원을 할당받아 독립적으로 실행되는 프로그램의 인스턴스이다.

  • 각 프로세스는 독립된 가상 주소 공간, 메모리, 파일 디스크립터, 각종 리소스 등을 갖고 있다.

  • 각 프로세스는 별도의 주소 공간을 가지므로 다른 프로세스의 메모리에 직접 접근할 수 없다.

  • 프로세스 간 통신을 위해서는 IPC(Inter-Process Communication) 메커니즘이 필요하다.

  • 프로세스 간에는 강한 격리가 유지되어 오류나 예외로 인해 하나의 프로세스가 종료되더라도 다른 프로세스는 영향을 받지 않습니다.


스레드


  • 하나의 프로세스 내에서 실행되는 여러 실행 흐름 또는 실행의 단위이다.

  • 같은 프로세스 내의 스레드들은 동일한 주소 공간, 파일 디스크립터, 힙 등을 공유한다.

  • 스레드는 같은 프로세스의 자원을 공유하기 때문에, 한 스레드가 만든 변경 사항은 다른 스레드에 영향을 줄 수 있다.

  • 스레드 간 통신은 주소 공간과 데이터를 공유하기 때문에 비교적 간단하지만 스레드 간 동기화 문제에 주의해야 한다.

  • 프로세스와 달리 스레드는 자원을 공유하기 때문에 하나의 스레드가 예외를 발생시키면 해당 프로세스 내의 다른 스레드들도 영향을 받을 수 있다.


정리


  • 프로세스는 독립된 실행 환경을 갖고 있다.

  • 스레드는 하나의 프로세스 내에서 실행되는 실행 단위이다.

  • 프로세스 간에는 강한 격리가 유지된다.

  • 스레드는 동일한 프로세스의 자원을 공유한다.

profile
Step by Step

0개의 댓글