목록전체 글 (104)
눈팅하는 게임개발자 블로그
DeadLock 발생 조건 4가지 (Coffman Condition) - Mutual Exclusion(상호 배제) 모든 자원은 한 번에 하나의 스레드에게만 점유된다. 한 스레드가 해당 자원에 대한 소유권을 가졌다면 다른 스레드는 해당 자원에 접근할 수 없음. - Hold & Wait(소유 & 대기) 스레드가 한 자원의 소유권을 가진 상태에서 다른 자원의 소유권을 요청한 상태로 대기한다. - No Preemption(비선점) 스레드가 가진 자원에 대한 소유권을 강제로 뺏어올 수 없다. - Circular Wait(환형 대기) 한 그룹의 스레드들에 대해(자원 할당 그래프에서) 각 스레드들이 다른 스레드가 소유한 자원을 요청하는 원형의 고리가 형성된다. 위의 4가지 조건을 모두 만족하는 시스템에서는 교착상태..
www.gilbut.co.kr/book/view?bookcode=BN002400 게임 서버 프로그래밍 교과서 알고리즘부터 아키텍처까지 www.gilbut.co.kr 해당 책의 내용 중 일부를 정리. 소켓 버퍼는 송신 버퍼와 수신 버퍼를 하나씩 가지고 있다. 먼저 송신 버퍼는 일련의 바이트 배열과도 같다. 크기는 고정되어 있으나 마음대로 크기를 변경할 수도 있다. 송신 버퍼(Send Buffer) 송신 버퍼는 큐와 마찬가지로 FIFO(First in First Out, 선입선출)형태로 작동하는데, send함수에 data를 인자로 실행하면 data는 일단 송신 버퍼에 채워진다. 이후 송신 버퍼에 채워진 data는 잠시 후 통신 선로를 통해 점차적으로 빠져나간다. 따라서 송신 버퍼는 뭔가가 채워지더라도 곧 빈..
www.gilbut.co.kr/book/view?bookcode=BN002400 게임 서버 프로그래밍 교과서 알고리즘부터 아키텍처까지 www.gilbut.co.kr 해당 책의 내용 중 일부를 정리. OSI 모델의 계층 1~3에서는 패킷 유실이 발생할 수 있다. UDP의 경우 UDP에서는 패킷 유실이 발생하면 데이터그램 자체가 유실된다. 게다가 UDP 데이터그램의 크기가 클수록 유실될 확률도 높다. IP 패킷은 보통 1300바이트인데, 1만 바이트의 데이터그램을 UDP로 전송하면 운영체제는 이를 대략 1300바이트 정도 크기로 나누어서 보낸다.(IP 패킷 헤더 등이 있으므로 실제로는 조금의 차이가 있다.) 이 경우 대략 8개 정도의 패킷으로 나뉘어져 IP 패킷 8개가 수신측으로 전송된다. 이 중 하나라도 ..