Skip to content

Latest commit

 

History

History
27 lines (15 loc) · 1.13 KB

MultiProcessing과MultiThreading.md

File metadata and controls

27 lines (15 loc) · 1.13 KB

멀티 프로세싱 vs 멀티 스레딩

: CPU의 최대 활용을 위해 여러개의 프로그램을 동시에 실행하는 것

멀티 테스킹(Multitasking)

초기 아이폰을 보면 한 번에 하나의 앱만 실행할 수 있었다.

지금은 한번에 여러개의 앱을 실행이 가능해졌다.

컨텍스트 전환(Context Switching)

  • CPU를 한 프로세스/ 스레드에서 다른 프로세스 / 스레드로 전환하는 것
  • 프로세스 제어 블록(PCB)에서 CPU의 컨텍스트 상태를 복원/저장해서 나중에 같은 시점에서 프로세스 실행을 재게할 수 있게 하는 절차이다.
  • 이 기술을 통해 여러 프로세스가 단일 CPU를 공유할 수 있고, 멀티 테스킹 운영체제의 주요 기능이다.

멀티 프로세싱(Multiprocessing)

A,B를 동시에 실행하고 싶다면

A가 실행되고 B가 준비상태에 있고, B가 준비가 되면 A가 CPU에 적재된다.

이렇게 실행 준비 상태를 번갈아실행되는 컨텍스트 스위칭이 발생한다.

멀티 스레딩(Multithreading)

공유 자원이 있기 때문에 캐시 적중률이 올라간다.