메이쁘

[OS] MultiProgramming, MultiProcessing, MultiThreading, MultiTasking 간단 정의 및 차이점! 본문

면접 대비 CS지식/else

[OS] MultiProgramming, MultiProcessing, MultiThreading, MultiTasking 간단 정의 및 차이점!

메이쁘 2020. 7. 9. 23:39

안녕하세요.

 

이 카테고리는 "직무면접 중 CS 지식 대비" 이고, 

 

이 게시글은 "면접 대비 간단한 정리" 입니다.

 

 

상세한 정보 또는 딥한 원리를 알고 싶으신 분은 별도의 구글 검색 또는 나무위키를 참고해주시면 감사하겠습니다.

 

 

 

바로 멀티프로그래밍, 멀티프로세싱, 멀티쓰레딩, 멀티태스팅 에 대해 포스팅 진행하겠습니다.

 

 

MultiProgramming


  -  한 개의 CPU(프로세서) 를 가지고 작업하던 중, 어느 프로세스가 I/O(입출력) 처리를 하게 되었을 때 그 입출력 결과(키보드, 마우스, 모니터 등)를 무한히 기다리는 대신 다음 프로세스 작업을 진행하는 것.

 *** 단, 다음 프로세스 작업은 I/O 가 아닌 경우 끝까지 처리한다.

 

  -  프로세서의 작업 처리 속도와 I/O 처리 속도간 차이가 커서 프로세서가 작업을 전부 처리했음에도 불구하고 I/O 처리가 완료될 때 까지 대기했다. 그래서 프로세서의 자원을 낭비하는 일이 잦았다.

 

  -  이를 해결하고자, 다 처리하고 대기하는 시간을 다음 프로세스 일을 처리하도록 하는 것 이다.

 

 

 

 

 

 

 

MultiProcessing


  -  여러 개의 CPU(프로세서) 가 작업 효율을 위해 여러 프로세스를 동시에 처리하는 것.

 

 

멀티프로세싱(출처 : https://doorbw.tistory.com/26)

 

 

 

 

MultiThreading


  -  하나의 프로세스 내에 존재하는 여러 쓰레드(Thread) 가 동시에 실행되는 것.

 

오른쪽이 멀티 스레딩(출처 : https://xeros.dev/63)

 

 

 

 

 

 

MultiTasking


  -  하나의 CPU(프로세서) 가 스케쥴러 알고리즘 등 에 의해 프로세스들을 번갈아가며 처리하는 것.

  

  -  동시에 여러 프로세스(작업) 를 처리하는 개념이 아니라, 하나의 프로세서가 일정 시간 간격으로 프로세스 하나씩 번갈아가면서 처리하는 것이다.

 

 

 

 

 

감사합니다.

 

Comments