티스토리 뷰

OS

동시성(Concurrency)

tioon 2023. 5. 29. 03:23
동시성이란?

-동시에 여러 작업이 실행되는 것을 의미하는것, 멀티 태스킹, 멀티프로세스등의 환경을 뜻합니다. 여러 프로세스를 나눠 여러작업을 하는것은 병렬성(parallelism)이라고하며, 병렬성과 동시성은 비슷하지만 조금 다른 개념입니다.

 

  Concurrency(동시성) Parallelism(병렬성)
프로세스 개수 1개 여러개
전체 작업 여러작업가능 여러작업가능
한프로세스 내 작업 한개의 프로세스가 여러개작업 한개의 프로세스가 한개의 작업
의미 여러작업이 동시에 실행 작업들이 동시에 병렬적으로 실행

 

 

 

멀티 태스크 vs 멀티 프로세스

멀티태스크

-멀티태스크란 한 프로세스 내부에서 여러가지의 작업을 하는 것을 뜻합니다. 동시에 병렬적으로 진행하는것이 아닌, 빠르게 여러작업을 돌아가면서 수행하여 동시에 진행하는듯한 효과를 얻습니다.
이때, 각 작업들은 서로 연관되어 있을 수도있고, 아닐 수도 있지만, 서로 연관되어있을때가 더 적합합니다.

 

멀티프로세스

-멀티 프로세스란 여러 프로세스를 동시에 하여 여러가지의 작업을 병렬적으로하는것을 뜻합니다. 실제로 동시에 여러개의 작업을 수행합니다. 각 작업들은 서로 연관되지않은 작업일때가 적합합니다. 
(서로 연관된 작업을 하려면 프로세스끼리 통신이 잘되어야하지만, 프로세스끼리는 메모리와 자원이 분리되어있어, 시스템콜로 서로 통신을 해야하는데, 이 과정에서 오버헤드가 너무많이 생겨 비효율적입니다.)

 

 

 

IPC(Interprocess Communication)

-서로 다른 프로세스 간에 데이터를 주고받거나 통신하는 매커니즘을 말합니다. 여러 프로세스가 동작하는 운영체제 환경에서 프로세스들은 독립적으로 실행되며, IPC는 이러한 프로세스간에 정보를 교환하고 상호작용하는데 사용됩니다.

  • 파이프(PIPE)
  • 시그널(SIGNAL)
  • 파일(FILE)
  • 소켓(SOCKET)
  • 공유 메모리(SHARED MEMORY)

 

프로세스 VS 스레드
  프로세스 스레드
리소스,메모리 공유 X O
프로세스와의 관계   프로세스 내부에서 나뉨
상호작용 IPC사용 공유 , IPC사용도 가능
오버헤드 오버헤드 큼 오버헤드 작음
안정성 높음 공유메모리때문에 낮음

 

'OS' 카테고리의 다른 글

운영체제에 기본 HW 개념  (0) 2023.10.03
OS(운영체제)의 구조와 원리  (0) 2023.09.24
Shell(쉘)  (0) 2023.05.28
메모리 Stack변화  (0) 2023.05.15
Address Translation 변환 과정 (VA -> PA)  (0) 2023.05.15
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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
글 보관함