멀티태스킹(Multi-tasking)
Task라는 개념은 프로세스의 개념에서 조금 더 확장된 개념이라 생각할 수 있다.
작업 단위의 실행 단위이다.
현대에는 매우 모호한 개념이라고 한다.
Task가 하나의 프로세서 상에서 운영체제의 스케쥴링 방식에 따라 조금씩 번갈아가면서 수행되는 것이
멀티태스킹의 개념이다.
빠른 속도로 조금씩 번갈아가면서 Task를 처리하다보면 유저가 느끼기에는 마치 동시에 처리되는 것처럼 느껴지게 된다.
멀티태스킹의 스케쥴링 방식에는 세 가지가 있다.
멀티프로그래밍 방식(Multi-programming)
시분할 방식(Time-sharing)
실시간 시스템 방식(Real-time)
멀티태스킹은 두 가지 유형이 있다.
비선점형 멀티태스킹(non-preemption multi-tasking)
선점형 멀티태스킹(preemption multi-tasking)
멀티태스킹의 유형
비선점형 멀티태스킹(non-preemption multi-tasking)
프로그램은 실행되면 프로세스가 되고 프로세스는 스레드를 실행시켜서 동작한다.
여러 프로그램에서 만들어지는 스레드는 CPU라는 한정된 자원을 서로 사용하고자 하는
경쟁중인 관계에 있다.
그러므로 운영체제는 CPU의 시간을 나누어 여러 스레드들에게 돌아가며 실행하도록 한다.
이 때 CPU를 차지하고 있는 스레드가 자신이 이제 CPU 연산이 필요 없음을 나타냈을 때에만 운영체제가 이를 회수할 수 있는 유형이다.
선점형 멀티태스킹(preemption multi-tasking)
프로세스가 CPU를 차지해서 사용하더라도 운영체제가 타이머같은 여타 트리거를 통해 개입하여
강제로 CPU 사용을 빼앗아 올 수 있는 유형을 선점형 멀티태스킹(preemptive multi-tasking)이라 한다.
쉽게 말해 운영체제가 응답없는 프로세스를 강제로 죽일 수 있으면 선점형 그게 안되면 비선점형이다.
선점형 멀티태스킹은 스케쥴러에 따라 차이가 있긴 하지만, 원론적으로는 시간을 따로 정해 놓고 이 시간마다 선점(preemption)이 일어나는데,
이 때의 시간 단위를 퀀텀 혹은 슬라이스라고 한다.
퀀텀이 너무 낮으면 소모되는 자원이 커지고, 퀀텀이 너무 높으면 반응 속도가 느려진다.
현재의 OS는 대부분 선점형 멀티태스킹 방식이라고 한다.
멀티태스킹의 스케쥴링 방식
멀티프로그래밍(Multi-programming)
멀티프로그래밍은 단일 프로세서 상에서 여러 개의 프로그램이 동시에 실행되는 것을 말한다.
프로세서는 한번에 한 작업만 수행할 수 있기 때문에 동시라는 말은 엄밀히따지면 틀린 표현이다.
OS 통제 하에 한 프로그램이 일부 수행되고 나서, 또 다른 프로그램이 일부 수행되는 식으로 진행되는데
이 텀이 작기 때문에 동시에 실행하는 것처럼 보인다.
운영체제가 멀티프로그래밍을 지원하는 이유는 운영체제의 목적인 Reduce Idling time에 부합하기 때문이다.
프로세서 하나가 프로그램 1개를 완전히 끝내고 다른 프로그램을 수행하도록 지원을 한다면
CPU가 놀고 있는 시간이 많아질 수 있다.
멀티프로그래밍과 멀티태스킹은 일견 비슷해보인다.
멀티프로그래밍은 멀티태스킹을 구현하는 스케쥴링의 한 방식일 뿐이라 한다.
시분할(Time-sharing)
하나의 컴퓨터 시스템을 복수의 사용자가 동시에 대화식으로 사용하는 이용 형태. 중앙 처리 장치(CPU)의 처리 시간을 아주 짧게 세분화하여 각 사용자의 프로그램에 할당하여 차례차례로 복수의 처리를 실행한다. 각 사용자는 마치 컴퓨터를 독점하고 있는 것처럼 사용한다. 이 점에서 시분할 시스템(TSS)은 다중 작업 처리와 유사하다. 그러나 TSS는 일반적으로 복수의 사용자가 대형 컴퓨터와 접속하여 사용하는 이용 형태이고, 다중 작업은 단일 사용자가 마이크로컴퓨터를 사용하여 복수의 작업을 동시에 처리하는 이용 형태를 의미한다.
TTA정보통신용어사전
한국정보통신기술협회(TTA)는 정보통신 기술 발전과 타 분야와의 기술 융합에 따라 무수히 생성되는 정보통신용어를 해설하고 표준화하여, 전문가뿐만 아니라 비전문가들도 올바르게 활용할 수
terms.tta.or.kr
실시간 처리
데이터의 발생과 동시에 즉시 처리하는 방식. 보통 실시간 처리는 지역적으로 거리가 있는 장소에서 발생하는 데이터를 통신 회선으로 받아서 처리하여 반송해 주는 온라인 실시간 시스템을 의미한다.
실시간 시스템(Real-time system)
시스템 내/외부에서 이벤트가 발생했을 때, 이벤트 처리를 시작할 때 까지의 지연 시간과 결과가 출력될 때까지의 처리 시간이 실시간 동작을 목표로 미리 제시된 시간을 넘지 않는 시스템. 즉, 이벤트 발생과 처리가 실시간으로 이루어지는 시스템으로 CPU 속도나 시스템 갯수를 늘려 단순히 처리속도를 증가시키는 것보다는 이벤트 처리 시간을 보장할 수 있게끔 구조와 동작 순서 등을 특별히 설계한 시스템이다. 은행 업무 시스템이나 좌석 예약 시스템 등은 그 즉시성으로 보아 실시간 시스템의 대표적인 것이다.
실시간 동작
컴퓨터가 외부의 사상(事象)과 관련지어지면서, 또한 정해진 시간 요건을 만족하면서 데이터 처리를 하는 경우.
실시간 시스템은 기존의 컴퓨터 시스템과 달리 시스템 동작의 정확성이 논리적 정확성뿐만 아니라
시간적 정확성에도 좌우되는 시스템을 말한다.
이러한 실시간 시스템의 전형적인 예로서 제어시스템을 들 수 있다.
제어 시스템(제어 입력에 따라 정해진 또는 적응적 방법으로 출력을 제어할 수 있는 시스템)은 센서(sensor)로부터 입력을 받아들여 이를 정해진 시간 내에 처리하여 작동장치(actuator)로 출력하며 극히 작은 시간적 오차를 허용한다.
실시간 시스템의 응용 분야로는 핵발전소의 제어; 공정 제어, 병원의 감시 장치, 항공기 제어,
무기 체계, 우주선의 운항 및 유도 등의 분야를 들 수 있다. 실시간 시스템에 존재하는 시간 제약 조건은
종료시간(deadline)으로 주어진다.
참고자료:
신현식, 김태웅, "실시간 시스템의 개관", 정보처리 제 5권 제4호(1998.7), p-2
이 논문은 나중에 시간 날 때 읽어보고 포스팅 해봐야겠다.. 알아듣기도 쉽고 포스팅하기 좋은 내용일 것 같다.
멀티프로세싱에 관해서
멀티프로세싱(Multi-processing)
여러 개의 프로세서가 서로 협력하며 처리하는 것을 의미한다.
여러 개의 프로세서가 작업을 병렬처리 하는 것이다.
멀티 프로세싱을 이용할 경우 안정적이다. 한 프로세서가 고장나더라도 시스템이 정지되지
않고 속도만 느려지게 된다.
'폐기 > 컴퓨터 개론' 카테고리의 다른 글
[컴퓨터 시스템 개론] 암달의 법칙(Amdahl's law) (0) | 2022.11.09 |
---|---|
운영체제-Deadlock(교착 상태) (0) | 2022.11.08 |
컴퓨터개론-1 (2) | 2022.11.07 |