ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [운영체제] 동시성(Concurrency) VS 병렬성(Parallelism)
    운영체제 2023. 11. 29. 23:17

     

     

     

     

     

    병렬처리는 컴퓨터 시스템에서 성능향상과 효율성을 위한 핵심 기술 중 하나입니다. 이 병렬처리에 대해 공부하다보면 동시성과 병렬성이라는 개념을 접하게 됩니다. 이 때 병렬(parallel)과 동시(concurrent)의 단어적 의미는 매우 유사하여 컴퓨터 프로그래밍 관점의 동시성과 병렬성을 이해하는 데 매우 혼란스러 울 수 있습니다. 단어적 의미와는 다르게 프로그래밍 관점에서 동시성과 병렬성은 서로 다른 개념이며 다른 목적성을 가집니다.

     

     

    동시성(Concurrency) 

     

    https://www.charlezz.com/?p=44646

     

    동시성은 프로그램이나 시스템의 의미론적 속성 입니다 . 두 개 이상의 작업이 동시에 진행되는 것, 즉 여러 작업이 실행되는 기간이 겹치는 것을 의미합니다.

    여러 작업은 '동시'에 실행되는 것 처럼 보이지만 사실 하나의 CPU는 하나의 작업만 처리할 수 있기 때문에 짧은 시간을 간격으로 작업들이 번갈아 실행됩니다. 이때 Context Switching이 발생하며 동기화문제가 발생할 수 있습니다.

     

     

     

    병렬성(Parallelism)

    https://www.charlezz.com/?p=44646

     

    두 개 이상의 작업이 실제로 동시에 실행되는 것을 의미하는 개념입니다.

    CPU는 한번에 하나의 작업만 실행 가능하기 때문에 싱글 코어에서는 병렬성을 가질 수 없으며, 각 작업은 독립적으로 별도의 코어에서 동시에 실행됩니다. 대규모 작업에서 성능을 향상시키는데 주로 사용됩니다. 그러나 하나의 코어에서 실행하던 작업을 여러 코어로에서 나누어 처리하기 때문에 자원의 경쟁상태(race condition) 또는 동기화 문제가 발생할 수 있습니다.

     

     

     

    동시성 vs 병렬성

      동시성 (Concurrency) 병렬성 (Parallelism)
    개념 동시에 처리하는 것처럼 보이게 하는 것 여러 작업을 실제로 동시에 처리하는 것
    사용 코어 싱글 코어,멀티 코어 멀티 코어
    동작 방식 싱글 코어에서 멀티 스레드를 동작 시키는 방식 멀티 코어에서 멀티 스레드를 동작시키는 방식
    개념적 차이 논리적인 개념 물리적인 개념
    성능 향상 입출력이나 대기 시간이 발생하는 작업을 병렬로 처리하여 성능 향상 다중 코어 시스템에서 여러 작업을 병렬로 처리하여 전체 작업 처리 속도 항상
    자원 활용 작업의 대기 시간에 다른 작업을 실행하여 자원을 효율적으로 활용 여러 작업이 동시에 처리하며 대기시간을 최소화하여 자원을 효율적으로 활용

     

     

     

Designed by Tistory.