강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

공부해보자님의 프로필 이미지
공부해보자

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

Context Switching

멀티테스킹과 멀티쓰레드 관계에 관하여 질문있습니다

해결된 질문

작성

·

233

0

멀티테스킹은 메모장, 그림판, 게임서버 프로그램을 실행할 때

cpu가 단일 코어라는 가정하에 

시분할을 통해 메모장, 그림판 ,게임서버를 번갈아가며 실행시킨다고 이해하였습니다.

(메모장 1초 / 그림판 1초 / 게임서버 1초)

 

질문1)

여기서 게임서버가 멀티쓰레드(2개) 환경이라고 가정한다면

"멀티테스킹"의 시분할을 통해 부여받은 시간(1초)을 또 시분할 하여 "멀티쓰레드"끼리 번갈아가며 실행시키는 것인가요?

(쓰레드가 2개라면 0.5초 / 0.5초)

(즉, 메모장 1초/그림판1초/게임서버쓰레드a 0.5초/게임서버쓰레드b 0.5초)

 

질문2)

아니면 "멀티테스킹"이 프로세스기준이 아닌  쓰레드마다 시분할적으로 동작하나요?

(메모장1초/그림판1초/게임서버쓰레드a1초/게임서버쓰레드b1초)

읽어주셔서 감사합니다!

퀴즈

멀티쓰레딩 개론에서 프로그램(프로세스)에 비유된 것은 무엇일까요?

CPU 코어

쓰레드

운영체제

레스토랑

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

그건 전적으로 운영체제가 정하는 것이라 OS 환경에 따라 다릅니다.
게다가 대부분의 운영체제에서 프로세스 우선순위도 지정할 수도 있기 때문에
시간 배분이 더욱 복잡해져서, 딱히 어떻게 시간이 분배된다고 확답드릴 수는 없습니다.
일반적으로 말하자면, 2개의 쓰레드가 실행중이라면 2개의 프로그램을 띄운 것처럼
양쪽이 주기적으로 실행되어야 합니다.

공부해보자님의 프로필 이미지
공부해보자

작성한 질문수

질문하기