Operating System Overview
What is This Course About?
Uni-programming, Multi-programming
Timesharing
Components of OS
OS Architecture : Monolithic Kernel, Microkernel
Timesharing
타임셰어링의 개념은 멀티프로그래밍에서 조금 더 나아갑니다. 여러 개의 프로그램을 실행할 때, 프로그램들에 적용되는 time slice가 존재합니다. 100msec로 우리 입장에선 아주 짧습니다. 그럼 멀티프로그래밍과의 차이는 무엇일까요?
a인 멀티프로그래밍은 각 고객들을 상대하는 시간이 다릅니다. 10분, 5분, 1분 등으로 말이죠. 그러나 b인 타임셰어링은 모두에게 똑같이 1분씩 적용됩니다. 우리는 타임셰어링이 좀 더 우수한 방법이라고 여기는데, 이는 뒤에서 추가적으로 언급하겠습니다.
개념적 차이를 살펴보겠습니다. 멀티프로그래밍은 cpu를 쥐어주면, 쓰고 싶은 만큼 쓰게 해 주고, 더 못쓰게 되면 그때 가져옵니다. 타임슬라이스와는 다른 마감시간이 있고, 마감시간 안에 다 할 수 있다면 시간을 더 끌기도 하는 면에서 타임셰어링과 차이가 있습니다.
그래서 멀티프로그래밍은 batch programming(일거리를 묶는다, 하나씩 처리한다는 의미), 백그라운드 프로그래밍(뒤에 쌓아놓고 진행한다)은 의미가 있으며, 타임셰어링보다 오버헤드(간접적인 처리 시간 및 메모리 등이 추가적으로 사용되는 현상)가 적습니다. 또, Throughput이 우수한데요, 단위 시간 안에 완료한 작업의 수를 의미합니다.
반대로 타임셰어링은 interactive processing(대화형), foreground 프로세싱이라고 합니다. cpu(직원)이 고객과 대화하면서 처리하기 때문이죠. 사용자가 명령을 지시한 이후 명령 실행이 시작되기까지의 시간인 response time이 우수합니다.
ㅁSymentic multiprocessing (SMP)
시멘틱은 대칭이라는 의미입니다. 그림에서 보듯 프로세서들이 모두 같은 모양입니다. 잠깐 짚고 넘어갈 것이 프로세서는 프로그램을 실행시키는 하드웨어, 칩이고, 프로세스는 살아있는 소프트 웨어입니다. 여기서 멀티'프로세싱'은 프로세서가, 즉 cpu가 몇 개인지가 중요한 것이고, 멀티프로그래밍은 여러 프로그래밍이 번갈아 실행되는 것입니다.
위가 멀티프로그래밍, 아래가 멀티 프로세싱입니다. 멀티프로그래밍은 여러 개의 프로세스들이 실행되지만, cpu1가 하나이기에 한 단위시간에 실행되는 프로그램은 하나입니다. 멀티 프로세싱은 cpu가 여러 개로 같이 실행이 됩니다. 오버래핑이라고도 하고, 병렬 프로그래밍이라고도 합니다.
'CSE > 운영체제(OS)' 카테고리의 다른 글
2.Process Description and Control-Definition of a Process, Process States Model (0) | 2023.04.17 |
---|---|
Operating System Overview-Uni-programming, Multi-programming (1) | 2023.04.16 |
댓글