CS/운영체제

[CS/운영체제] 병행성 vs 병렬성

NLP Developer 2024. 1. 29. 21:50
728x90
반응형

1. 병행성(Concurrency)

  • 병행성은 동시성이라고 부르기도 한다.
  • 논리적인 개념(프로그램 성질)
  • 보통 단일 프로세서 혹은 싱글 코어에서 여러 작업(단일 스레드 프로세스 여러 개 혹은 다중 스레드 프로세스)을 동작시키기 위해 사용한다.
    • 하지만 멀티 코어에서도 실행이 가능하다. -> 싱글, 멀티 코어 둘 다 실행 가능
  • 보기에는 스레드들을 동시에 병렬적으로 실행하는 것처럼 보이지만, 사실은 번갈아가면서 실행을 시켜 동시에 실행되는 것처럼 보이게 한다.

 

2. 병렬성(Parallelism)

  • 병렬성은 실제로 동시에 실행된다.
  • 물리적인 개념(하드웨어 성질)
  • 멀티 프로세서 혹은 멀티 코어 환경에서 독립적으로 작업을 수행한다.
    • 멀티코어에서만 실행이 가능하다.
  • 병렬성은 데이터 병렬성, 작업 병렬성으로 나뉜다.
    • 데이터 병렬성 : 같은 작업의 전체 데이터를 서브 데이터로 나눠서 같은 작업을 동시에 처리한다.
    • 작업 병렬성 : 서로 다른 작업을 동시에 처리한다.
728x90
반응형