재학습/OS

[운영체제] 스레드, 멀티프로세스 vs 멀티스레드

재이든 2022. 12. 9. 22:48
반응형

스레드

-프로세스를 구성하는 실행의 단위

-하나의 프로세스는 여러 스레드를 가질 수 있다.

 

전통저인 관점

-하나의 프로세스는 하나의 일만 처리

-> 단일 스레드 프로세스

 

스레드 구성 요소

-스레드ID

-프로그램카운터

-레지스터값

-스택

==> 따라서 각기 다른 코드가 수행될 수 있다.

 

스레드 특징

-실행에 필요한 최소한의 정보만을 유지한 채 프로세스 자원을 공유하며 실행

 

 

멀티프로세스

-여러 프로세스를 동시에 실행하는 것

 

멀티스레드

-한 프로세스 내에 여러 스레드를 수행하는 것

 

멀티프로세스 vs  멀티스레드

*멀티스레드의 장점

-멀티스레드와 달리 멀티프로세스는 서로 자원을 공유하지 못한다.

따라서 프로세스 개별적으로 메모리공간을 할당해야한다.

-그러나 멀티스레드 속 스레드들은 별도의 스레드ID, 프로그램카운터, 스택을 가질 뿐 나머지 자원을 공유한다.

따라서 메모리공간을 효율적으로 공유하여 사용할 수 있다.

-그리고 메모리자원을 공유하기 때문에 스레드 간 통신을 원활히 할 수 있다.

반면 프로세스들은 서로 독립된 프로세스이기때문에 통신에 불리하다.

*멀티스레드의 단점

자원을 공유하기때문에

-하나의 스레드에 문제가 생기면 프로세스에 문제를 줄 수 있다.

-반면 프로세스는 하나의 프로세스가 문제가 생겨도 무방하다.

 

멀티프로세스의 프로세스들은 서로 통신이 불가능할까?

->가능하다

IPC(프로세스 간 통신)

서로다른 두 프로세스가 하나의 텏스트파일을 공유하여 처리한다 할때,

프로세스가 공유하는 영역을 공유메모리라 칭하게 된다.

*또한 소켓, 파이프를 통해 통신할 수 있다.

*따라서 스레드에 비해 까다로울 뿐 가능하다.

 

반응형

'재학습 > OS' 카테고리의 다른 글

[운영체제] 프로세스 상태와 계층구조  (0) 2022.12.07
[운영체제] 프로세스란?  (0) 2022.11.28
[운영체제] 운영체제의 큰그림  (0) 2022.11.27
[운영체제] 란?  (2) 2022.11.23