시분할 시스템(Time Sharing System)이란?

JS·2022년 12월 18일
0

Tech Explanation

목록 보기
2/14
post-thumbnail

시분할 시스템이란?

시분할 시스템(Time Sharing System)은 윈도우의 운영체제가 제공하는 주요기능 중 하나이다

CPU의 정보 처리속도는 프로세스가 자원을 이용하는 속도보다 빠르다. Hz단위가 다르며 우리에게는 찰나일지라도 CPU에게는 아주 억겁이 시간이 지나가는 것이다. 때문에, CPU가 더 효율적으로 사용될 수 있도록 여러작업을 번갈아가며 실행하는 방식을 도입하게 된다

여러가지 작업 중 우선순위를 정해 작업을 결정하는 과정을 CPU 스케줄링이라 하고 그 중 CPU의 작업과 입출력 작업을 병행하는 방식을 다중 프로그래밍이라고 한다. 여기서 현재 메모리에 적재되어있는 프로세스의 수를 다중프로그래밍 정도라고 하는데, 자주 사용할 법한 프로세스를 메모리에 올려놓는다 생각하면 된다

마지막으로 시분할 시스템이란 여러명의 프로세스가 사용하는 시스템에서 컴퓨터가 자원을 시간적으로 분할해주어 사용자들의 프로그램을 번갈아가며 처리해줌으로써 각 프로세스에게 독립된 컴퓨터를 사용하는 느낌을 주는 것이다

특징

  • 여러 사용자가 각자의 단말장치를 통하여 동시에 운영체제와 대화하면서 각자의 프로그램을 실행한다
  • 하나의 CPU는 같은 시점에서 여러 개의 작업을 동시에 실행할 수 없기 때문에 CPU의 전체 사용시간을 작은 작업 시간량으로 쪼개어 그 시간량 동안만 번갈아가며 CPU사용이 할당되 각 작업을 처리한다
  • 다중 프로그래밍 방식과 결합하여 모든 작업이 동시에 진행되는 것처럼 대화식 처리가 가능하다
  • 시스템의 전체 효율은 좋아지나 개인별 사용자 입장에서는 반응 속도가 느려질 수 있다
  • 각 작업에 대한 응답 시간을 최소한으로 줄이는 것을 목표로 하며, 하드웨어를 보다 능률적으로 사용할 수 있다

스케줄링(Scheduling)

스케줄링은 다중 프로그래밍을 가능하게 하는 운영 체제의 동작 기법이다. 이 기법은 스케줄러(Scheduler)라는 소프트웨어가 담당한다

프로세스 스케줄러는 특정 시점에 실행되는 프로세스를 결정하는 운영 체제의 일부로서 실행 중인 프로세스를 일시 중지하고 실행 중인 대기열의 뒤로 이동하고 새 프로세스를 시작하는 기능이 있다

얼마나 자주 결정을 내려주어야 하는지에 따라 Long-term Sechduling, Medium-Scheduling, Short-term Scheduling등으로 구분한다

Wikipedia - Scheduler

CPU의 할당을 받을 프로세스의 상태

시분할 시스템은 시간을 나누어 각 프로세스에게 자원을 할당해준다. 그렇다면 할당받는 주체인 프로세스는 어떠한 상태로 대기하는걸까? 그것은 5단계로서 나눌 수 있다

  • 생성(Create) : 프로세스가 생성되는 중이다
  • 실행(Running) : 프로세스가 프로세서를 차지하여 명령어들이 실행되고 있다
  • 준비(Ready) : 프로세스가 프로세서를 사용하고 있지는 않지만 언제든지 사용할 수 있는 상태. CPU가 할당되기를 기다리고 있다
  • 대기(Waiting) : 프로세스가 입출력 완료, 시그널 수신 등 어떤 사건을 기다리고 있는 상태
  • 종료(Terminated) : 프로세스의 실행이 종료되었다

CPU에서는 하나의 프로세스만 실행되고 있으며 뒤에는 수많은 준비완료와 대기 상태의 프로세스가 존재한다

스케줄링 큐

우리는 위쪽에서 프로세스의 상태에 대하여 체크했는데, 이 개념을 체크한 이유는 아래에서 이용하기 위함이다

운영체제에서는 여러가지 종류의 큐(queue)가 있다. 그 중 스케줄링에 사용되는 두 시퀸스가 존재한다

하나는 준비큐(Ready Queue)로서 프로세스가 시스템으로 들어가서 준비 상태가 되며 CPU코에엇 실행되기를 기다리는 프로세스가 쌓여있는 큐이다

그리고 모든 프로세스는 실행되면 종료라는 결과가 기다리고 있는데, 이 종료가 되는 이유 중 인터럽트나 I/O 요청이 필요한 경우도 있다. 이런 특정한 이벤트가 발생하기를 기다려야 하는 경우가 있는데 이런 이벤트를 기다리는 프로세서들은 대기큐(Wait Queue)로 가게된다

결론적으로 프로세스는 대기와 준비 상태 사이의 전환을 반복하며 프로세스가 종료가 될 때까지 이를 반복한다. 종료 시점에는 모든 큐에서 제거되고 PCB 및 자원도 반환된다


Reference

profile
게임 프로그래머 지망생

0개의 댓글