Gidhub BE Developer

Multi로 시작하는 OS 단어 정리

2018-10-27
goodGid
OS

멀티 프로세싱(Multi-processing)

  • 멀티 프로세싱은 한마디로 말해서 두개 이상, 다수의 프로세서가 협력적으로 작업을 동시에 처리하는 것이다.

  • 주의할 점은 프로세스가 아닌 프로세서 이다.

  • 프로세서는 대략적으로 CPU라고 생각하면 된다.

  • 각각의 프로세서가 하나의 작업만을 처리하는 것이 아니라 다수의 작업을 처리한다.

  • 하나의 작업은 하나의 프로세서에 의해 처리되는 것이 아니라 다수의 프로세서에 의해 처리된다.

  • 멀티 프로세싱을 하는 장점은 다음과 같다.

  • 여러개의 프로세스가 처리되어야 할 때 동일한 데이터를 사용한다면
    이러한 데이터를 하나의 디스크에 두고
    모든 프로세서가 이를 공유하도록 한다면 비용적으로 저렴해진다.

  • 또한 만약 하나의 프로세서가 하나의 작업만을 처리한다면
    특정 프로세서가 고장이 났을 때 해당 작업은 정지된다.

  • 하지만 멀티 프로세싱을 사용한다면 작업은 정지되지 않는다.

  • 단지 속도가 느려지는 정도의 손해만 발생한다.


멀티 프로그래밍(Multi-programming)

  • 멀티 프로그래밍이란 특정 프로세스 A에 대해서 프로세서가 작업을 처리할때
    낭비되는 시간동안 다른 프로세스를 처리하도록 하는 것이다.

  • SMT가 멀티 프로그래밍을 활용한 예이다.

  • 멀티 태스킹과 혼동될 수 있으니 주의하도 하자.


멀티 태스킹(Multi-tasking)

  • 멀티 태스킹이란 다수의 Task를 운영체제의 스케줄링에 의해 번갈아 가면서 수행하는 것이다.

  • 운영체제 스케줄링 방식에 대표적으로 시분할 시스템이 있다.

  • 여기서 Task는 프로세스보다 보다 확장된 개념이라고 생각하면 된다.

  • 프로세서가 각각의 Task를 조금씩 자주 번갈아가면서 처리하기 때문에
    사용자는 마치 동시에 여러 Task가 수행되는 것처럼 보이게 된다.


멀티 태스킹 vs 멀티 프로그래밍

  • 멀티 프로그래밍 은 프로세서의 자원낭비되는 것을 최소화하기 위한 것이다.

  • 반면 멀티 태스킹은 일정하게 정해진 시간동안 번갈아가면서 각각의 Task를 처리하는 것이다.


멀티 쓰레딩(Multi-threading)

  • 하나의 프로세스내에 여러개의 스레드가 존재하게 된다.

  • 또한 다수의 스레드는 하나의 데이터 자원을 공유한다.

  • 그렇기 때문에 메모리에 대한 효율성을 높힐 수 있다.


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

  • 멀티 쓰레딩하나의 프로그램 안에서 병렬 처리의 이점을 보는 것이다.

  • 반면 멀티 프로세싱여러 개의 프로그램들을 병렬로 처리할 수 있는 것이다.

  • 멀티 쓰레딩의 장점으로는 자원을 공유하여 메모리에 대한 효율성을 가져올 수 있다는 점이 있다.
    이로 인해 경제성 또한 증가하는 것 등이 있다.


참고


Comments

Content