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

강민승·2023년 7월 23일
0

운영체제

목록 보기
2/18

📍 멀티프로세스(Multiprocessing):

멀티프로세스는 여러 개의 프로세스를 동시에 실행하는 것
프로세스들은 IPC(Inter-Process Communication, 프로세스 간 통신) 메커니즘을 통해 서로 통신한다.

📌 멀티프로세스의 장점

프로세스는 각자 독립적인 메모리 공간을 가지므로, 하나의 프로세스가 다운되더라도 다른 프로세스에 영향을 미치지 않는다. (메모리 침범 문제를 OS 차원에서 해결)
데이터를 공유하지 않기 때문에 동기화 문제를 걱정할 필요가 없다.

📌 멀티프로세스의 단점

각 프로세스가 독립적인 자원을 가지고 있으므로, 많은 메모리와 CPU 리소스를 필요.
프로세스 간 통신은 비용이 많이 드는 작업.
, 각각 독립된 메모리 영역을 갖고 있어, 작업량 많을 수록 오버헤드 발생. Context Switching으로 인한 성능 저하

📌 Context Switching이란?

프로세스의 상태 정보를 저장하고 복원하는 일련의 과정

, 동작 중인 프로세스가 대기하면서 해당 프로세스의 상태를 보관하고, 대기하고 있던 다음 순번의 프로세스가 동작하면서 이전에 보관했던 프로세스 상태를 복구하는 과정을 말함

→ 프로세스는 각 독립된 메모리 영역을 할당받아 사용되므로, 캐시 메모리 초기화와 같은 무거운 작업이 진행되었을 때 오버헤드가 발생할 문제가 존재함

📍 멀티스레드(Multithreading):

멀티스레딩은 단일 프로세스 내에서 여러 스레드를 동시에 실행하는 것
각 스레드는 프로세스의 메모리자원공유하므로, 스레드 간 통신은 프로세스 간 통신보다 더 빠르고 효율적이다

📌 멀티스레딩의 장점

스레드는 프로세스의 메모리와 자원을 공유하여 자원 사용량(자원 손실이 감소 전역 변수와 정적 변수에 대한 자료 공유 가능)이 적습니다.
스레드 간 통신이 빠르고 효율적입니다.

📌 멀티스레딩의 단점

(안전성 문제) 모든 스레드가 메모리를 공유하기 때문에, 한 스레드에서 발생하는 오류가 다른 스레드에 영향을 줄 수 있다

  • 하나의 스레드가 데이터 공간 망가뜨리면, 모든 스레드가 작동 불능 상태 (공유 메모리를 갖기 때문)
  • 멀티스레드의 안전성에 대한 단점은 Critical Section 기법을 통해 대비함
    - 하나의 스레드가 공유 데이터 값을 변경하는 시점에 다른 스레드가 그 값을 읽으려할 때 발생하는 문제를 해결하기 위한 동기화 과정
	- 상호 배제, 진행, 한정된 대기를 충족해야함

공유 데이터를 사용할 때 동기화 문제가 발생할 수 있다. 이를 위해 동기화 메커니즘을 사용해야 하지만, 이는 복잡성을 증가시킨다.

결론적으로, 멀티프로세스와 멀티스레드는 서로 다른 장점과 단점을 가지고 있으므로, 어떤 방식을 선택할지는 구현하려는 작업의 특성과 요구 사항에 따라 결정해야 합니다.

profile
Step by Step goes a long way. 꾸준하게 성장하는 개발자 강민승입니다.

0개의 댓글