본문 바로가기

서버 프로그래밍

[2009/07/07] I/O 멀티플렉싱 1. 멀티플렉싱이란? - 멀티플렉싱이란? 1) 하나의 전송로를 여러 사용자가 동시에 사용해서 효율성을 극대화 하는 것 2. I/O 멀티플렉싱 기반의 서버 - I/O 멀티플렉싱이란? 1) 클라이언트와의 입/출력을 담당하는 프로세스를 하나로 묶어버리는 형식. 2) 프로세스가 고속의 전송로에 해당한다. 3. 멀티 프로세스 vs 멀티플렉싱 - 멀티 프로세스 기반의 서버 1) 클라이언트와 서버간의 송수신 데이터 용량이 큰 경우. 2) 송수신이 연속적으로 발생 하는 경우에 적합. - 멀티플렉싱 기반의 서버 1) 클라이언트와 서버간의 송수신 데이터 용량이 작은 경우. 2) 송수신이 연속적이지 않은 경우에 적합. 3) 멀티 프로세스 기반의 서버에 비해 많은 수의 클라이언트 처리에 적합. 더보기
[2009/07/03] 가위 바위 보 게임 1. 가위 바위 보 게임 구조 - 파이프 생성. - 자식 프로세스 생성. - 데이터 입력(가위 바위 보 선택) - 파이프 통해 데이터 전송(자식->부모) - 승자 확인! - 결과 전송(부모->자식) 더보기
[2009/07/03] 프로세스간 통신2 1. 파이프의 특성 - 파이프는 fork 함수에 의해서 복사 되지 않는다. 1) 파이프의 입 출력을 의미하는 파일 디스크립터가 복사 되는 것이다. - 파이프는 방향성이 존재하지 않는다. 2. 양방향 통신을 위한 파이프의 생성 - 하나의 파이프는 하나의 용도로만 사용한다. 1) A 프로세스에서 B 프로세스로 데이터 전송하기 위한 파이프 하나. 2) B 프로세스에서 A 프로세스로 데이터 전송하기 위한 파이프 하나. 더보기
[2009/06/28] 프로세스간 통신 1. 프로세스간 통신 - 프로세스간 통신의 정의 1) 독립된 프로세스 간에 데이터를 주고 받는 행위를 의미함. - 프로세스간 통신의 문제점. 1) 독립된 프로세스는 공유하는 메모리가 존재하지 않기 때문에 메모리를 공유해서 데이터를 주고 받는 것은 불가능! - 해결책 1) 운영체제는 서로 독립된 프로세스들이 데이터를 주고 받을 수 있도록 '파이프'라는 것을 제공한다. 2. 파이프의 생성 - 파이프 생성 함수 #include int pipe(int fd[2]); 3. 파이프의 생성과 프로세스간 통신 더보기
[2009/06/27] 프로세스 기반의 다중접속 서버의 구현. 1. 프로세스 기반 다중 접속 서버의 구현 모델 - 새로운 연결 요청을 수락 할 때마다 프로세스의 생성. 2. 파일 디스크립터의 복사 - 하나의 소켓(파일)에 대한 파일 디스크립터가 둘 이상 존재한느 경우, 모든 파일 디스크립터를 종료 해 줘야 해당 소켓(파일)이 종료 된다. 3. TCP 입출력 루틴의 분할. - 입력과 출력을 실행하는 루틴을 분리한다. 4. TCP 입출력 루틴의 분할의 이점. - 입력과 출력이 독립적이다. 더보기