전체 글 70

[솔라리스]System V 메시지 큐(Message Queue), 세마포어(Semaphore), 공유…

참조 : http://www.ntech.in/v2/bbs/board.php?bo_table=2_solaris&wr_id=272&page=2 System V 메시지 큐(Message Queue), 세마포어(Semaphore), 공유 메모리(Shared Memory) 복잡한 프로그래밍 환경에서 다수의 프로세스들은 서로 협력하기 위하여 서로 통신하고 자원과 정보를 공유를 한다. 커널에서는 이것이 가능한 방법을 제공하는데, 이를 프로세스간 통신(Inter-process Communication) 또는 IPC라 부른다. 프로세스간 통신을 하는 목적은 데이터전송, 데이터 공유, 사건 전송, 자원 공유, 프로세스 제어를 하기 위함이다. 이를 위하여 전통적인 UNIX에서는 시그널(signal), 파이프(pipe), 프..

Reliable udp

Reliable UDP 구현과 활용 programming/server 2005/11/26 20:18 출처 : http://www.gamecode.org/tt/entry/2743 다른 용도로 예전에 작성했던 글인데, 말투만 좀 수정해서 업데이트 합니다. (^^) 네트워크 게임에서 UDP는 물리적인 네트워크 Latency에 근접한 반응 속도를 나타낸다는 의미만으로도 기여하는 역할은 매우 크다고 할 수 있습니다. 다만 데이터의 신뢰도가 떨어지기 때문에 제한적으로 사용되는 경우가 많습니다. 좀 더 적극적으로 UDP의 단점들을 보완하는 쪽으로 접근해서, 데이터 전송에 신뢰성을 준다면 TCP의 기능 일부를 효과적으로 대체할 수도 있을 것입니다. 이런 Reliable UDP 구현은 해외 유명 게임과 네트웍 엔진에서도..

프로그래밍 2011.08.18

1차원 배열 다수를 2차원 배열로

막 입문한 사람들은 1차원 배열 다수를 2차원 배열로 결합할때 FOR 문을 사용할 지도 모릅니다. 하지만 이런 방식은 상당한 성능의 하락을 가지고 오게되죠. (움직이는 영상들을 처리할 경우에 포문 한번에 눈에 보이는 프레임 하락도 있습니다) 그래서 간단하지만 실용적(?)인 걸로 한번 시작을 끊어볼 까 하네요. 01 typedef int ARRAYTYPE; 02 const int INDEX = 30; 03 const int ARRAYSIZE = sizeof(ARRAYTYPE) * INDEX;ARRAYTYPE SrcArray1[INDEX]; 04 ARRAYTYPE SrcArray2[INDEX]; 05 ARRAYTYPE SrcArray3[INDEX]; 06 ARRAYTYPE DstArray[3][INDEX];..

프로그래밍 2011.08.18

다원접속(Multiple Access) 방식

http://www.cable04.com/BBDays/comms/knowhow.asp?job=view&mnu=&brd=110950&seq_no=439&req_flag=0&que_page=2&ans_page=30 [답변] 다원접속(Multiple Access) 방식 qkekkos님이 2006-06-02 PM 3:53:09에 작성하신 답변입니다. 210.1**.*.* (1) 개요 다 원접속은 여러개의 지구국에 하나의 통신위성을 거쳐 동시에 필요한 통신로를 설정하는 것으로 한정된 가용주파수를 많은 지구국들이 사용 하여 주어진 시간에 많은 정보를 전달하여 중계기의 활용을 높이는 기술로 다원접속 방식으 로 FDMA, TDMA, SDMA, CDMA 등이 있으며, 선정된 다원접속기술의 재원을 각 지구국에 할당하는 방..

기타 2011.08.12

ZeroMemory, memset, 구조체={0} 의 차이

출처 : http://reister.tistory.com/tag/%EA%B5%AC%EC%A1%B0%EC%B2%B4%EC%B4%88%EA%B8%B0%ED%99%94 여러분은 구조체를 초기화 할 때, 어떤 방법을 쓰십니까? 0으로 채워야 한다면요,. 보통 세가지 방법들을 많이 쓰실겁니다. 먼저 Original C에서 부터 즐겨 사용되어 오던 memset()함수가 있겠고요, 둘째로, 윈도우 프로그래밍에서 자주 사용되는 ZeroMemory 매크로도 있구요 제가 즐겨 사용하는 Struct s = {0}; 등이 있지요. 뭐가 다를까요? 은근히 이걸 잘 모르시는분들이 많더라고요. 그래서 직접 보여드립니다. 우선 간단한 테스트 코드를 작성하고요. #include "stdafx.h" #include #include #i..

프로그래밍 2011.07.30

[C특강] 배열을 사용한 효과적인 이중 링크드 리스트 구현

http://cafe.naver.com/pplus/220 [출처] [C특강] 배열을 사용한 효과적인 이중 링크드 리스트 구현|작성자 김은철 이중 링크드 리스트를 사용할 때 장점과 단점은 다음과 같다. 장점은, 1. 데이터의 삽입, 삭제가 빠르다. 단점은, 1. 데이터의 추가 시 메모리 할당이 발생하고, 삭제 시 메모리 해제가 발생한다. 2. 메모리 조각이 많이 발생한다. 3. 항상 처음부터 검색해야 한다. 이 중 단점 1,2를 배열을 사용해서 해결할 수 있다. 배열을 이용하면 메모리의 할당 및 해제가 자주 발생하지 않기 때문에 메모리 단편화를 줄일 수 있어, 효율적인 프로그램을 개발할 수 있다. 또한 메모리를 할당할 때 마다 발생하는 페이지 할당이 줄기 때문에 적은 메모리를 사용하게 된다. 이제는 링크드..

프로그래밍 2011.07.23

C로 구현한 Queue

출처 http://ggaman.tistory.com/419001: #include 002: 003: // LIST 구조체 만들기. 004: typedef struct tag_list { 005: 006: char title[16]; 007: char name[16]; 008: struct tag_list* next; 009: 010: } LIST; 011: 012: 013: // 전체적인 QUEUE를 가르킬 queue 만들디. 014: LIST* queue=NULL; 015: 016: 017: // 데이터 삽입 018: // LIST* member로 넘어온 값을 삽입한다. 019: void enqueue(LIST* member) 020: { 021: LIST* t_list; 022: LIST* s_lis..

프로그래밍 2011.07.18

구조체 동적 배열

http://winapi.co.kr/clec/cpp2/19-1-3.htm 동적 배열 활용 동적 배열은 주소록, 비디오 대여점 관리, 워드 프로세서 등 관리 대상이 동일 타입의 집합이면서 크기가 가변적인 모든 프로그램에 응용 가능하다. 자료의 집합을 다룰 수 있으므로 원시적인 데이터 베이스라고 할 수 있다. 다음 예제는 앞에서 만들었던 동적 배열을 사용한 간단한 주소록 프로그램이다. 한 사람의 신상을 담는 구조체를 정의하고 이 구조체를 요소로 가지는 동적 배열을 만들었다. 배열의 요소 타입만 변경되었으므로 ELETYPE 매크로만 수정하고 나머지 전역변수와 관련 함수는 그대로 사용하면 된다. 예 제 : JusoArray #include struct tag_NameCard { char name[10]; cha..

프로그래밍 2011.07.16