여러 개의 프로세서가 서로 협력적으로 일을 처리하는 것을 말한다. 즉, 하나의 컴퓨터에 여러 개의 CPU를 장착하고 하나 이상의 프로세스들을 동시에 처리하는 것을 의미한다.
더 넓은 범위로 해석하면, 하나 또는 그 이상의 프로세스를 여러 장치에서 병렬로 처리하는 것을 말한다.
많은 양의 작업을 빠른 시간에 처리하기 위해 단일 프로세서보다 멀티 프로세서로 처리하는 것이 빠르기 때문이다. 여러 개의 프로세서가 작업을 병렬처리 하는 것이라 정의할 수 있다.
멀티 프로세싱의 장점
비용 절약 가능 : 멀티 프로세싱 < 여러 개의 단일 프로세싱
프로세서가 주변장치, 대용량 저장 장치, 정원 공급 장치를 서로 공유하고 있기 때문이다
신뢰성 높다 : 여러 개의 프로세서에 분산한다면, 한 프로세서가 고장나더라도 시스템이 정지하는 것이 아니라 속도만 느려지게 된다.
멀티태스킹이란 하나의 프로세서 상에서 운영체제의 스케줄링 방식에 따라 조금씩 번갈아가면서 수행되는 것이다.
빠른 속도로 조금씩 번갈아 가면서 처리하다보면 유저가 느끼기엔 마치 동시에 처리되는 것처럼 보이기 때문에 붙은 이름이다.
컴퓨터로 워드를 작성하면서 그림판으로 그림을 그릴 수 있는 것도 멀티 태스킹이다.
종류
-- 프로세스가 CPU를 차지해 사용해도 운영체제가 타이머나 트리거로 개입해 강제로 CPU를 빼앗아 올 수 있다.
-- 운영체제가 응답 없는 프로세스를 강제로 죽일 수 있다.
-- 시간을 정해놓고 시간마다 선점이 일어나는데, 이 시간 단위를 퀀텀 혹은 슬라이스라고 한다.
-- 퀀텀이 너무 낮으면 프로세스를 바꾸는데 소모되는 리소스가 커지고, 퀀텀이 너무 높으면 반응 속도가 느려진다.
-- CPU를 빼앗는 것이 아니다
-- 운영체제가 응답 없는 프로세스를 강제로 죽일 수 없고 리셋해야 한다.
-- 프로그램은 실행되면 프로세스가 되고, 프로세스는 여러 스레드를 실행시키는데, 여러 프로그램에서 만들어지는 스레드는 CPU라는 한정된 자원을 서로 사용하고자 경쟁한다.
-- 따라서, 운영체제는 CPU의 시간을 나누어 여러 스레들에게 돌아가면서 실행하도록 하고, 이 때 CPU를 차지하고 있는 스레드가CPU 연산이 필요 없음
을 나타냈을 때에만 운영체제가 이를 회수할 수 있다.
1) 멀티 프로그래밍 방식 (Multi-Programming)
2) 시분할 방식 (Time-Sharing)
멀티 프로그래밍을 논리적으로 확장한 개념으로 프로세서를 통해 다중 작업을 교대로 수행한다.
특정 작업 시간(Time Slice, Quantum)동안 CPU를 사용한 후에 다시 대기하고 대기큐에 있는 작업을 꺼내와서 다시 CPU를 사용하는 것을 반복, Round Robin 방식으로도 불린다.
사용자와 시스템 간의 온라인 통신을 제공하여 사용자가 운영체제나 프로그램에 직접 명령을 주고 즉시 응답을 받을 수 있게 한다.
특징
3) 실시간 시스템 방식 (Real-Time)
처리 요청이 오면 약속한 시간 내에서 즉시 처리하는 방식이다.
한정된 시간 제약 조건 상에서 작업을 처리해야 하는 시스템이다. 시간제한성이 중요
자동 항법 장치, 교환국 처럼 실시간으로 처리해야 하는 시스템에 사용된다.
장점
처리 시간이 짧고 처리 비용이 낮다!
그 외, 일괄처리(1세대), 멀티 프로세싱(2세대, 여러 개의 CPU와 하나의 주기억장치를 이용하여 동시에 여러 개의 작업을 처리하는 방식), 멀티 모드(3세대, 여러 가지 방식을 혼합), 분산 처리(4세대, 여러 개의 컴퓨터를 통신 회선으로 연결하여 작업을 처리)가 있다.