본문 바로가기
개발 일지/운영체제

[os]동시성 & 병렬성 - 5

by osul_world 2022. 6. 14.
728x90

동시성 & 병렬성

동시성

  • 동시에 실행되는 것 처럼 보이는 것

싱글코어, 멀티코어에서 모두 가능하며 여러 스레드를 빠르게 번갈아가면서 처리하는 방식 혹은 실제로 동시에 실행되는 것

 

병렬성

  • 실제로 동시에 실행되는 것

멀티코어 에서만 가능하며 실제로 여러 스래드를 동시에 처리하는 것이다.

 

-데이터 병렬성: 전체 데이터를 서브 데이터로 나누어 서브 데이터를 병렬 처리해 빠르게 데이터 처리를 하는 방법

-작업 병렬성: 서로 다른 작업을 병렬 처리하는 것

 

동시성 & 병렬성의 관계

병렬이면 동시이다(p→q)

 

동시성은 병렬성의 필요조건이다.

즉, 병렬성은 동시성에 포함되는 개념이다.

동시성의 구현 방식에 병렬성이 포함되는 것이다.

  1. 하나의 스래드가 번갈아가며 동시에 수행되는것 처럼 보이게 한다.
  2. 실제로 동시에 수행한다. (병렬성)

그렇기 때문에 동시성이 보장된다고 병렬성이 보장되는건 아니다.

 

멀티 스레드에서의 동시성 , 병렬성?

멀티 스레드 환경에서는 두가지 방식 모두 구현 가능하다.

하나 이상의 스레드를 번갈아가며 작업을 처리하거나, 물리적으로 동시에 병렬 수행을 구현 할 수 도 있다.

 

Reference

https://devsrkim.tistory.com/entry/동시성과-병렬성의-차이?category=873361

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jk130694&logNo=220689655244

728x90