OS

병행 프로세스와 병렬 프로세스의 차이

Debin 2021. 9. 24.
반응형

2021. 9. 24. 17:51

2022. 6. 22. 14:17 복습을 위한 수정 시작

OS는 성능 향상을 목적으로 CPU가 한 개 일 때 프로세스를 병행 실행할 수 있고, CPU가 다수일 때 프로세스를 병렬 실행할 수 있다.

병행 프로세스와 병렬 프로세스에 대해 자세히 알아보겠다.

병행 프로세스 Concurrent Process

  • CPU가 한 개일 때 실행 중인 2개 이상의 프로세스이다.
  • Asynchronous Concurrent Processes
  • 프로세스의 병행성을 높여야, 성능 개선을 기대할 수 있고 효율이 높아진다.
  • 병행 프로그래밍의 최적화로 병행성을 극대화.
  • 병행 프로그래밍을 할 때 고려해야 할 사항들이 있다. 병행 프로세스들 간의 공유 자원 문제, 병행 프로세스들 간의 상호 통신 문제, 병행 프로세스들 간의 동기화 문제 등이 있다.
  • 병행 프로세스 간의 상호 통신을 인터 프로세스 커뮤니케이션이라고 한다.
  • 병행성을 판별하는 기법으로는 선행 그래프 (Precedence Graph)라는 기법이 있다.

병렬 프로세스 Parallel Process

  • 2개 이상의 프로세스를 물리적으로 동시에 실행 (CPU가 다수일 때)
  • DATA Parallelism, Task Parallelism라고도 한다.
  • 병렬 프로그래밍을 할 때 고려해야 할 사항들이 있다.
  • 처리할 TASK의 적절한 분리, 처리량의 균형, 데이터의 적절한 분리(상호 의존성이 없는지),
    데이터 간의 독립성, 테스트와 디버깅의 어려움 등이 존재한다.

병렬 프로그래밍 사례

  • open MP - 고성능 처리를 위해서 Multi CPU를 동시에 사용할 수 있도록 프로그래밍할 수 있는 API. C, C++ API LINUX, Windows, UNIX에서 지원
  • CUDA - 2007, GPU에서 고성능 처리를 위해 nvidia에 의해 개발된 HW/SW (대량의 병렬 처리), AI(딥러닝, Tensor flow), 블록체인 채굴에서 활용됨. CUDA에서 GPGPU API를 사용하여 C/C++로 병렬 프로그래밍 실현.

프로세스는 독립적으로 작업을 할 수도 있고 공유된 자원을 가지고 공동 작업을 할 수도 있다.

여러 프로세스가 한정된 자원을 가지고 공동으로 작업을 하면 문제가 발생할 수 있다. 

이때 등장하는 키워드로는 공유 자원, 경쟁 조건, 임계 구역등이 있는데 이에 대해서는 아래 포스팅에서 확인할 수 있다.

https://devdebin.tistory.com/16?category=972158 

 

OS 임계 구역 해결 방법

임계 구역은 상호 배제 문제, 한정 대기 문제, 진행의 융퉁성 문제가 있다. 임계 구역 해결 방법인 피터슨 알고리즘, 데커 알고리즘, 세마포어, 모니터에 대해 살펴보겠습니다. 먼저 피터슨 알고

devdebin.tistory.com

https://devdebin.tistory.com/24?category=972158 

 

DeadLock 교착 상태

두 개 이상의 프로세스가 필요한 자원을 기다리면서 무한정 중지된 상태가 교착 상태, DeadLock이다. 제한된 자원의 이용률을 높이고 시스템의 효율성을 높이고자 했을 때 발생하는 부작용이 교착

devdebin.tistory.com

이상으로 운영체제 전공 수업 복습을 마친다.

 

2022. 6. 22. 14:55 복습을 위한 수정 마무리

반응형

댓글