• 공부한 날짜: 2021.11.

 

  • 동시성(Concurrency)

-CPU 가용성 극대화를 위해 Parallelism의 단점 및 어려움을 소프트웨어(구현)레벨에서 해결하기 위한 방법

-싱글코어에 멀티스레드 패턴으로 작업을 처리함

-동시 작업에 있어서 일정량 처리 후 다음 작업으로 넘기는 방식

-즉, 제어권을 주고 받는 작업 처리 패턴, 병렬적은 아니나 유사한 처리방식 

 

  • Concurrency vs Parallelism
동시성(Concurrency) 병렬성(Parallelism)
논리적  물리적
논리적으로 동시 실행 패턴  물리적으로 동시 실행 
싱글코어  멀티 코어 
한 개의 작업을 공유 처리  주로 별개의 작업처리 
디버깅 매우 어려움  디버깅 어려움 
Mutex, Deadlock OpenMP, MPI, CUDA

 

  • Blocking IO vs Non-Blocking IO
Blocking IO Non-Blocking IO
시스템 콜 요청시
-> 커널 IO 작업 완료시까지 응답대기 
시스템 콜 요청 
-> 커널 IO 작업 완료 여부 상관없이 즉시 응답 
제어권이 IO 작업에 있음
-> 커널이 소유
-> 응답 전까지 대기(Block until response)
제어권(IO작업)
-> 유저프로세스
-> 다른 작업 수행 가능(지속)
-> 주기적으로 시스템 콜 통해서 IO 작업 완료 여부 확인 

 

  • Async vs Sync 
Async Sync
IO 작업 완료 여부에 대한 Noty는 커널(호출되는 함수)에서
유저 프로세스로(호출하는 함수)
IO작업 완료 여부에 대한 Noty는 유저프로세스(호출하는함수)에서
커널(호출하는 함수)로

 

 

 

 

 

 

+ Recent posts