[운영체제] Multi Thread의 장점과 Multi Process와의 차이

강민혁·2023년 3월 6일
1

Multi Thread의 장점과 Multi Process와의 차이에 대해 설명하세요

Keyword

메모리 공간 공유, context switching 속도 비교, cache 메모리, 동기화, data, heap, 공유 자원 접근, 작업 처리 순서, 병목 현상


Script

Multi Thread는 한 process 내에서 여러개의 thread로 process를 실행하는 것을 의미합니다.

Multi Threading의 장점은 thread끼리는 서로 메모리 공간을 공유하기 때문에, 별도의 자원을 사용하지 않고 데이터를 주고 받을 수 있다는 점입니다. 또, thread의 context switching은 process의 context switching보다 빠릅니다. process switching은 cache 메모리를 비워야하지만, 메모리 공간을 공유하는 thread 간의 context switching은 그럴 필요도 없고 cache 적중을 통해 더 빠르게 작업을 수행할 수 있습니다.

물론 Multi Threading을 사용할 때는 동기화 작업에 신경을 써줘야 합니다. 서로 다른 Thread가 data와 heap 영역을 공유하기 때문에, 공유 자원에 대한 접근과 작업 처리 순서를 컨트롤 해주어야 합니다. 또 동기화 문제를 해결하다보면, 병목 현상이 발생하여 성능이 저하될 수 있기 때문에, 병목 현상에 대한 문제도 항상 유념해야 합니다.

Multi Thread와 Multi Process를 비교해보자면, Multi Thread는 Multi Process보다 적은 메모리 공간을 차지하고 context switching이 빠릅니다. 하지만 만약 오류로 하나의 thread가 종료되면, 메모리를 공유하는 다른 모든 thread도 종료되는 동기화 문제가 있습니다. 반면, Multi Process 방식은 각각의 Process가 독립적이기 때문에 서로 영향없이 정상작동이 가능합니다.

가장 유명한 예시로, internet explorer는 멀티탭이 multi thread로 구성되어있어 하나의 화면이 문제가 생기면 전체 모든 탭이 종료되고, chrome은 한 탭이 문제가 있어도 다른 탭에 영향을 미치지 않습니다.


Additional


Reference

Book - 혼자 공부하는 컴퓨터 구조+운영체제

인터넷익스플로어와 크롬에서 멀티탭 기능 구현 차이

profile
with programming

0개의 댓글