[CS] 동시성과 병렬성

해니·2024년 8월 5일
0

CS

목록 보기
13/15

출처 :: [매일매일] 동시성과 병렬성에 대해서 설명해주세요.





동시성(Concurrency)

  • 실제로 여러 작업을 동시에 수행하는 것이 아니라, 논리적으로 동시에 실행되는 것처럼 보이게 만드는 개념
    • CPU가 작업마다 시간을 분할해 적절하게 context switching을 해서 동시에 실행되는 것처럼 보이게 한다.
    • 실질적으로는 한번에 하나의 작업만을 처리한다.
  • 동시성을 통해 유휴 시간(컴퓨터가 작동 가능한데도 작업을 하지 않는 시간)을 최소화
  • 싱글 코어에서 멀티 쓰레드(Multi thread)를 동작 시키는 방식

컨택스트 스위칭(context switching)이란?

  • CPU/코어에서 실행중이던 프로세스/스레드가 다른 프로세스/스레드로 교체되는 것
  • 스레드는 CPU/코어에서 실행되는 기본 단위이기 때문에, 기본적으로 1개의 프로세스는 1개의 스레드를 가진다.




병렬성(Parallelism)

  • 동일한 시간에 독립적인 작업을 실행할 수 있음을 의미
    • 다른 프로세스, 별도의 컴퓨터 등에서 동시에 실행
  • 멀티 코어에서 멀티 쓰레드(Multi thread)를 동작시키는 방식
    • 여러 CPU 또는 코어를 사용하여 여러 작업을 병렬로 처리





동시성과 병렬성의 개념과 차이

동시성 (Concurrency) vs 병렬성 (Parallelism)

컨텍스트 스위칭(context switching)

profile
💻 ⚾️ 🐻

0개의 댓글