230216 동시성과 병렬성

Jongleee·2023년 2월 16일
0

TIL

목록 보기
183/576

동시성, Concurrency

  • 동시성은 여러 작업이 겹치는 기간에 실행될 수 있음
  • 동시에 실행하는 것이 아니라 CPU가 작업마다 시간을 분할해 적절하게 context switching을 해서 동시에 실행되는 것처럼 보이게 함
  • 유휴 시간을 최소화하기 위함
  • 같은 시간에 같은 자원에 접근하는 상황에 대비해 해당 자원에 write 권한으로 접근하는 경우 데이터의 무결성 유지가 중요함

병렬성, Parallelism

  • 병렬성은 동일한 시간에 독립적인 작업을 실행할 수 있음
  • 동시성과는 달리 여러 작업을 다른 코어, 다른 프로세스, 별도의 컴퓨터 등에서 동시에 실행

비교

Core 1,2 와 Task 1,2가 있을때

  1. 동시성의 경우
    Core1에서만 Task 1과 2를 번갈아가면서 실행
  2. 병렬성의 경우
    Core 1과 2에서 Task 1,2를 독립적으로 실행

발생가능한 문제

  1. 동시성
    Race Condition: 여러 프로세스가 하나의 자원에 접근해 서로의 실행 결과에 영향을 주는 현상
    Deadlock: 여러 프로세스가 서로 상대방의 작업이 끝나기를 무한히 기다리는 현상
    Starvation: 특정 프로세스가 우선순위가 낮아 원하는 자원을 계속 할당 받지 못하는 현상
  1. 병렬성
    메모리 손상, 누수 등

0개의 댓글