2012의 게시물 표시

tcp/ip application protocol (for assignment)

어플리케이션 프로토콜   server client로부터 좌표정보 8bytes를 받아서 3 X 3 배열에 추가한다. 이겼는지 졌는지 승부가 아직 안 났는지 판단한다. 1. 승부가 아직 안 났다면 ->자신의 좌표를 결정(어디에 O를 그릴 것인지)한다. (결정하는 알고리즘) 3 X 3 배열에 추가한다. [O][  ][  ] [X][  ][  ] [X][O][  ] 여전히 승부가 아직 안 났다면 client에게 결과를 전달 (표) server가 이겼다면 client에게 결과를 전달(표, 졌음)   2. 승부가 났다면(client가 이겼다면) ->client에게 결과를 전달(표, 이겼음)   client server에 접속해서 n1, n2 의 (n=1,2,3) 정보를 전달한다.(8bytes)   struct a { int n1; //x좌표 int n2; //y좌표 }   server로부터 정보를 받는다.(표, 이겼음, 졌음) 승부가 아직 안 났다면 다음 좌표를 입력받는다. 승부가 났다면 정보를 출력한다.   컴퓨터(Server player)가 자신의 좌표를 결정하는 알고리즘 http://ko.wikipedia.org/wiki/%ED%8B%B1%ED%83%9D%ED%86%A0 1. 일렬로 만들어야 이긴다.(가로, 세로, 대각선) 2. 컴퓨터는 일렬로 놓으려고 한다. 하지만 client가 돌 하나를 더 놓았을 때 server가 지게 된다면 그곳에 돌을 놓는다.

[C] queue

#define QUEUESIZE 256 //size변경하면서 테스트 해볼 것 #define TRUE 1 #define FALSE 0 typedef struct{   int q[QUEUESIZE+1];   int first;   int last;   int count; } queue; /*큐에 대한 함수(circular queue)*/ void init_queue(queue *q) //큐 초기화 {   q->first = 0;   q->last = QUEUESIZE-1;   q->count = 0; } void enqueue(queue *q, int x) //큐에 값을 저장하는 함수 {   if (q->count >= QUEUESIZE)     printf("Warning: queue overflow enqueue x=%d\n", x);   else{     q->last = (q->last+1) % QUEUESIZE;     q->q[ q->last ] = x;     q->count = q->count+1;   } } int dequeue(queue *q) //큐에서 값을 빼오는 함수 {   int x;   if(q->count <= 0) printf("Warning: empty queue dequeue.\n");   else{     x = q->q[ q->first ];     q->first = (q->first+1) % QUEUESIZE;     q->count = q->count - 1;   }   return(x...

[C] pthread in window

http://taycleed.tistory.com/97 http://blog.naver.com/PostView.nhn?blogId=melipion7&logNo=20091502431&viewDate=&currentPage=1&listtype=0 이틀간의 삽질 끝에 내린 결론 : 그냥 처음부터 리눅스를 쓰는게 좋다...

[Android] Reference

http://developer.android.com/reference/packages.html

[OS] multitasking

▶ 멀티태스킹(Multitasking) 멀티태스킹이란 동시에 여러 개의 프로세스들이 운영될 수 있는 능력입니다. 윈도우 는 다중 프로세싱을 수행하기 위한 두 가지 방식을 사용합니다. 이 방법이란 협력 멀티태스킹(Cooperative Multitasking) 과 선제 멀티태스킹(Preemptive Multitasking)을 말합니다. 윈도우3.1 용 16비트 프로그램을 실행할 때는 협력 멀티태스킹이 사용됩니다. 협력 멀티태스킹은 시스템에서 수행되고 있는 프로세스들간을 스위칭함으로써 가능합니다. 예를들어 협력 멀티태스킹 중에 어떤 프로세스가 CPU를 필요로 한다면 필요한 시간을 알리기 위해 대기 행렬(Queue :큐) 에 메시지를 제출할 것입니다. 통제에 사용되는 프로세스는 어떤 다른 프로세스가 통제가 필요한지를 알아보기 위해 정기적으로 대기행렬을 확인합니다. 이 때 메시지가 확인되면, 이 통제 프로세스는 실행을 중단하고 다른 프로세스가 실행을 시작합니다. 이러한 접근의 문제점은 언제 프로세스가 대기 행렬을 체크할 것인가에 대한 일정한 표준이 없다는 것입니다. 그 결과로 어떤 프로그램은 다른 프로그램이 5내지 10초당 한번꼴로 체크하는데 비해 1초당 수회를 체크해야 합니다. 그러면 몇몇 프로세스들은 보다 많은 CPU 시간을 사용해야 합니다. 멀티태스킹의 다른 방식인 선제 멀티태스킹은 보다 강력하고 진보된 것입니다. 이 유형의 멀티태스킹에서 운영체제는 CPU를 보다 적절히 사용합니다. 이 방식은 응용 프로그램이 CPU를 점유하고 있다하더라도 운영체제가 제어권을 가지고 다른 응용 프로그램이나 시스템 프로세스에게 CPU를 할당해 줄 수 있는 방식입니다. 윈도우에 의해 특별하게 만들어진 32비트 응용 프로그램은 이 유형의 멀티태스킹으로 많은 이익을 얻게됩니다. 운영체제 스스로가 CPU 시간을 결정하기 때문에 16비트 응용 프로그램이 실행될 때 발생하던 오버헤드(Overhead) 는 더 이상 발생하지 않습니다. 32비트 프로그램을 사용하는 것이 좀더 간...

[C++ STL] heap

1. max heap // range heap example #include <iostream> #include <algorithm> #include <vector> using namespace std; int main () { int myints[] = {10,20,30,5,15};   vector<int> v(myints,myints+5);   make_heap (v.begin(),v.end());   cout << "initial max heap : " << v.front() << endl;   pop_heap (v.begin(),v.end()); v.pop_back();   cout << "max heap after pop : " << v.front() << endl;   v.push_back(99); push_heap (v.begin(),v.end());   cout << "max heap after push: " << v.front() << endl;   sort_heap (v.begin(),v.end());   cout << "final sorted range :"; for (unsigned i=0; i<v.size(); i++) cout << " " << v[i];   cout << endl; return 0; } Output: initial max heap   : 30 max heap after pop : 20 max heap after push: 99 final sorted range : 5 10 15 20 99 2. min heap #include <functional...

잡다한 정보들

eclipse가 잘 되다가 안될 때 http://blog.naver.com/youmitu?Redirect=Log&logNo=6013355360 효과적인 구글검색방법 http://boribab.tistory.com/3297 http://killereco.tistory.com/28 입력버퍼 비우는 법 http://plustag.tistory.com/1 난 scanf는 자동으로 버퍼 비워주는 줄 알았는데.. 지금까지 잘못알았다. 늘어가는 삽질 fflush함수는 gcc표준으로는 출력버퍼를 비우는 것 http://blog.naver.com/PostView.nhn?blogId=chamsol79&logNo=140010284718&parentCategoryNo=6&viewDate=&currentPage=1&listtype=0 깨알같은 윈도우 단축키 http://youni.biz/technote01/board.php?board=tag&command=body&no=348&PHPSESSID=a6c769576dac3dc12ca7d8af0c9768dc 인터넷 익스플로러 사용할 때 딸깍 거리는 소리, 이어폰 끼면 거슬리는데 없애는 법 http://blog.naver.com/dalsapcho?Redirect=Log&logNo=20133956172 MIPS instruction 정리 http://blog.naver.com/kain_hoon?Redirect=Log&logNo=140012329014 li move http://en.wikibooks.org/wiki/MIPS_Assembly/Pseudoinstructions MIPS wiki http://en.wikipedia.org/wiki/MIPS_architecture c++ Reference http://www.cplusplus.com/reference/ mysql 권한 설정 ( http:...