ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 멀티 프로세스와 멀티 스레드
    백수의 개발/운영체제 2019. 10. 29. 21:27

    이전에 [백수의 면접/운영체제]프로세스(Process)와 스레드(Thread)에 대한 이야기를 해보았다.

     

    오늘은 이전 내용을 바탕으로 멀티 프로세스와 멀티 스레드에 대해서 다루어 보자.

     

    멀티 프로세스

    하나의 작업을 처리하기 위한 다수의 프로세스를 멀티 프로세스라고 한다.

    간단히 말해 여러개의 프로그램을 통해 하나의 작업을 처리하는 방식이다.

     

    장점

    - 여러개의 프로세스 중 하나에 문제가 발생하더라도, 해당 프로세스만 죽고 다른 프로세스에는 영향을 주지 않는다.

     

    단점

    - 여러개의 프로세스를 돌아가면서 명령을 처리하게 되는데, 이 때 Context Switching에 대한 오버헤드가 크다.

    - 프로세스 간 데이터를 공유할 수 없어 IPC통신을 해야하고, 독립적인 코드공간과 데이터 공간을 차지한다.(장점이자 단점)

     

    멀티 스레드

    하나의 작업을 처리하기 위한 다수의 스레드를 멀티 스레드라고 한다.

    간단히 말해 하나의 프로그램에서 다수의 스레드를 생성하여 하나의 작업을 처리하는 방식이다.

     

    장점

    - Stack을 제외한 모든 메모리를 공유하여 통신의 부담이 적다.

    - 스레드 사이의 Context Switching의 오버헤드가 작다.

    - 시스템 콜이 줄어들어 자원을 효율적으로 관리할 수 있다.

     

    단점

    - 자원을 공유하므로 동기화 문제가 발생할 수 있다.

    - 하나의 스레드에 문제가 발생하면 해당 프로세스가 영향을 받는다.

     

     

    '백수의 개발 > 운영체제' 카테고리의 다른 글

    프로세스(Process)와 스레드(Thread)  (0) 2019.10.26

    댓글

Designed by Tistory.