상세 컨텐츠

본문 제목

Lock 구현 이론

똑똑한 개발/C++ 게임개발

by 성댕쓰 2021. 8. 3. 23:09

본문

mutex를 이용하여 lock을 사용하지 않고 우리가 구현한 lock을 사용해보는 이유:

  - lock은 굉장히 중요함.

  - 면접에서 많이 물어봄.

 

lock 소유권을 이미 잃었을 때 lock을 잡을 때까지 행동 패턴

  - 무조건 기다림. (spin lock)

  - 일단 자리로, 나중에 다시.(sleep)

  - 직원한테 부탁. 자리로 돌아갔다가 직원이 말해주면 옴.(event)

 

무조건 기다릴 때 장점

  - 자리로 이동하는 비용이 들지 않음.(컨텍스트 스위칭 비용이 적다)

 

컨텍스트 스위칭

  - 유저레벨에서 커널레벨 또는 그 반대로 이동하는 경우를 말함.

  - 비용이 많이 든다.

컨텍스트 스위칭1

 

컨텍스트 스위칭은 레지스터 정보를 ram에 갖다놓고 ram에 있는 정보를 레지스터에 갖고온다.

컨텍스트 스위칭2

 

참조 : [C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버 - 인프런 | 강의 (inflearn.com)

'똑똑한 개발 > C++ 게임개발' 카테고리의 다른 글

Sleep  (0) 2021.08.06
SpinLock  (0) 2021.08.05
Dead Lock  (0) 2021.08.03
Lock 기초  (0) 2021.08.02
Atomic  (0) 2021.08.02

관련글 더보기

댓글 영역