티스토리 뷰

프로세스란?

 프로세스는 실행 중인 프로그램이다. 프로그램은 실행되기 전에는 보조기억장치에 저장된 데이터이지만, 이 프로그램을 메모리에 올라가고 실행되는 순간 프로그램은 프로세스가 된다.

 

스레드란?

 스레드는 실행의 단위이며, 프로세스를 구성하는 실행의 흐름 단위이다. 하나의 프로세스에는 여러 개의 스레드를 가질 수 있으며, 프로세스 내의 여러 개의 스레드가 동시에 실행될 수 있다.

 

멀티프로세스란?

 여러 프로세스를 동시에 실행하는 것이다.

멀티스레드 실행

 

멀티스레드란?

 여러 스레드를 프로세스 내에 동시에 살행하는 것이다.

프로세스 내의 여러 스레드가 있다.

 

멀티프로세스와 멀티스레드의 차이?

 만약 Hello를 출력하는 프로그램이 있다고 가정하고 출력을 2개 이상 하고 싶다면 2개 이상의 프로세스를 실행하면 되고(멀티프로세스는), 하나의 프로세스에서 여러 개의 스레드를 실행(멀티스레드)하면 된다. 이 두개의 큰 차이는 뭘까? 답은 자원 공유이다. 멀티프로세스는 2개 이상을 실행하면 코드 영역, 데이터 영역, 힙 영역 등의 자원이 복제되어 메모리에 적재되는데, 멀티스레드는 하나의 프로세스가 가지고 있는 자원을 공유한다. 즉 메모리를 효율적으로 사용할 수 있다.

멀티스레드는 프로세스의 자원을 공유할 수 있다.

 

멀티스레드의 문제점

 멀티스레드는 프로세스의 자원을 공유함으로써 메모리 측면에서는 효율적이지만 문제가 있다. 바로 자원 공유이다. 만약 하나의 스레드에서 자원을 공유하는 중에 문제가 발생하고 공유 자원에 문제가 발생한다면 다른 스레드에서 문제가 발생한 자원을 사용하게 된다면 영향을 받게 된다.

 

정리

 멀티프로세스는 여러 개의 프로세스를 실행하는 것이며, 만약 동일한 프로세스를 여러 개 실행하면 자원이 복제가 되기 때문에 메모리 측면에서 비효율적이다. 그에 반해 멀티스레드는 프로세스 내에 여러 개의 실행 단위이며 프로세스 내의 자원을 공유하기 때문에 메모리 측면에서 효율적이지만 하나의 스레드에서 공유 자원을 사용 중에 자원에 문제가 발생하면 다른 스레드에 영향을 줄 수 있다.

 


본 포스팅은 “혼자 공부하는 컴퓨터 구조 + 운영체제/강민철 저”를 읽고 학습한 내용을 정리한 것

 

 

 

 

'CS > 운영체제' 카테고리의 다른 글

<운영체제> CPU 스케줄링 알고리즘  (0) 2026.01.12
댓글
최근에 올라온 글
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함
Total
Today
Yesterday