티스토리 뷰

최근 간단한 게임을 만들었다.

 

언리얼 클라이언트에서 Event Dispatcher를 사용하였고, 서버에서는 Dispatcher Class를 만들어서 프로그램을 만들었는데, 문득 Dispatcher라는 말을 제대로 이해하고 있는건지 의문이 들었다.

 

여태 만들고 있던 Dispatcher는 아래 그림처럼

여러 일을 Dispatcher에 등록해 두면, worker에 일을 할당해서 처리하는 방식이었다.

 

https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessageDispatcher.html

 

그런데 Dispatcher라는 개념과 OS의 Scheduler 개념이 헷갈려서, 공부한 내용을 간단하게 정리한다.

 

OS의 Scheduler란 컴퓨터의 자원을 활용해서 일을 할당하는 개념으로, 크게 세가지로 나뉜다.

 

Long-term scheduler : 메모리와 디스크 사이의 스케줄링

Medium-term scheduler : Swapping (메모리가 모자랄 시, 디스크에 잠시 적재)

Short-term scheduler : CPU와 메모리 사이의 스케줄링

 

우리가 주목할 것은 Short-term scheduler이다.

 

메모리에 있는 프로세스를 CPU로 보내는 것이 Short-term scheduler인데, 필요한 부분만 그림으로 그려보았다.

 

 

그림이 위의 Dispatcher와 유사하다는 생각을 했었다. 그래서 조금 더 공부를 해보았다. 해야할 일을 정하는 것 까지가 Scheduler의 일, 실제로 cpu를 Process에 할당하는 것이 Dispathcer의 일이라고 한다.

 

 

그래서 넓은 의미의 Scheduling은 Scheduler와 Dispatcher 기능을 동시에 말한다.

댓글