multiprocess and multiThread

Multi Process(멀티 프로세스)

멀티 프로세스란?

  • 다수의 프로세스로 하나의 Task를 처리하는것
  • 프로세스간 메모리 구분이나 독립된 공간이 필요할때 사용

    특징

  • 독립된 구조로 다른프로세스에게 서로 영향을 주지않아서 문제가 발생해도 해당 프로세스 이외에는 영향이 없다. -> 안정적이다.

    단점

  • 서로 독립된 영역에서 작업을 진행하기 때문에 작업량이 많아질수록 Context Switching에 의한 오버헤드가 발생하여 성능의 저하가 일어날 수 있다
  • 서로 독립되어있기 때문에 통신을 위해 별도의 통신설비를 이용해야함(IPC, Inter Process Communication)
  • 프로세스간 변수등의 자료 교환을 할 수 없다.



Multi Thread(멀티 스레드)

멀티 스레드란?

  • 하나의 프로세스에 여러개의 스레드로 자원을 공유하여 다수의 작업을 동시에 처리하는것

    특징

  • 프로세스 안에서 공유 메모리를 가지고 있기때문에 시간, 자원의 손실이 프로세스대비 적다
  • 스레드간 자료, 변수의 공유가 가능하다.

    단점

  • 공유메모리를 가지기 때문에 공유메모리의 공간의 손상이 발생하면 다른 스레드또한 작업이 불가능한 상태가 되어버린다.
  • 위의 문제를 가지기 때문에 주의깊은 설계가 필요하다. -> Critical Section


    # Context Switching
  • 하나의 프로세스나 쓰레드가 CPU를 사용중인 상태에서 다른 프로세스나 쓰레드가 CPU를 사용하기위해 현재 프로세스의 상태정보를 저장하고 다른 프로세스의 상태값을 불러오는 과정 -> PCB에 저장
  • 상태값을 저장하고 불러오는 동안에는 작업을 수행할 수 없다 -> 오버헤드
Author

KyuBum Shin

Posted on

2021-10-03

Updated on

2021-10-11

Licensed under

댓글