728x90
동시성 & 병렬성
동시성
- 동시에 실행되는 것 처럼 보이는 것
싱글코어, 멀티코어에서 모두 가능하며 여러 스레드를 빠르게 번갈아가면서 처리하는 방식 혹은 실제로 동시에 실행되는 것
병렬성
- 실제로 동시에 실행되는 것
멀티코어 에서만 가능하며 실제로 여러 스래드를 동시에 처리하는 것이다.
-데이터 병렬성: 전체 데이터를 서브 데이터로 나누어 서브 데이터를 병렬 처리해 빠르게 데이터 처리를 하는 방법
-작업 병렬성: 서로 다른 작업을 병렬 처리하는 것
동시성 & 병렬성의 관계
병렬이면 동시이다(p→q)
동시성은 병렬성의 필요조건이다.
즉, 병렬성은 동시성에 포함되는 개념이다.
동시성의 구현 방식에 병렬성이 포함되는 것이다.
- 하나의 스래드가 번갈아가며 동시에 수행되는것 처럼 보이게 한다.
- 실제로 동시에 수행한다. (병렬성)
그렇기 때문에 동시성이 보장된다고 병렬성이 보장되는건 아니다.
멀티 스레드에서의 동시성 , 병렬성?
멀티 스레드 환경에서는 두가지 방식 모두 구현 가능하다.
하나 이상의 스레드를 번갈아가며 작업을 처리하거나, 물리적으로 동시에 병렬 수행을 구현 할 수 도 있다.
Reference
https://devsrkim.tistory.com/entry/동시성과-병렬성의-차이?category=873361
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jk130694&logNo=220689655244
728x90
'개발 일지 > 운영체제' 카테고리의 다른 글
[OS] 스레드(Feat. Java Thread) -4 (0) | 2022.05.31 |
---|---|
[OS] 컴퓨터 시스템 구조 -2 (0) | 2022.05.31 |
[OS] 운영체제(feat. 커널) - 1 (0) | 2022.05.31 |
자바의 비동기 처리(feat. 멀티 스래드) (0) | 2022.05.26 |
동기 vs 비동기 (0) | 2022.05.25 |