
[게임 서버 교과서] 개요

1.1 프로그램과 프로세스

프로세스 내에서 실행되는 작업 단위를 의미한다.일반적으로 OS는 대부분 스레드(Thread)라는 기능을 제공한다.스레드는 한 프로세스 안에 여러 개가 존재한 프로세스 안에 있는 스레드는 프로세스 안에 있는 메모리 공간을 같이 사용할 수 있다.스레드마다 스택을 가진다.

항상 멀티스레드 속도가 빠를까? 그것은 아니다.똑같은 연산을 하더라도 병목현상이나 다른 이유로 멀티스레드시 연산 속도가 훨씬 느려지기도 한다. 심지어 에러의 위치를 정확히 찾기도 힘들다.그런데 왜 대체로 게임 서버는 멀티스레드를 사용할까?(게임 서버뿐만 아니라 프로그래

만약 CPU가 하나만 있는 기기라고 가정해보자. 그럼 어떻게 여러 프로그램이나 여러 스레드가 동시에 실행될 수 있을까?바로 컨텍스트 스위치(context switch)때문이다.OS는 여러 프로세스와 각 프로세스 안에 있는 스레드들을 일정 시간마다 번갈아 가면서 실행한다

OSI 모델의 계층 2에서는 데이터 단위를 프레임이라 하고, 계층 3에서는 패킷이라고 한다. 네트워크나 서버 앱 개발시에는 직접 다룰 일이 흔하지 않다. 그 대신 스트림과 메시지 라는 것을 다룬다.스트림(Stream)이란 데이터의 흐름이다.두 단말기를 연결한 후 그 연