티스토리 뷰

반응형

멀티 프로세스(Multi process)

멀티 프로세스는 다수의 프로세서(CPU)가 협력적으로 하나 이상의 작업을 동시에 처리하는 것이다.
병렬처리의 개념이라고 생각할 수 있다.

스레드와 프로세스의 차이점으로는 주소공간이나 공유하는 점이 있고 없고의 차이가 있다.

thread: code, file, data를 공유한다.

따라서, 프로세스를 여러게 쓰는 경우에는 메모리의 구분이나 독립된 주소 공간을 가져야 할 때이다.

장점

  1. 하나의 프로세스가 장애가 나더라도 다른 프로세스에 영향을 미치지 않는다.
  2. 별도의 동기화 작업이 필요없다.

단점

  1. 독립된 메모리 영역으로 인해 작업량이 많아질수록 문맥교환(Context Switching)이 많이 일어나 오버헤드가 발생해 성능저하가 발생할 수 있다.

멀티 스레드(Multi thread)

멀티 스레드는 하나의 프로세스에서 여러 스레드로 자원을 공유하며 작업을 나누어 수행하는 것이다.
예를 들어 여러개의 트래픽(traffic)이 발생해서 한번에 동일한 기능을 여러명이 사용할 경우에 사용되곤 한다.

장점

  1. 자원 효율성의 증대
  2. 시스템 처리율 향상
  3. 간단한 통신 방법으로 인한 응답시간 단축
    • process의 경우는 IPC를 사용해야하지만 스레드는 힙영역을 공유해 데이터를 주고 받을 수 있다.

단점

  1. 자원의 공유로 인한 동기화 문제
    • deadlock, bottle neck
  2. 프로그래밍 시에 설계에 시간이 많이 들고 디버깅이 어렵다.
  3. 하나의 스레드 문제가 전체에 영향을 준다.

참고

https://wooody92.github.io/os/%EB%A9%80%ED%8B%B0-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%EB%A9%80%ED%8B%B0-%EC%8A%A4%EB%A0%88%EB%93%9C/

728x90
반응형

'CS' 카테고리의 다른 글

[OS] 5. System call(시스템 콜)  (0) 2022.08.29
[OS] 3. CPU Scheduling  (0) 2022.08.23
[OS] 2. 스레드(Thread)  (0) 2022.08.23
[OS] 1. 프로세스  (0) 2022.08.23
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함
250x250