멀티 프로세싱과 멀티 태스킹

woga·2020년 11월 18일
0

운영체제

목록 보기
9/10

멀티 프로세싱이란?

여러 개의 프로세서가 서로 협력적으로 일을 처리하는 것을 말한다. 즉, 하나의 컴퓨터에 여러 개의 CPU를 장착하고 하나 이상의 프로세스들을 동시에 처리하는 것을 의미한다.

더 넓은 범위로 해석하면, 하나 또는 그 이상의 프로세스를 여러 장치에서 병렬로 처리하는 것을 말한다.

많은 양의 작업을 빠른 시간에 처리하기 위해 단일 프로세서보다 멀티 프로세서로 처리하는 것이 빠르기 때문이다. 여러 개의 프로세서가 작업을 병렬처리 하는 것이라 정의할 수 있다.

멀티 프로세싱의 장점

비용 절약 가능 : 멀티 프로세싱 < 여러 개의 단일 프로세싱

프로세서가 주변장치, 대용량 저장 장치, 정원 공급 장치를 서로 공유하고 있기 때문이다

신뢰성 높다 : 여러 개의 프로세서에 분산한다면, 한 프로세서가 고장나더라도 시스템이 정지하는 것이 아니라 속도만 느려지게 된다.



멀티 태스킹이란?

  • Task : OS에서 처리하는 작업 단위

멀티태스킹이란 하나의 프로세서 상에서 운영체제의 스케줄링 방식에 따라 조금씩 번갈아가면서 수행되는 것이다.

빠른 속도로 조금씩 번갈아 가면서 처리하다보면 유저가 느끼기엔 마치 동시에 처리되는 것처럼 보이기 때문에 붙은 이름이다.

컴퓨터로 워드를 작성하면서 그림판으로 그림을 그릴 수 있는 것도 멀티 태스킹이다.


멀티태스킹의 스케줄링 방식

종류

  • 선점형 멀티태스킹

-- 프로세스가 CPU를 차지해 사용해도 운영체제가 타이머나 트리거로 개입해 강제로 CPU를 빼앗아 올 수 있다.
-- 운영체제가 응답 없는 프로세스를 강제로 죽일 수 있다.
-- 시간을 정해놓고 시간마다 선점이 일어나는데, 이 시간 단위를 퀀텀 혹은 슬라이스라고 한다.
-- 퀀텀이 너무 낮으면 프로세스를 바꾸는데 소모되는 리소스가 커지고, 퀀텀이 너무 높으면 반응 속도가 느려진다.

  • 비선점형 멀티태스킹

-- CPU를 빼앗는 것이 아니다
-- 운영체제가 응답 없는 프로세스를 강제로 죽일 수 없고 리셋해야 한다.
-- 프로그램은 실행되면 프로세스가 되고, 프로세스는 여러 스레드를 실행시키는데, 여러 프로그램에서 만들어지는 스레드는 CPU라는 한정된 자원을 서로 사용하고자 경쟁한다.
-- 따라서, 운영체제는 CPU의 시간을 나누어 여러 스레들에게 돌아가면서 실행하도록 하고, 이 때 CPU를 차지하고 있는 스레드가 CPU 연산이 필요 없음을 나타냈을 때에만 운영체제가 이를 회수할 수 있다.


1) 멀티 프로그래밍 방식 (Multi-Programming)

  • 단일 프로세서 상에서 여러 개의 프로그램이 동시에 실행되는 것
  • OS 통제 하에 여러 프로그램이 조금씩 수행하는 것을 빨리하여 동시에 일어나는 것처럼 보임

2) 시분할 방식 (Time-Sharing)

멀티 프로그래밍을 논리적으로 확장한 개념으로 프로세서를 통해 다중 작업을 교대로 수행한다.

특정 작업 시간(Time Slice, Quantum)동안 CPU를 사용한 후에 다시 대기하고 대기큐에 있는 작업을 꺼내와서 다시 CPU를 사용하는 것을 반복, Round Robin 방식으로도 불린다.

사용자와 시스템 간의 온라인 통신을 제공하여 사용자가 운영체제나 프로그램에 직접 명령을 주고 즉시 응답을 받을 수 있게 한다.

특징

  • 프로세스 스케줄링과 다중 프로그래밍을 사용해 각 사용자에게 컴퓨터의 CPU를 시간적으로 분할하여 나눠준다.
  • 멀티 프로그래밍 환경에서 하나의 CPU를 나누어 쓰는 방식이다.
  • 사용자와 시스템 간의 온라인으로 처리 상황을 알 수 있다.
  • 사용자가 운영체제에 직접 명령을 주고 즉시 응답을 받는다.
  • 사용자 혼자 컴퓨터를 사용하는 것과 같은 효과를 준다.

3) 실시간 시스템 방식 (Real-Time)

처리 요청이 오면 약속한 시간 내에서 즉시 처리하는 방식이다.
한정된 시간 제약 조건 상에서 작업을 처리해야 하는 시스템이다. 시간제한성이 중요

자동 항법 장치, 교환국 처럼 실시간으로 처리해야 하는 시스템에 사용된다.

장점
처리 시간이 짧고 처리 비용이 낮다!

그 외, 일괄처리(1세대), 멀티 프로세싱(2세대, 여러 개의 CPU와 하나의 주기억장치를 이용하여 동시에 여러 개의 작업을 처리하는 방식), 멀티 모드(3세대, 여러 가지 방식을 혼합), 분산 처리(4세대, 여러 개의 컴퓨터를 통신 회선으로 연결하여 작업을 처리)가 있다.

profile
와니와니와니와니 당근당근

0개의 댓글