일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 쓰레드
- 미디어학부
- Process
- Linux
- 우분투
- 프로세스
- 태그를 입력해 주세요.
- Android
- 학복위
- 와인
- Signal
- 숭실대
- 커널
- 운영체제
- 컴퓨터시스템개론
- Lock
- 별
- 별지기
- 학생복지위원회
- 로고
- 로고 프로그램
- 컴시
- logo
- kernel
- 파일io
- 함수
- 안드로이드
- wine
- 리눅스
- 정기철
- Today
- Total
목록분류 전체보기 (373)
두근두근이야기
Level Trigger (LT) epoll_wait()의 블록킹이 풀리는 순간 한개의 메시지만 받고 다시 epoll_wait()로 보내어도 아직 큐(TCP/IP를 이야기하는거다.) 에 메시지가 남아있다면 다시 트리거가 작동해 epoll_wait()의 블록킹이 풀릴 수 있다. Edge Trigger(ET) epoll_wait()의 블록킹이 풀리는 순간 한개의 메시지만 받고 다시 epoll_wait()로 보내면 클라이언트가 메시지를 보낼때까지 epoll_wait()에서 블록킹된다. 만약 클라이언트가 새로운 메시지를 보낸다면 이전에 큐에 있던 메시지만 가져온다. 이 문제를 해결하려면 블록킹이 풀렸을때 recv()함수를 더 이상 받은 메시지가 없을때까지 돌려서 확인해야한다.
읽어보면 잼씀.정독함 http://sunyzero.tistory.com/198#toc01 떡밥글:Linux에서는 TCP_NODELAY이 없나요? - http://kldp.org/node/165
sockaddr(2바이트 + 14바이트)sockadd_in(2바이트 + 2바이트 + 4바이트 + 8바이트)이 둘은 정확하게 16바이트로 사이즈가 같다.사용하기 쉽게 하려고 세분화 한 것sockaddr_in struct sockaddr_in{ short sin_family; //2byte unsigned short sin_port; //2byte IN_ADDR sin_addr; //4byte char sin_zero[8]; //8byte};IN_ADDR은 다음과 같다. union이기에 총 4바이트가 된다.struct in_addr{ union{ struct{u_char s_b1, s_b2, s_b3, s_b4}S_un_b; //4byte struct{u_short s_w1, s_w2}S_un_w; //4b..
sudo apt-get install manpages-dev manpages-posix-dev glibc-doc mpi-doc
뮤텍스- mutex_lock/unlock- 하나의 프로세스만 허용- binary semaphore와 많이 동일- 소유자 개념- lock한 task만 unlock가능 세마포어- down/up 함수 사용- 소유자 개념이 없다- 아무 task나 unlock가능
출처: http://sunyzero.tistory.com/192자세한 내용은 위 링크에 있음 1. 연산자 우선순위는 실무에선 필요없다. 2. 묵시적 타입캐스팅은 실무에선 큰 문제를 발생시킨다. 3. 비비꼬는 포인터! 많이써봤자 2중포인터다! 4. scanf대신 getline 또는 getdelim을 사용하자! 5. signal함수, 신뢰성문제로 sigaction을 써야한다. 6. 그외..재귀함수 - 쓰면 혼남. 많이 혼남.fflush(stdin) - 이건 비표준. 쓰면 안되는데 좋지 않은 C책에 많이 등장함.fork-exec 기법 - posix_spawn로 대체vfork 기법 - fork로 대체strcpy, strcat - stpcpy, stpncpy로 대체 (guarantee null terminated..
posix_msg.o: In function `main':posix_msg.c:(.text+0xb5): undefined reference to `mq_unlink'posix_msg.c:(.text+0xe2): undefined reference to `mq_open'posix_msg.c:(.text+0x1de): undefined reference to `mq_close'posix_msg.o: In function `start_msq_sender':posix_msg.c:(.text+0x334): undefined reference to `mq_send'posix_msg.o: In function `start_msq_receiver':posix_msg.c:(.text+0x37d): undefined re..
정적라이브러리- 동적(공유)라이브러리에 비해 실행 속도가 빠르고 배포에 제약이 없음- 다만, 해당 라이브러리를 필요로 하는 모든 경우 같은 정적 라이브러리가 링크되기 때문에 배포 파일들의 사이즈가 커짐- 그러므로 하드디스크 공간도 더 차지하고 메모리도 더 많이 차지함- 그러나 유닉스 시스템의 경우 그때그때 필요한 부분만 메모리에 로딩하는 demand paging을 사용하기 때문에 정적인 라이브러리의 메모리 사용률과 공유 라이브러리의 메모리 사용률의 차이가 크지 않음 동적(공유)라이브러리- 라이브러리를 여러 프로그램이 사용될 때 라이브러리 코드 영역을 공유- 고로 각각의 프로그램의 사이즈가 작아진다는 장점- 단점은 실행속도가 느리고 실행파일이 배포된 시스템에 컴파일시 사용된 메이저 버전의 동적 라이브러리가..
collect2 ld terminated with signal 11 segmentation fault 컴파일시 이렇게 뜨면.. apt-get autoremove binutils(제거 해줘야 다시 재설치 가능)apt-get install binutilsapt-get install gcc ㅜㅜ커널컴파일하다가.. /bin/usr/ld가... 디렉토리 인줄알고 .so 파일로 덮어씌워버렸었음.....이후 pthread.. gcc 가 안되는 현상이 발생하였음.