2024.03.27 TIL - 프로세스와 스레드, 멀티 프로레스와 멀티 스레드

김민석·2024년 3월 27일
0

TIL

목록 보기
60/78

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

프로세스란

실행중에 있는 프로그램
메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 객체)
스케줄링의 대상이 되는 작업(task)와 같은 의미로 쓰인다
프로세스 내부에는 최소 하나의 스레드를 가지고 있는데, 실제로는 스레드 단위로 스케줄링을 한다.

스레드란

프로세스 하나만을 사용해서 프로그램을 실행하기에는 메모리의 낭비가 발생한다. 스레드는 프로세스와 다르게 스레드 간 메모미를 공유하며 작동한다.
즉, 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위!이다. 스레드는 운영체제의 스케줄러에 의해 독립적으로 관리될 수 있는 프로그래밍된 명령어의 가장 작은 시퀸스이다. 하나의 프로세스는 하나 이상의 스레드를 갖고 있다!


멀티 프로세스

멀티 프로세스는 운영체제에서 하나의 응용 프로그램에 대해 동시에 여러 개의 프로세스를 실행할 수 있게 하는 기술

장점

  • 프로그램 안전성
    멀티 프로세스는 각 프로세스가 독립적인 메모리 공간을 가지므로, 한 프로세스가 비정상적으로 종료되어도 다른 프로세스에 영향x

단점

  • 자원 공유 비효율성
    멀티 프로세스는 각 프로세스가 독립적인 메모리 공간을 가지므로, 결과적으로 메모리 사용량이 증가

멀티 스레드

스레드는 하나의 프로세스 내에 실행 흐름. 그리고 멀티 스레드는 하나의 프로세스 안에 여러개의 스레드가 있는 것.

장점

  • 자원의 효율성
    멀티 스레드는 하나의 프로세스 내에서 여러 개의 스레드가 생성되기 때문에 공유 메모리에 대해 스레드 간에 자원을 공유 가능

단점

  • 안전성 문제
    멀티 프로세스와 다르게 멀티 스레드 모델 에서는 기본적으로 하나의 스레드에서 문제가 발생하면 다른 스레드들도 영향을 받음
profile
화이팅 화이팅

0개의 댓글