모듈을 로딩하면 kernel thread부터 만들어야 한다. 같은 책 초반에 나왔는데, 다시 보니 기억할 수 없다. 스레드를 만든 후 함수와 데이터를 넘겨야 하는데, 데이터가 void 포인터다. struct로 캐스팅 하고 싶은데, 에러가 났다. kernel 코드를 보고 괄호를 몇 번 붙였다. 아! ㅅㅂ. 구글 찾아보기보다 시(간)성비가 더 좋다. pi@raspberrypi:~/linux $ grep -wn “kthread_create” -r ./drivers ./drivers/usb/usbip/usbip_common.h:285: = kthread_create(threadfn,…… spinlock, mutex 실습 계속 읽기
[태그:] mutex
sync, mutex. unix network programming p161
다시 thread로 돌아왔다. #include <stdlib.h> #include <stdio.h> #include <string.h> #include <pthread.h> #define MAXNITEMS 1000000 #define MAXNTHREADS 100 #define MIN(X,Y) ((X)<(Y) ? (X) : (Y)) //gcc -lpthread 옵션으로 컴파일. int nitems; /* read-only by producer and consumer */ //shared를 초기화 하는데, //맨 처음에 mutext가 있음. //나머지는 0으로 초기화됨.. struct { pthread_mutex_t mutex; int buff[MAXNITEMS]; int nput;…… sync, mutex. unix network programming p161 계속 읽기